为你的DevOps工作流程创建理想的DevOps工具列表
人们常说DevOps是一种哲学,而不是一组特定的工具或过程。
这是真的。尽管如此,实践DevOps哲学需要工具。这些工具将根据您通过DevOps方法交付的软件类型以及您如何部署它而有所不同。因此,一个组织的DevOps工具集看起来与另一个组织的不同。
但无论你的方法是什么,你都需要一套可靠的DevOps的工具将你的DevOps哲学付诸实践。本文确定了大多数团队需要考虑的DevOps工具的关键类别,并在每个类别中列出了流行的产品。
什么是DevOps?
你可以找到这个问题的多种答案什么是DevOps?然而,大多数都集中在开发人员和IT运营团队之间实现协作的想法上。当编写软件的人(即开发人员)和部署和维护软件的人(it工程师)能够很好地沟通并共享共同的目标时,软件交付体验对所有相关人员来说都是更好的——至少DevOps的大多数定义都是这样告诉我们的。
为了建造一个DevOps的平台那么,您必须确定帮助您的组织实现DevOps核心目标的工具——减少开发团队和IT团队之间的摩擦——以一种对您的组织最有意义的方式。
DevOps工具的关键类别
为了弄清楚哪些DevOps工具可以帮助你做到这一点,将这些工具分类是很有用的。一般来说,大多数组织可以通过从以下主要DevOps工具类别中至少提取一种解决方案来构建DevOps平台。
# 1。源代码管理
DevOps交付链从编写源代码开始。如果您试图手动跟踪谁写了哪些代码,以及代码如何随时间变化,那么很快就变得不可行的。
这就是为什么大多数DevOps团队使用源代码管理工具的原因。GitHub或GitLab(两者本质上都是开源工具Git的基于web的接口)是当今DevOps最流行的源代码管理解决方案,但像Bitbucket(另一个基于Git的平台)和Subversion (Git的替代方案)这样的服务也被广泛使用。
# 2。二元管理
一些源代码管理平台还为管理应用程序包或其他二进制文件提供了至少基本的支持。然而,由于源代码在大多数方面与二进制文件不同,管理二进制对象是一项任务,通常最好留给专门的工件管理解决方案,如Artifactory。
# 3。持续集成
当您有一堆由不同开发人员编写的新源代码,并且需要将其集成到应用程序的主代码库中时,会发生什么情况?如何有效地集成来自多个源的代码,同时确保没有冗余代码,并且能够跟踪哪些应用程序功能来自哪些代码集成?
持续集成(CI)服务器通过自动将源代码集成到应用程序的主代码库中来解决这些挑战。CI服务器不管理源代码本身(如上所述,这是源代码管理系统的工作);相反,它们帮助团队管理代码和应用程序之间的关系。CI服务器还可以帮助准备要编译和测试的代码。有些还会自动部署。
目前有各种各样的CI服务器可用。有些,比如GitLab,被内置到更大的平台中。其他的,如Jenkins和TeamCity是独立的产品。hth华体会最新官方网站
如果您不确定选择哪个CI服务器,或者您希望同时使用多个CI服务器,您还可以考虑以下解决方案JFrog管道,它可以集成和编排使用各种其他工具交付的CI过程。
# 4。自动化测试
CI服务器可以帮助准备要构建和测试的代码,但是要实际运行测试,您需要一个自动化的测试框架(当然,除非您想手动运行每个测试,这在大规模上是不实际的)。自动化测试平台允许DevOps团队编写和运行测试,以验证应用程序的行为或执行是否符合要求。如果新的应用程序发行版未能通过自动化测试,团队可以推迟部署,直到解决问题为止。
Selenium可能是目前可用的最流行的测试自动化框架,它也是涵盖最广泛的编程语言和应用程序类型的框架之一。其他受欢迎的选择包括黄瓜和柏木。还有一些特定于平台的框架,比如Mocha,这是一个基于javascript的框架,主要用于测试Node应用程序。
# 5。作为代码的基础设施
在部署应用程序之前,需要设置基础设施来承载应用程序。手动配置每个服务器或云服务很难很好地利用时间。它还使您在配置单个服务器时容易出错,例如不小心单击了错误的按钮或输入了错误的值。
基础设施即代码(IaC)是DevOps工具的一个类别,它允许团队编写配置文件来定义应该如何配置软件环境,从而解决这一挑战。然后,IaC工具自动配置基础结构以匹配定义。这种方法在提供大规模环境时节省了大量时间。它实际上还消除了由于人为错误而导致配置问题的风险。
目前最受欢迎的IaC平台包括Chef、Puppet和Ansible。Terraform是亚马逊网络服务(Amazon Web Services)提供的一项IaC服务,也在AWS云中广泛使用,但它不支持其他环境。
# 6。监测和可观察性
一旦部署了新版本,监视工具和可观察性工具可以帮助您跟踪应用程序的运行状况和性能。(注意,监视和可观察性不是一回事,但解释这些差异超出了本文的范围。)这一点很重要,可以确保在部署前测试期间没有发现的任何问题在软件投入生产后都能快速识别出来。
监视和可观察性工具生态系统是巨大的。最基本的是简单的开源基础设施监控工具,比如Nagios。您还可以找到应用程序性能管理(APM)解决方案,其中大多数是商业的,例如Instana和New Relic。然后还有数据摄取和分析平台,如Splunk和ELK Stack,它们在技术上可以用于解释任何类型的数据,但目标是与应用程序监控和管理相关的用例。
# 7。安全
有大量的工具旨在帮助确保DevOps工作流的安全。它们的功能范围很广泛,从可以审计IaC文件漏洞的工具(帕洛阿尔托Prisma提供的一个功能),到帮助保护软件供应链的源成分分析工具,再到实时监控安全事件的安全信息和事件管理(SIEM)平台。
所有这些工具都属于DevSecOps工具。事实上,以安全为中心的DevOps工具种类非常广泛,在此无法全面介绍。可以说,安全工具应该是任何DevOps工具集的一部分;我们将把细节留到以后关于DevSecOps工具的文章中。
选择一个DevOps工具
DevOps团队有各种各样的工具可供选择。要确定满足您需求的最佳工具,请考虑以下因素:您需要涵盖哪些类别的功能;无论您喜欢开源还是商业解决方案;以及你是否需要DevOps工具来支持任何类型的软件交付和部署环境,还是只支持某一种(比如特定的公共云)。
