[Infrastructure as Code (IaC)] 为什么 Crossplane 如此令人兴奋
为什么 Crossplane 如此令人兴奋
发表于 2021 年 7 月 7 日,星期三
作者 | Matthias Luebken
译者 | Blogbin
我刚刚以产品经理的身份加入 Upbound,能成为这一旅程的一部分,我感到无比兴奋。我真的相信 Crossplane 提供了一些独特的功能,可以通过利用云服务使团队更具创新性和生产力。对于 Crossplane 专家来说,这不是新闻。对于刚接触 Crossplane 的人,我希望这篇文章能给您增加一个视角。
如果您现在构建软件,您可以从海量的云服务中进行选择。仅 AWS 每个月就不断为其 200 多项服务添加新服务,其他云提供商也在跟上。如果您想您的软件开发有竞争力,您需要利用这些服务。设置和管理您的消息队列不会为您的产品增加任何价值。选择一个不是最佳工作工具的平庸数据库会使您的团队变慢。 – 您需要确保您的团队能够利用当前云时代提供的优势!
但是你如何处理这个问题?将云提供商帐户分发给开发人员,并让他们选择他们想要的?虽然这听起来很有趣,但对于几乎所有的软件组织来说都是不现实的,而且由于开发人员会被各种选择淹没,所以这种方案不理想。这一挑战的答案是提供这些服务的一个子集来满足您的特定需求。通常,这是在平台团队中协作完成的,并在开发人员平台中体现出来。
开发者平台应该这样做
“开发人员生产力平台越来越被认为是管理工程团队认知负荷和缩短新功能上市时间的一种方式,”Thoughtworks 说。 Crossplane 专为构建平台而设计,与其他方法相比具有一些优势。以下是我认为特别重要且 Crossplane 做对的四件事:
1. 对开发人员友好的 API
首先要做的是 API。平台构建者需要一种方法来设置护栏并提供开发人员可以轻松使用的 API。由于 Crossplane 基于 Kubernetes 构建,因此开发人员创建资源来请求特定服务也就不足为奇了。例如,要配置一个平台团队定义的 20 GB Postgres 实例,开发人员将执行一个简单的 kubectl apply
命令应用以下 yaml
文件:
1 | apiVersion: database.example.org/v1alpha1 |
对于 Kubernetes 开发人员来说,这很简单。这还有一个额外的好处,那就是我们可以无缝融入庞大的 Kubernetes 工具生态系统。尤其是在当前流行的 GitOps 运动中,这使得非 Kubernetes 开发人员也可以使用它。
2:强大而灵活的组合
此 API 背后的实现可能相当复杂,可能涉及设置正确的云提供商资源,例如权限、网络、VPC 和数据库实例。这让我想到了一个伟大的开发者平台的第二个重要特征:它需要强大并允许灵活的实现。
Crossplane 中的基本构建块是来自云提供商的托管资源。好消息是 Crossplane 包括对 AWS、Azure、GCP 和阿里巴巴的支持,并且社区正在增加对许多其他提供商的支持。
这些基本构建块(绿色的托管资源)作为 Crossplane 组合(黄色的组合资源)拼接在一起,并为提供给开发人员的 API 提供实现。该模型在 Crossplane 资源模型 (XRM) 中形式化,扩展了 Kubernetes 资源模型 (KRM)。可以在专门的博客文章中了解更多信息。这里的关键是平台构建者可以为不同的目的构建不同的组合,而开发者可以专注于它请求的服务的属性。顺便说一句:这些组合也可以与遗留或本地服务一起使用,这对于任何处于某种转型路径的团队来说都是至关重要的。
3:在 K8s 的帮助下生产就绪
一个伟大的开发者平台的第三个特点是它需要被视为一种产品。这包括许多方面,但一个重要的方面是它以高度可用的方式运行。好消息是,这是一个已解决的问题:使用 Kubernetes,我们有一种构建和运行分布式应用程序的方法。 Crossplane 建立在此模型之上。它使用 Kubernetes 控制器和持续协调的概念来运行平台。如果有东西坏了(它会坏的),Crossplane 将检查并修复状态。您最喜欢的 Kubernetes 专家现在会说诸如 Operators 和 Control Planes 之类的东西。是的,这正是我们正在做的事情。 – 听起来像是我的博客中的另一篇待办文章来解释这一切。 🙂
4:开源和开放治理
最后一个但并非最不重要的特征是平台需要是开源的。 由于开发人员平台将成为您的软件交付的重要组成部分,因此您需要确保您的投资安全。 Crossplane 不仅是开源的(Apache 2.0),而且作为 CNCF 的一部分,它也是公开管理的。
总结
这些是我目前对 Crossplane 的主要特点,在我看来,这使其成为构建开发者平台的令人兴奋的解决方案。 我渴望更深入地了解社区并了解其他观点。 如果您今天使用 Crossplane 并想聊天,请联系我们!
信息公开:这篇文章的先前版本已发布在我的 LinkedIn 个人资料上。
参考链接
[1] Why Crossplane Is so Exciting https://www.upbound.io/
[2] Mind the platform execution gap https://martinfowler.com/articles/platform-prerequisites.html
[3] Why Crossplane Is so Exciting https://github.com/crossplane/provider-aws
[4] crossplane/provider-azure: Crossplane Azure Provider https://github.com/crossplane/provider-azure
[5] Why Crossplane Is so Exciting https://github.com/crossplane/provider-alibaba
[6] Crossplane Contrib https://github.com/crossplane-contrib/
[7] crossplane/provider-gcp: Crossplane GCP provider https://github.com/crossplane/provider-gcp
原文链接
Why Crossplane Is so Exciting https://blog.crossplane.io/why-crossplane-is-so-exciting/