Azure Devops管道进行CICD

1. CI\CD简介

a.  CI/CD是持续集成(Continuous Integration)和持续交付(Continuous Delivery)的缩写,它旨在通过自动化的流程和工具,提高软件开发的效率、质量和交付速度。

b. CI(持续集成)

i.  持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。

ii. 关键组件

版本控制系统(Version Control System,VCS): 例如Git,用于跟踪代码变更,协作开发,并确保团队成员之间的代码同步。

iii.  自动化构建工具: 如Jenkins、Travis CI、CircleCI等,用于在每次代码提交时自动触发构建过程。

iv.  单元测试框架: 例如JUnit(Java)、pytest(Python),用于确保代码的基本功能在集成后仍然有效。

v.  作用

1.  减少集成问题

2.  提高代码质量

3.  提高开发效率

4.  自动化部署: 与持续交付(Continuous Delivery)和持续部署(Continuous Deployment)结合,CI 可以实现自动化部署。这意味着经过测试的代码变更可以自动部署到预定环境,实现快速且可靠的交付流程。

5.  降低风险: 通过频繁集成和自动测试,CI 减少了发布到生产环境时出现问题的可能性。提前发现和解决问题有助于降低风险,确保稳定的软件交付。

c. CD(持续交付、持续集成)

i.  持续交付建立在持续集成的基础上,通过自动化的流程确保软件可以随时随地进行部署。

ii.  关键组件

1.  自动化部署工具: 例如Docker、Ansible、Kubernetes等,用于自动化地部署应用程序和其依赖。

2.  环境配置管理: 工具如Terraform,确保不同环境(开发、测试、生产)的一致性。

3.  持续监控和反馈: 使用工具如Prometheus、Grafana,确保在部署后能够监控应用程序的性能和稳定性。

iii.  作用

1.  快速交付: 持续交付强调频繁、快速地将新的代码变更交付到生产环境。这使得团队能够更加迅速地响应用户需求,推出新功能或修复 bug。

2.  稳定交付: 通过自动化测试、自动化部署和验证流程,持续交付确保每次交付都是经过充分验证的,降低了引入错误的风险,提高了软件的稳定性。

3.  降低发布成本: 持续交付通过自动化流程降低了发布的人工成本。这意味着开发团队不再需要手动执行繁琐的部署步骤,减少了错误的可能性,提高了整体效率。

4.  支持持续改进: 持续交付是一个循环过程,通过不断收集用户反馈、监控系统性能和流程改进,团队能够不断优化持续交付流程,提高整体效率和质量。

2.  使用Ubuntu22.04版本安装docker

 https://developer.aliyun.com/article/1479966#:~:text=%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E6%9D%A5%E5%AE%89%E8%A3%85Docker%3A%20apt-get%20install%20docker-ce,docker-ce-cli%20containerd.io%20%E9%85%8D%E7%BD%AE%E7%94%A8%E6%88%B7%E7%BB%84%EF%BC%88%E5%8F%AF%E9%80%89%EF%BC%89%20%E9%BB%98%E8%AE%A4%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E5%8F%AA%E6%9C%89root%E7%94%A8%E6%88%B7%E5%92%8Cdocker%E7%BB%84%E7%9A%84%E7%94%A8%E6%88%B7%E6%89%8D%E8%83%BD%E8%BF%90%E8%A1%8CDocker%E5%91%BD%E4%BB%A4%E3%80%82%20%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E5%B0%86%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E6%B7%BB%E5%8A%A0%E5%88%B0docker%E7%BB%84%EF%BC%8C%E4%BB%A5%E9%81%BF%E5%85%8D%E6%AF%8F%E6%AC%A1%E4%BD%BF%E7%94%A8Docker%E6%97%B6%E9%83%BD%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8sudo%E3%80%82

a.  检查卸载老版本dockerapt-get remove docker docker-engine docker.io containerd runc

b.  更新依赖包

sudo apt update
sudo apt upgrade
  • 1.
  • 2.

1.  安装docker依赖

apt-get install ca-certificates curl gnupg lsb-release
  • 1.

1.  添加docker官方GPG密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • 1.

1.  添加docker软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  • 1.

1.  安装docker

apt-get install docker-ce docker-ce-cli containerd.io
  • 1.

1.  配置用户组(可选),重新登录才能生效

sudo usermod -aG docker $USER
  • 1.

1.  运行docker

systemctl start docker
  • 1.

1.  安装工具

apt-get -y install apt-transport-https ca-certificates curl software-properties-common
  • 1.

1.  重启docker

service docker restart
  • 1.

1.  查看版本

sudo docker version
  • 1.

1.切换镜像源

Azure Devops管道进行CICD_Azure Devops自动化部署

a. 修改配置文件:vi /etc/docker/daemon.json
b. 输入以下内容:
{		
	"registry-mirrors": ["https://d0x124aq.mirror.aliyuncs.com"]
}
保存并退出:按ESC键,然后输入:wq,退出
c. 重启docker服务:sudo systemctl restart docker
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

2.  测试是否成功,可以尝试拉取mysql镜像:docker pull mysql

3.  查看拉取的mysql镜像:docker images

3.   软件开发三大常用方法论

 https://developer.aliyun.com/article/1422734#:~:text=DevOps%E3%80%81%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B%E5%92%8C%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91%E4%B8%89%E8%80%85%E4%B9%8B%E9%97%B4%E5%AD%98%E5%9C%A8%E4%B8%80%E5%AE%9A%E7%9A%84%E5%85%B3%E7%B3%BB%EF%BC%8C%E4%BD%86%E4%B9%9F%E6%9C%89%E5%90%84%E8%87%AA%E7%8B%AC%E7%89%B9%E7%9A%84%E7%89%B9%E7%82%B9%E5%92%8C%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF%E3%80%82%20DevOps%E6%98%AF%E4%B8%80%E7%A7%8D%E6%96%87%E5%8C%96%E5%92%8C%E5%AE%9E%E8%B7%B5%EF%BC%8C%E5%AE%83%E5%BC%BA%E8%B0%83%E5%BC%80%E5%8F%91%E5%92%8C%E8%BF%90%E8%90%A5%E7%9A%84%E7%B4%A7%E5%AF%86%E5%8D%8F%E4%BD%9C%EF%BC%8C%E4%BB%A5%E5%AE%9E%E7%8E%B0%E5%BF%AB%E9%80%9F%E3%80%81%E9%AB%98%E6%95%88%E7%9A%84%E8%BD%AF%E4%BB%B6%E4%BA%A4%E4%BB%98%E3%80%82,%E8%80%8C%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B%E5%92%8C%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91%E5%88%99%E6%98%AF%E4%B8%A4%E7%A7%8D%E4%B8%8D%E5%90%8C%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%96%B9%E6%B3%95%E3%80%82%20%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B%E5%BC%BA%E8%B0%83%E4%B8%A5%E8%B0%A8%E3%80%81%E6%9C%89%E5%BA%8F%EF%BC%8C%E9%80%82%E5%90%88%E9%9C%80%E6%B1%82%E6%98%8E%E7%A1%AE%E3%80%81%E5%8F%98%E5%8C%96%E5%B0%91%E7%9A%84%E9%A1%B9%E7%9B%AE%E3%80%82%20%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91%E5%88%99%E5%BC%BA%E8%B0%83%E7%81%B5%E6%B4%BB%E3%80%81%E8%BF%AD%E4%BB%A3%EF%BC%8C%E9%80%82%E5%90%88%E9%9C%80%E6%B1%82%E4%B8%8D%E6%96%AD%E5%8F%98%E5%8C%96%E7%9A%84%E9%A1%B9%E7%9B%AE%E3%80%82

瀑布模型

简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。 这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。 大家按部就班,轮流执行自己的职责即可。

Azure Devops管道进行CICD_CI/CD_02

敏捷开发(Agile Development)

用于描述迭代软件开发的术语。 迭代软件开发通过以短期增量(通常称为冲刺)的形式来完成工作,从而缩短工作生命周期。

Devops

DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。

Azure Devops管道进行CICD_持续交付_03

Azure Devops管道进行CICD_Azure Devops自动化部署_04

云端:Azure Devops官网  https://dev.azure.com,按照以下步骤创建项目

Azure Devops管道进行CICD_CI/CD_05

Azure Devops管道进行CICD_持续交付_06

Azure Devops管道进行CICD_持续交付_07

Azure Devops管道进行CICD_Azure Devops自动化部署_08

Azure Devops管道进行CICD_CI/CD_09

Azure Devops管道进行CICD_Azure Devops自动化部署_10

Azure Devops管道进行CICD_持续交付_11


1. 点击项目设置,创建代理

Azure Devops管道进行CICD_持续交付_12

Azure Devops管道进行CICD_CI/CD_13

Azure Devops管道进行CICD_CI/CD_14


点击创建的代理,进入如下界面,选择Agents,点击New agent,(我使用的Linux系统)

Azure Devops管道进行CICD_持续交付_15

建议:下载好文件使用Xshell连接云服务器,使用Xftp上传

1. mkdir myagent && cd myagent	(创建myagent文件夹并进入文件夹)	 	
2. tar -zxvf vsts-agent-linux-x64-3.239.1.tar.gz		(解压文件)			
3. export AGENT_ALLOW_RUNASROOT="1"		(设置超级用户root权限)	
4. ./config.sh	(运行config.sh文件,按照图示设置)
5. ./run.sh	(运行run.sh文件)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

Azure Devops管道进行CICD_Azure Devops自动化部署_16

Azure Devops管道进行CICD_Azure Devops自动化部署_17

Azure Devops管道进行CICD_Azure Devops自动化部署_18

Azure Devops管道进行CICD_持续交付_19


Azure Devops管道进行CICD_持续交付_20

2. 点击项目,构建管道

Azure Devops管道进行CICD_CI/CD_21

Azure Devops管道进行CICD_Azure Devops自动化部署_22


开启Other Git权限

1. 点击组织设置,根据下图设置

Azure Devops管道进行CICD_CI/CD_23

Azure Devops管道进行CICD_持续交付_24

Azure Devops管道进行CICD_Azure Devops自动化部署_25


Azure Devops管道进行CICD_Azure Devops自动化部署_26

Azure Devops管道进行CICD_Azure Devops自动化部署_27

Azure Devops管道进行CICD_持续交付_28

Azure Devops管道进行CICD_Azure Devops自动化部署_29

Azure Devops管道进行CICD_Azure Devops自动化部署_30

Azure Devops管道进行CICD_Azure Devops自动化部署_31

Azure Devops管道进行CICD_CI/CD_32

Azure Devops管道进行CICD_持续交付_33

Azure Devops管道进行CICD_CI/CD_34

Azure Devops管道进行CICD_持续交付_35

Azure Devops管道进行CICD_Azure Devops自动化部署_36

Azure Devops管道进行CICD_CI/CD_37

Azure Devops管道进行CICD_Azure Devops自动化部署_38


PS:Save and run之前确保代理处于运行状态,下图为运行代理命令

Azure Devops管道进行CICD_Azure Devops自动化部署_39


Azure Devops管道进行CICD_CI/CD_40

Azure Devops管道进行CICD_持续交付_41

Azure Devops管道进行CICD_Azure Devops自动化部署_42




3. 管道运行成功,使用网址访问进行测试: http://47.95.178.186:8081/swagger/index.html

Azure Devops管道进行CICD_CI/CD_43

4. 本地化: https://www.cnblogs.com/AllenMaster/p/16842466.html

a. 设置本机代理,使用管理员身份进入终端,配置代理

Azure Devops管道进行CICD_CI/CD_44

b. 运行代理

Azure Devops管道进行CICD_CI/CD_45

c. Azure Devops查看代理运行状态

Azure Devops管道进行CICD_Azure Devops自动化部署_46

5. 错误信息

Azure Devops管道进行CICD_CI/CD_47