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

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做为主要的容器化运行时。工具

相关文章
相关标签/搜索