平台工程是为软件开发人员创建高效生态系统的过程,帮助他们自主执行软件开发生命周期的端到端操作。平台工程旨在减少开发人员的整体认知负荷并消除流程中的瓶颈,让开发团队的体验更佳。平台工程工具通过改善开发人员体验来支持开发人员。通过消除瓶颈并减少日常摩擦来帮助开发人员完成工作,这意味着开发人员最终可以用更少的资源做更多的事情,从而提高整体周期时间和生产力。
在本文中,我们将总结出十个优秀的平台工程工具,讨论这些工具的优势以及它们如何帮助开发人员提高效率和体验。
之前的文章中我们有详细讲解过 Kubernetes 为平台工程带来的好处与优势。Kubernetes 是开源容器编排平台,它为容器提供了所需的敏捷性和应用程序生命周期管理。对开发人员来说 Kubernetes 几乎是人人都知晓的存在,因为它拥有以下三点优势:
自动化容器配置、扩展、安全性和网络
帮助开发人员隔离和打包容器集群,以便在多台机器上同时部署
允许开发人员在虚拟机和公共云上的计算节点上自动部署容器
Kubernetes 拥有高度多样化的用例、详尽的文档和大规模的社区。因此,它理所当然地成为编写容器化应用程序的开发人员的首选。该平台工程工具甚至允许您自定义 CI/CD 流水线以满足您的开发人员的需求,这意味着开发人员可以更加专注于推送和审查代码。
GitLab 是一个基于 Web 的 Git 存储库管理器,支持从规划和源代码管理到测试、部署和维护的开发过程。以下是 GitLab 的主要优势:
促进敏捷项目管理
启用详细的代码审查
在单个界面中管理您的 CI/CD 流水线
支持基础设施即代码、配置管理和容器编排的自动化
具有内置容器仓库和无缝 Kubernetes 集成
使用静态应用程序安全测试 (SAST) 测试您的组件并扫描它们是否存在漏洞
GitLab 是一个用于改进基础设施的整体包,它可以在开发的每个阶段为您的团队提供帮助,同时减少认知负担。借助此平台工程工具,您的开发人员将发挥最佳性能。
Harness 是一个专注于 DevOps 的软件交付平台,该平台与您现有的技术堆栈集成,其编排功能可以为您管理堆栈。以下是 Harness 的一些功能和优点:
注重平台安全
提供基于角色的访问控制 (RBAC) 功能、内置机密管理、审计跟踪可见性和身份验证/授权要素
包括智能 CI 和 CD 工具、云成本管理和安全测试编排等众多模块
确保高效且最佳安全的开发和部署流程
Harness 在不牺牲开发人员效率的情况下提供了极高的灵活性,这也就是为什么 Harness 进入推荐列表的原因。该工具创造了出色的开发人员体验,有助于优化开发人员的开发体验并提高生产力。
好的平台通常是建立在控制平面上的,但是构建控制平面需要编写代码,而且需要编写大量代码。借助 Crossplane,您可以在几天内构建适合您独特需求的控制平面,而无需编写棘手的分布式系统代码。
使用 Crossplane,您可以编排一切,而不仅仅是容器,从而扩展 Kubernetes 久经考验的可靠性和安全性。由于 Crossplane 与 Kubernetes 构建在相同的基础上,因此它可以与最流行的云原生工具顺利集成。
Terraform 是用于配置和管理基础设施的标准 IaC 工具,包括防火墙、网络、服务器、数据库实例和存储桶。该平台工程工具可以执行以下操作:
允许工程师创建、更新和删除基础设施资源,包括整个 Kubernetes 集群以及计算和数据库实例
因为供应商是中立的,您能够跨各种平台管理基础架构
与 Oracle Cloud、AWS、Microsoft Azure、OpenStack、Google Cloud 等集成。
根据您强制执行的策略以代码形式实现安全自动化
帮助您审核在 Terraform 中创建的资源,强化 DevOps 流程中的授权,并设置安全策略以保护主分支免受未经授权的更改
借助 Terraform,您可以集中所有基础设施,加快开发团队需要遵循的核心流程。这将会提高生产效率,团队将能够满足及时满足产品需求。关于 Terraform 的入门及进阶技巧讲解,可点击查看往期文章。
Ansible 是一种广泛应用的配置管理、应用程序部署和云配置工具。该平台可以更改配置文件、配置运行时环境、设置安全配置以及安装或更新软件。除此之外,它还能够实现以下功能:
可靠地部署多层应用程序,无需编写自定义代码
编写一个剧本作为任务执行的指导手册
运行 playbook 并通过 SSH 与远程主机通信
将 playbook 用于其他组件,包括云平台、裸机服务器、网络设备和虚拟化主机
Ansible 的平台工程工具允许您在整个工作流程中添加自动化。Ansible 可以减轻开发人员的任务,提升他们的开发体验。
Argo CD 是 Kubernetes 原生 CD 工具,当我们讨论平台工程工具时必然会提到它。它设置在 Kubernetes 集群内部,允许您将代码更改直接部署到 Kubernetes 资源。Argo CD 还支持用于生成 Kubernetes 清单的各种模板,包括 Kubernetes Kustomize、Helm Charts 和 YAML 文件。以下是 Argo CD 的三个较为突出特点:
Argo Rollouts 提供高级部署功能,包括实验、蓝/绿和金丝雀分析 - 这些功能在基本 Kubernetes 中很难实现
Argo Workflows 在 Kubernetes 中编排并行作业
Argo Events 允许您根据来自 Webhooks、S3 和消息队列等的事件触发无服务器工作负载和 K8s 对象
Argo CD 允许您定义和自动化 K8 容器,以满足团队的需求。它将加快您团队的工作流程,通过加快部署时间来降低您的周期时间。
Circle CI 一种持续集成和部署工具,允许工程团队使用智能自动化来构建、测试和部署软件。Circle CI 可以在不同的环境上运行,例如 Linux、Windows、Android 等。您可以将其配置为通过复杂的缓存、docker 层缓存和资源类有效地运行复杂的管道,以便在更快的计算机上运行。您可以使用 CircleCI 执行以下操作:
通过 SSH 连接到任何任务来调试构建问题
在 .circleci/config.yml 文件中设置并行性以更快地运行作业
使用两个简单的键配置缓存,以重用工作流程中先前作业的数据
配置自托管运行器以获得独特的平台支持
使用 orbs(可重用的配置包)与第三方集成
使用多种语言的预构建 Docker 镜像
使用 API 检索有关任务和工作流程的信息
使用 CLI 在本地访问高级工具
AWS CodePipeline 是一项 CD 服务,可自动执行发布流水线,使您能够快速可靠地更新基础设施和应用程序。它将其他 AWS 服务的功能打包到一个平台中。例如,它包括用于源代码控制服务的 CodeCommit、用于构建代码的 CodeBuild 和用于部署的 CodeDeploy。以下是一些 CodePipeline 的功能列举:
通过并行执行加速工作流程 - 多个处理器同时处理计算任务
提供对构建、测试和部署流程的高级可见性和控制
使开发人员能够查看流水线的实时状态以及有关任何警报或通知的详细信息、重新运行流水线以及重试失败的操作
一旦您对发布过程的工作流配置进行了建模,AWS 将在您每次更改代码时自动构建、测试和启动应用程序。这使您可以更轻松地管理和监控流水线,从而有助于减少团队的瓶颈。
Drone 是一个持续集成平台,允许软件构建和测试自动化。它使开发人员能够配置流水线、创建和共享插件,并为构建过程启用简单的配置。Drone 主要作为一种自动化工具集成到 CI 中,用于检查代码质量、错误、安全漏洞、缺少依赖项等。以下是 Drone 为工程师提供的一些功能:
与 GitLab、Bitbucket 和 GitHub 原生集成
如果可用的插件不能满足您的需求,您可以选择编写自己的 Drone 插件(运行代码的容器)
适用于 Docker 内运行的任何语言、服务或数据库
允许您用任何主要编程语言编写插件
借助 Drone,您可以自动化 CI 流水线,无论它基于什么语言或技术堆栈。该平台工程工具还支持高级自定义自动化,可以提高开发团队的生产力。
参考链接: