什么是DevOps?

DevOps是“开发”和“操作”两个词的组合,是一种哲学和实践集,它将团队聚集在一起,以更快地交付更好的软件。

我们说的是什么意思开发运营? 文化转变?一套最佳实践?特定工具?实际上,这是三者的结合。DevOps是一种工作方式,开发、IT运营和安全团队合作,在整个软件开发生命周期(SDLC)中构建、测试并提供定期反馈。从文化变革到CI/CD自动化,让我们探讨一下DevOps团队如何开发共享环境、专业知识、工具和角色,以交付更好的产品。

从筒仓到共享工作流的旅程

DevOps为我们如何构建软件设定了一个新标准。在2000年代中期之前,开发人员、IT运营和安全团队通常是在竖井中工作的。开发人员编写代码,QA团队对其进行测试,it运营团队将其部署到生产中。安全团队仅在部署后检查代码是否存在漏洞。如果有人报告了问题,整个过程就会重新开始。这种软件的线性方法对所有相关人员来说都是缓慢而令人沮丧的。然后在2008年,系统管理员Patrick Debois和软件开发人员Andrew Shafer创建了一个工作组,以帮助缩小操作和开发团队之间的差距。他们的最佳实践成为我们今天所知道的DevOps流程。

了解有关DevOps历史的更多信息

为什么采用DevOps?

传统的部署是困难的、手动的,并且经常会崩溃,导致员工倦怠和不可持续的发布周期。相比之下,最近的研究显示了使用DevOps方法和原则(如自动化)可以提高生产力并改善开发人员体验。DevOps使构建和发布软件更快、更友好、更具协作性,并使几乎所有过程自动化。DevOps团队中的开发人员专注于他们的目标,优先考虑工作-生活平衡,并为他们关心的项目争取更多时间。这种满足感建立在我们从组织心理学中所知的基础上:团队在个人投入到结果中时,会尽最大努力。

提高生产力

减少手动任务并获得一致性、可靠性和效率。

云就绪代码

在云中轻松调配环境帮助团队在规模上更快地工作并满足需求。

安全

保护客户和代码同时管理跨位置和环境的访问。

协作

建立和培养合作文化与b通信。

我们已经从30多个孤立的软件工程团队发展成为一个高度凝聚力的团队。通过使用标准和自动化,DevOps的旅程现在只需三步,不到一天。

丹尼斯·坎蒂 // 开发服务和技术实验室副总裁

分解DevOps生命周期

DevOps包含应用程序开发的每个部分。无论你称之为“步骤”、“阶段”或“阶段”,所有这些都是DevOps生命周期DevOps团队用于构建和发布软件的过程。与任何好的DevOps方法一样,团队始终保持协作,自始至终共享许多相同的工具和职责。

想法

团队收集需求和反馈,并开始草拟他们需要的资源。DevOps团队专注于可以经常更新甚至每天更新的连续规划计划。为了制定路线图并跟踪实现目标的进度,团队利用每个人都可以访问和使用的项目管理工具。

创意堆栈

GitHub问题和项目委员会,Jira

了解有关计划和跟踪的更多信息

生成

随着项目经理分配任务,开发人员开始工作。在这里,DevOps开始发挥作用:有了版本控制和基于云的开发环境,开发人员可以进行持续的更改并实时地一起审查代码。DevOps持续集成(CI)也开始发挥作用,其中自动化工具将代码更改转换为构建,根据所需的检查运行测试,然后合并并准备用于部署的代码。

持续集成堆栈

Git、GitHub代码空间和操作、GitLab CI管道、CircleCI、Jenkins

了解有关持续集成的更多信息

船舶

通过初始检查后,开发人员使用连续交付(CD)工具自动将代码更改推送到非生产测试或登台环境中。运营团队可以立即将更改部署到生产环境中,不会有任何意外。

连续部署堆栈

具有GitHub操作、GitHup包、Microsoft Azure的CD管道

了解有关部署的更多信息

学习

软件可能已经面世,但工作还没有结束。运营团队使用监控工具密切关注发布,这些工具可以测量性能并监控代码更改的影响。他们确保稳定性和正常运行时间,收集客户反馈,并与开发人员保持密切联系,以推动所需的修复并更快地解决事件。

可观测性堆栈

Netdata、Lightstep、New Relic、App Dynamics、Sentry、Raygun、Honeycomb、Splunk

每一步的自动化

注意到主题了吗?尽管DevOps与工具和协作有关,但它也与自动化有关。DevOps自动化允许团队通过删除手动任务并将其替换为自动化流程(如持续集成和持续交付(CI/CD))来更快地交付生产。

了解有关自动化的更多信息

什么是CI/CD?

持续集成和持续交付(CI/CD)将软件发布过程的每一步都结合到一个集成的工作流中。开发人员连续不断地使用一系列自动化工具构建、测试并将代码部署到生产环境中,这些工具为团队的整体DevOps管道提供了动力。

了解有关CI/CD的更多信息
我们的心态是,我们总是想把自己自动化,以获得更好的工作。我们希望确保我们今天手动执行的任务基本上实现自动化。

乔恩·帕里斯 // 工程建筑师

构建DevOps文化

成功的DevOps依赖于文化变革——对最初由开放源码团队开发的软件采用合作第一的方法。在开源环境中,开发人员鼓励透明性、共享工作负载、持续反馈和审查以及健壮的文档。行业报告,如DORA公司来自研究人员Nicole Forsgren、Jez Humble和Gene Kim的《DevOps状态》,以及流行的DevOps框架,如CALMS(校准)通常使用这些最佳实践作为DevOps成功的基准。

协作

协作是DevOps的核心。开发人员和运营团队定期就时间表和目标进行沟通,每个人都对项目的成功负责。

自动化

当团队一起工作并共享工具时,自动化支持整个组织的一致性、可靠性和效率,因此更容易发现和排除问题。

透明度

持续的反馈和对存储库的开放访问鼓励了单个团队内外的协作。它还促进内部源代码,使用开源最佳实践构建内部代码的过程。

但不要忘记DevSecOps

什么是DevSecOps?

与开发和操作一样,DevSecOps将自动化安全测试集成到DevOps文化、工具和流程的每个部分。

对于许多从业者来说,安全性始终是DevOps的一部分。DevOps安全性不是发生在SDLC的末尾,而是从源代码开始。这种方法通常称为开发安全操作或者“向左移动”。使用自动安全工具,开发人员可以在编码时发现并解决安全漏洞,而不是在部署后等待安全团队解决。通过授权开发人员在整个DevOps生命周期中承担安全责任,DevSecOps允许开发、操作和安全团队更快地发现和修复安全问题。

你修复了它,然后继续前进,因为你猜怎么着?解决开发中的安全问题需要一分钟的时间,而在生产中修复该问题可能需要数小时或数天的时间。

沙马尔·斯万 // 首席DevOps工程师/解决方案架构师

你能用DevOps做什么?

看看高绩效团队如何实现协作和自动化。

开始构建DevOps工作流

无论您是准备深入了解,还是仍然有问题,我们都会为您解答。