【云原生 | Devops篇】深入Devops

简介: 【云原生 | Devops篇】深入Devops

深入Devops


一、DevOps是什么



Development和Operations的组合词


image.png

image.png


DevOps: Development 和 Operations 的组合


  • DevOps 看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。


  • 突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、 发布更加快捷、频繁和可靠。


  • DevOps 希望做到的是软件产品交付过程中 IT 工具链的打通,使得各个团队减少时间损 耗,更加高效地协同工作。专家们总结出了下面这个 DevOps 能力图,良好的闭环可以大大 增加整体的产出。


二、CICD是什么



持续 集成 持续 部署


1、基本理念


image.png


1.1 、持续集成( Continuous Integration )


持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现 其中的错误。“ 持续集成 ” 源自于极限编程(XP),是 XP 最初的 12 种实践之一。

CI 需要具备这些:


  • 全面的自动化测试。这是实践持续集成&持续部署的基础,同时,选择合适的 自动化测试工具也极其重要;


  • 灵活的基础设施。容器,虚拟机的存在让开发人员和 QA 人员不必再大费周折;


  • 版本控制工具。如 Git,CVS,SVN 等;


  • 自动化的构建和软件发布流程的工具,如 Jenkins,flow.ci;


  • 反馈机制。如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本。


1.2 、持续交付( Continuous Delivery )


持续交付在持续集成的基础上,将集成后的代码部署到 更贴近真实运行环境的 「类生产环境」 (production-like environments)中。持续交付优先于整个产品生命周期的软件部署,建立 在高水平自动化持续集成之上。


持续交付和持续集成的优点非常相似:


  • 快速发布。能够应对业务需求,并更快地实现软件价值。


  • 编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈;


  • 高质量的软件发布标准。整个交付过程标准化、可重复、可靠,


  • 整个交付过程进度可视化,方便团队人员了解项目成熟度;更先进的团队协作方式。从需求分析、产品的用户体验到交互 设计、开发、测试、运维等角色密切协作,相比于传统的瀑布式软件团队,更少浪费。


1.3 、持续部署( Continuous Deployment )


持续部署 是指当交付的代码通过评审之后, 自动部署到生产环境中 。持续部署是持续交付的最高阶段。 这意味着,所有通过了一系列的自动化测试的改动都将自动部署到生产环境。它也可以被称为“Continuous Release” 。


“ 开发人员 提交代码 ,持续集成服务器获取代码,执行单元测试,根据测试结果决定是否部署到预演环境,如果成功部署到预演环境,进行整体验收测试,如果测试通过,自动部署到产品环境, 全程自动化高效运转。


持续部署主要好处是,可以相对独立地部署新的功能,并能快速地收集真实用户的反馈。


“You build it, you run it” ,这是 Amazon 一年可以完成 5000 万次部署, 平均每个工程师每天部署超过 50 次的核心秘籍。
5000/365 = 15 万次


开发人员代码敲完。可以release的时候,提交代码, 剩下的全部一站式自动搞定


2、最佳实践



2.1 、内循环与外循环


image.png


  • 内循环(开发要做的事情):
  • 编码、测试、运行、debug、提交


  • 代码推送到代码仓库(svn,git)【代码回滚】


  • 进行CI过程(持续集成),万物皆可容器化。打包成一个Docker镜像


  • 镜像推送到镜像仓库


  • 测试


  • 持续部署流程(CD),拿到之前的镜像,进行CD。怎么放到各种环境。uat、test、prod


  • 外循环


  • 运行时监控生
  • 产环境的管理  
  • 监控
  • 线上反馈到开发


再到内循环


2.2 、实践流程


image.png


新功能,bug修复,我们应该如何操作?


  • 创建分支来做这个事情(开发功能)
  • 提交分支的代码改变
  • 进入持续集成流程


  1. 当前分支代码功能性自动化构建和测试
  2. 自动工具推送这次提交
  3. 自动化集成测试
  4. 可以看到效果
  5. 人工确认此次功能是否发布到生产环境


  • 代码合并
  • 进入持续部署流程

       构建、测试、发布......


2.3、CICD LandSpace


CICD蓝图


image.png

目录
相关文章
|
6月前
|
运维 Cloud Native Devops
云原生 DevOps CI/CD 概述
【1月更文挑战第7天】云原生 DevOps CI/CD 概述
|
6月前
|
运维 Cloud Native Devops
云原生 DevOps 自动化运维 概述
【1月更文挑战第7天】云原生 DevOps 自动化运维 概述
|
3月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19356 30
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
205 3
|
2月前
|
运维 Cloud Native Devops
云原生时代的DevOps实践:自动化、持续集成与持续部署
【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。
|
6月前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
183 1
|
6月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
154 1
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
下一篇
无影云桌面