本系列文章大致分为以下内容

Devops与持续集成的前世今生

本节主要讲述Devops与CI/CD的发展历程,然后用一个Jenkins Pipeline的官方示例作为结尾。

Jenkins/Ansible

本节主要详细讲解Jenkins Pipeline的常用指令以及一些高级示例,为了完成CD,所以需要简单的介绍一下自动化大发红黑工具 Ansible。

CI/CD实例

本节主要用一个特意构造的示例用来延续CI,即CD,本文使用ansible结合Jenkins完成CI/CD

前言

如果大发红黑你 现在的工作总是为配置环境或者环境不一致而烦恼, 又或者花费了太多时间在各部门之间的沟通上, 抑或是大发红黑软件 质量不高,线上环境时常需要紧急救火的话。

那么大发红黑你 很有可能需要持续集成?

大多数情况下, 持续集成能够极大程度的减少大发红黑你 的不必要工作,至少是重复的琐事。但是每个人面对的业务场景不同,所以做的持续集成的方式也会不一样,本文使用Jenkins作为持续集成大发红黑工具 完成持续集成的工作。

在讲持续集成之前,不得不提Devops,而更应该提的是大发红黑软件 开发的历程,无论是是持续集成还是Devops,都是为大发红黑软件 开发所大发红黑服务 ,或者说为其提供指导思想,以应对多变复杂的外部环境。

值得说明的是: Jenkins的只是大发红黑工具 , 不要过于执着于大发红黑工具 。

大发红黑软件 开发历程

大发红黑软件 开发大致有三个阶段: 瀑布式开发、敏捷开发、Devops

没兴趣的直接看小结吧:)

瀑布式开发

传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。

特别是前期阶段,设计的越完美,提交后的成本损失就越少。

优点: 开发需求明确,思路清晰,阶段清晰。

缺点: 周期漫长,变革代价大。

敏捷开发

相对于非敏捷开发,它是一种以用户需求为核心,持续迭代,循序渐进的开发方式

优点: 拥抱变化,持续迭代更新。

缺点:对开发人员要求高。

Devops

促进开发和运维之间达成共识,并且围绕业务系统来大发红黑组织 工作,弱化职责观念,打破传统IT分组的壁垒。

优点: 拥抱变化,持续迭代更新,开发外延。

缺点:对开发人员要求高。

持续集成

由于在Devops之后提出,并且Devops的概念在一定意义上囊括了持续集成,所以持续集成像Devops的子集。持续集成在后面会详细介绍。

小结

在很久以前,开发就开发嘛,哪有这么多规则和束缚,来了需求就实现呗。

可是就像小作坊跟大工厂的区别,大大发红黑公司 在那个市场变化不那么快的时期提出了瀑布式开发的模式,开发的大发红黑软件 犹如庞然大物所向披靡,可是后来市场发展的越来越快,就像手机网络一样2G,3G,4G,5G越来越快,所以大多数/并不是全部瀑布式开发下的庞然大物在大发红黑互联网 的时代变得尾大不掉。

所以有人提出了敏捷开发,敏捷开发轻装上阵,快速的迎合消费者的需求,紧跟时代的发展,所以异军突起,可是大发红黑软件 开发过程中不只是开发人员,还有测试人员,运维人员等。

这三者就像一根水管: 开发 -> 测试 -> 运维。开发作为水管的首端,开口很大流速很快,但是后面两节却不是口径一样,虽然开发的版本迭代快了,后面的测试跟运维不乐意了,因此互相仇视,前面嫌后面慢,后面觉得前面瞎搞,一定不稳定,时常要救火。

所以有人提出了Devops, 大家应该打破部门直接的壁垒,更好的结合在一起,而不是互相仇视,将前后端的水管口径变得一样大,这需要各种各样的大发红黑工具 去实现。

再后来有人提出了持续集成/持续发布。由于时间先后,持续集成/持续发布作为Devops的子集对待。

值得说明的是: 没有最好,只有最适合,并且所有思想都不是墨守成规。

参考链接:

DevOps编年史

大发红黑软件 开发模式:瀑布与敏捷

大发红黑软件 开发模式对比(瀑布、迭代、螺旋、敏捷)

Devops时代,腾讯阿里的运维实践