上篇跟大家简单介绍了DevOps,以及与其概念相近的NoOps、DevSecOps和GitOps,“Ops家族”还包含其他形式,但归根结底,DevOps之所以更为流行,是因为其提供了改进工作流程的最全面的方法,因而被广泛应用。
DevOps vs. ITOps
接下来,我们将更仔细地了解一下ITOps。许多开发人员将ITOps视为DevOps更传统的版本,但实际上它不止于此。ITOps在许多方面与DevOps非常相似。该方法将软件开发和IT基础设施管理视为一个统一的管道,此外,它还试图改进该管道并推动更高的灵活性。
ITOps与DevOps的不同之处在于它如何管理IT基础设施。这正是ITOps更为传统的地方,因为它负责交付和维护服务、应用程序,以及运维业务所必需的基础技术。ITOps通常包括系统管理员、网络管理员和服务台等职位。
ITOps更关注稳定性和长期可靠性,而不是推崇敏捷性和速度。IT基础设施是作为成功管道的基础处理的,因此,当涉及到基础设施管理时,看到这种方法被视为更加严格就不足为奇了。
ITOps的最佳实践更倾向于使用可靠的、经过高度测试的商业软件和解决方案来构建基础设施——包括硬件,因为ITOps倾向于关注物理服务器和网络。ITOps的管道中经常有现成的商用软件或COTS。
这种方法的更高刚性也意味着更新基础设施组件更加困难。ITOps将稳定性作为首要任务,因此快速更改云和内部环境的配置并不总是可能的。不过,ITOps在应用程序和服务的内部部署方面确实工作得很好。
这并不意味着ITOps已经过时。有些行业严重依赖ITOps的长期可持续性,比如银行业和整个金融业。这些行业并不总是需要快速、突然的变化,这使得ITOps成为更合乎逻辑的持续交付方法。
人们可能会认为DevOps无法在这些类型的环境中实现,因为它们不是基于云的。但事实并非如此,在裸金属服务器上仍然可以减少在制品数量和降低贮仓量。
DevOps vs. CloudOps
当ITOps将基础设施转移到等式更传统的一边时,CloudOps却恰恰相反。同样,这种方法与DevOps非常相似,但是在基础设施管理方面的关注点有所转移。顾名思义,CloudOps试图更多地利用现代服务提供商(如Amazon)提供的云原生功能。
CloudOps主要有三个要素:分布、无状态和可伸缩性。分布式开发和部署意味着不存在单点故障。整个云环境变得更加可靠,并且可以保持正常运行时间。同时,至少在工作流的某些部分,无状态化的能力对于成本效率来说是一个巨大的优势。
由于是无状态的,所以可伸缩性不是问题。您只需要为实际使用的资源和使用它们的持续时间付费,因此,只需稍加调整,就可以将与云相关的开销成本降至最低。使用CloudOps方法部署的云本地应用程序往往具有良好的正常运行时间和低延迟。
云服务提供商现在提供的自动化水平进一步扩大了这些优势。然而,这种方法需要完全自动化的资源配置,这可能意味着在配置CI/CD管道时增加了复杂性。为了充分利用CloudOps,必须正确配置才能充分利用CloudOps的优势。
DevOps vs. CIOps
持续集成操作(CIOps)是我们列表中的最后一个分支。CIOps要求CI操作员或管理员在继续部署之前配置支持新代码所需的IT基础设施。CI系统被设计用来运行构建和测试,然后根据管道的复杂性以不同的复杂级别部署。
由于手工输入仍然是必需的(为了确保每个CI作业都被正确配置以部署到正确的位置),CIOps既有优点也有缺点。主要优点是对基础设施本身进行细粒度控制。与GitOps等方法中预定义的参数不同,两种部署可以有不同的基础设施配置。
手工配置云环境和资源配置可以使CIOps更适合较小的开发;在开发项目中,自动化是一种麻烦而不是一种有用的工具。这就是CIOps经常出现在具有更简单云基础设施的小型项目中的原因。
手工配置云环境和资源配置可以使CIOps更适合较小的开发;在开发项目中,自动化是一种麻烦而不是一种有用的工具。这就是CIOps经常出现在具有更简单云基础设施的小型项目中的原因。
然而,这里的主要缺点是这个系统的人工概念增加了人为错误的风险。还需要为API提供您选择的CI工具(Travis CI和CircleCI很流行),这是一个很大的安全风险。
与DevOps相比,CIOps还缺乏全面的审计跟踪和额外的灵活性。该方法关注的是CI而不是CI/CD,因此它并不总是涵盖整个过程。虽然它在配置云基础设施时给了开发人员一些灵活性,但要在较长的时间内平稳地运行CIOps,还需要大量的努力。
为什么是DevOps ?
正如您所看到的,DevOps有多个分支和子集,它们都基于独特的方法和有趣的想法。为了加快您的CI/CD周期,所讨论的任何方法都非常有用。在两者之间进行选择,就是要找到一种最适合您开发的应用程序和您使用的云基础设施的方法。
也就是说,DevOps仍然提供了改进工作流程的最全面的方法,因为它在采用文化改进的同时处理了两个技术过程。两者在成功转型中同等重要。上述方法往往只关注技术方面,有些甚至专注于特定的平台、管理基础设施的方法或特定的工具。
归根结底,这就是为什么DevOps仍然是所有方法中实现最广泛的原因。这是一种久经考验的方法,可以在支持创新和协作环境的同时,创建一个高效且在技术上得到改进的CI/CD管道。