在软件工程中,CI/CD是指持续集成和持续交付或者持续部署的组合。
CI/CD通过构建应用程序、在测试和部署中实施自动化,从而在开发团队和运维团队之间架起一座桥梁,让项目能够更快、更好地交付与部署。
CI是一种软件开发实践,即团队开发成员经常集成他们的工作。通常每个成员每天至少集成一次代码,这以为着软件每天可能会发生多次集成。而每次集成可以通过自动化的构建来验证,可以尽快发现集成错误。许多团队发现通过这个过程可以大大减少集成的问题,让团队能够更快地开发内聚的软件。
持续交付是指,在构建阶段后将所有代码部署到测试华宁和生产环境中,实现对持续集成的扩展。
持续部署是指,可以自动化地将通过集成和交付的代码发布到项目环境中,已供客户使用。
一般的,项目环境至少包含开发环境、测试环境和生产环境。
对开发环境和测试环境,可以反复进行部署,不会影响业务。
对生产环境,建议使用半手动或手动方式进行部署。
持续部署主要是为了解决“因手动流程降低了用用的交付速度,从而导致运维团队超负荷工作”等一系列问题。
本文中主要讲解简单的web系统更新已迭代的方法,此方法仅适用于简单的web系统,此系统主要有3-5人进行开发与维护,讲解的主要web系统主要由Python的Django框架与Vue脚手架进行开发出来的web系统。本文不涉及自动化部署与运维!
简单来说就是,将已经发布的系统代码库下载下来,基于现有的代码在本地手动调试与更新。
主要问题:因为但凡涉及到数据字段与表的更改,Django就会生成migrations迁移文件,此迁移文件如果上传到生产环境中,会产生报错问题。
因此针对migrations是否产生迁移文件,系统更新与迭代主要有以下几种方式:
步骤如下:
步骤如下:
python manage.py makemigrations
和python manage.py migrate
即可。(更新系统时应在无客户使用系统的情况下进行更新)。Git:版本控制系统,对于开发人员来说,已经在熟悉不过了。基于熟悉的命令可以快速的进行集成开发。
本次介绍是基于Ubuntu20,Django3.2,Git 2.25进行演示。
sudo apt-get install git
git config --global user.name 'your name'
git config --global user.email 'your email'
adduser git
#进入git用户的home目录
cd ~git
[root@localhost ~]# mkdir .ssh
[root@localhost ~]# chmod 700 .ssh
[root@localhost ~]# touch .ssh/authorized_keys
[root@localhost ~]# chmod 600 .ssh/authorized_keys
1)将客户端.ssh/id_rsa.pub文件中的内容(也叫公钥)复制到authorized_keys文件里。mac电脑下一般在 ~/.ssh
目录下
2)然后在客户端 ssh git(你的用户名)@192.168.192.130(局域网ip),正常的话应该可以连接上服务端,如果连不上,注意权限问题,直接将服务端的权限设置为了:777。
cd /home/git/
mkdir gitrepo
cd gitrepo
#初始化远程仓库
git init --bare remote.git
#将远程git仓库属于git用户所有:
sudo chown -R git:git gitrepo
通过前面的步骤创建了一个空的远程仓库,此时可以通过git clone命令clone一个空的仓库,如下:
git clone git@192.168.192.130:/home/git/gitrepo/remote.git
此时远端服务器的IP地址为192.168.192.130
通过上述可以看到,确实clone了一个没有任何具体仓库目录的空仓库,那么如何关联具体的仓库目录,具体操作步骤如下:
进入远程服务器创建仓库的目录:
cd gitrepo/
现在在该目录中创建项目所需的文件,并在该目录下启动git(也就是常说的git init)
git init
已初始化空的 Git 仓库于 /home/git/gitrepo/.git/
创建一个测试文件hello,并add进仓库,如下
touch hello
git add hello
git commit -m "first"
将当前git目录关联具体的git远程仓库
到现在为止,git目录一直在服务器的本地环境。现在我们必须将这些更改推送到具体的git仓库上面,以便客户端通过互联网访问,并且可以与其他团队成员进行协作。这里的具体操作如下:
git remote add origin git@192.168.192.130:/home/git/gitrepo/remote.git
git push origin master
经过如上,git仓库就关联了具体的git文件目录了。
这里有一点需要注意的是git remote add origin
,这个操作也可以在客户端进行操作,这里只是为了演示更加的直观和通用的做法。
经过上述操作,现在就可以使用clone, pull 或 push 选项在服务器和本地计算机之间推送或拉取等相关的操作了。如下所示:
git clone git@192.168.192.130:/home/git/gitrepo/remote.git
git pull git@192.168.192.130:/home/git/gitrepo/remote.git
通过上面的一系列操作,可以将本地的代码与生产环境的代码库进行了相关联,但是代码更新不是直接与生产环境下的代码直接关联,而是在生产环境下创建了一个Git仓库,那么生产环境的代码就可以直接git pull 下进行实时更新。