《架构世界》2020DevOps刊:DevOps实践指南
上QQ阅读APP看书,第一时间看更新

三、问题和解决方案

工具整合

DevOps实施过程中,工具链的打通必然涉及各种工具的整合。除了DevOps平台本身已经集成的JiraGitlabJenkinsNexusSonarQube等工具,比较常见的是对客户已有工具等集成,如客户自建的项目管理平台、CMDB平台、自动化测试平台等等。

对于用户自建工具的整合,首先需要去理清整合的真正目的是什么,能为用户带来哪些价值。比如,对项目管理平台的整合,DevOps平台可以对项目等迭代、需求、任务等信息进行收集和汇总,最终项目的进度、成本一目了然。再比如,对CMDB的集成,对于CD过程中使用的资源(主机、容器),直接从CMDB拉取数据即可,无需在DevOps平台中重新配置一遍。

这里建议,对已有工具的整合,整合的是数据,目的是让数据流转和汇总起来,而非做功能的整合。

环境

不同的客户对环境的规划往往也不同,比如有的客户规划为开发环境、集成测试环境、用户验收环境、生产环境,也有客户在生产环境前还有预发环境;对于不同环境的隔离,不同客户的做法也不尽相同。

某电信客户的部署架构,通过防火墙策略+Nginx管控环境间的网络通信

某银行客户的部署架构,通过防火墙策略管控环境间的网络通信,但是要通过堡垒机连接部署机

对环境和网络的管控,一般都是硬性要求,需要符合客户的管理规范。这就需要根据实际的环境和网络要求,调整DevOps平台的部署架构,并按照客户的规范开通相关策略,这里会有一定的沟通成本和实施成本。

任务类型支持

DevOps平台中的构建和部署流程一般由若干个可编排和可配置化的任务组成,平台中内置了常用的构建和发布相关的任务,能满足绝大部份构建和部署场景。

构建相关任务

发布相关任务

如果内置的任务中无法满足使用需求,还可以根据DevOps平台提供的扩展手册进行任务扩展。