本文目录导航:
cicd与devops 区别是什么?
cicd(Continuous Integration继续集成和Continuous Delivery继续交付)是指继续集成颁布部署,是一套流程成功软件的构建测试部署的智能化。
DevOps是一种思维,是一种文明,关键强调软件开发测试运维的一体化,指标是缩小各个部门之间的沟通老本从而成功软件的极速高品质的颁布。
什么是CI CD
继续集成
在传统软件开发环节中,集成通常出当初每团体都成功了各自的上班之后,所谓集成,可以了解为团队里的大家成功自己担任的模块后,将各个子模块集成为一个可以成功全体性能的完整模块。
在名目序幕阶段,通常集成还要痛苦的破费数周或许数月的期间来成功。
继续集成是一个将集成提早至开发周期的早期阶段的通常形式,让构建、测试和集成代码更经常重复地出现。
为了成功继续集成,咱们每团体都要单元测试(unit test),保证各个子模块的反常上班。
继续交付
继续交付是继续集成的加长,将集成后的代码部署到类消费环境,确保可以以可继续的形式极速向客户颁布新的更改。
咱们把代码部署到测试环境,预颁布环境等等类消费环境成为交付。
继续部署
假设真的想取得继续交付的好处,应该尽早部署到消费环境,以确保可以小批次颁布,在出现疑问时可以轻松扫除缺点。
于是有了继续部署。
咱们通常将这个在不同环境颁布和测试的环节叫做部署流水线
继续部署是在继续交付的基础上,把部署到消费环境的环节智能化。
cicd与devops区别是什么?
cicd是指继续集成颁布部署,是一套流程成功软件的构建测试部署的智能化。
DevOps 就是开发(Development)、测试(QA)、运维(Operations)这三个畛域的兼并。
只管名字中没有表现,但是DevOps仍包括测试。
DevOps与cicd严密相关,是通常与通常的联合,DevOps要成功人员一体化,必定要借助cicd工具来智能化整个流程。
DevOps落地实施,从组织架构、设计人员、流程、人员分工、人员技艺到工具,变动很大,要求很高,齐全推翻了现有的开发运维形式,树立危险很高。
DevOps开展引见
可以把DevOps看作开发(软件工程)、技术经营和品质保证(QA)三者的交加。
传统的软件组织将开发、IT经营和品质保证设为各自分别的部门。
在这种环境下如何驳回新的开发方法(例如矫捷软件开发),这是一个关键的课题:依照从前的上班形式,开发和部署不要求IT允许或许QA深化的、跨部门的允许,而却要求极端严密的多部门单干。
但是DevOps思考的还不止是软件部署。
它是一套针对这几个部门间沟通与单干疑问的流程和方法。
在不足DevOps才干的组织中,开发与经营之间存在着消息“鸿沟”──例如经营人员要求更好的牢靠性和安保性,开发人员则宿愿基础设备照应更快。
而业务用户的需求则是更快地将更多的个性颁布给最终用户经常使用。
这种消息鸿沟就是最常出疑问的中央。
「智能化运维」从0到1 CICD智能化部署落地分享
目录
一、CICD简介
二、CICD通常环节
三、含泪踩坑
四、 历史 文章指路
一、CICD简介
1、CICD定义
2、DevOps定义
DevOps(Development和Operations的组合词)是一组环节、方法与系统的统称,用于促成开发(运行程序/软件工程)、技术经营和品质保证(QA)部门之间的沟通、单干与整合。
DevOps的基础外围是CICD。
CICD的基础外围是智能化。
二、CICD通常环节
1、原因
在我之前的团队,由于要切换全新业务线,要求为新业务搭建一套全新的环境,一切物品从0开局。
原先只是用于部署测试环境,前面选择一同部署消费环境,这个环节中我还形成了一个严新消费环境疑问,好在过后的消费环境还未正式经常使用,未形成重大影响。
在过后挺惧怕也挺有压力的,但是前面名目完整落地,颠簸运转,我还是挺有成就感的,接上去我将整个名目环节完整的分享进去。
2、技术栈选型
首先启动技术栈选型,咱们选用的是Jenkins,Jenkins当属业内继续集成老大哥,有着十分丰盛的插件,也可以选用gitlab集成的CICD,由于咱们还有其它的测试脚本要求集成,所以Jenkins关于咱们来说是最优的选用;
Ansible是批量运维工具,经过编写yaml脚本,可以繁难成功批量治理多台机器,并且Ansible是比拟轻量级运行,很容易上手;
shell脚本可以用于口头一系列命令。
其它的就联合团队名目状况启动搭建。
3、Jenkins运行部署成功流程
首先来梳理下整个名目的成功流程,关键分为Jenkins主节点和运行主机,是一对多的相关。
Jenkins主节点的关键担任名目部署前的上班,关键蕴含拉取代码,前端打包,后端打包,快照版检测,将紧缩包和部署脚本发送到指标机器(即运行主机),远程调用指标机器上的部署脚本启动代码交流。
运行主机部署脚本口头环节有:解压紧缩包,中止服务,笼罩代码,拉取disconf,运行目录分组赋权,重启服务,审核服务能否有进程,检查启动日志,删除/tmp目录下旧紧缩包。
Jenkins运行部署流程图
4、义务方案
4.1、搭建环境
指路【Jenkins系列】如何搭建Jenkins环境。
由于这个我没有通常成功的教程,所以在这里就不贴啦~
2、编写前置脚本
3、编写运行部署脚本
4、Jenkins性能
指路【Jenkins系列】如何构建Jenkins Job。
新增Job,关键用于拉取代码,口头Maven编译,口头app_,将紧缩包经过ssh发送到指标机器,远程调用指标机器的。
三、含泪踩坑
踩坑1
疑问形容:在失误的门路拉取性能,要素是未成功解压紧缩包。
处置方案:校验紧缩包能否解压成功解压成功,并且在cd到正确的门路后增加&&(&&示意上一条命令口头成功再口头下一条命令)才启动拉取性能。
踩坑2
疑问形容:名目没有反常中止,造成不可从新启动。
处置方案:只管口头kill -9,但是未找到基本要素,因此加了一个检测机制,假设检测没有反常中止服务,则分开程序。
踩坑3
疑问形容:消费部署脚本拉取了开发环境的的jdbc性能,要素是消费部署脚本写错了开发环境disconf的域名,过后我同时在搞开发消费环境的脚本,开发和消费是两套不同的脚本,一时凌乱写错了,吓得一批,好在过后消费环境还没投产经常使用。
处置方案:为了防止后续这种状况的出现,而且是必定防止的,咱们经过环境称号来判别走开发还是消费域名,这样就能保证脚本分歧性了。
在这个名目实践遇到的疑问远不止下面这几个,在这个通常环节中,我对整个运行部署流程有了更深的了解,往常方方面面的学习终于集中化起来启动通常了。
我习气将学到的常识和遇到的疑问记载起来,在写这篇文章的环节回过头来看,五味杂陈,原来我都教训了这些哈哈哈......
踩过的坑到底使我愈增弱小,带你见证呱呱本呱生长为参天大呱~
搞测试,不迷路
呱呱大王本呱带你飞!