共计 1924 个字符,预计需要花费 5 分钟才能阅读完成。
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)的缩小,那么天然的停顿是在管道中进一步提高安全性。如果您须要晋升或晋升组织对多个因素的平安关注,那么这种办法十分有用。
DevSecOps 采纳了传统的 DevOps 办法,并在工作流程中增加了额定的安全检查、代码验证和深刻测试。DevSecOps 从流程的一开始就集成了安全性,而不是在周期完结时让安全性成为一个问题。
两者有相似之处,也有类似的次要劣势。DevOps 和 DevSecOps 都容许 CI/CD 管道实现更大的自动化。只有速度和交付处于优先级列表的顶端,DevOps 和 DevSecOps 就会持续在工作流的不同局部利用自动化。
两者还依赖于在沟通和合作的帮忙下继续运行的过程。团队沟通是放弃敏捷性和交付速度的要害局部。开发人员、平安专家和运维人员之间的合作也至关重要。
DevOps vs. GitOps
GitOps 是 DevOps 的另一个广受欢迎的分支,在过来的一年里失去了宽泛的关注。顾名思义,GitOps 更关注于应用 Git 作为一种办法来自动化其余的继续交付管道。有了 Git 作为惟一的数据源,从久远来看,GitOps 被认为更强壮、更可治理。
能够说,施行 GitOps 有一些潜在的劣势。对于初学者来说,每个开发人员都相熟 Git 和 pull 申请,因而集成 GitOps 作为一种放慢交付速度的办法是一种简略的过程,不须要把握简单的工具,也不须要总是对工作流进行更改。
GitOps 还失去了市场上一些最好的云服务的反对。像 AWS CodePipeline 和 AWS CodeBuild 这样的工具是为应用 Git 工具而设计的,这意味着主动构建更新、测试谬误、审查代码以及将更新推送到生产环境的过程非常容易实现。
GitOps 还提供了一套具体的审计工具,并可能随时回滚更新。这是因为 Git 是每次更新的次要起源,这意味着整个管道也能够依赖 Git 日志来进行简略地审计。然而,因为 Git 是惟一的事实起源,有必要对 Git 存储库进行足够的爱护,以防止不必要的提交或申请。
简而言之,GitOps 是 DevOps 的一个子集,旨在利用 Git 的弱小劣势。因而,大多数 GitOps 工作流重大依赖 Kubernetes 作为次要的容器化运行时。