DevOps是什么?为什么我们需要DevOps?
什么是 DevOps? 公司在推行 DevOps 的进程中应该注意什么?只有大公司才能从 DevOps 中收益?~
英文原文:《What is DevOps and Why Do We Need It?》作者:Skywell Software
原文链接:https://medium.com/datadriveninvestor/what-is-devops-and-why-do-we-need-it-82c2ef0a9d3d
DevOps 被许多专家认为,是一种最好的方式去加强开发团队和运维团队的合作。但是 DevOps 不仅仅是一种方法,它更是一种文化使得软件开发过程中技术和业务双方合作更加高效,以使得产品上市时间缩短,产品整体的质量得以提升。在了解为什么 DevOps 这么重要之前,我们首先给它一个定义。
DevOps 定义
DevOps 是,打破分隔 开发和运维团队壁垒,增强彼此之间合作的敏捷开发方法论的产物。但是如果你无法适当地应用这种正确的文化,DevOps 将沦为赶时髦的官话。这些使用 DevOps 文化所倡导的:
责任共有—— 在许多公司,开发团队单单专注于产品的开发,对于系统的运维和管理不感兴趣,甚至回避如果这是别人的工作。如果在系统运行期间的监控工作成为开发团队的职责的一部分,他们很可能就能够体会到运维团队工作是的痛苦。DevOps 产生了一种新的方式,通过自动化部署和很好的日志记录来简化部署和维护工作。
团队自主化——高效的合作仅仅会发生在没有复杂的决策流程,开发和运维团队能够独立的做决定和改动的情况下。这个就需要新人你的团队、调整风险管理的策略并避免员工惧怕承担风险和失败的情况。
移除所有孤岛——一些公司记录过程并且将记录资料移交另一个团队,认为这是一个定期的合作。
DevOps 的整个流程
DevOps 的整个流程由多个阶段组成,但是它们的如下列举的类似:
计划——这个阶段包括你预期的开发进度的最初规划
编码——根据客户的需求开发应用程序
构建——合并各个你编写的代码
发布——如果测试通过,应用可以上线
部署—— 为了一些附加的用途,程序部署到云环境下
运维—— 在代码层面指导运维工作
监控—— 关注应用的运行情况,进行必要的改进以满足客户端的需求
为什么我们需要 DevOps?
DevOps 为软件开发公式带来的许多好处,例如,增加了创新的速度为客户更好的服务。能够使你在变化的市场环境下,灵活的调整产生更高的商业价值。由于频繁的迭代速度和节奏,你能更够快速的优化你的产品。这使得发布新特性的时间更短,发现和修复 bug 的速度更快。而更重要的是,快速的用户响应能力将成为你的业务的有力竞争优势。持续集成和持续发布就是从构建到部署的自动化软件发布过程的实践。
虽然产品化的步伐被加速,但是它在完成时依然如此的稳定可靠。通过 CI/CD 你能够测试所有产品的变更,更好的监控和日志记录将帮助你保持你的应用在生产环境中一直运行在最佳状态。安全流程不会被影响,因为合规策略将被细粒度的控制和管理配置技术自动化。
总结
如果你刚刚开始踏上 DevOps 落地之旅,设定切实可行的目标期望是必不可少的。当你迫切希望获得 DevOps 项目管理带来的好处时,你的团队可能经历着文化的冲击,因为他们一直习惯于原来独立的组织结构。改变已将建立好的流程并不容易,需要花费时间落实在人员、流程和信息等方面。这种文化的冲击将会带来新的目标表,你不能告诉的以前一个月迭代一个版本的团队,现在开始每天维护五个版本,这完全行不通。
当你意识到发布时间表应该在你的团队开始去接受 DevOps 文化和方法论时慢下来,你需要有一个更有组织的方式。需要许多的学习和训练,需要时间去习惯这所有的改变。在过渡过程中,建立一些重要的业务指标是重要的,如整体的收入和客户的满意度。以有各种本版的目的而创建多个版本是没有意义的。它必须对于你们的业务基础有效果。
考虑到 DevOps 所带来的优点,可以负责任的说那些没有完成 DevOps 进程化的公司将面临落后的风险。一个普遍的错误观点是 DevOps 仅仅针对大公司,但是小型和中等规模的公司也能够从中获得 DevOps 所提供的好处。事实上,像 Facebook、Netflix 和 其他的集团公司能够实现如此快速的增长,是因为他们很早就采用了 DevOps 的模式,使得他们能够相对于竞争对手更快的提供新功能给用户。因此,如果你还没有开始 DevOps 的进程,你已经落后于你的竞争者了。