FYIRH 发表于 2021-12-20 20:31:13

DevOps 到底是什么?5分钟了解

本帖最后由 FYIRH 于 2021-12-20 20:37 编辑



DevOps 作为软件开发的哲学已经存在了一段时间。它已经从流行语(软件开发中的新潮事物)演变为各种规模的组织经过实践检验的实践。但是,对于正在考虑使用 DevOps 或最近采用 DevOps 方法的人员和组织,可能很难看到 DevOps 的好处以及它在实践中的工作方式。

为了突破这一障碍,我撰写了一系列文章,对DevOps和相关概念进行了介绍,而您偶然发现了该系列的第一篇文章。我希望您喜欢它们并发现它们有用。
DevOps —简单地说
DevOps 的核心是一组工具和实践,可帮助组织更可靠,更快地构建,测试和部署软件。DevOps 使组织能够比具有传统开发和发布周期的组织更快地发展和交付其产品,从而可以提供竞争优势。与其每天两周或更长时间发布一次版本,不如每天向用户交付新功能,并且可以在数小时内部署错误修正,所有这些都遵循相同的可重复自动化流程。


作为这种工具的补充,是软件开发人员和IT运营之间的协作文化,这两个团队在传统上是分开的,并且往往有相互冲突的目标。开发人员希望能够快速发布新功能和错误修正,以减少摩擦,从而尽快为用户提供价值。运营更多地关注稳定性,以确保一切都以高可用性顺利运行。敏捷性和稳定性可能是矛盾的,并可能导致一种开发方法,使开发人员和运营团队都不满意。

DevOps 帮助满足这两个需求。它为开发人员提供了敏捷性,允许每月,每周或每天发布多个版本,具体取决于组织的需求。同时,在构建过程的每个阶段,自动测试和手动检查可确保操作团队在有缺陷的构建落入生产环境之前就将其彻底破坏。通过以代码为基础的基础架构自动进行基础架构的配置和测试,可以提高部署的可靠性,从而减少了操作需要担心的事情。最后,在流程的每个阶段都会收集日志和指标,从而为开发人员和运营团队提供更多可见性。

DevOps 的好处
DevOps 的主要优势在于,自动化流程可以比人员更快,更可靠地执行重复操作。对于组织而言,让开发人员或其他人员整天构建和部署代码既不可行,也无济于事。使这些重复性任务自动化可以使开发人员腾出精力去做自己最擅长的工作-修改代码。


这样做是允许在几分钟之内构建和部署代码,这仅受组织选择管理其DevOps管道的方式的限制。这意味着从开发功能或错误修正到向最终用户提供更好的体验之间的时间可以大大缩短,从而使用户更加满意。


它还创建了更好的反馈循环。新功能越早交付给用户,组织就越早可以收集反馈和指标并深入了解用户对其产品的喜好。这使组织保持敏捷并为创新提供了更好的环境。

真正的 DevOps 是什么?
从概念上讲 DevOps 很好,但是 DevOps 到底是什么呢?让我们逐步完成一个简单的DevOps 管道,以将功能从开发人员的屏幕传递到用户的屏幕上,以了解DevOps可以做什么。


开发人员完成了为其小部件的新功能编写代码。他们将代码提交到功能分支,该功能分支在其开发计算机上启动了一些轻量级测试,检查是否存在任何代码样式问题,同时还扫描具有新公开的安全漏洞的软件包。开发人员提交拉取请求以将其代码合并到代码存储库中,该代码存储库向团队聊天发送通知。


团队中的另一位开发人员检查了代码更改,在发现代码中没有问题之后,批准了请求请求。该代码会自动合并到开发分支中,从而开始构建过程。构建服务器将克隆 developer分支,安装所有软件包依赖项并构建窗口小部件。生成服务器会运行单元测试和集成测试,以确保新功能不会在小部件的其他部分引起任何退步。


每个测试都通过了,构建成功。根据代码库中定义的最佳实践配置,将在云中自动配置一个新容器,并部署小部件。


此时,组织有两个选择。他们可以选择将更新后的窗口小部件自动发布到生产环境中,并使所有用户或选择接收最新功能的部分用户可以使用该功能。自动部署到生产中称为连续部署(CD)。


或者,组织可以选择仅将功能发布到用户验收测试(UAT)环境中,然后根据预定义的时间表手动批准将发布发布到生产中。在管道中添加手动审批流程通常称为“持续交付”(CD的另一种形式)。


无论是否涉及手动步骤,一旦将小部件成功部署到生产中,都将执行附加的自动化测试。其他工具收集有关性能和用户行为的指标,这些指标将提供给IT运营和开发团队,以提供实时反馈,突出显示潜在的错误并帮助塑造新功能。


对于基本的 DevOps 管道,这是一个相当典型的过程,但具体细节取决于组织。


一些组织倾向于在生产环境中快速部署,将新功能隐藏在功能标记后面,以允许向用户群分阶段发布。其他人则更喜欢使用更传统的开发,测试和生产环境结构,在此结构中,功能被批量部署并在部署到生产之前通过多个手动门缓慢发布。


DevOps 可以根据组织或项目的特定需求进行定制。


该过程趋于发展,添加其他测试以生成更安全的应用程序,或找到优化管道以加快构建速度并减少人工干预的方法。(转自Dev)



页: [1]
查看完整版本: DevOps 到底是什么?5分钟了解