工具是至关重要的元素DevOps的过程,但是对于新的DevOps实践者来说,工具的数量实在是太多了。
为了解决这一难题,我们的专家设计了DevOps工具“Radar”,帮助工程师为他们面临的任何问题选择最好的工具。
Radar根据反映应用程序生命周期的四个主要关注领域对工具进行分类:持续集成、基础设施、发布管理和监控。在这些领域中,工具被进一步分类,并与每个流程中的特定任务和步骤相匹配。云计算和安全是贯穿整个过程的两个额外考虑因素,因为它们通常会影响所有关注的领域,但在本文中,我们将重点讨论每个分类的细节。
在持续集成(CI)的保护伞下,主要集中于构建产品,工具被分为三个部分:源代码控制管理、构建/测试和工件管理。
CI是关于获得快速反馈以提高软件质量和缩短上市时间的。这个过程通常从签出和分析开始,然后转移到测试、构建,最后到工件管理。CI中的这五个阶段中的每一个都需要特定的工具用于过程的每个部分。
对于检验阶段,像GitHub和GitLab这样的工具是最合适的,而分析需要像SonarQube或Sonatype IQ服务器这样的工具。在测试阶段,您可以使用Radar在JUnit或Apache JMeter之间进行选择,然后使用Maven或Grunt进行构建。最后,像DockerHub或Nexus这样的工具覆盖了工件管理阶段。
一旦在这个过程中选择了工具,六个高级工具将负责所有五个阶段的编排:GitHub、CircleCI、GitLabCI、Jenkins X、Azure DevOps和AWS CodeStar。应该根据您的产品所基于的技术、语言和堆栈来选择这些顶级工具,这有时会限制您的选择。
利用Radar的下一步是考虑在哪里部署产品,这意味着定义基础设施的外观。
操作首先需要根据用例选择最佳的“whatever-as-a-service”来选择服务层。这些可能包括用于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则在Networking方面提供帮助。
在完成产品和完全配置的基础设施之后,接下来是发布管理过程,其中包括部署策略、编排和更新。
首先要做的是选择一个部署策略,比如滚动、重新创建或蓝色/绿色,这些策略通常与Kubernetes相关联。
就编制而言,您有用于Kubernetes应用程序的Jenkins X、Spinnaker(它与基于VM部署的应用程序配合得非常好)和Octopus Deploy。与Radar的所有其他部分一样,Amazon、Azure和谷歌Cloud也有自己的一套解决这些问题的工具。
在发布之后,跟踪指标、检查应用程序的健康状况并不断收集见解是非常重要的。Radar帮助您选择要监视的内容,并找出要从应用程序中提取的最重要的信息。
雷达包括谷歌的四个黄金指标信号(延迟、流量、错误和饱和度),这对每个用例都有不同的含义,因此选择监控什么取决于组织的具体需求。
一旦您知道要监视什么,就有几个可用的监视堆栈,包括用于导出的Beats、用于时间序列数据库的Prometheus和用于UI的Grafana。这些领域的其他主要选择有Splunk、AppDynamics、Instana、DataDog、Dynatrace、New Relic和Elastic Stack。在使用Radar时,我们发现最好的方法是考虑如何平衡每个工具的利弊,这归结为深入理解您的问题。
例如,一个工具可能能够解决一个复杂的问题,但它可能没有足够的灵活性来与您的生态系统集成。另一方面,工具可能价格很低,但从长远来看,您最终要在维护和支持上花费更多。最终,如果一个工具不能解决您的问题,那么它的任何功能或吸引人的元素都没有意义。
这些权衡几乎适用于DevOps范围内的所有工具,所以在100%承诺任何一组工具之前,总是值得构建PoC,因为它将向您展示它在现实场景中是如何工作的。同样,我们的Radar旨在加速这一过程,并提供最合适的工具组合的可视化表示。
DevOps Tools Radar可以轻松地突出最适合您的项目的原则工具,它消除了一些与选择工具相关的复杂性。通过加速这一过程,公司可以在某种程度上利用它们来影响软件开发团队的传递管道、过程和文化——至少,这是它对我们的影响。
通过接受,您将访问https://nearshore.perficient.com/外部的第三方提供的服务
评论