DevOps,一个近几年似乎成为流行语的术语,是IT招聘人员、软件公司和代理机构在互联网上搜索最多的术语。专业支持者认为这与工具或自动化无关,但他们忽略了工具实际上承载DevOps文化的观点。我们都同意DevOps不仅仅是关于工具,甚至不仅仅是关于单一角色,DevOps实际上是人、流程和工具的组合。但是,组织想要实施DevOps,工具在其中发挥着重要作用。在本文中,我们将介绍每个公司持续改进都需要依赖的8个DevOps自动化工具。1.KubernetesKubernetes,容器编排平台的事实标准。它是一个非常流行的开源平台,诞生于谷歌,于2014年开源。Kubernetes用于管理由多个独立运行时(又名容器)组成的应用程序。容器最近正在取代虚拟机成为发布应用程序的标准模型。一个Kubernetes集群有一个master节点和多个worker节点,每个worker节点可以处理多个Pod。Pod是由多个容器组成的工作单元。开发人员可以从一个Pod开始,在Pod准备好之后,下一步就是向master指定Pod的定义以及我们要部署多少个Pod,剩下的由Kubernetes负责。它获取Pod并将它们部署到工作节点。如果工作节点出现故障,Kubernetes将自动在其他可用的工作节点上启动新的pod。Kubernetes简化了容器化应用程序的管理过程,使构建和添加更多功能以及改进应用程序变得容易,从而获得更高的客户满意度。2.RancherRancher是一个容器管理平台,可以轻松部署容器环境(包括Kubernetes、ApacheMesos和DockerSwarm完整版),更容易在云或基础设施平台上运行容器集群。Rancher2.0是一个用于管理Kubernetes集群的多集群管理工具,提供了一个用户界面来帮助Kubernetes团队提高效率。如果您想要更高的高可用性和平台可靠性,通常会使用集群。集群将服务器组合成一个单一的可管理的计算能力集合,通常使用容器化方法。很难让开发人员自己管理这些东西。幸运的是,Rancher简化了集群的容器管理。截至2018年初,Rancher仅用于编排Kubernetes集群。3.Spinnaker随着公司的发展,技术、工具以及管理这些工具的人员数量急剧增加,这常常导致公司内部混乱,增加了技术栈的复杂性和碎片化。分散的持续交付流程对于小公司来说可能还好,但随着公司的成长,维护和理解该流程变得越来越具有挑战性。新工程师可能需要很长时间才能理解、发现和组织部署即使是最简单的更改所需的所有工具和流程。Netflix推出的Spinnaker就是为了解决这个问题。它是一种通用且可扩展的工具,可为用户提供构建块来开发可有效扩展的自定义持续交付管道。Spinnaker被许多现代软件公司视为理想的持续交付工具。它为开发人员提供了对软件交付过程的可见性和控制,并帮助他们更好地理解如何交付软件。4.Artifactory的开发者大多通过各种方式访问??互联网,并从外部存储库中获取依赖项。这严重影响了开发团队之间的沟通,因为我们无法跟踪到公司的软件环境中引入了什么样的依赖包或版本。Artifactory是一个二进制存储库管理器,可用于存储二进制文件。它就像Git的二进制版本。作为DevOps工具,Artifactory的主要目标是帮助开发者管理第三方依赖包,从而提供持续集成、持续交付和持续部署能力,帮助企业实现DevOps。世界500强公司,如谷歌、亚马逊、思科等,都使用ArtifactRepositoryManager作为通用的依赖包存储管理器,它可以支持所有的依赖包,无论它们是用什么语言或工具开发的。Artifactory提供了一个自动化的端到端解决方案,有助于跟踪开发和生产依赖性,促进DevOps团队之间的协作,并毫不费力地自动执行任务。Artifactory为DevOps团队提供了所有必要的工具,以有效地处理不断增长的二进制文件、环境和分布式站点,确保应用程序开发工作流程的顺利进行。Artifactory无需创建相同文件的不同副本,从而为开发人员节省了大量时间。只有一份二进制文件副本存储在文件系统中,减少了团队内部和团队之间的混乱和中断。为什么要使用依赖包存储库?加快发展;提高开发人员的生产力;发布更快、自动化的开发管道;无缝的团队协作;节省一遍又一遍地寻找正确依赖项的时间。虽然Artifactory的主要目标是提供一种干净和安全的方式来管理第三方依赖项,但它也可以用于存储开发团队自己生成的包,对其进行标记、版本控制并在适当的时候发布它们,以便他们知道确切地知道要打包什么。5、LinkerdLinkerd是Buoyant开发的开源轻量级服务网络。许多成功的大??公司,如PayPal、Expedia等,都在生产环境中使用它们。它为云原生应用程序带来更高的可靠性、安全性和可见性。Buoyant在2016年首次提出了服务网格这个词,因此Linkerd可以说是“服务网格”的鼻祖。Linkerd为集群中运行的微服务、它们如何相互通信以及其他细微方面提供可观察性,而无需微服务进行任何代码更改。服务网格是一个专门的基础设施层,其基本功能是控制、管理和建立服务之间的连接,允许应用程序的各个部分相互通信,使微服务更高效地运行。服务网格常用于云原生应用程序、容器和微服务中,用于快速打包镜像和交付高质量的软件。Linkerd在平台层而非应用程序层为SRE团队提供可见性、可靠性和安全性以及顶级服务指标。6.HelmHelm主要用于帮助Kubernetes架构师简化Kubernetes应用的安装和管理。Helm使用一种称为图表的打包格式。图表是一组文件,描述了一组可用的相关Kubernetes资源。图表可用于部署简单的东西。从架构上来说,Helm有两端,一端是客户端,即Helm命令行工具,我们称之为HelmCLI,另一端是服务端,即Tiller。HelmCLI是在本地计算机上运行的命令。它使用模板引擎根据Helm中定义的源模板生成人类可读的KubernetesYAML。生成YAML后,它将请求发送到运行在Kubernetes集群中的Tiller。接下来,Tiller在Kubernetes集群中执行更新,确保它是最新的并正确发布,并将其添加到历史记录中,如有必要,稍后可以回滚。在发布的Helm3中,Tiller被移除。7.SumoLogicSumoLogic平台通过分析和预测帮助企业做出数据驱动的决策,减少研究安全和运维问题的时间,从而可以腾出资源按照优先级去做更重要的事情。SumoLogic将计算机生成的数据转换为简单的仪表板,通过易于理解的图表、表格和其他视觉元素为用户提供操作见解。世界各地的公司都使用SumoLogic来构建、运行和保护应用程序和云基础架构,使SumoLogic成为行业中不可或缺的DevOps工具。SumoLogic的预测分析功能强大到足以预测异常行为和KPI违规并发送警报,从而提高DevOps效率并帮助解决任何问题。8.Slack对于团队成员之间的即时消息、反馈和知识共享非常重要。在实施DevOps时,信息流、实时交互和高水平协作至关重要。你不认为Slack就是为此而生的吗?金融公司CapitalOne将Slack列为最重要的DevOps工具。CapitalOne于2016年年中部署了Slack,并迅速成为其IT部门的首选工具。现在,你可以通过Slack自动化很多手动和重复的开发任务,它的消息通知机制让用户很容易实时看到正在发生的事情。当许多大公司还在寻找以团队为中心的生产力工具时,Slack已经在这方面做了很多工作。
