敏捷开发

DevOps工具雷达:为项目选择和分类最佳工具

Devops雷达

工具是一个至关重要的元素DevOps的过程,但是对于新的DevOps实践者来说,工具的数量实在是太多了。

为了应对这一挑战,我们的专家设计了一个DevOps工具“雷达”,帮助工程师选择最好的工具来解决他们面临的任何问题。

Radar根据反映应用程序生命周期的四个主要关注领域对工具进行分类:持续集成、基础设施、发布管理和监控。在这些区域中,工具被进一步分类,使它们与每个过程中的特定任务和步骤相匹配。云和安全是应该贯穿整个过程的另外两个考虑因素,因为它们通常会影响所有关注的领域,但在本文中,我们将重点关注每种分类的具体细节。

雷达Devops图1

持续集成

在持续集成(CI)的保护伞下,主要关注于构建产品,工具被分为三个部分:源代码控制管理、构建/测试和工件管理。

CI是关于获得快速反馈以提高软件质量和缩短上市时间。该过程通常从检查和分析开始,然后转移到测试、构建和最后的工件管理。CI中的这五个阶段中的每一个阶段都需要针对流程的每个部分使用特定的工具。

对于检查阶段,像GitHub和GitLab这样的工具是最适合的,而分析则需要像SonarQube或Sonatype IQ Server这样的工具。在测试阶段,您可以使用Radar在JUnit或Apache JMeter之间进行选择,然后使用Maven或Grunt进行构建。最后,DockerHub或Nexus等工具涵盖了工件管理阶段。

一旦在这个过程中选择了工具,六个高级工具将通过协调来处理所有五个阶段:GitHub、CircleCI、GitLabCI、Jenkins X、Azure DevOps和AWS CodeStar。应该根据产品所基于的技术、语言和堆栈来选择这些顶级工具,这有时会限制您的选择。

基础设施

利用Radar的下一步是考虑在哪里部署产品,这意味着定义基础设施的外观。

操作人员首先需要根据用例选择最佳的“任何服务”来选择服务层。这些可能包括用于IaaS(基础设施)的Azure VM或AWS VPC,用于PaaS(平台)的Heroku或AWS ES,用于BaaS(后端)的Firebase或AWS Cognito,以及用于FaaS(功能)的Azure Functions或AWS Lambda。

接下来,他们将研究用于运行时和编排的容器,这些容器有很多选项,如Docker、Cri-O、Kubernetes、AWS ECS等。应该根据所需的功能级别进行选择。

最后,在考虑自动化配置时,Radar可以帮助在Puppet、Ansible和Chef等工具之间进行选择,用于供应,Vault用于秘密,Packer用于机器映像。在自动化基础设施方面,Terraforma和Pulumi是作为代码的基础设施的很好的选择,而Consul则有助于网络。

发布管理

有了完成的产品和完全配置的基础设施,接下来就是发布管理流程,它涵盖了部署策略、编制和更新。

首先要做的是选择一种部署策略,例如滚动、重新创建或蓝/绿,这些策略通常与Kubernetes相关。

就编排而言,您有用于Kubernetes应用程序的Jenkins X、用于基于VM部署的应用程序的Spinnaker,以及Octopus Deploy。与Radar的所有其他部分一样,Amazon、Azure和谷歌Cloud也有自己的一套工具来解决这些问题。

监控

在发布之后,跟踪指标、检查应用程序的健康状况并持续收集见解是非常必要的。Radar帮助您选择要监视的内容,并找出要从应用程序中提取的最重要的信息。

雷达包括谷歌的四个黄金指标信号(延迟、流量、错误和饱和度),这对每个用例都意味着不同的东西,因此选择监视什么取决于组织的特定需求。

一旦知道要监视什么,就可以使用几个监视堆栈,包括用于导出器的Beats、用于时间序列数据库的Prometheus和用于UI的Grafana。这些领域的其他主要选择是Splunk、AppDynamics、Instana、DataDog、Dynatrace、New Relic和Elastic Stack。

每次都选择正确的工具

在使用Radar时,我们发现最好的方法是考虑如何平衡每个工具的利弊,这可以归结为深入地理解您的问题。

例如,一个工具可能能够解决一个复杂的问题,但它可能没有足够的灵活性来与您的生态系统集成。另一方面,一个工具的价格可能很低,但从长远来看,你最终会在维护和支持上花费更多。最终,如果一个工具不能解决您的问题,那么它的任何特性或有吸引力的元素都是无关紧要的。

这些权衡适用于DevOps领域的几乎所有工具,所以在100%承诺使用任何一组工具之前构建一个PoC总是值得的,因为它将向你展示它在现实场景中的工作原理。同样,我们的雷达旨在加快这一过程,并提供最合适的工具组合的可视化表示。

DevOps工具雷达通过消除一些与选择工具相关的复杂性,可以轻松地突出最适合项目的主要工具。通过加快这一过程,公司可以利用他们的方式来影响一个软件开发团队的交付管道、流程和文化——至少,这是它如何影响我们的。

加入我们

当我们参与团队合作时,我们就有改变世界的力量。你准备好成为一个改变者了吗?作为一家全球数字咨询公司,Perficient正在改变世界上最大的品牌如何与客户联系并发展业务。这可能是提升你职业和技能的机会。 DevOps工具雷达只是一个开始,总是有很多东西需要学习 d 在完美拉丁美洲发展你的事业 艾丽卡 加入我们的行列。
作者简介

更多来自作者

留下回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

订阅每周博客文摘:

报名
类别