使用CROSSPLANE、K8S和门户实现驱动程序开发人员自助服务

开发者门户和控制平面提供基础设施管理功能和一个易于使用的 UI,以推动自助服务操作。

译自Drive Developer Self-Service with Crossplane, K8s and a Portal,作者 Mor Paz。

目前,许多工程组织都感受到了真正的痛苦:在运营方面,工程师们正试图疯狂地管理基础设施,与此同时,使用基础设施的应用程序开发者越来越多地被要求更多地了解基础设施,因此面临着认知超载。最终结果是什么?速度慢。

造成这种痛苦的原因是复杂性:首先,Kubernetes作为云计算的实际操作系统出现,它需要大多数开发者根本不具备的深入技术知识,其次,开发者正在众多工具和框架的涌入中苦苦挣扎,而组织正在使用这些工具和框架。

为了解决这个问题,许多团队可能尝试使用 TicketOps 来抽象并消除开发者需要掌握基础设施。但是,这并不适用于第 2 天运营。虽然它最初可能会简化开发者的工作,但它可能导致运营团队成为瓶颈。

这是因为他们可能需要几天到几周的时间才能响应供应请求,因为他们需要确保请求符合安全要求、政策、版本问题等。

因此,运营仍然具有巨大的管理复杂性,并且开发者因此而延迟。归根结底,开发者只想开发功能并改进他们正在开发的产品,而 DevOps 工程师希望能够为他们提供一种无缝地执行此操作的方法。

是时候建立一个平台团队了

难怪 Gartner 认为,到 2026 年,80% 的工程组织将建立一个平台工程团队。这家分析公司认为,平台团队将作为可重复服务的一个内部提供商,为应用程序团队提供服务。换句话说,底层的内部开发者平台必须能够提供真正的开发者自助服务,以便开发者能够一次又一次地执行操作,而平台工程师能够设置护栏,以确保他们能够自主且安全地执行此操作。此类操作包括基础设施供应。

这就是内部开发者门户网站的用武之地。它充当一个单一的玻璃窗格,将构成内部开发者平台的所有工具汇集到一个地方。它提供了一个抽象视图,赋予开发者自主权,并为平台工程师提供一个地方,让他们可以在适当的标准下安全地向开发者公开功能和视图,以提高开发速度和开发者体验。

平台需要一个统一的控制平面

但是,平台工程师也希望对他们的平台有一个单一的控制和管理点,以便他们能够一致地应用策略、安全和其他控制。想想像 AWS 和 GCP 这样的云服务提供商能够向最终用户提供服务的方式,因为它们是围绕一个统一的控制平面设计的。这提供了易于使用的 API,同时为其自己的运营商自动化管理任务,以便他们能够支持这个庞大的平台。

这正是您希望在内部开发者平台的底层获得的——一个建立在云之上的统一控制平面。它应该使您能够一致地管理所有内容,并以 API 的形式向最终用户提供服务,他们可以直接使用这些 API 或使用这些 API 为强大的开发者门户界面提供支持。

平台的理想配方是一个内部开发者门户网站,它配备了一个软件目录,该目录利用 GitOps 来控制与受控制平面支持的云原生平台通信的 CD,该控制平面具有基础设施管理功能。

那么,平台和门户网站如何协同工作来公开对开发者和平台工程师都有益的自助服务功能呢?

在这里,我们探讨了将Port用于您的门户网站需求以及由 Crossplane 支持的Upbound用于您的控制平面需求。

控制平面

首先,我们可以查看 Upbound 控制台,它向我们展示了由 Upbound 管理的控制平面。我可以查看我的控制平面是否已准备就绪,以及有关控制平面使用的配置、版本和 AWS 提供商的详细信息,以直接与我的 AWS 云帐户进行交互。这是 Upbound 的设置,Upbound 将通过配置和管理云提供商托管的资源在后台完成繁重的工作。

但对于开发人员来说,这些信息并不是必需的。他们不需要了解有关控制平面和 Kubernetes 的详细信息——他们只需要一个简单易懂的 UI,以便他们可以看到自己的资源。内部开发人员门户提供了此抽象 UI,并且还可以使平台工程团队受益。

在主页上,平台工程师将能够看到请求新集群的操作。在触发该操作之前,他们可以查看软件目录中已有的内容,包括他们的 Upbound 控制平面以及有关它的更多详细信息,包括它管理的所有集群和它拥有的所有集群请求。

问题是:为什么它拥有所有这些集群和集群请求?

为了回答这个问题,我们可以查看“builder”部分,向您展示 Port 后端的工作原理。这是平台工程师用来配置开发人员使用门户的方式。

您可以在上面看到三个蓝图。蓝图是一个完全可配置的数据对象,一个模式,您可以对其进行建模以适合您想要表示的资产。因此,这里有三个蓝图:Upbound 控制平面、Amazon Elastic Kubernetes Service (EKS) 集群和 EKS 集群请求。

如果我们关注用户请求一个新的 EKS 集群,我们可以考虑为此进行一些自助服务操作。

首先,我们将了解创建新集群的两种不同方法。

新建集群:选项 1

第一种方法适用于想要创建新集群的平台工程师。他们只需转到自助服务中心并单击“创建新集群”操作。然后,他们将选择自己的控制平面,并输入所有输入(名称、节点大小、节点配置)。此表单可以由平台工程师完全配置。这意味着:

  • 它将使开发人员的生活更轻松,因为他们不必考虑输入。
  • 平台工程师可以通过设置护栏来确保操作安全并符合政策和标准,例如验证开发人员只能输入合法值。

一旦工程师填写完表单,他们就可以单击执行,Port 将创建一个新的自助服务操作。此自助服务操作将启动 GitHub 工作流,该工作流将为新集群打开一个拉取请求。

在这种情况下,由于管理此操作的是平台工程师——并且他们已经设置了所有输入和工作流——自助服务操作将自动创建该拉取请求并立即将其合并。这将同时显示在门户中和 Upbound 中的新集群中。记住这个新集群,因为我们稍后会回来检查它的进度。

新建集群:选项 2

开发人员可能需要一个新集群,因为他们正在开发一个新功能。他们可能需要诸如容器之类的资源来运行数据库或缓存,并且他们希望自己的应用程序与之一起运行。如果平台工程师公开了请求新集群的操作,则开发人员可以导航到自助服务中心并单击“请求新集群”。他们可以再次填写表单,并将节点大小和节点计数等输入保留为默认值,因为它们对开发人员来说可能意义不大。如果需要,平台工程师可以在以后解决此问题。然后,他们可以单击执行,平台工程师将请求并审查集群,如我们在下一部分中所见。

EKS 集群请求

继续进行 EKS 集群请求。这是平台工程师跟踪他或她对资源的所有请求的一种方式。这可以修改为 Upbound 可以为您管理的任何类型的云资源,因此它不仅限于 EKS 集群。

此页面的视图可以扩展和自定义,以便它可以同时为平台工程师和开发人员服务。

创建新请求时,它将使用两个关键组件执行。第一个是新资源的拉取请求——在本例中,是 EKS 集群。

第二个组件是我们在此处看到的这个新的集群请求,其状态为挂起。

作为一名开发人员,这可以帮助您了解最新情况并了解您的请求发生了什么,以及在批准请求并触发自动配置步骤之前是否仍在等待某些内容。

作为一名平台工程师,您可以看到哪些请求正在等待批准,并决定是否应该批准它们。

现在,如果我们查看之前的集群,我们已经可以看到一些资源开始达到就绪状态,这意味着我们将在几分钟内拥有一个新集群。一旦开发人员得知他们的请求已获批准,他们就知道在 10 到 15 分钟内他们将拥有一个正在运行的集群,并且能够开始处理他们的新功能。

个性化视图

当所有这些信息都存在于软件目录中时,工程师、经理和开发人员都可以使用它。

以下是服务仪表板,它显示了门户中拥有的服务(主要是 GitHub 存储库和微服务)。您可以看到,我在这里添加了一些信息:右侧显示了我拥有的 EKS 集群数量,该数量直接取自我们已部署并通过 Upbound 管理的 EKS 集群。

记分卡

为了更进一步,我还配置了 EKS 集群蓝图上的几个记分卡。这使我能够创建一个 EKS 就绪仪表板,向我展示我的所有集群以及它们如何根据组织配置的标准执行。在此示例中,两个集群处于青铜标准,一个处于白银标准,因此我可以看出哪些集群正在失败以及集群出了什么问题,并且我可以了解如何提高它们的排名以确保它们全部达到标准并做好生产准备。

内部开发人员门户与控制平面相结合,可以帮助您轻松管理基础设施,并且易于使用的 UI 可以共同推动开发人员自助服务操作。

这种组合可以实现:

  • 平台工程师、开发人员和经理可以更好地查看对他们重要的事项。
  • 减少开发人员的认知负担和平台工程师的时间。
  • 克服复杂性。
  • 提高开发人员效率并为他们提供更高的可见性。
  • 更好的开发人员体验。

在此处了解有关创建自助服务操作的更多信息网络研讨会

通过更好的开发人员体验,查看我们关于改进开发人员工作流的博客。 [

本文在云云众生https://yylives.cc/)首发,欢迎大家访问。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容