敏捷/持续集成/持续交付/DevOps基本理论全面解析(上)

简介: 敏捷/持续集成/持续交付/DevOps基本理论全面解析(上)

1 辨析敏捷/持续集成/持续交付/DevOps

image.png

2 持续集成

2.1 为何会有持续集成?

敏捷开发解决了单体应用的开发和每日构建的问题。

而单体应用拆分成微服务,就需要有一套方案来组装这些微服务,使其成为可协作运行的微服务架构。该方案就是持续集成。

  • 持续集成强调开发人员提交新代码后,立刻进行构建、(单元)测试。根据测试结果,可确定新代码和原有代码是否正确集成在一起。
  • image.png

2.2 持续集成的定义

持续交付的鼻祖Martin Fowler提出:持续集成(Continous Integration)是一种软件开发实践,帮助团队成员频繁集成他们的工作,通常每个项目每天至少集成一次,从而每天有可测试的版本。

每次集成使用自动化构建(含测试)来实现打包和测试,快速验证问题。许多团队发现持续集成显著地降低了集成遇到的错误,使团队能够更加迅速地开发软件。

2.3 为何需要持续集成

image.png

就如同Git是为了把代码集成在一起管理,持续构建就是把功能集成在一起,保证编译不出错。

类似的还有自动化测试保证一个模块的功能集成在一起能够正确工作。

联调测试环境则能将不同模块之间集成在一起,在一个类生产的环境中进行测试。

2.4 持续集成流水线的设计

image.png

3 持续部署

3.1 传统部署的缺陷

  • 传统部署部署方式严重依赖手工部署,人力成本高
  • 生产环境依赖手工配置进行变更,非常繁琐
  • 熬夜加班进行上线部署,效率很低

3.2 持续部署的定义

首先明确概念,软件部署:将软件按期望状态部署到目标机器的期望路径。

持续部署:自动化的将一或多个软件尽可能快的、稳定的、可重复的联合部署到目标机器,以便软件功能的验证和实际运行。

可能是在云环境中自动部署、app升级(如手机上的应用程序)、更新网站或只更新可用版本列表。

  • 持续部署是在持续交付基础上,将部署到生产环境这一过程自动化。
  • image.png

3.3 持续部署的基本要素

  • 自动化部署 - ansible
  • 应用与配置分离,一次构建,多处运行 - Spring Cloud Config
  • 提供应用健康监测的接口 - Spring Cloud Actuator

3.4 常见自动化部署方法

image.png

其中的vault专门用于存储一些加密信息,比如用户密码

目录
相关文章
|
5月前
|
Java Maven
Javaweb之 IDEA集成Maven的详细解析(2)
3、填写模块名称,坐标信息,点击finish,创建完成
107 4
|
7月前
|
Devops jenkins Java
【devops】八、集成Harbor(上)
【devops】八、集成Harbor(上)
|
7月前
|
jenkins Devops 持续交付
【devops】七、集成Sonar Qube(下)
【devops】七、集成Sonar Qube(下)
|
7月前
|
安全 前端开发 Devops
【devops】七、集成Sonar Qube(上)
【devops】七、集成Sonar Qube(上)
137 0
|
5月前
|
Java Maven
Javaweb之 IDEA集成Maven的详细解析(1)
03. IDEA集成Maven 我们要想在IDEA中使用Maven进行项目构建,就需要在IDEA中集成Maven 3.1 配置Maven环境 3.1.1 当前工程设置 1、选择 IDEA中 File => Settings => Build,Execution,Deployment => Build Tools => Maven
154 3
|
2月前
|
SQL API 数据处理
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
本文整理自阿里云开源大数据平台吕宴全关于新一代实时数据集成框架 Flink CDC 3.0 的核心技术架构解析。
749 0
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
|
4月前
|
敏捷开发 Devops jenkins
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
47 1
|
9月前
|
机器学习/深度学习 算法
经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
105 0
|
5月前
|
安全 架构师 Java
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
129 0
|
6月前
|
存储 监控 安全
中项系统集成项目管理2023上半年真题及解析(四)
中项系统集成项目管理2023上半年真题及解析

推荐镜像

更多