DevOps和它的朋友们——聊聊其他 “Ops”(一)

Stella981
• 阅读 471

DevOps不仅仅是将敏捷开发概念与IT运维相结合,还简化了在云环境中开发和部署应用程序的过程,从而使开发生命周期大大缩短。这就是DevOps作为一种开发方法流行的原因。

即使在今天,DevOps仍然是大多数优化管道的核心。持续交付变成了规范,而不是要实现的目标。应用的开发是迭代的,新的更新被推送到云端,用zero down代替部分或整个环境。因为有了DevOps,即使是大型的多部分更新也更加易于管理。

然而,就结合软件开发和IT运维而言,DevOps这个术语并非唯一。它有着许多变体和子类型——以及概念的修改——它们被不同的软件开发团队广泛采用。对于许多人来说,DevOps为跨团队的良好流程(包括自动化)奠定了基础。但是为了改进方法论,团队可以采用下面的一种或多种主要方法——因为大多数被考虑的方法都是为了实现“更好的”DevOps文化而进行的调整。

那么,其他需要考虑的“Ops”是什么呢?它们与DevOps相比如何?

DevOps vs. NoOps

NoOps背后的方法是以一种不需要内部团队进行操作的方式来自动化IT基础设施。在这种方法中,操作团队的所有维护和类似任务都是完全自动化的,这意味着不需要手动干预过程。

NoOps的意图与DevOps相似,因为它专注于完全自动化工具和基础设施,以改进软件部署。然而,它较少关注敏捷和流程管理,因为它的工作假设是开发人员拥有自动化的工具和流程,他们不需要知道如何使用它们的具体细节。

为了实现这一目标,该方法的一部分“减轻”了开发人员的所有基础设施顾虑,从而从云计算中获得更多价值。与DevOps一样,这是为了防止他们执行耗时的任务,这些任务涉及与IT运营团队就基础架构问题进行的所有交互。

在NoOps中,开发人员不需要为资源及其分布操心,因为这正是云的作用所在。在产品完成后,云提供商还将运行进一步的运维、监视和维护。NoOps模型使用持续集成技术,允许开发人员只专注于应用程序开发。

当组织开始选择NoOps时,许多人认为这将是DevOps的终结。但在现实中,DevOps已经发展了,NoOps并不是一个万无一失的过程,尽管它加快了部署过程。我要警告不要孤立地采用NoOps,因为它缺乏流程和团队管理,而开放的沟通通常会带来更好的结果和生产力。

DevOps vs. DevSecOps

从这两种方法的名称来看,很容易相信这两种方法有一个主要区别:将安全性集成到管道中。然而,我认为它们是同一个概念。如果DevOps是“在制品”(WIP)的减少,那么自然的进展是在管道中进一步提高安全性。如果您需要提升或提升组织对多个因素的安全关注,那么这种方法非常有用。
DevOps和它的朋友们——聊聊其他 “Ops”(一)
DevSecOps采用了传统的DevOps方法,并在工作流程中添加了额外的安全检查、代码验证和深入测试。DevSecOps从流程的一开始就集成了安全性,而不是在周期结束时让安全性成为一个问题。

两者有相似之处,也有相似的主要优势。DevOps和DevSecOps都允许CI/CD管道实现更大的自动化。只要速度和交付处于优先级列表的顶端,DevOps和DevSecOps就会继续在工作流的不同部分利用自动化。

两者还依赖于在沟通和协作的帮助下持续运行的过程。团队沟通是保持敏捷性和交付速度的关键部分。开发人员、安全专家和运维人员之间的协作也至关重要。

DevOps vs. GitOps

GitOps是DevOps的另一个广受欢迎的分支,在过去的一年里得到了广泛的关注。顾名思义,GitOps更关注于使用Git作为一种方法来自动化其余的持续交付管道。有了Git作为唯一的数据源,从长远来看,GitOps被认为更健壮、更可管理。
DevOps和它的朋友们——聊聊其他 “Ops”(一)
可以说,实施GitOps有一些潜在的优势。对于初学者来说,每个开发人员都熟悉Git和pull请求,因此集成GitOps作为一种加快交付速度的方法是一种简单的过程,不需要掌握复杂的工具,也不需要总是对工作流进行更改。

GitOps还得到了市场上一些最好的云服务的支持。像AWS CodePipeline和AWS CodeBuild这样的工具是为使用Git工具而设计的,这意味着自动构建更新、测试错误、审查代码以及将更新推送到生产环境的过程非常容易实现。

GitOps还提供了一套详细的审计工具,并能够随时回滚更新。这是因为Git是每次更新的主要来源,这意味着整个管道也可以依赖Git日志来进行简单地审计。然而,由于Git是唯一的事实来源,有必要对Git存储库进行足够的保护,以避免不必要的提交或请求。

简而言之,GitOps是DevOps的一个子集,旨在利用Git的强大优势。因此,大多数GitOps工作流严重依赖Kubernetes作为主要的容器化运行时。

点赞
收藏
评论区
推荐文章
【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的相关理念扩展到运维侧,从而将产品、设计、开发、测试、运维团队更紧密的结合在一起。而从交付给客户产品视角看,前端研发通常又是在整个产品设计开发链条的最终节点,意味着前端团队受到上游变更的影响是最大的,并且从经营理念效率出发,提升前端交付效率是至关重要的。
Tommy744 Tommy744
3年前
DevOps与CICD的区别 及 docker、k8s的CICD思路
1\.DevOps简介DevOps就是开发(Development)、测试(QA)、运维(Operations)这三个领域的合并。image.png为什么要合并这三个领域?主要是开发和运维的脱节。DevOps是一种思想、一组最佳实践、以及一种文化。DevOps落地实施,从组织架构、设计人员、流程、人员分工、人员技能到工具,变化
Wesley13 Wesley13
2年前
90%的开发都没搞懂的CI和CD!
据IDC统计,2017年,DevOps的全球软件市场已达到约39亿美元的水平,预计到2022年市场将达到80亿美元左右!在敏捷软件开发环境中,工作模型和操作需要对公司不断变化的需求具有超级灵活的能力。DevOps——一种工具和实践的结合,有助于软件开发与IT运维并携手共进。这种跨功能的工作模式旨在最小化系统开发生命周期的持续时间,并提供持续的部署
Stella981 Stella981
2年前
DevOps工具链
Devops工具链DevOps实际是一种文化上的变迁,代表了开发、运维、测试等环节之间的协作,因此DevOps工具是非常多种多样的,甚至可以由多种工具组成一个完整的DevOps工具链。此类工具可以应用于一种或多种类别,并可体现出软件开发和交付过程的不同阶段:编码:代码开发和审阅,版本控制工具、代码合并工具构建:持续集成工具
Stella981 Stella981
2年前
DevOps 初学者宝典
什么是DevOps随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009年左右DevOps应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。!DevOps
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Stella981 Stella981
2年前
DevOps生命周期,你想知道的全都在这里了!
在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时。为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期。那么,DevOps在软件应用程序开发领域中扮演着什么角色?让我们深入了解其含义、用途以及DevOps生命周期中的每个关键阶段。什么是DevOps在DevOps之前
Stella981 Stella981
2年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
Stella981 Stella981
2年前
DevSecOps 笔记
什么是DevSecOps “DevSecOps”,一种全新的安全理念与模式,从DevOps的概念延伸和演变而来,其核心理念为安全是整个IT团队(包括开发、运维及安全团队)每个人的责任,需要贯穿从开发到运营整个业务生命周期的每一个环节。DevSecOps过程开发过程构建管理
Stella981 Stella981
2年前
Devops与敏捷二者能否结合?
当前软件行业的趋势倾向于使应用程序开发和部署成为业务运营的重要组成部分。这些公司开始专注于实现像DevOps解决方案这样的方法,这有助于缩短产品开发时间。使用DevOps进行开发减少了交付软件所需的阶段。软件交付时间短允许用户尽早部署软件,并通过更多的反馈为业务增加价值。DevOps与敏捷的结合DevOps的实施主要集中在软