开发者只需要关心DEVELOPERS和图中最右的Result部分,中间Jenkins master及其附属配件均属于运维开发组负责
两个K8S集群(也可以只有一个),一个用来承载Jenkins master,另外一个用于动态的分配Slave Pod且此集群本身也可以自动伸缩
Hashicorp Vault用来存Jenkins任务需要的环境变量或者文件(环境变量和文件的动态注入不在此系列讲解,暂时忽略)
node-default/node-team1/node-team2是K8S的namespace... 均对应到Developers组名字,以此分割开各个组的资源
图中上部三个GitHub Repos都是用来配置各个组件的
China-jenkins 控制Jenkins master本身
China-jenkins-config配置Jenkins
shared-lib用于存放DIY的Jenkins函数
Jenkins服务等级
我们想把Jenkins做成产品级别,即使我们大部分自建Jenkins都是给自己公司内部开发者服务,我们也尽量符合以下“产品标准:stability, reliability, scalability, fault-tolerance, catastrophe-preparedness, performance, monitoring, and documentation”
Production-Readiness Standards
It turns out that there is a set of eight principles that fits this criteria. Each of them is quantifiable, gives rise to a set of actionable requirements, and produces measurable results. They are: stability, reliability, scalability, fault-tolerance, catastrophe-preparedness, performance, monitoring, and documentation. The driving force behind each of these principles is that, together, they contribute to and drive the availability of a microservice.
---《Microservices in Production by Susan J. Fowler》
更多
云平台开发运维解决方案@george.sre
GitHub: https://github.com/george-sre
欢迎交流~