DevOps落地-成果:DevOps工具链
DevOps工具链技术图谱
“不就是部署xxx软件嘛?简单!"
其实也没那么简单,要想尽量提高研发的效率,质量, 还有不少部署之外的工作要做。
包括 集成、易用性优化、用户体验优化、多租户规范、文档模板、代码模板等。
下面说说这部分落地工作的一些心得。
简单列举了各工具链部署信息。
需求项 | 选型/可选产品 | 下载地址与部署说明 | 配置举例 | 域名分配 |
---|---|---|---|---|
用户目录 | openldap/Microsoft AD | https://docs.microsoft.com/zh-cn/windows-server/ | 2C/8G/50G/200G | ad.xxx.com |
企业知识库 | confluence | https://www.atlassian.com/software/confluence | 2C/8G/50G/200G | wiki.xxx.com |
敏捷工具 | Jira software | https://www.atlassian.com/software/Jira | 2C/8G/50G/100G | jira.xxx.com |
代码仓库 | gitlab | https://gitlab.com/gitlab-org/gitlab-ce/ | 2C/8G/50G/100G | git.xxx.com |
CICD 工具 | gitlab-runner/jenkins | https://docs.gitlab.com/runner/ | 2C/8G/50G/200G | cicd.xxx.com |
静态扫描 | sonarqube | https://www.sonarqube.org | 2C/8G/50G/200G | sonar.xxx.com |
artifact构件仓库 | nexus/jfrog | https://www.sonatype.com/download-oss-sonatype | 2C/8G/50G/200G | nexus.xxx.com |
docker 镜像库 | harbor | https://goharbor.io/ | 2C/8G/50G/500G | harbor.xxx.com |
企业网盘 | nextcloud | https://nextcloud.com/ | 2C/4G/50G/200G | doc.xxx.com |
工单系统 | Jira servicedesk | https://www.atlassian.com/software/jira/service-desk | 2C/8G/50G/200G | desk.xxx.com |
xxxxxxxxxxxxxx |
企业知识库 confluence与draw.io
回顾,比较有意义的要点:
- 使用域名,使用https,与AD集成。
- 引入画图插件。各类文档都画图需求,不能画图大家不喜欢用。
- 页面树结构模板,对应敏捷开发全过程。创建好页面树结构及模板,囊括敏捷开发过程各活动。
- 多租户空间规范。空间、项目、部门的归属、权限关系,支撑多个业务部门。
- 持续优化体验。尤其是响应速度。
- 刚创建时,建设好公司空间、技术团队空间、项目空间模板。
下图为支持draw.io 画图的某项目空间截图。左侧页面树结构、页面的画图支持是提高效率关键。
下图为页面树结构模板,注意左侧的目录树结构,跟业务高度相关,我们这里跟敏捷开发的各个活动相关。
企业网盘 nextcloud
类似于百度网盘、QQ文档之类的东西。私有化部署。
主要用于 office三件套 word、excel、powerpoint 的协作共享。
文档组织,涉及机密就不截图了。
需求库 jira
回顾,比较有意义的要点:
- 使用域名,使用https,与AD集成。
- 速度优化。开始使用很慢,QA们意见很大,优化后再以没听到抱怨。
- 和confluence 、gitlab等集成。
- 使用报表。项目经理、各个开发、QA视角的报表。
- 装点插件,不要多,要用好用精。
某业务部门视角项目报表截图:
某个项目,项目经理视角(关心Sprint整体完成情况):
代码库 gitlab
- 使用域名,使用https,与AD集成。
- 代码管理和企业组织架构对应。做好部门归属、责任人归属、权限管控等。
- 重视CICD 二次开发,重视简单性、可复用性、通用性。Projects 1600+ 什么反应,如果是Jenkins,1000+ jenkinsfile,几个运维能搞定?
支持dev、test多环境的流水线CICD截图:
企业业务部门对应一级GROUP的例子:
模板化,代码目录结构(举例docker/):
制品库 nexus
- 使用域名,使用https,与AD集成。
- 多部门使用,要考虑release不要被覆盖。
镜像库 harbor
- 使用域名,使用https,与AD集成。
- 项目和NS有简单对应关系。如一个项目一个NS。
扫描库 sonarqube
- 使用域名,使用https,与AD集成。
- 与CICD 集成,自动化,零人工介入。
- sonarqube 的KEY使用Git Project name名称。
服务台 servicedesk
- 使用域名,使用https,与AD集成。
- 工作中,识别关键流程,沉淀成流程。
- 持续优化、改进流程。
- 包含多层次的服务。包括IaaS云平台、公有云、私有云、XX网络服务、PaaS服务,等。
总结
- 解决有无问题,持续优化改进。
- 换位思考,多角色角度思考,并进行平衡改进。我是 部门Leader、项目经理、技术经理、QA、前后端开发、运维等,他们的需求、痛点。