DevOps是将IT开发和运营结合在一起的一组实践。它主要是为了减少提交变更和生产变更之间的时间。这些实践促进了开发人员和运营工程师之间的协作,因此可以实现连续的软件交付,而解决的挑战不那么复杂,并且可以更快地解决所出现的问题。
DevOps生命周期可以分为多个阶段:
1. 开发阶段
Plan 计划
计划阶段包括在开始实际编码之前发生的所有活动。通常,软件公司会根据其产品愿景和客户反馈来制定产品路线图。路线图可以分为史诗,功能和用户故事。用户案例说明了功能,涉众以及预期的输出。DevOps团队通常会记录产品路线图,并使用软件工具为每个用户故事设置重要性和预计的实施时间。
流行的代码计划工具:
- Jira
- Azure DevOps
- Asana
Code 代码
对于编码,可以使用多种不同的编码语言和IDE。IDE代表集成开发环境,通常包括源代码编辑器,构建自动化工具和调试器。一些最受欢迎的编码语言包括Python,Java和JavaScript。
为了维护代码,通常使用版本控制工具,例如Git,GitHub和Bitbucket。这些工具还被广泛用于促进开发和运营团队之间的沟通,对于确保DevOps团队内部的沟通至关重要。
流行的IDE:
- PyCharm
- Visual Studio
- Eclipse
Build 构建
构建代码包括生成可执行文件所需的所有步骤。这些过程中最重要的过程之一就是编译代码,这就是将源代码转换为机器代码。通常是构建代码一部分的其他过程是执行测试(例如,单元测试,集成测试等),打包,运行运行状况检查以及生成报告。
流行的构建工具:
- Ant
- Maven
- Gradle
Test 测试
DevOps团队构建代码后,通常会将代码部署到暂存环境中。在此执行一组手动和自动测试。可以使用Selenium,TestNG或JUnit之类的工具来完成自动测试,而Docker容器通常用于模拟测试环境。Jenkins是一个持续集成工具,可以使整个测试过程自动化。
流行的测试自动化工具:
- Selenium
- TestNG
- JUnit
2. 部署阶段
Release 发布
发布是DevOps生命周期中准备部署代码的阶段。至此,代码已经通过了一系列手动和自动测试,并且团队应该确信在部署到生产环境时不会出现任何问题。
根据使用的工具和设置的原则,一些组织在发布阶段添加了手动批准过程。这样做是为了仅允许组织内的某些人员授权发布到生产中。
Deploy 部署
部署是将变更从一种环境推向另一种环境的过程。通常,这是在将产品推入生产时使用的短语。部署构建后,就可以在实时生产环境中查看更改。
- Jenkins
- Spinnaker
- ArgoCD
3. 运营阶段
Operate 运维
将代码部署到生产环境后,确保一切按预期运行非常重要。此外,运营团队通常会进行技术和基础架构管理,并与客户进行互动,以确保产品能够满足他们的需求。在进一步开发产品时,客户洞察力也至关重要,并且在计划阶段应将其考虑在内。
Monitor 监控
在监控阶段(这是DevOps生命周期的最后阶段),DevOps团队将监控解决方案。这包括收集有关客户行为,性能,错误等的数据。分析数据以获得洞察力,然后将其用于支持决策。
当DevOps团队随后重新开始DevOps生命周期时,在运营阶段收集的所有信息和见解至关重要。对于DevOps团队,通常没有起点或终点,而是产品的不断发展。
- Prometheus
- Zabbix
4. CI/CD
CI / CD包括持续集成,持续交付或持续部署。
持续集成是提交,构建和测试代码的过程。它是DevOps生命周期的核心。鼓励开发人员频繁提交代码,然后构建每次提交以允许及早发现问题。Jenkins是最常用的持续集成工具之一。
持续交付是持续集成的扩展。除了提交,构建和测试代码外,它还包括将代码更改部署到测试和/或生产环境。重要的是要注意,部署到生产环境是手动阶段,其中其他大多数阶段都是自动化的。
持续部署比持续交付要走的更远。对于连续部署,到生产的部署也将自动进行。