都在说DevOps,你真正了解它吗?

来源:Atlassian      作者:龙智      发布时间:2022-06-30

Hi!我们是DevSecOps解决方案提供商、Atlassian全球白金合作伙伴——龙智
在过去的十多年间,传统软件研发模式发生巨变,从瀑布式开发到敏捷再到DevOps,开发和运维之间曾经明确的界限正在慢慢变得模糊。
DevOps以能够促进开发、运维、测试等不同部门的沟通、协作与整合,正在悄然成为软件研发运营主流趋势。发展至今,DevOps也结合了新的流程,比如持续集成和持续部署来快速交付价值。
如果您对DevOps还知之甚少,或是想要更深入的了解DevOps工具链,请不要错过本系列本章。龙智将从DevOps的概念、DevOps工具链、CI及工具对比、DevOps监控、DevSecOps五个方面入手,让您从起源开始,逐步深入了解DevOps这个已流行数十年的方法论。
DevOps是什么?

在维基百科中,它被定义为一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

从2007年横空出世,到现在已然成为软件公司耳熟能详的组合词,DevOps已经走过了15个年头。但依旧有人对于DevOps感到困惑,阅读本文,你将深入了解到DevOps的起源、DevOps能为企业带来什么以及成功实施它的基础。

DevOps的起源

DevOps的诞生要从一位比利时的独立IT咨询师说起,这位咨询师的名字叫做Patrick Debois。

2007年,Patrick参与了比利时一个政府下属部门的大型数据中心迁移的项目。在这个项目中,他负责测试和验证工作。因此,他不但需要和开发团队(Dev)一起工作,而且需要和运维团队(Ops)一起工作。第一天他在开发团队以敏捷的节奏工作,第二天则在运维团队以传统的方式维护这些系统。

开发团队引入敏捷模式后,追求的是快速变更、快速迭代,这与运维团队追求的稳定、可靠和安全之间产生了巨大冲突。在两个团队之间来回切换的他,意识到开发团队和运维团队的工作方式和思维方式有着巨大的差异。作为一名敏捷的簇拥者,他开始思考如何用敏捷的方法论改进自己的工作,并且质疑现有流程的合理性。

2009年,Velocity大会上的一场演讲成为DevOps运动发展的导火索。来自 Flickr公司的John Allspaw和Paul Hammond做了一场主题为“Flickr每天部署10次以上:开发与运维的高效合作(10+ Deploys Per Day: Dev and Ops Cooperation at Flickr)”的演讲。在这个演讲里,Filckr率先提出Dev和Ops的矛盾可以通过技术升级和文化构建来解决。

同年10月,Patrick Debois在比利时根特举办了名为“DevOpsDays”的研讨会,并把开发和运维两个词组合起来创造了“DevOps”这一术语。至此,DevOps开始真正流行。

DevOps重塑研发运维体系

DevOps的出现打破了开发团队和运维团队之间的障碍。它的目标是通过提升软件交付的质量內建,加速价值链端到端的反馈效率。在DevOps模型下,开发和运维团队不再孤立地工作。测试和部署阶段都包含在了开发阶段内,让团队成员能够专注在业务服务上,而不用花时间在测试、部署和设计上。

通过使用DevOps,能使IT部门加强协作、缩短产品上市时间、更新迭代周期更短、提升自动化能力、减少资源浪费、获得更快反馈等,这使得DevOps趋势在企业IT中越来越受欢迎。

为了更快更好的适应市场和增强创新力,已经有许多企业采用DevOps来为IT赋能。如今,DevOps已经在互联网、科技、金融、运营商和制造业等行业得到了广泛的落地实践,如果您也想要将DevOps纳入企业团队运作当中,首先需要了解DevOps原则。

掌握DevOps原则,让其充分发挥潜力

为了充分发挥DevOps的潜力,帮助DevOps团队能够比传统软件开发团队交付应用程序和服务更快速且高质量,团队应当遵循关键的 DevOps 原则。

合作

DevOps背后的关键前提是协作。开发和运营团队合并成一个职能团队,在整个开发和部署周期中进行沟通、分享反馈和协作。

自动化

DevOps的一个基本实践是让软件开发生命周期更自动化,这将使开发人员有更多时间写代码和开发新功能。通过自动化流程,团队可以在较短的迭代时间内实现持续改进,从而能够快速响应客户反馈。自动化也是CI/CD流水线的关键要素。

持续改进

持续改进是敏捷实践以及精益制造和改进模式的主要内容。这是一个能最大限度减少浪费以及优化速度、成本和交付便利性的实践。持续改进与持续交付相关联,让DevOps团队能够持续地推送更新,提高软件系统的效率。

顾客至上行动

DevOps团队使用与客户和最终用户的简短反馈循环,来开发以用户需求为中心的产品和服务。DevOps实践可以通过使用实时监控和快速部署来收集和响应用户反馈。团队可以立即了解用户是如何与软件系统进行交互的,并加以改进。

创作时需考虑目的

这一个原则涉及到了解客户的需求,并创造解决实际问题的产品或服务。DevOps团队应该从创建到实施对产品有一个整体的了解,而不是建立在虚假的泡沫中,或者基于消费者将如何使用软件的假设来创建软件。

DevSecOps的诞生:DevOps中,安全是重中之重

DevSecOps一词是由DevOps的概念延伸和演变而来。由于现代DevOps流程的速度和自动化可能会增加风险以及更多漏洞和缺陷,所以企业必须向左转移,也就是主动把安全性引入开发生命周期中,而不是等到最后一刻再进行安全修复,DevSecOps应运而生。

虽然与DevOps之间只有一词之隔——“Sec”,但Sec在其中起到极为关键的作用。Sec是Security的缩写,意为安全。DevSecOps的目标是将安全性融入到DevOps的过程中,整个开发和运维的过程中将安全作为一项重要的考虑因素,最终实现应用整个生命周期内的安全性。

DevSecOps可以给研发效能提供诸多好处,主要表现在以下三个方面:

更快发布:在DevSecOps中,通过使用自动化安全工具扫描左移了传统模式中,需要在上线前的最后阶段甚至上线后进行的安全扫描工作。这使得交付周期变短,从而更快发布。

节省成本:如果在上线前才进行安全扫描,那么扫描到高危漏洞后,需要进行返工,这将消耗极大的人力物力。DevSecOps可在SDLC早期阶段发现并修正漏洞,从流程上节省了成本。

控制风险:过去的开发、测试团队依赖安全团队来进行过评分扫描,确保没有漏洞。但DevSecOps左移安全后,开发、测试团队具备了发现和修改漏洞的能力。

DevOps成功取决于工具、实践和文化

对于实践DevOps的团队来说,适合的工具能真正提升开发团队、IT运营团队和业务团队之间的协作。而Atlassian的使命就是通过协作工具和实践的力量来释放所有团队的潜力。Atlassian的Open DevOps以Jira作为基础和最终的事实来源,统一了所有DevOps的工作并减少了协作负担。团队可以专注于构建和操作软件,自动集成Atlassian和合作伙伴工具就交给Open DevOps。

延续Atlassian DevOps的开放理念,龙智进一步引入更多全球领先工具,包括Helix Core, Whitesource, Sonarqube等,为企业量身定制DevSecOps解决方案。

要想成功实施DevSecOps,不能仅限于完善的连接工具,而也要注意员工与团队文化,因为这可能才是影响DevSecOps成功实施的首要因素。

龙智作为这一领域的先行者,十多年来先后为1000多家企业提供DevSecOps相关咨询和解决方案,积累了大量经验和案例,可以为企业提供最佳实践参考;另一方面,龙智形成了从咨询,培训,部署,运维到定制开发的一站式服务,陪同企业从0起步,逐步搭建、形成DevSecOps体系与文化,实现开发安全运营一体化。

想了解更多Atlassian DevOps解决方案、工具及客户案例?欢迎您立即咨询Atlassian全球白金合作伙伴—龙智

电话:400-775-5506

邮箱:marketing@shdsd.com