传统 IT 在任何组织中都有两个独立的团队——开发团队和运营团队。开发团队致力于软件,在确保代码完美运行后开发和发布它。运营团队致力于部署、负载平衡和发布管理,以使 SaaS 上线。他们检查应用程序性能并向开发团队报告任何问题(如果存在)。这些周期对公司来说太长了,并刺激了建立一支由开发、QA 和运营混合专业知识组成的团队的需求,引入了 DevOps 现象。DevOps 弥合了两个团队之间的差距,帮助他们快速可靠地运营和发展应用程序。
问题是,我们对DevOps的了解程度如何,为什么我们需要它?本博客将解决这些问题,并解释可以帮助企业实现其真正潜力的 DevOps 最佳实践。
什么是开发运营?
顾名思义,DevOps与开发和运营有关。它定义了一组流程,通过发展开发和运营团队之间的协作,为组织带来文化转变。它有四个关键组成部分:协作、实践、文化和工具。
为什么我们需要 DevOps?
DevOps 带来了更高水平的协作和速度,使组织能够缩短上市时间、提高生产力、降低运营成本,从而高效地为客户提供服务,并在市场上保持竞争力。它还有助于加快产品发布速度,管理计划外工作,更快地捕获和解决关键问题。
设置集中单元
DevOps使用各种工具,如Jenkins,Terraform,Nagios,Grafana,Prometheus或Splunk。组织应建立一个集中的单元来创建和操作这些工具。这个集中的单位负责在开发团队中建立敏捷实践。该团队调查新工具,维护并提供实施 DevOps 的指导计划和培训。
持续集成 (CI)
CI是一种软件开发实践,可改善团队之间的协作并帮助构建高质量的软件。开发团队定期在存储库中签入代码更改,CI 执行自动生成和测试以验证代码质量。持续集成强加了一些实践,可以在早期阶段快速检测软件开发生命周期(SDLC)的挑战,这有助于开发团队解决开发阶段本身的问题。
持续部署 (光盘)
部署过程具有多个阶段,例如开发→生成→验证→生成版本控制→部署→部署后等。持续部署过程的想法是在构建通过 QA 暂存测试版、集成、UAT 等所有阶段后,将开发的代码自动部署到生产环境。有一些工具,如Spinnaker,Jenkins,Harness,Ansible,Chef,Puppet等,使DevOps团队能够设置自动化管道,以最少的人为干预部署在多个环境中。
持续交付是一种 DevOps 实践,其中新的代码库由 QA 团队在自动和手动 QA 周期的不同阶段进行测试。如果代码库通过了 QA 周期并得到 QA 团队的批准,则会将其部署到生产环境。这就是 DevOps 如何通过将代码库划分为短周期,使团队能够更快、更频繁地构建、测试和发布代码库。这使组织能够提供更多版本,减少手动部署,并将生产中的故障风险降至最低。
配置管理 (CM)
配置和变更管理是 DevOps 周期的重要组成部分。配置管理是配置、监控、管理和维护基础架构和系统的所有实体(如服务器、应用程序、存储、网络和所有托管服务)的自动化。
配置管理带来了一些优势,例如简化新环境设置、降低生产配置风险,并为软件开发节省大量时间,而不是投入时间和精力使用基础结构即代码实践从头开始启动新服务。
变更管理
变更管理是请求、规划、实施和评估满足新要求所需的变更的过程。在配置管理期间,如果现有系统和基础架构需要任何更改,则此时将出现更改管理。运营团队需要提供他们的意见、更改原因以及可能在更广泛的层面上出现的后果,包括可能受到新更改影响的其他系统。
让所有团队保持在同一页面上
DevOps 与不同的部门合作,因此沟通很重要。让每个人都在同一页面上以避免团队冲突非常重要。为了正确应用策略,更高的参与度和采用率对于让所有团队和成员保持在同一页面上至关重要。
测试自动化
每个代码库的自动测试有助于运行更多测试,提高测试频率,并节省手动 QA 所花费的时间。此过程可实现早期错误检测、错误修复并提高整体软件质量。有几种工具可以与DevOps工具(如Selenium,RobotFramework,Appium,XCUITest,JUnit等)集成,以实现测试自动化。
连续监测 (CM)
持续监控建议使用多种工具、仪表板和警报监控所有系统和基础架构,包括对影响软件的不同指标的实时洞察,如系统性能、测试次数、成功率和失败率、部署状态、错误日志以及图形、表格和详细报告格式的所有信息。为了完成这样的监控,DevOps团队可以设置几个工具,如Prometheus,Grafana,Nagios,Appdynamics,NewRelic,Splunk,Logsash等等。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !