跳转至

1.敏捷无敌之Gitlab CI

背景:

在目前快节奏生活已经成为社会风潮的大背景下,越来越多的互联网公司为了其应用产品能更快的掌控风向脉搏,抢占市场红利,需要更快速的应用产品开发上线,在市场的反馈下,不断的迭代新功能。在此需求下,持续集成,持续部署,持续交付被越来愈多公司所推崇,DevOPS文化的兴起,一方面是实践打破运维与研发的堡垒之墙,另一方面也是敏捷开发过程中的必要产物。

提高软件开发效能,快速迭代、快速试错,以及根据自己开发团队特点,使用怎样的技术手段,才能是软件开发效能最高,更为快速敏捷,以及怎样才能满足产品能在最短周期、高质量的交付业务的诉求?

本专栏在此背景下为大家提供Gitlab CI持续集成方案,通过一些列实战,让各位能够能直观清晰的理解这种模式,本专栏为抛砖引玉,各位结合,读者可以结合自己实际的生产环境来考虑是否引入此中模式,优化交付流程,释放研发最能大潜能,与此同时,读者可以在本专栏体验端到端的 CICD 的如丝般顺滑的CI体验,并且无论运维人员还是开发人员都能够在本专栏更系统宏观的了解和学习Gitlab CI的流程及具体操作方式。

一 Gitlab

提到Gitlab CI,大家可能都会想到Gitlab,其作为目前最火的开业git托管服务端,相较于Github,各企业可以进行私有化部署,服务器自己维护,项目数据更加安全更可控,网络也更快及更安全。

Gitlab 为用户提供友好的web界面,可以在线代码查看提交,多人协作在线code review,另外提供webhook及自建应用介入,强大的功能已经为大多数互联网公司作为首选的代码仓库,其自带的Gitlab CI,不依托于其他发布软件,天然快速集成项目CI功能,更好的切合业务敏捷开发快速持续集成及部署的需求。

二 持续集成

在谈论Gitlab CI前,我们都知道持续集成,它是一种软件开发实践,其为了保证让开发的产品可以保持高质量的情况下快速迭代,频繁的将测试通过的代码合并到主分支中,不断的去尽早的试错,更为敏捷的开发。

三 Gitlab CI

通过上面的内容,我们已经能够清楚的知道在快速发展的当下,敏捷是一种高效的开发模式,持续集成是我们在其过程中的必要措施,那么如何实现这个持续集成呢,这时候就需要我们通过一DevOPS的解决方案来实现,在此我们知道了大多数企业利用Gitlab,那们我们使用Gitlab CI来同一套系统来实现持续集成给为快捷统一。

四 Gitlab CI的优势

  • 作为Gitlab自带的持续集成解决方案,代码使用 GitLab 进行托管,Gitlab CI天然集无需额外配置,不需要运维人员去单独维护其他CI系统,避免多点故障引入,只用做好Gitlab的维护即可。

  • Gitlab CI的触发为Git提交检索.gitlab-ci.yaml文件触发,其免去了第三方CI服务器对利用webhook定时请求Gitlab的压力,如果配置的项目流水线很多,这个压力不容小觑。

  • Gitlab CI本身设计为Config as Code将CI/CD配置托管在项目中,避免每个人手工配置的CI或还有不一致带来的问题。
  • Gitlab CI真正的架构为C/S架构模式,可方面的进行横向扩展,运行job性能上不会有影响,
  • 其构建包含构建日志,容易溯源追踪。
  • 其CI过程利用gitlab 自带的邮件通知,不用额外配置通知。

了解了Gitlab CI的优势,是不是有了一定的兴趣跃跃欲试,让我们来一块走进Gitlab CI得实战,一块领略如丝般顺滑的持续集成体验,通过专栏通过四个实战,可以根据自己公司特点来改进流水线,适用于发布物理服务器,虚拟机,公有云/私有云,已经K8s等。打破研发与运维的壁垒,提高团队及协作/快速反馈/响应变化。

五 注意事项

  • 本文内容由浅入深,从理论到实践,虽然为微专栏,但是能从CI原理流程分析及前后端项目多环境混合部署,全方位多层次的深入了解及实战Gitlab CI,相信无论您目前使用的是那种CI/CD方案,通过本专栏一定能让您从不同角度来重新认识CI。
  • 本文前两个实战门槛较低,使用于物理服务器/虚拟机/云服务器等,第三篇需要读者具备一定的K8s知识,相信在不久的将来,微服务大行其道,第三篇定能祝你一臂之力。