2022年将使用的10个平台工程工具
什么是平台工程?
在深入研究最好的平台工程工具之前,让我们先明确定义什么是平台工程。
平台工程是使软件工程团队能够在云环境中自主地执行应用程序生命周期的端到端操作的过程。平台工程师开发一个集成的产品,为开发人员提供自助服务能力。无论是基础设施配置、代码管道、监视还是容器管理,自助服务平台都隐藏了所有这些复杂性,并为开发人员提供了应用程序整个生命周期的所有必需品。平台工程不仅仅是必要的工具,而是工具、工作流和过程的组合。
工具1:用于容器编排的Kubernetes
Kubernetes也称为K8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。使用Kubernetes可以自动化几个过程,包括容器配置、伸缩、网络和安全。
Kubernetes是最优秀的自动化工具之一,适用于有许多容器的应用程序封装。使用它,开发人员可以隔离和打包容器集群,以便它们可以同时部署在多台机器上。
使用Kubernetes,您可以自动创建Docker容器,并根据需求和伸缩需求来分配它们。
工具2:用于跨Kubernetes基础设施管理的Crossplane
Crossplane好的平台通常构建在控制平面上,但构建控制平面需要编写代码和大量代码。使用Crossplane,您可以在几天内构建一个针对您独特需求的控制平面,而无需编写棘手的分布式系统代码。
使用Crossplane,您可以协调一切,而不仅仅是容器,扩展久经沙场的Kubernetes的可靠性和安全性。由于Crossplane构建于与Kubernetes相同的基础之上,因此它可以顺利地集成最流行的云原生工具。
工具3:用于预览环境的Qovery
Qovery提供了一个名为“预览环境”的特性。当打开时,您将为每个拉请求获得生产环境的完整副本。每个拉请求都可以在一个孤立的、短暂的环境中进行测试。当合并拉请求时,预览环境将被破坏,消耗的资源将被释放。
复制包含复杂配置和基础结构组件(如负载均衡器、Kubernetes集群、防火墙等)的生产环境需要相当长的时间,并可能导致错误。此外,虽然分段是生产的副本,但数据、基础结构和配置仍将略有不同。使用预览环境来自动化环境的能力可以允许您的分布式团队根据需要启动和退出环境,从而加快上市时间。
它还可以提高你的整体发展速度。由于您可以为每个拉请求快速启动新的环境,因此可以在不干扰其他环境的情况下单独执行测试,并且可以快速推出您的版本。
如果您想知道如何开始,这里有一篇文章向您展示如何使用Qovery在AWS上创建预览环境。
工具4:您的CI的Gitlab CI
GitLab CI/CD是一种使用连续方法进行软件开发的工具:
GitLab CI/CD自动使用Auto DevOps构建、测试、部署和监视应用程序。在开发周期的早期捕获bug和错误可以确保部署到生产中的所有代码都符合您为应用程序建立的代码标准。
工具5:用于内部开发人员平台的Humanitec
Humanitec 平台工程正在彻底改变公司构建和运行云原生设备的方式。Humanitec是这场革命的一部分,它使团队能够构建内部开发人员平台(IDPs),并实现真正的开发人员自助服务。
简而言之,内部开发人员平台(IDP)是平台工程团队用来为开发人员铺平黄金道路的技术和工具的集合。
一个国内流离失所者由以下组成部分组成:
- 基础结构编排
- 应用程序配置
- 部署管理
- 环境管理
- 基于角色的访问控制
作为IDPs的结果,工程组织需要更少的认知负荷,并且可以在不从开发人员中删除上下文或使底层技术不可访问的情况下启用开发人员自助服务。一个遵循平台作为产品方法的IDP由平台团队基于产品管理原则和最佳实践来构建、维护和持续改进。
工具6:用于构建开发人员门户的后台
Backstage另一个内部开发者平台的例子在这里,但这次是开源的;后台是构建开发者门户的开放平台。通过一个集中的软件目录,后台将订单恢复到您的微服务和基础设施,并使您的产品团队能够快速发布高质量的代码–而不损害自主性。
它允许工程经理在整个组织中维护标准和最佳实践,从而使他们受益。它可以帮助他们管理整个技术生态系统,从迁移到测试认证。开发人员,因为它使以标准化的方式构建软件组件变得快速和简单。它提供了管理所有项目和文档的中心位置。平台工程师,因为它允许他们轻松地集成新工具和服务(通过插件),并扩展现有工具和服务的功能,从而支持可扩展性和可伸缩性,后台统一了所有的基础设施工具、服务和文档,从端到端创建一个精简的开发环境。
工具7:ArgoCD用于您的CD
Argo CD是Kubernetes本地的连续部署(CD)工具。使用Argo CD,您可以将更新的代码直接部署到Kubernetes资源,而不是使用只允许基于推送的部署的外部CD工具。在一个系统中,开发人员可以管理基础结构配置和应用程序更新。
Argo CD的主要特性和功能包括手动或自动将应用程序部署到Kubernetes集群、自动将应用程序状态同步到声明性配置的当前版本、web用户界面和命令行界面(CLI)、支持多集群管理的基于角色的访问控制(RBAC)等。
工具8:将应用程序容器化的Docker
Docker 是一个开放源码平台,使开发人员能够在与资源无关的环境中构建、测试、部署、运行、更新和管理应用程序。每个容器都有一个完整的运行时环境,包括特定应用程序的库、源代码、配置和依赖项。
容器化和微服务被广泛用于高效应用程序开发和部署的平台工程,而Docker和Kubernetes是应用最广泛的容器技术。
工具9:自动化基础设施配置的Terraform
Terraform 是一个开源基础设施,作为由HashiCorp创建的代码软件工具。成千上万的产品提供Terraform插件(称为提供者)来管理它们。您可以在文件中描述如何配置软件以及如何连接它们,Terraform为您管理一切。不是魔法。感谢大的Terraform社区提供和维护所有的Terraform提供者。
通过使用Terraform,您可以创建、修改和改进您的基础结构,而不必担心手动配置或管理它。您可以使用AWS、Azure、Google Cloud、Kubernetes、OpenStack等。DNS记录、监视系统和自定义提供程序可以用Terraform进行管理。它很容易上手,也很容易使用。此外,它非常强大,使它能够快速有效地管理复杂的基础设施。
工具10:秘密管理的Doppler
通过其平台,Doppler作为团队的加密真相来源,允许他们跨项目和环境组织应用程序机密,并根据需要回滚更改。在Doppler中,用户可以创建对经常使用的机密的引用,并在某些情况发生变化时通过Slack和Microsoft团队接收警报。
这使它成为合作的完美工具,因为在添加秘密后,您的团队和他们的应用程序立即拥有它,这是一个宝贵的时间节省,因为您可以通过创建对多普勒中经常使用的秘密的引用来自动化整个过程。当它们需要更改时,您只需更新一次。
总结
选择一个最适合您需求的平台工程工具并不容易。成本、技能、特性、UI/UX等因素在为您的业务选择合适的工具时起着决定性的作用。最好的选择不是只使用一种工具。相反,使用适合您需要的工具组合。
- 点赞
- 收藏
- 关注作者
评论(0)