本文概述
- DevOps的起源
- DevOps解决的挑战
- DevOps目标
- 常见的DevOps场景
- DevOps成熟度的不同阶段
- 价值
了解并定义确切的DevOps充满挑战。这就是为什么如果你了解大多数人都与之相关的DevOps的基本概念以及其发展历史的话, 那么你将对此有一个整体的了解。
DevOps的起源 DevOps是敏捷软件开发的完美示例。 DevOps的想法来自于跟上不断提高的软件速度并实现整个敏捷方法的需求。过去十年来, 敏捷文化和实践的巨大进步暴露了对端到端软件交付生命周期采用更全面方法的需求。
![DevOps初学者简介](http://www.srcmini.com/wp-content/uploads/2020/04/devops-cycle-1.jpg)
文章图片
你可能想知道什么是敏捷软件开发–
敏捷开发是定义几种迭代和增量软件开发方法的广义术语。流行的敏捷方法是Scrum, 看板, Scaled AgileFramework?(SAFe?), 精益开发和极限编程(XP)。
所有这些敏捷方法论的核心价值和愿景都是相同的, 但是每种方法都有其独特的方法。所有这些方法都结合了迭代和连续反馈, 以成功完善和交付可伸缩软件。所有这些方法都涉及项目和软件的持续计划, 持续测试, 持续集成以及其他无穷无尽的形式。
与传统的瀑布式流程不同, 这些敏捷方法是轻量级的, 并且具有固有的适应性。这些敏捷方法论的最好之处之一是, 它们都致力于在协作和快速做出决策时赋予人们权力。
![DevOps初学者简介](http://www.srcmini.com/wp-content/uploads/2020/04/waterfallvsagile.png)
文章图片
图片来自Segue
DevOps的理想执行扩展的敏捷开发实践, 以通过构建, 验证, 部署和交付的不同阶段来完善软件更改的运动。从设计到生产, 它使跨职能团队可以完全拥有软件产品的所有权。
DevOps解决的挑战 部署过程–分布式应用程序通常需要将二进制文件和配置文件部署到多个服务器。拥有服务器场时, 这变得更具挑战性。弄清楚如何部署, 如何部署以及在何处部署具有挑战性。明显的结果?
长时间等待使工件进入生存路线的下一个环境会导致诸如测试, 生存时间等所有方面的延迟。
DevOps允许软件或Web开发人员和IT运营人员在完全无罪的协作会话中部署流程。这将使我们能够验证有效的方法, 然后通过自动化将其提升到一个新水平, 以实现持续开发。它还为更频繁的开发创造了途径。
DevOps目标 它改善了利益相关者之间从计划到交付的协作, 并实现了交付过程的自动化, 从而:
- 提高部署频率
- 缩短上市时间
- 降低新版本的失败率
- 缩短了修复之间的交货时间
- 改善恢复时间
开发人员完成后, 每天都会部署新代码。自动化测试过程可确保代码已准备好实施。一旦代码从自动化测试过程中获得绿色信号, 便会将其部署到少量用户。对代码进行短期监视, 以确保没有无法预料的问题, 并且代码稳定。一旦最终监控显示该代码稳定后, 便会将新代码部署到其余用户。无需人工干预即可完成计划和开发之后的大部分步骤。
![DevOps初学者简介](http://www.srcmini.com/wp-content/uploads/2020/04/devops-process.jpg)
文章图片
DevOps成熟度的不同阶段 DevOps成熟度有很多不同的阶段。这是你必须知道的关键短语。
![DevOps初学者简介](http://www.srcmini.com/wp-content/uploads/2020/04/phase.jpg)
文章图片
瀑布发展
在持续集成之前, 开发团队曾经编写大量代码, 然后合并了来自不同团队的代码以进行发布。代码的版本是如此不同, 以至于它们过去需要进行大量更改。
进行这些更改需要花费数月的时间。这个过程不是一个富有成效的过程。
持续集成
这是一种以最快的方式将新开发的代码与要发布的主要代码集成在一起的做法。在发布代码时, 持续开发有助于节省大量时间。
DevOps没有引入这个术语。持续集成是一种来自极端编程方法的敏捷工程实践。 DevOps之所以采用这种做法, 是因为要成功执行连续集成, 就需要自动化。持续集成通常是实现DevOps成熟的第一步。
从DevOps的角度来看, 持续集成包括以下步骤:检查代码, 编译为可用代码以及运行一些必要的验证测试。 ‘
持续交付
它是持续集成的扩展, 也是DevOps的第二阶段。
持续交付使你可以添加其他自动化和测试。这样, 你不仅可以快速将代码与主代码行合并, 而且几乎可以在无需人工干预的情况下部署代码。
这是使你的代码库处于几乎随时可以部署的状态的一种做法。
持续部署
连续部署是连续交付的高级演进。这种做法使我们能够在没有任何人工干预的情况下将所有方式部署到生产中。
持续开发团队永远不会在未经测试的情况下部署任何代码。在进入生产阶段之前, 所有新创建的代码都将通过自动化测试运行。该代码已部署到少数用户, 并且有一个自动反馈循环, 可在代码进入下一个级别之前监视质量和使用情况。
诸如Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU和Google等少数公司正在进行持续开发。
价值 DevOps高度专注于开发协作文化并通过使用不同的DevOps工具进行自动化来提高效率。要为你的软件解决方案实施DevOps, 你需要同时使用区域性和工具性。
DevOps文化
DevOps是一种特殊的文化, 它有助于增强协作, 减少混乱, 以更好的方式处理分担的责任, 实施自动化, 质量改善, 反馈评估以及提高自动化程度。
敏捷方法一直是交付软件的最佳整体方法。在衡量进度时, 敏捷开发团队根据工作软件来完成。 DevOps文化的敏捷方法允许产品所有者, 开发人员, 测试人员和UX人员紧密合作, 并牢记相同的目标。
DevOps工具
包括用于配置管理, 测试和构建系统, 开发应用程序, 控制版本以及进行监视的工具。在实现持续集成, 持续交付和持续部署时, 它们需要不同的工具, 同时, 它们也使用相同的工具。在整个交付链中, 你将需要使用更多工具。
让我们知道一些流行的工具和做法。
源代码存储库–这是开发人员可以检入和更改代码的地方。源代码存储库管理已签入的各种版本的代码, 以确保开发人员可以相互重写代码。
![DevOps初学者简介](http://www.srcmini.com/wp-content/uploads/2020/04/source-code.jpg)
文章图片
Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse等是一些流行的代码存储库工具。
构建服务器:–构建服务器是自动化工具, 用于将源代码中的代码编译为可执行代码库。 Jenkins, SonarQube, Artifactory等一些使用率很高的构建服务器工具。
配置管理– Puppet, Chef, Ansible, SaltStack, Run Deck等有助于管理应用程序和基础结构的配置, 以保持跨环境的一致性。
虚拟基础架构– AWS, GCP, Azure是提供几乎所有基础架构服务的三大公共云提供商。他们提供API, 可让你配置基础结构并像代码一样管理它们。
总结
我希望它能使你对DevOps有所了解, 如果这使你感到兴奋, 那么你可以尝试此在线大师课程。
【DevOps初学者简介】文章作者:Payal Goyal
推荐阅读
- 了解有关Ansible Playbook自动化任务的信息
- Ansible临时命令指南,包含示例
- 如何在Linux服务器之间交换SSH密钥以进行无密码身份验证()
- 如何安装Docker Compose和安装程序()
- 26个带有示例的Docker命令
- 如何安装Puppet Bolt自动执行Sysadmin任务()
- 使用这些顶级工具自动化应用程序测试
- 什么是Dockerfile以及如何创建Docker镜像()
- Android开发—错误记录1(W/System.err: java.net.ConnectException: Connection refused)