平台工程是指构建内部工具和流程,以赋予开发人员更多的自主权。开发人员可以使用提供的服务执行自助操作,简化复杂的任务,例如搭建 staging 环境或将部署推进到生产环境。
平台团队的主要职责是构建和维护一个内部开发平台(IDP),该平台能够自动化和统一软件交付的整个生命周期。IDP中的门户允许开发人员查找和发现可用的服务,而不必深入了解其内部实现细节。这不仅提高了开发人员的生产效率,同时确保了平台团队可以集中管理安全和合规性要求,以保护基础设施。
自己构建IDP通常需要集成多种工具,包括CI/CD、IaC和可观测性工具,以及支撑平台本身的控制层面。在这篇文章里,我们将介绍20种顶级平台工程工具,来帮助加快您的IDP交付。
平台工程是做什么的?平台工程 是一个新兴的学科,专注于利用集中的工具来实施 DevOps 的最佳实践。它通过创建自助服务操作来促进开发人员的自主性,让开发人员更加自由,这些操作由平台团队创建并维护,而开发人员可以利用这些操作简化他们的工作流程。
平台工程团队需要整合多种不同类型的工具以构建一个有效的平台。他们负责评估DevOps领域,确定平台应当为开发人员提供的功能,并实施能提供所需功能的解决方案。
该平台的覆盖范围应涵盖DevOps的整个生命周期,从基础设施的搭建与配置到应用部署、监控以及基础设施管理。
选择平台工程工具时应该注意什么呢?
平台工程是一个快速增长的领域,有很多强大的工具可供选择。这可能会让你难以决定哪些选项最适合你的工作流程,但一个不错的开始方法是评估以下关键特性:
- 与其他平台无缝对接: 平台用于连接不同的工具和应用,因此您的IDP组件应该可以轻松地使用API和webhooks相互集成。
- 简单的用户体验: 内部开发者平台旨在简化和加速DevOps工作流程,并支持开发者自助服务。为此,工具需要提供易于使用的用户体验,让开发者易操作,平台团队易管理。
- 由平台团队轻松扩展功能: 可以通过添加新功能进行扩展的工具可以为您的工作流程增加灵活性,并有助于规避供应商锁定和数据孤岛的风险。
- 清晰的安全和合规控制: 选择内置了安全和合规管理功能的工具,有助于保护您的基础设施并降低风险暴露。
你也需要确保你选择的工具确实能帮助实现你的平台工程目标。设定清晰的成功指标,这样你就可以知道你的投资是否得到回报,比如通过衡量部署频率、变更前置时间、开发人员满意度和留存率的变化。那些未专门设计为IDP一部分的工具可能不会带来你预期的正面效果。
《顶级平台工程工具前20名》这里是我们挑选的20款当前最热门的平台工程工具指南。这些工具包括我们最喜欢的和网络上很火的工具,不过,如果你没找到合适的工具,网上还有很多其他好选择。
1. 太空发射Spacelift 协调你的 IaC 工具,包括 Terraform、OpenTofu 和 Ansible,帮助你快速部署安全、成本效益高且可扩展的基础架构。它旨在为开发人员提供安全的自助服务访问基础设施资源,同时让平台团队能够精确控制安全、合规和配置。
Spacelift 允许你将所有的 IaC 工具统一在一个自动化的流程里。你可以直接从 Git 拉取请求中管理基础设施的变更,即使团队成员对 CI/CD、IaC 和云部署这些概念不太了解,也能做出贡献。平台团队可以使用 Spacelift 配置精确的安全策略,限制开发人员的行为,从而在自主性、便利性和控制之间找到一个灵活的平衡。
2. 后台区后台框架是一款流行的工具,用于构建身份提供程序(IDP)的基础。它允许您创建一个服务门户,开发人员可以通过统一的接口独立发现和使用服务。
由 Spotify 开发的 Backstage 是一个高度可扩展的开源解决方案。你可以轻松编写新的组件,并将它们加入服务目录,并添加社区插件来整合 Backstage 和其他系统。然而,初始设置较为复杂,因为需要你自己部署和配置框架。
Kubernetes
Kubernetes(Kubernetes)是最受欢迎的容器编排平台。它允许你部署和扩展应用规模,在生产环境中运行容器化应用,具有可靠的容错性。
Kubernetes 是托管 IDP 的理想平台。它允许你单独扩展平台的各个组件,并管理整个集群的服务发现和负载均衡。Kubernetes 集群还可以通过 RBAC、多租户命名空间和基于策略的安全控制等功能来管理你的应用环境,从而安全地为开发者提供访问权限。
4. Crossplane注:Crossplane是一个用于多云资源管理和自动化配置的开源项目。Crossplane是一个开源的CNCF支持框架,用于创建云原生平台的控制平面。它允许你通过声明式的API和可配置的前端来编排你的应用及其基础设施,而无需编写复杂的定制代码。
一旦安装在 Kubernetes 集群中,Crossplane 提供了一组自定义资源,用于管理您在其他云账户和服务上的基础设施资源。这意味着您可以利用熟悉的 Kubernetes 经验来控制集群外的资源,简化平台管理。
5. 基础设施即代码/OpenTofuTerraform 和开源项目 OpenTofu 代表了基础设施即代码(IaC)领域的领先方法。使用一种简单且声明式的配置语言,你可以在所有主要的云服务商和容器管理平台上配置和管理基础设施资源。
在IDP的环境中,Terraform最常被平台团队内部使用来实现基础设施管理的流程。例如,可以创建一个自助服务操作,让开发人员通过点击一个按钮启动新的暂存服务器实例,该实例基于预设的Terraform配置。
6 人类技术Humanitec 是一个流行的 SaaS 平台,用于构建大型企业的内部开发者平台。该服务包括用于操作 IDP 的全套功能,包括一个基于图形的后端,可以连接您的工具,以及一个面向开发者的友好门户界面,使您能够访问服务目录。
Humanitec 不仅包括一套强大的安全、管理、成本控制和报告功能,确保平台工程师能够紧密控制开发人员的行为。
7. 网络端口Port 是一个内部开发者门户,提供了一站式服务,提供一个简单的接口,用于托管自助服务、自动化流程、仪表板和表单。平台团队可以利用 Port,让开发人员轻松访问预先构建的自动化工作流,所有内容一目了然。
Port 是一个可扩展的平台,包括涵盖了与众多 DevOps 解决方案的集成。它还内置了报告和分析功能,提供了服务采用和使用的透明度,帮助平台工程师了解哪些服务最受开发人员欢迎。
💡 你也许也会喜欢:
8. 库比亚Kubiya 是一个运营平台,利用 AI 自动化工作流程,让开发者更自主。开发者可以使用 Kubiya 发起任务并通过纯文本请求帮助。它旨在为开发者提供一个 AI “伙伴”,支持他们与平台服务的互动。
Kubiya 包含内置的审计日志和安全策略,能帮你确保持续符合规定。它可以部署到你自己的 Kubernetes 集群,让你完全掌控平台和环境。
9 Qovery (一个平台)Qovery 是一个用于 DevOps 的自动化平台,旨在便于开发者自助访问环境资源。开发者可以轻松启动部署,克隆现有环境,并与数据库和 API 网关等资源交互。
Qovery 支持各种不同的接口类型——包括 Web 界面、命令行界面 (CLI)、API 以及编程语言客户端库,并且集成了超过 100 种原生工具和服务。当你主要使用 Kubernetes 时,并希望使用一个平台来管理所有开发任务时,Qovery 是一个很好的选择。
- 网址: https://www.qovery.com 。
GitPod 是一个开源工具,用于标准化开发者的环境配置。它自动启动环境来构建和测试更改,让开发人员能高效工作在任何机器上。
将 GitPod 添加到您的 IDP 可以让开发人员的体验更顺畅,这样新贡献者就不需要手动配置环境就能开始工作了。
该工具是开源的,可以在您自己的云账户中自行托管,并支持与其他平台的安全地集成,让开发人员可以高效地与Kubernetes集群、数据库和基础设施组件等资源进行互动操作。
第11. KratixKratix 是一个开源框架,专门设计用于满足平台工程师创建身份提供者(IDPs)的需求。它具有可组合的架构,简化了开发人员访问资源的自助服务流程。Kratix 还自动化管理平台组件的整个生命周期任务,并包含基于管道的工作流系统。
Kratix 成为了你的 IDP 的基础,让你可以轻松实施开发人员交互的内部流程。作为一个框架,开始时需要做很多自定义调整,但它提供了灵活性和强大功能的完美结合。你可以连接诸如 Backstage 和 Port 等流行的开发人员门户解决方案,以便让开发人员方便地访问你的 Kratix 服务。
12. 运行级别OpsLevel 是一个内部开发人员门户,允许您连接其他工具,形成统一的服务目录。它提供自助访问标准化资源库,并配备一键操作按钮(如创建资源等)。
OpsLevel 通过自动识别您当前技术栈中的组件,缩短了设置时间,从而减少了发布服务所需的繁琐操作。
13. 阿耳戈船员Argonaut致力于简化从Git仓库部署新应用到Kubernetes集群或云提供商的过程,并且开发人员可以轻松地通过中央仪表板监控这些操作流程。
Argonaut 包括自动伸缩、健康状况检查以及可以在不同环境中重复使用的可重用管道的支持,同时,平台团队可以从中受益于集成的监控和成本管理能力。
14. 兔壳 (BunnyShell)BunnyShell 是一个平台,用于通过让开发人员按需启动新的预配置云环境来自动化开发流程。它还简化了创建瞬时测试环境的流程,包括与 Git 提供商的集成,以便在拉取请求合并前预览更改。
BunnyShell 跟踪与您的环境配置相关的所有成本,并生成指标、审计日志和报告,以揭示工程团队的表现。该平台提供云端托管和本地部署两种版本的服务。
第十五条 詹金斯Jenkins 是一个历史悠久的自动化服务器,经常用来托管 CI/CD 流水线。它拥有强大的分布式架构和灵活的插件体系,便于与其它 DevOps 工具和服务简单集成。
Jenkins 让平台团队能够用简单的配置语言创建强大的流程。您的身份提供程序(如 IDP)可以使用 Jenkins 来实现开发人员通过门户访问的工作流,例如,启动 Jenkins 流水线来测试、构建和发布代码更改。
- 牛仔
Rancher 是一个 Kubernetes 管理解决方案,提供了一个全面的平台来管理和操作您的集群及其工作负载。它帮助您以更少的管理开销来实现基于 Kubernetes 的 IDP。
(注:IDP 通常指 Identity Provider,即身份提供方,在中文语境中可以直接保留其英文形式或根据具体需求翻译为“身份提供方”。此处保留英文形式。)
你可以使用Rancher来管理你的集群组,并授予开发人员安全地访问部署应用程序、测试变更和访问生产环境的权限,以便更好地测试和部署。Rancher支持完整的多集群管理,具有集中管理的用户身份和安全策略,从而更容易确保所有集群都正确配置。
17. 大脑皮层Cortex 是一个内部开发者的门户解决方案,它为开发者提供了一个全面的视图。在 Cortex 仪表板中,你可以找到服务目录、一键操作项以及每个开发者所处理的工作(例如 GitHub 上的问题和拉取请求)的可见的工作状态。
Cortex 为平台工程师提供了对平台使用情况及开发人员表现的全方位洞察。您可以配置视觉评分卡来跟踪与 KPI 的对齐并识别潜在风险。详细的报告可以帮助您汇总来自不同来源的数据,跟踪趋势并深入探究根本原因。
18. 普罗米修斯普罗米修斯是其中一个最流行的可观测性(Observability)平台。它是一个分布式的时间序列数据库,用于存储和分析度量数据。它包含一个强大的内置查询语言,支持SQL查询。它支持与Grafana的集成,以便于创建图形化的仪表板。你可以使用Grafana将数据可视化为图形化的仪表板。
普罗米修斯指标导出功能受到许多流行平台工程工具和服务的支持。将普罗米修斯与您的身份提供商(IDP)集成,可以轻松地从您的堆栈中收集数据,从而更有效地监控操作。您还可以利用普罗米修斯来监控您在IDP中创建的服务,提供有关开发人员采用和使用情况的洞察。
第19. LogstashLogstash,作为Elastic Stack的一部分,与Elasticsearch和Kibana一起,是一种用于摄入和转换数据的管道,常用来处理日志文件。它也是一个值得包含在您IDP中的组件,这样,开发人员和平台团队可以更高效地处理由您的应用、服务和基础设施组件生成的日志,从而更有效地调试报告的问题或发现的问题。
- 网站: https://www.elastic.co/logstash :(Logstash 官网)
Argo Workflows 是一个用于执行工作流的引擎,它允许你在 Kubernetes 集群内部运行并行作业和流程。你可以用它来实现包含多个步骤的复杂工作流,前一个作业的输出会成为下一个作业的输入。工作流还支持通过 DAG 建模依赖关系,来优化作业启动的时机。
使用 Argo Workflows 可以更轻松地自动化开发流程,如批量数据处理、机器学习模型训练和多步骤基础设施配置步骤。您可以在特定时间安排工作流运行,或者将 Argo 与开发人员门户解决方案集成,让工程师随需触发工作流。
要点平台工程是指创建内部开发平台(IDP):统一、标准化和自动化软件交付的整个生命周期。它整合不同的工具和流程,为开发人员提供自助服务功能,从而增强自主性,提升交付效率。
本文将盘点了20款构建您的IDP及其所含开发者服务的顶尖工具。您可能需要结合多个工具来实现平台所需的所有功能,例如开发者门户、CI/CD服务器、IaC工具和可观测性工具等。这样可以确保您的平台全面覆盖端到端的DevOps工作流程。
寻找一种简单的方式来配置、管理和治理您的基础设施吗?试试我们的平台 Spacelift,该平台使用 Terraform、OpenTofu、Ansible 等工具来管理资源。您可以使用 Spacelift 创建一个身份管理方案,方便开发人员访问基础设施,同时持续执行合规政策,确保符合平台团队的要求。今天就免费开始使用吧,或预约与我们工程师的演示。
由James Walker所写。最初发布在 spacelift.io (原文链接)。
共同学习,写下你的评论
评论加载中...
作者其他优质文章