作者
VincentBehar
译者
无明
这篇文章将介绍dailymotion(一家总部位于巴黎的视频分享网站)从Jenkins迁移到JenkinsX的故事,包括他们遇到的问题以及他们如何解决它们。
背景
在dailymotion,我们信奉DevOps最佳实践,并且重度使用了Kubernetes。我们的部分产品(并非全部)已经部署在Kubernetes上。在迁移我们的广告技术平台时,为了赶时髦(作者你这么直白的吗?)我们希望完全采用“Kubernetes方式”或云原生!这意味着我们需要重新定义我们的整个CI/CD管道,并使用按需分配的动态环境来替代永久性的静态环境。我们的目标是为我们的开发人员提供最好的支持、缩短产品上市时间并降低运营成本。
我们对新CI/CD平台的初始要求是:
如果可能的话,尽量避免从头开始:我们的开发人员已经习惯使用Jenkins和声明性管道,目前这些东西都还好。
采用公有云基础设施——谷歌云平台和Kubernetes集群。
与gitops兼容——因为我们需要版本控制、评审和自动化。
CI/CD生态系统中有不解决方案,但只有一个符合我们的要求,也就是JenkinsX,它基于Jenkins和Kubernetes,原生支持预览环境和gitops。
JenkinsX:Kubernetes上的Jenkins
JenkinsX是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。
你猜的没错,JenkinsX只能在Kubernetes集群上运行。
JenkinsX的搭建过程非常简单,官方网站上已经提供了很好的文档。由于我们已经在使用GoogleKubernetesEngine(GKE),因此jx命令行工具可以自行创建所有的内容,包括Kubernetes集群。在几分钟内就可以获得一个完整的可运行系统真的让人印象深刻。
JenkinsX提供了很多快速入门和模板,不过我们想重用现有代码库中的Jenkins管道。所以,我们决定另辟蹊径,并对我们的声明性管道进行重构,让它们与JenkinsX兼容。
实际上,重构工作并不是只针对JenkinsX,而是为了能够使用Kubernetes插件(
转载请注明:http://www.0431gb208.com/sjszyzl/2554.html