Kubernetes 能否帮助解决自动化挑战?

组织层面的自动化一直是一个难以实现的目标,但 Kubernetes 可能会改变这一切。
3 位读者喜欢这篇文章。
Tips and gears turning

opensource.com

我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时开始了我的自动化之旅。二十年后,自动化尚未完成。当我与客户和合作伙伴会面时,他们分享了团队内部的自动化成功案例,但他们也描述了在组织层面实现类似成功的挑战。

大多数 IT 组织都能够端到端地配置虚拟机,从而将以前需要四周的交付周期缩短到仅五分钟。这种程度的自动化本身就是一个复杂的工作流程,需要网络(IP 地址管理、DNS、代理、网络区域等)、身份访问管理、hypervisor、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试。哇!

满足业务对高速、可扩展性和按需自动化的需求并非易事。例如,考虑经典的网上商店或在线政府服务来申报纳税。工作负载具有需要吸收的明确定义的峰值。

处理这种负载的常用方法是拥有一个超大的服务器集群,准备由专门的 IT 专业人员团队使用,监控客户或公民的季节性涌入。每个人都想要整个堆栈的准时部署。他们希望基础设施在混合云场景的背景下运行工作负载,使用“构建-消费-丢弃”模型来优化成本,同时受益于无限的弹性。

换句话说,每个人都想要乌托邦式的“云体验”。

云真的能交付吗?

一切都还没结束,这主要归功于 Kubernetes 的设计方式。Kubernetes 的指数级普及推动了创新,取代了管理平台和应用程序的标准传统实践。Kubernetes 需要使用一切皆代码 (EaC) 来定义所有资源的期望状态,从简单的计算节点到 TLS 证书。Kubernetes 强制使用三个主要设计构造

  • 减少内部和外部组件之间集成摩擦的标准接口
  • 一种 API 优先和仅 API 的方法,用于标准化其所有组件的 CRUD(创建、读取、更新、删除)操作
  • 使用 YAML 作为通用语言,以简单易懂的方式定义这些组件的所有期望状态

这三个关键组件本质上与选择自动化平台的要求相同,至少如果您想简化跨职能团队的采用。这也模糊了团队之间职责的划分,有助于改善跨部门的协作,这是一件好事!

事实上,采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。Kubernetes 有机地驱动团队采用多种 DevOps 基础和实践——例如 EaC、使用 Git 进行版本控制、同行评审、文档即代码——并鼓励跨职能协作。这些实践有助于提高团队的自动化技能,并帮助团队在处理应用程序生命周期基础设施的 GitOps 和 CI/CD 管道中取得良好的开端。

使自动化成为现实

你没看错!像网上商店或政府报告这样的复杂系统的整个堆栈可以用清晰、易懂、通用的术语来定义,这些术语可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动缩放器,以触发您期望的堆栈的准时部署,以应对季节性高峰期间客户或公民的涌入。当指标恢复正常,云计算资源不再有存在的理由时,您可以丢弃它们并恢复正常运行,并在本地拥有一组核心资产来接管业务,直到下一次激增。

鸡和蛋悖论

考虑到 Kubernetes 和云原生模式,自动化是必须的。但这提出了一个重要问题:组织能否在解决自动化策略之前采用 Kubernetes?

看起来从 Kubernetes 开始可能会激发更好的自动化,但这并不是必然的结论。工具不是解决技能、实践和文化问题的答案。然而,一个精心设计的平台可以成为 IT 组织内部学习、变革和跨职能协作的催化剂。

开始使用 Kubernetes

即使您觉得自己错过了自动化的列车,也不要害怕从一个简单、不复杂的堆栈上的 Kubernetes 开始。拥抱这个出色编排器的简洁性,并在您掌握了初始步骤后,根据更复杂的需求进行迭代。

Rom and his hat
Romuald Vandepoel 是一位技术专家、协调员、倡导者和开源贡献者,负责 Red Hat, Inc. 的客户和合作伙伴组织的现代化和转型。他欣然接受自己在架构委员会和 CTO 办公室中作为值得信赖的顾问的角色,为文化、流程和技术采用策略提供指导。

2 条评论

考虑到 Kubernetes 和云原生模式,自动化是必须的。但这提出了一个重要问题:组织能否在解决自动化策略之前采用 Kubernetes?

写得好!正是我要找的,谢谢。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.