是一组过程、方法与系统的统称,有助于打破开发、测试、运维、交付部门之间的壁垒,提高部门间的沟通协助能力。
在产品初期让开发和运维都介入,不断地进行开发->测试->部署,实现运维开发一体化
应成为公司的一种理念、文化、哲学。
实现更加高效的测试、部署、交付,持续提高产品的迭代效率和可靠性,让开发写的代码"所见即所写(能够快速部署进行展现),所见即所得(建立完善的反馈机制,第一时间知道代码的质量)"
1、在产品设计时,不仅要从开发角度考虑,还需从测试、运维、交付角度去综合考虑
2、最大程度减少人工干预,不断提高其自动化、智能化
3、支持多次提交代码,快速编译、部署、测试
1、使用Gitlab进行代码管理
2、使用持续集成工具(如Jenkins)进行持续集成,mvn编译后端,npm编译前端,使用Docker构建镜像
3、用Nexus管理jar包,Jfrog管理制品,Harbor存放Docker镜像
5、使用K8S编排、管理容器
6、使用测试工具(如sonarQube、Selenium)进行集成测试、质量把控
7、使用持续部署工具(如Argo CD)进行版本发布
8、使用自动化运维工具(如Ansible)进行配置管理、部署交付
9、使用监控系统(如Prometheus)进行24小时不间断监控,并实现自动告警、通知、修复
10、搭建完备的日志系统(如ELK),让问题可追溯