平台工程是一种为软件开发构建和管理内部开发人员平台的实践,正在迅速普及。它的承诺是什么?与传统开发和 DevOps 方法无缝集成并对其进行优化,解决它们之间的关键差距。
然而,平台工程的兴起导致了工具集的爆炸式增长,每个工具集都声称能解决企业的所有问题。遗憾的是,只有极少数工具能实现这一目标。让我们来看看七款真正能解决问题的平台工程工具。
01 助力平台工程师的七种工具
以下是一些促进平台工程无缝采用的工具。
OPA 和 Rönd
OPA (https://www.openpolicyagent.org)是一种开源通用策略引擎,旨在简化和统一跨不同软件和系统的安全策略管理。OPA 使您能够利用高级语言Rego的表达能力,以代码的形式定义和执行策略。
该策略引擎为 Rönd 等解决方案提供支持, Rönd (https://rond-authz.io/docs/getting-started)是一个轻量级开源 Kubernetes 容器,旨在通过简单的安全策略保护您的 API。
通过利用 OPA 作为安全引擎来验证授权规则,并利用 Rego 来编写安全策略,Rönd 超越了其作为授权机制的角色。它通过提供基本构建块:角色、权限和用户组,使您能够构建强大且灵活的基于角色的访问控制(RBAC) 或基于属性的访问控制(ABAC) 解决方案。
通过缩小策略定义和执行之间的差距,OPA 和 Rönd 简化了安全管理并增强了应用程序的整体安全状况。
然而,保护应用程序的安全不仅仅是定义谁可以访问什么,还包括保护解锁访问的密钥和凭证。
HashiCorp Vault
在过去的几十年里,不同规模的网络攻击已使大型企业损失了数百万美元。不断发生的大量泄密事件证明了对强大数据安全的不可否认的需求。
企业传统上使用密码、加密密钥和证书来控制敏感信息的访问。然而,这些 "认证信息 "往往没有一个集中的归属地,而是分散在不同的系统中。这就给追踪谁有权访问哪些信息带来了挑战,往往会使敏感数据处于易受攻击的状态。
这就是 HashiCorp Vault(https://developer.hashicorp.com/vault)的用武之地。这是一个基于身份的秘密和加密管理系统,旨在简化秘密的存储、生成、加密和安全传输。通过身份验证和授权,Vault 可确保只有经过授权的个人才能访问他们有权访问的信息。
Vault 在一个集中式平台上安全地存储和管理各种机密,包括密码、API 密钥、SSH 密钥、RSA 令牌和一次性密码 (OTP)。Vault 的另一个关键功能是动态秘密——可自动更新的短期凭证,可最大限度地减少暴露。
Vault 还支持令牌、轻量级目录访问协议(LDAP)和多因素身份验证(MFA)等多种身份验证方法,提供了一个灵活、适应性强的安全框架。其加密功能不仅限于存储,还能在传输和静态时对数据进行加密。
访问控制和秘密管理固然重要,但还远远不够。要让用户真正放心,持续监控至关重要。这意味着要实时了解安全基础架构的健康状况和性能,以便在问题出现之前发现并解决潜在问题。这就引出了经典的监控和可视化组合 Prometheus 和 Grafana。
Prometheus 和 Grafana
Prometheus(https://prometheus.io/) 擅长从应用程序、服务器和云服务等各种目标收集实时数据。这些目标通过专用的 /metric 路径显示关键指标,使 Prometheus 能够评估系统健康状况和性能。
但收集数据只是第一步。可视化专家 Grafana(https://grafana.com/)将 Prometheus 存储的复杂指标转化为可操作的见解。Grafana 使团队能够构建交互式 Dashborads,将原始数据转化为易于消化的可视化数据,从而揭示趋势和潜在问题。
Grafana 和 Prometheus 一起共同组成了一个强大的团队。Prometheus 负责收集和存储实时指标,而 Grafana 则负责以清晰、有洞察力的方式展示这些指标。这种协作使团队能够快速识别性能问题、跟踪趋势并保持最佳的系统健康状况和资源利用效率。
kube-green
kube-green(https://kube-green.dev/) 是一个开源操作器,旨在降低 Kubernetes 集群对环境的影响和成本。这个 Kubernetes 附加组件能自动关闭未使用的资源,最大限度地减少能源消耗和碳排放。这种 “绿色” 方法与科技行业日益增加的可持续发展努力相一致。kube-green 由 Mia-Platform 的 Davide Bianchi 开发,是 CNCF Landscape 的一部分。
除了环保优势,kube-green 还能帮您省钱。许多云提供商使用现收现付的支付模式,因此通过智能关闭未使用的资源,kube-green 可以显著降低云账单。据采用者报告,kube-green 可节省 30% 到 40% 的费用,巩固了 kube-green 作为资源使用、能源消耗和财务资源的强大优化器的声誉。
kube-green 可与 Kubernetes(最流行的容器编排平台之一)无缝协作。这样就能与流行的工作流程和 CI/CD 流水线顺利集成,从而在不中断当前设置的情况下轻松获得其优势。
Git Provider
如果你接触过软件开发,你几乎肯定接触过流行的分布式版本控制系统 Git 及其众多提供商。这些平台的核心是托管 Git 仓库,让团队能够有效协作和管理软件项目。
但 Git Provider 提供的不仅仅是协作和版本控制。它们已成为现代软件工程中不可或缺的工具,具有简化开发和提高质量的功能。
例如,GitHub 利用其内置的 CI/CD 解决方案 GitHub Actions 自动完成代码构建、测试和部署,在提高质量的同时加快开发进程。同样,GitLab 在提供 CI/CD 流水线的同时,还提供问题跟踪、项目管理和访问控制功能,从而在平台内实现全面的项目管理。
除了这些主要的功能之外,其他供应商也带来了独特的优势。Bitbucket 与 Jira 紧密集成,可实现无缝项目管理和问题跟踪。GitKraken 和 SourceTree 注重用户友好的图形界面,让不太习惯使用命令行的开发人员也能更方便地进行版本控制。Git Provider 简化了整个开发和交付流程。它们使团队能够采用敏捷实践,加快交付速度,并通过高效、协作的工作流程保持高质量的代码。
Walrus
Walrus(https://github.com/seal-io/walrus),由 Seal 软件开发并推出的开源应用管理平台,致力于降低应用部署与运维管理的技术门槛。该平台采用直观的用户界面和优化的流程设计,使用户能够迅速掌握并高效地执行任务。此外,Walrus 对多云及混合云架构的深度支持,为企业提供了一个灵活且可扩展的资源管理与应用部署框架,满足了现代企业对 IT基础设施多样化的需求。
Walrus 的基础设施即代码(IaC)功能是其核心竞争力之一。通过代码定义基础设施,Walrus 确保了环境配置的一致性和可重复性,同时提升了部署过程的精确性和效率。这种声明式管理方法不仅简化了配置工作,还加强了版本控制和团队间的协作。同时支持 Terraform 、OpenTofu 等 IaC 工具作为 deployer ,并支持直接导入Terraform 模块。
平台内置的资源类型和模板库,经过精心设计以适应广泛的应用部署场景,显著减轻了用户的配置负担。Walrus 同时支持用户根据特定业务需求自定义资源和模板,提供了必要的灵活性和可定制性。
针对受限网络环境,Walrus 提供了专门的部署优化方案。通过内置对 Gitee 的支持以及 Hermit Crab 加速服务项目,Walrus 确保用户即使在网络受限的条件下也能实现高效的部署流程。
Walrus 的易用性和全面的文档资源,为用户提供了快速学习和掌握平台的能力。无论是初入行业的新手还是资深的开发者,都能从 Walrus 提供的专业平台工程解决方案中受益。凭借这些优势,Walrus 成为企业应对日益增长的IT复杂性、提升应用交付效率和降低管理成本的有效工具。
Mia-Platform
Mia-Platform(https://mia-platform.eu/)使企业能够构建和管理其内部开发人员平台 (IDP)。IDP 是工具、服务和流程,可通过抽象化底层基础设施的上下文和复杂性来加速开发流程。这种抽象可减少负责交付产品的开发人员的认知负荷,最终改善开发人员的体验。
Mia-Platform 还通过提供即用组件软件目录(如 Payment Integration Hub 和 Mia-Platform Fast Data)来支持可组合开发。该目录使开发人员能够快速组装功能齐全的应用程序,而无需重头开始研发。
02 平台工程工具链的注意事项
对于任何希望采用平台工程的企业来说,这些工具都是一个良好的开端,但并不存在放之四海而皆准的工具链或解决方案。要做出明智的决定并选择符合您的要求和目标的工具,请考虑一些关键因素,以确保无缝集成和最大效果:
-
安全性:平台工程工具的安全性不可或缺,尤其是在处理敏感数据时。有些第三方解决方案是未知的——看不到它们的内部安全功能,因此也就不知道它们是如何工作的。为了安全起见,请研究并选择优先考虑强大安全性的工具,以保护您的数据。寻找具有强大加密、漏洞扫描和安全访问控制等功能的工具链。
-
兼容性:选择能与现有系统和基础设施无缝集成的工具,以避免麻烦。不兼容的工具会形成孤岛,扰乱工作流程,导致开发和部署延迟。为提高兼容性,应选择在不同环境中得到广泛应用的工具。
-
供应商锁定:尽可能采用开源工具,避免供应商锁定。这样可以减少对特定供应商的依赖,并允许您根据业务逻辑和需求的变化对平台进行定制和调整。如果您必须选择封闭源代码工具,则应避免那些将您困在专有生态系统中的工具;保留多个供应商选项,以实现冗余和风险管理。
-
可测量性:选择专为可测量性设计的工具,以便随着用户群和数据量的扩大,有效管理当前和未来的需求。此外,要确保工具的定价模式允许资源优化,这样使用量的增加才不会造成意想不到的财务负担。
-
可扩展性:支持高效可扩展性的另一个特点是可扩展性。选择可根据团队需求无缝集成新工具和服务的工具。
03 平台工程的发展方向
平台工程改变了企业构建和交付软件的方式。它不仅关系到速度和安全性,还关系到让开发人员能够以更少的投入完成更多的工作。
虽然它曾经是一项战略性投资,如今已成为软件开发的根本性转变,为敏捷性和创新性的未来铺平了道路。
但平台工程的发展远非一成不变。虽然这些工具为革命性的变革铺平了道路,但未来还有更大的可能性。您可以期待通过人工智能深化自动化和智能化,使平台能够独立学习和适应。此外,使用无代码工具构建平台的民主化也即将到来,这将使各种技能水平的开发人员都能为平台的发展做出贡献。这一未来将为软件开发带来更高的效率、灵活性和创新性。
虽然平台工程的未来充满潜力,但务实地对待它也很重要。仔细评估团队的具体需求,选择能够直接满足这些需求的工具。通过采用灵活和以解决方案为导向的思维方式,您可以自信地利用平台工程。