Devops的概念(二)
分类:知识集锦 发布时间:2023/6/28 11:16:29

6、如何有效实施DevOps

定义典型的DevOps的工作流程,典型的DevOps工作流程可以简化4个阶段:

版本控制:这是存储和管理源代码的阶段。版本控件包含代码的不同版本

持续集成:在这一步中,开发人员开始构建组件,并对其进行编译,验证,然后通过代码审查,单元测试和集成测试进行测试。

持续交付:这是持续集成的下一个层次,其中发布和测试过程是完全自动化的。CD确保将新版本快速,可持续地交付给最终用户。

持续部署:应用程序成功通过所有测试要求后,将自动部署到生产服务器上以进行发布,而无需任何人工干预。


7、DevOps使用哪些工具?

持续开发:Git、SVN、Mercurial、CVS、Jira

持续整合:Jenkins、Bamboo、CircleCI

持续交付:Nexus、Archiva、Tomcat

持续部署Puppet、Chef、Docker

持续监控:Splunk、ELK Stack、Nagios

持续测试:Selenium、Katalon Studio

 

由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后就把镜像push推送到Harbor镜像仓库中,镜像push推送到镜像仓库后,我们就可以调用kubernetes集群的restAPI更新服务,而后kubernetes接收到了更新的指令,从Harbor镜像仓库pull拉取镜像,从而完成服务的更新与重启,最后我们从客户端来访问kubernetes集群的服务。


1.开发从镜像库里获取基础镜像,对应用进行容器化开发;

2.开发提交代码到Gitlab(在Kubernetes中实现Gitlab服务,并通过持久化存储保存用户数据);

3.Gitlab收到代码提交请求后通过webhook触发Jenkins master

代码变更→触发jenkins build→拉取代码到jenkins节点→mvn打war包→测试→dockerfile打成镜像→docker tag →docker push到harbor → k8s部署

4.Jenkins master收到请求后在slave节点中对源码进行打包;

5.在源码打包完成后根据流水线,从Gitlab中获取dockerfile,在slave节点中生成docker images;

6.Docker镜像生成之后上传到Docker 私有仓库harbor;

7.通过Jenkins流水线在Kubernetes测试环境拉取镜像,部署应用;

8.测试成功之后,通过Jenkins流水线在Kubernetes生产环境进行应用的部署上线。

 

8、发布应用场景

发布应用场景:

蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。

灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。

滚动发布:按批次停止老版本实例,启动新版本实例。


蓝绿发布

项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署。B组仍然继续提供服务。

A组升级完毕,负载均衡重新接入A组,再把B组从负载列表中摘除,进行新版本的部署。A组重新提供服务。

最后,B组也升级完成,负载均衡重新接入B组,此时,AB组版本都已经升级完成,并且都对外提供服务。


灰度发布

灰度发布只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来。

体验创新云技术带来核心业务效率显著提升
立即预约,加速企业数字化转型进程
Copyright ⓒ 2022 苏州博纳讯动软件有限公司 国徽 苏ICP备13004761号 法律声明及隐私政策