下一代 CI/CD:利用 Tekton 和 ArgoCD 实现云原生自动化

一、回顾目标

背景:

​ 部门业务上云,之前服务采用传统的部署方式,这种方式简单,但是不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响。随着互联网时代的到来,计算机的各项技术都有了巨大提高,推动了虚拟化、容器化技术的产生和发展,以及现在的云原生时代的到来,都极大提高了其资源利用率。

目标:

2022年下半年完成在kubernetes上的CI/CD实践,服务上云并保证服务活性。

流程:

CI:开发人员通过推送自己的代码来自动触发构建流程,流程触发之后会根据EventListeners对应的tekton pipeline来构建服务镜像,推送至镜像仓库并更新manifest中image_tag部分

CD:通过argoCD来对更新的manifest进行同步,并发布至集群

结果:

1.多种语言的构建流程,方便拓展。例如,Java、golang、node、python

2.实现了全自动化的服务部署,开发确认调整好了git仓库中的文件,就会触发构建流程。

3.对服务资源的可控性,避免了某个服务异常导致机器出现宕机,从而影响业务正常情况。

4.方便水平伸缩,服务请求较高时,适当调整replicas副本数。

5.灵活扩展,满足我们复杂多变的业务需求

6.让开发人员有更多的精力聚焦于业务开发上,避免繁琐的流程。

二、项目计划

****第一阶段:****熟悉Tekton和ArgoCD的工作原理,了解组件之间的依赖关系并使用于线上。


第二阶段:针对部门开发过程中,掌握不同语言的二进制构建。

遇到问题:

1、对Tekton和ArgoCD并不了解,缺乏实际操作经验。

2、语言能力相对欠缺,需要了解不同的打包方式。例如:maven,gradle,node

三、解决方案

1、通过自己多次部署测试来进行试错

2、通过官方文档学习其中知识

3、通过对同事之间的请教

4、通过对新技术的渴望,更深入研究

四、反思不足

1、Tekton概念复杂,但在使用上确实好用,后期如果有机会调研更多的插件功能。

2、在之前要充分考虑到实际的应用场景。

五、总结

1【对比】更多公司选择jenkins或者gitlabci,各有优劣,但是tekton更倾向于云原生的构建模式,在之后优势会尤为显著。

2【效率】复用开源技术,少去做造轮子的事情。

3【扩展性】不要只着眼于眼前的需求,还要关注定制化和扩展性,多考虑之后的业务场景。

4【技术】部门一起了解新的技术,提高部门的技术栈

相关推荐
青靴8 小时前
轻量级日志监控与告警系统(二,下):CI/CD 具体部署实战,一行推送实现秒级更新
ci/cd
要站在顶端16 小时前
基于 curl 实现 Jenkins 上传制品到 JFrog Artifactory
运维·ci/cd·jenkins
4***99741 天前
DevOps在云原生中的CI/CD流水线
ci/cd·云原生·devops
西部森林牧歌2 天前
Arbess从基础到高阶(14) - 使用Arbess+GitLab+SonarQube实现代码扫描完成后自动化部署
ci/cd·gitlab·sonarqube·arbess·tiklab devops
青靴2 天前
虚拟机上实现最简 CI/CD
ci/cd·devops
青靴3 天前
轻量级 CI/CD:Git Hooks 自动部署 Node.js 应用(CICD-demo)
git·ci/cd·node.js
青靴3 天前
轻量级 CI/CD 实战(四):本地开发钉钉告警 → 自动部署云服务器 Kafka 消费者容器
ci/cd·docker·钉钉
奔跑吧邓邓子3 天前
Jenkins自动化持续集成:从入门到实战
ci/cd·自动化·实战·jenkins·自动化持续集成
青靴4 天前
Git Hooks 实现 CI/CD 进阶实践 -- 根据实际需求添加功能
git·elasticsearch·ci/cd
DreamLife☼4 天前
Docker-CI/CD:集成 GitHub Actions 实现自动化构建与部署
ci/cd·docker·自动化部署·github actions·镜像构建·trivy 扫描·compose 部署