admin 管理员组文章数量: 1086019
2024年6月30日发(作者:uniformity插件)
8个DevOps自动化工具
作者:陆静
来源:《计算机与网络》2020年第09期
DevOps,这个词似乎是过去几年的一个流行语,是IT招聘人员、软件公司和代
理机构在互联网上搜索得最多的一个词。专业的支持者认为这与工具或自动化无关,但他
们忽略了一点,即工具实际上承载了DevOps文化。我们都认同这样的说法,即
DevOps不只与工具有关,甚至不只与一个单独的角色有关,DevOps实际上是人、过程
和工具的结合体。但是,一个组织想要实施DevOps,工具在其中扮演了重要的角色。
这里将介绍8个DevOps自动化工具,每一家公司都需要依靠它们来获得持续改
进。
1. Kubernetes
Kubernetes,容器编排平台事实上的标准。它是一个非常流行的开源平台,谷歌
于2014年将其开源。Kubernetes用来管理由多个自包含运行时(也就是容器)组成的
应用程序。容器近来正在取代虚拟机成为发布应用程序的标准模型。
Kubernetes集群有一个主节点和多个工作节点,每个工作节点可以处理多个
Pod。Pod是由多个容器组成的工作单元。开发人员可以从Pod开始,准备好Pod之
后,下一步是向主节点指定Pod的定义以及希望部署多少个Pod,剩下的事情由
Kubernetes负责。它会获取Pod,并将它们部署到工作节点上。如果有工作节点发生宕
机,Kubernetes会自动在可用的其他工作节点上启动新Pod。Kubernetes简化了容器
化应用程序的管理过程,让构建和添加更多的特性以及通过改进应用程序来获得更高的客
户满意度变得轻而易举。
2. Rancher
Rancher是一个容器管理平台,可以轻松地部署容器环境(包括Kubernetes,
Apache Mesos,Docker Swarm完整发行版),并让云端或基础设施平台上的容器集群
操作变得更容易。Rancher 2.0是一个用于管理Kubernetes集群的多集群管理工具,它
提供的用户界面可以帮助Kubernetes团队提高效率。如果希望获得更高的高可用性和平
台可靠性,一般都会使用集群。集群将服务器组合成单个易于管理的计算能力集合,并且
通常会使用容器化方法。
让开发人员自己来管理这些东西是很困难的,幸运的是,Rancher简化了集群的
容器管理,截至2018年初,Rancher只用来编排Kubernetes集群。
3. Spinnaker
随着公司的发展,技术、工具以及管理这些工具的人员数量有了巨大的增长,这
常常会导致公司内部出现混乱,增加了技术栈的复杂性和碎片化程度。对于小公司来说,
碎片化的持续交付过程或许没有什么问题,但随着公司的增长,维护和理解这个过程就变
得越来越具有挑战性。新来的工程师可能需要很长时间才能理解、发现和整理部署所需的
所有工具和流程,即使是为了做出一个最简单的变更。
Netflix推出的Spinnaker就是为了解决这个问题。它是一个通用可扩展的工具,
为用户提供了构建块,用以开发自定义持续交付管道,并进行有效扩展。
Spinnaker被很多现代软件公司视为理想的持续交付工具,它为开发人员提供了
软件交付过程的可视性和控制能力,帮助他们更好地了解如何交付软件。
4. Artifactory
大多数开发人员会通过各种方式访问互联网,并从外部存储库获取依赖项。这严
重影响了开发团队之间的沟通,因为我们无法跟踪什么样的依赖包或版本被引入到公司的
软件环境中。Artifactory是一个二进制存储库管理器,可以用来存储二进制文件。它就
像是二进制版本的Git。作为一个DevOps工具,Artifactory的主要目标是帮助开发人
员管理第三方依赖包,从而提供持续集成、持续交付和持续部署能力,帮助企业实现
DevOps。
财富500强公司,如谷歌、亚马逊、思科等,它们将Artifact Repository
Manager作为通用的依赖包储库管理器,可以支持所有依赖包,不管它们用什么语言或
工具开发的。Artifactory提供了一个自动化的端到端解决方案,方便跟踪开发环境和生
产环境的依赖包,促进DevOps团队的协作,并毫不费力地对任务进行自动化。
Artifactory为DevOps团队提供了所有必需的工具,帮助他们有效处理不断增长
的二进制文件、环境和分布式站点,从而确保应用程序开发工作流程的顺畅。Artifactory
不需要为相同文件创建不同副本,帮助开发人员节省了大量时间。二进制文件都只有一个
副本存储在文件系统中,减少了团队内部和团队之间的混乱和干扰。
那么,为什么应该使用依赖包存储库:
加快开发速度;
提高开发人员的生产力;
更快地发布,自动化开发管道;
无缝的团队协作。
虽然Artifactory的主要目标是提供一种整洁和安全的方法来管理第三方依赖包,
但也可以用来存储开发团队自己生成的软件包,对它们打标签、版本化,并适时发布,让
他们清楚地知道打包了什么东西。
5. Linkerd
Linkerd是一个开源的轻量级服务网络,由Buoyant公司主导开发。很多成功的
大公司,如PayPal,Expedia等,将它们用在生产环境中。它为云原生应用程序带来更
高的可靠性、安全性和可视性。Buoyant在2016年首次提出了服務网格这个术语,所以
Linkerd算得上是服务网格的鼻祖。
Linkerd在无需微服务做出任何代码变更的情况下,为在集群中运行的微服务提供
可观察性、通信方式以及其他细微的方面。
服务网格是一个专门的基础设施层,基本功能是用来控制、管理和建立服务之间
的联系,让应用程序的各个部分相互通信,使微服务的运行更加高效。服务网格通常被用
在云原生应用程序、容器以及微服务中,快速打包镜像并交付高质量的软件。
Linkerd在平台层而不是应用程序层,为SRE团队提供可见性、可靠性和安全性
以及顶级的服务指标。
6. Helm
Helm主要用来帮助Kubernetes架构师简化Kubernetes应用程序的安装和管理
工作。
Helm使用了一种叫作chart的打包格式。chart是一组描述了一组相关
Kubernetes可用资源的文件。一个chart可以用来部署一些简单的东西。
从架构方面看,Helm有2个端,一个是客户端,即Helm命令行工具,我们称之
为Helm CLI;另一个是服务端,即 Tiller。Helm CLI是运行在本地机器上的命令,它使
用模板引擎根据Helm定义的源模板生成易于理解的Kubernetes YAML。在生成YAML
之后,它会将请求发送到运行在Kubernetes集群中的Tiller。接下來,Tiller在
Kubernetes集群中执行更新,确保它是最新的并被正确发布,然后添加到历史记录中,
在后续可以根据需要进行回滚。
7. Sumo Logic
Sumo Logic平台帮助企业通过分析和预测来做出基于数据驱动的决策,减少用于
调研安全性和运维问题的时间,这样就可以根据优先级腾出资源去做更为重要的事项。
Sumo Logic将计算机生成的数据转换成一个简单的仪表板,通过易于理解的图
表、表格和其他可视元素为用户提供操作见解。全球有很多公司都使用Sumo Logic来构
建、运行和保护应用程序和云基础设施,让Sumo Logic成为行业中不可或缺的DevOps
工具。
Sumo Logic的预测分析功能非常强大,可以预测异常行为和KPI违规,并发送警
告,提高了DevOps效率,并有助于修复所有的问题。
8. Slack
团队成员之间发送即时消息、反馈和知识共享非常重要。在实施DevOps时,信
息的流动、实时交互和高度协作最为重要,Slack正是为此而生。金融公司Capital One
认为Slack是最为重要的DevOps工具。Capital One在2016年年中部署了Slack,并
很快成为其IT部门的首选工具。
现在可以通过Slack自动化大量的手动和重复性的开发任务,它的消息通知机制可
以很容易地让用户看到实时发生的事情。正当很多大公司还在寻找以团队为中心的生产力
工具时,Slack已经在这方面做了大量的工作。
版权声明:本文标题:8个DevOps自动化工具 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1719749800a738809.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论