除了代码管理的git与cicd的jenkins之外,还要有监控平台,自动运维平台(可以进行编排和批量操作),如果条件允许最好基于jenkins自己再封装一层发布平台,实现诸如蓝绿发布,发布中健康检查和快速回滚等。
收起DevOps的工具链一般包括如下:
云:基础架构方面,云可以提供更加迅速高效的环境部署和管理,实现资源高效利用。一般云有IaaS和PaaS两层,IaaS一般是VMware或者OpenStack KVM,PaaS一般是基于容器,Docker和K8S这样的。IBM自己有IBM Cloud Private,基于K8S的,可以试一试。
持续业务规划:DevOps需求变化快,所以项目管理也要跟上。可以试试Jira这种工具。
协作式开发:Github Enterprise或者GitLab,你要用svn我也不拦你。
持续测试:这个一般在部署之前会自动做单元测试,Maven自带Junit,代码分析和质量管理可以试试SonarQube。
持续交付和部署:应用少就Jenkins,就是写脚本会麻烦些。应用多的话推荐IBM UrbanCode Deploy,管起来会更方便靠谱一点。
持续监控:Prometheus,ELK,IBM APM……
持续用户反馈:这个就是基于监控得到的数据做分析了,数据少就SPSS,数据量很大或者分析的比较细的话,各种大数据的东西轮番上吧。
devops落地不是 引进一些技术就能完成的
需要你的开发人员和运维人员进行相应的责任重新定义
如果要全自动流程发布最好引进容器微服务技术 进行产品开发
不然 开发 测试 上线 中间会有多个环节是 无法自动化完成的
导致 devops 上线计划失败