作者简介
张应罗,SUSE 资深架构师,拥有 16 年架构咨询工作经验,专注于 SUSE Enterprise Container Management 相关的产品落地方案及咨询方案设计。
平台工程
“DevOps 已死,平台工程才是未来!” 去年,知名软件工程师兼 DevOps 评论员 Sid Palas 在推特上发出呐喊。
他的核心观点是:开发者不想跟基础设施打交道,企业在发展过程中又需要控制自己的基础设施;只有平台工程,能将这两个相互矛盾的命题统一起来。这一观点引发了开发者们的激烈讨论,平台工程正在崛起。
简单为大家介绍一下平台工程(Platform Engineering)的概念。
平台工程的发展背景
-
软件在不断演进过程中将运维技能从开发技能中剥离出来,形成了两个不同的职业,但结果证明过度分离的两个职业无法满足软件快速迭代的需求,因此 DevOps 出现了,我们用它来统一运维及开发。开发周期是一个企业最稀缺的资源,因此应该将尽可能多的资源放在核心产品开发上。
-
开发人员应该能够端到端地部署和运行他们的应用。“谁构建,谁运行”才是真正的 DevOps,但并不是所有的公司都是 Google、亚马逊、微软,大多数公司都没有像他们那样的人才库,也不会仅仅为了优化开发工作流和体验而像他们那样投入资源。
-
在过去,有的工程师写代码,有的工程师跑代码。而现在,工程师不仅编写代码,还要运行他们编写的代码。这让软件工程师觉得他们必须对所有事情都了如指掌,大大增加了认知负担。
-
这迫使许多团队重新在自动化带来的自由与认知负担之间权衡利弊,平台工程也因此越来越受关注和热议。Gartner 在 2022 年 8 月发布的软件工程成熟度曲线中添加了“平台工程”。
平台工程的定义
-
“平台工程”社区主要贡献者及 Humanitec 产品负责人 Luca Galante 在《什么是平台工程》的文章里指出:平台工程是一门设计和构建工具链与工作流的学科。这些工具链和工作流可以为云原生时代的软件工程组织提供自助服务功能。平台工程师提供集成化产品,通常称为“内部开发人员平台”,可以涵盖应用程序整个生命周期的所有操作需求。
-
内部开发人员平台由平台工程团队构建,用于铺好坦途以此来支持开发人员自助服务。内部开发人员平台由许多不同的技术和工具组成,以一种降低开发人员认知负担的方式组合在一起,无需抽象出上下文和底层技术。平台工程团队将他们的平台视为一种产品,根据用户研究对其构建,并不断维护和改进。
Kubernetes 在平台工程中扮演的角色
- 无论内部开发人员平台的工具链有多么丰富,在云原生时代,Kubernetes 已然成为应用落地部署的最优选择。平台工程承载了应用迭代和部署验证的重任,需要建立提供面向 Kubernetes 的弹性能力。
Rancher Prime 为平台工程体系提供强有力支撑
Rancher Prime 的混合云 K8s 管理能力
Rancher Prime 研发之初的核心理念就是多云管理,因此,产品进化至今,在历经近上千个 release 后,Rancher Prime 在多云多 K8s 集群管理领域已然遥遥领先,可以随时随地管理和部署任意位置的 K8s 集群。
-
Rancher Prime 支持对国内头部公有云厂商的 K8s 发行版进行全生命周期管理,包括阿里云 ACK、腾讯云 TKE、华为云 CCE。
-
Rancher Prime 支持对国际头部公有云厂商的 K8s 发行版进行全生命周期管理,包括 AWS EKS(Global Region 及 China Region)、Azure AKS(Global Region及China Region)、Google GKE。
-
在私有数据中心场景下,Rancher Prime 可以创建经过 CNCF一致性认证的 K8s 发行版 RKE 和 RKE2,帮助客户快速落地生产级别的 K8s 集群。
-
在边缘计算场景下,Rancher Prime 可以创建轻量级 K8s 发行版 K3s,并且支持 X86 和 ARM 两种架构。
Rancher Prime 面向多集群的中心化多租户体系
Rancher Prime 具备一套成熟的面向多集群的中心化多租户体系,可以轻松抽象用户访问权限。这为平台工程内的开发人员提供了良好的隔离环境,让他们可以灵活使用自己的开发环境,而不影响其他开发人员。
-
Rancher Prime 提供面向多集群并基于 RBAC 的多租户体系,不同的用户可以通过绑定不同的角色来获得不同的权限。
-
拥有“全局级别”角色的用户通常可以管理 Rancher Prime 的所有 K8s 集群,拥有“集群级别”角色的用户通常只能看到和管理某一个或多个 K8s 集群,拥有“项目/命名空间”角色的用户通常只能看见和管理集群下某一个或多个项目及命名空间。
-
Rancher Prime 还支持对接多种外部统一认证软件,例如 AD、Keyclock、OKTA 等,方便企业进行统一认证管理。
NeuVector 全生命周期的平台安全保障
在构建内部开发人员平台时,平台安全始终是需要优先考虑的问题。NeuVector 提供了全面的全生命周期、零信任容器安全体系,在整个容器生命周期中持续扫描,以消除安全隐患。在内部开发人员平台构建之初就应制定安全策略,从而最大限度地提高开发人员的灵活性。
NeuVector 的安全保护包括供应链安全和运行时安全,在供应链安全范畴内可以对容器镜像、K8s 主机资源进行合规扫描,同时将 K8s 的准入控制机制与 pipeline 流程相结合,实现准入控制。
在运行时安全层面可通过容器微分段、DLP、WAF 等防护手段,确保内部开发人员平台安全性。
NeuVector 可在所有经过 CNCF 认证的 K8s 平台上独立使用。在与 Rancher Prime 结合使用时,只需点击几下即可安装和使用 NeuVector,并对整个 Kubernetes 环境进行安全保护。
Rancher Prime 和 NeuVector 产品体系的组合,可以让平台工程团队更容易构建自己的内部开发人员平台,让开发工程团队专注于业务代码开发,而非深度对接基础设施,同时也能保障平台的安全性。
典型案例
育碧(Ubisoft)于 1986 年在法国成立,是全球知名的游戏制作、发行和代销商,业务遍及五大洲,在全球拥有 40 多个开发工作室。
育碧鼓励开发团队在 Kubernetes 中开发云原生微服务,不久之后,创新项目激增。由于有的团队面向私有云进行开发,有的团队面向公有云进行开发,因此公司需要拥有统一的开发方法。
基础架构团队希望在公司内部构建一个中央 Kubernetes 配置平台,从而实现大多数流程的自动化。当 UKS(Ubisoft Kubernetes Service)诞生时,这一愿景成为了现实。这个基于 Rancher Prime 的自助式 Kubernetes 平台让成千上万的开发人员能够以可控、集中管理的方式即时启动新的 Kubernetes 集群。
通过使用 UKS 和 Rancher Prime,开发人员可以自由地为任何云环境进行开发,而不必手动管理许多基本部署过程。Rancher Prime 实现了这些基本功能的自动化,并大大简化了开发生命周期。
从效率的角度来看,UKS 让开发者的工作更加轻松。与原来的手动方式相比,大幅提高了开发速度,减少了管理时间。与以往需要耗费几天时间相比,通过 Rancher Prime 配置集群并将其托管在本地,平均仅需 10 分钟。最重要的是,整个公司的 Kubernetes 集群现在都通过统一的平台进行管理。
目前,育碧的 K8s 集群已经超过 200 个,随着越来越多的团队使用 Kubernetes,这一数字将持续上升。未来,育碧 IT 建设的重点是创建一个托管解决方案,以优化基础设施的使用,提供多租户集群并减少运营负担。
未来展望
无论是 DevOps 还是平台工程,都要求基于 K8s 的底层平台具备安全性、灵活性、稳定性、先进性。因此,2023 年,SUSE 企业容器管理团队将在如下几个方面持续提升产品体验,以回馈企业用户及社区用户的信任:
-
Rancher Prime 不断增强 K3s Provisioning 能力,提供更加灵活多样的集群选择,K3s 极致轻量,足以应对面向开发测试的应用集群。
-
整个 SUSE 企业容器管理产品线对 ARM 的支持将不断增强,得益于 ARM 生态体系的不断完善,越来越多的全球用户开始使用 ARM 来降本增效。
-
持续加强对本土产品生态体系的支持,目前 Rancher Prime 已经适配鲲鹏芯片、海光芯片、麒麟 V10、openEuler 等软硬件体系,其中基于 openEuler 的 K8s 发行版 RFO(Rancher For OpenEuler)已经正式 GA。