云原生转型设计:构建与上线的关键路径
在云原生转型的旅程中,我们已经走过了前期的准备、研究、实验和原型阶段,现在进入到至关重要的构建(Build)阶段。本阶段将详细阐述如何从设计走向实际的生产就绪平台,并引导团队逐步过渡到新的云原生系统。
1. 构建阶段的起点与团队分工
构建阶段是转型的重要转折点,此时目标明确、技术就绪、知识储备充足,是时候构建一个真正的云原生平台了。在此阶段,核心团队通常会发生分工变化,部分成员组成平台团队,负责架构、构建和运行一个统一稳定的云原生平台;其余成员则专注于准备首个测试应用,并为后续团队的迁移做准备。
1.1 平台团队的重要性
平台团队是云原生系统架构的关键组成部分。其主要职责是确保平台的稳定性和功能性,让开发者能够专注于应用开发,而无需关注基础设施配置。若没有统一的平台,各应用团队可能会自行构建不同版本的平台,导致系统混乱,难以进行标准化重构。例如,WealthGrid的第二次转型尝试就因缺乏统一平台而失败。
平台团队负责处理Kubernetes及以下的基础设施,开发者则在Kubernetes之上使用API进行开发。随着无服务器和服务网格等新兴范式的发展,这种分工界限可能会有所变化。
1.2 新兴的服务网格模式
服务网格是云原生领域的新兴创新,它是嵌入应用中的专用基础设施层,用于管理服务间通信。虽然Docker和Kubernetes通过标准化打包和部署减轻了运维负担,但未解决运行时的问题。服务网格范式的出现填补了这一空白,它能标准化微服务应用的运行时操作,就像Docker和Kubernetes标准化部署一样。
目前,服务网格技术尚未成熟,对于像WealthGrid这样的公司来说,暂时还不适合全面采用。但高流量公司如Netflix、Google和Ticketmaster已在生产应用中引入了服务网格,预计未来两年内,服务网格将成为运行微服务的组织的必备组件。
2. 最小可行产品(MVP)平台的构建
平台团队的首要任务是创建MVP平台,这是连接新系统设计与实际生产就绪版本的桥梁。MVP平台是一个功能基本但具备生产就绪能力的简单版本,运行着一到三个小型应用。
2.1 MVP平台的特点
- 快速交付 :在短时间内构建,以便尽快获取用户反馈并进行改进。
- 最小有用功能 :满足公司的一些实际业务需求,但功能相对精简。
- 可扩展性 :即使该版本最终不投入生产,也需具备扩展平台功能和容量的能力。
构建MVP平台通常需要两到六个月的时间,并且从一开始就应具备持续集成和持续交付能力。之后,还需进行两到三个阶段的优化,以实现平台的完整功能。
2.2 关键要素:可观测性和安全系统
- 可观测性 :云原生分布式系统需要持续洞察所有运行服务的行为,以便理解系统状态并预测潜在问题。可观测性是系统的一种属性,通过监控外部输出来推断内部状态。在云原生环境中,单个组件的故障可能很常见,Kubernetes会自动重启故障容器,但记录故障信息有助于分析系统趋势。可观测性是微服务架构的关键要素,它为工程师提供了调整系统和应用架构的信息,以提高系统的稳定性和弹性。
- 安全系统从一开始构建 :在分布式系统中,传统的边界安全措施不再有效。因此,必须从MVP平台的早期版本就将安全构建到平台中。这包括为团队提供深入的安全培训、谨慎选择工具、审查工具之间的协作以检查漏洞、采用最佳实践确保容器、集群、API和访问权限的安全,并将自动化安全测试纳入工作流程。
2.3 避免重复造轮子
在构建平台时,应尽可能购买非核心业务所需的解决方案,而不是自行定制完美的工具。市场上有许多现有的工具和服务可供选择,如软件即服务(SaaS)。第三方产品通常质量更高、维护更好且更新更频繁,即使不完全符合需求,也比自行开发更具优势。
3. 为迁移做准备
当MVP平台接近完成时,是时候为团队的迁移做准备了。这不仅包括教育团队和将他们迁移到新系统,还涉及组织文化的广泛而持久的转变。
3.1 内部宣传的重要性
内部宣传是管理迁移前准备过程的关键。在MVP阶段开始时就启动内部宣传活动是个不错的选择。通过提供大量关于转型的信息,让员工了解、接受并支持这一举措。
转型倡导者通常负责组织内部宣传活动,如午餐学习会、内部通讯、黑客马拉松和定期演示会等。这些活动不仅能提高员工对云原生知识的了解,还能增强他们对转型的参与感和积极性。缺乏内部宣传可能会导致员工对转型产生抵触情绪,就像WealthGrid的第二次转型尝试那样。
3.2 正确的迁移方式和时机
当MVP平台接近生产就绪时,应开始积极将团队迁移到新系统,并对他们进行全面的使用培训。迁移应采用渐进式的方式,避免一次性迁移过多团队导致混乱。
正式迁移是团队向云原生构建 - 运行团队转变的重要时期,需要投入足够的时间和精力。只有特定安排迁移的团队(每次两到三个团队)会参与迁移过程,其他团队则保持原状,直到轮到他们。
4. 渐进式迁移模式
渐进式迁移模式通过一系列子模式来实现团队的逐步迁移和转型。
4.1 开发者入门套件
为新团队提供一个包含工具配置、版本控制仓库、CI/CD管道、示例应用、目标平台描述和培训等资源的“入门套件”,帮助他们快速自信地开始使用新系统。缺乏良好的入门材料会导致团队自行摸索,浪费时间且可能产生不规范的实践。
4.2 演示应用
为迁移到新系统的团队提供演示应用,作为构建自己云原生应用的教育起点。演示应用有助于简化迁移过程,同时也是转变组织文化的重要工具,让团队在学习新工具和技术的同时,适应新的工作方式。
4.3 构建 - 运行团队
在传统软件开发中,开发团队依赖运维团队进行生产部署,这会降低生产速度和敏捷性。而构建 - 运行团队模式则赋予开发团队对所构建服务的完全控制权,包括创建、部署和支持。这种模式优化了DevOps团队,使其更适合云原生开发。
4.4 自助服务
自助服务是团队从传统软件开发向云原生转型的最后一步。它强调自动化所有手动或半手动操作,让开发者能够自行进行基础设施配置和应用部署,无需团队间的交接。自助服务鼓励开发者频繁发布到生产环境,实现持续交付和用户反馈的学习循环。
总结
构建阶段是云原生转型的核心阶段,通过创建MVP平台、准备团队迁移和采用渐进式迁移模式,我们逐步将组织从传统软件开发模式转变为云原生模式。在这个过程中,平台团队和核心团队各司其职,共同推动转型的顺利进行。随着MVP平台的不断完善和团队的逐步迁移,我们将迎来生产就绪阶段,正式进入运行阶段。
流程图
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(构建阶段开始):::process --> B(平台团队分工):::process
B --> C(创建MVP平台):::process
C --> D(可观测性和安全系统构建):::process
C --> E(避免重复造轮子):::process
D --> F(为迁移做准备):::process
E --> F
F --> G(内部宣传):::process
F --> H(渐进式迁移):::process
G --> H
H --> I(开发者入门套件):::process
H --> J(演示应用):::process
H --> K(构建 - 运行团队):::process
H --> L(自助服务):::process
I --> M(生产就绪):::process
J --> M
K --> M
L --> M
表格:关键模式总结
| 模式名称 | 描述 |
|---|---|
| 平台团队 | 负责架构、构建和运行统一稳定的云原生平台,让开发者专注于应用开发 |
| 服务网格 | 新兴的基础设施层,用于管理服务间通信,标准化微服务运行时操作 |
| MVP平台 | 功能基本但具备生产就绪能力的简单版本,运行一到三个小型应用 |
| 可观测性 | 系统的属性,通过监控外部输出来推断内部状态,提高系统稳定性和弹性 |
| 安全系统从一开始构建 | 从MVP平台早期版本就将安全构建到平台中,确保分布式系统的安全性 |
| 避免重复造轮子 | 尽可能购买非核心业务所需的解决方案,而非自行开发 |
| 内部宣传 | 提供大量关于转型的信息,让员工了解、接受并支持转型 |
| 渐进式迁移 | 通过一系列子模式逐步将团队迁移到新系统 |
| 开发者入门套件 | 为新团队提供包含工具配置、示例应用等资源的“入门套件” |
| 演示应用 | 为迁移团队提供教育起点,帮助他们构建自己的云原生应用 |
| 构建 - 运行团队 | 开发团队对所构建服务拥有完全控制权,包括创建、部署和支持 |
| 自助服务 | 开发者能够自行进行基础设施配置和应用部署,无需团队间交接 |
云原生转型设计:构建与上线的关键路径
5. 迁移过程中的注意事项
在渐进式迁移过程中,还有一些关键的注意事项需要我们重视,以确保迁移的顺利进行。
5.1 教育的阶段性适配
教育内容应根据团队的迁移阶段进行适配。如果一个团队还有六个月才会迁移到新平台,那么对微服务、Docker容器和Kubernetes等概念进行基本介绍就足够了。而当团队即将迁移时,再提供实践操作的高级培训。这种分阶段的教育方式可以避免资源的浪费,确保团队在合适的时间获得合适的知识。
5.2 文化转变的渐进性
从传统软件开发向云原生的转变不仅是技术上的,更是文化上的。团队需要适应新的工作方式和思维模式,这是一个渐进的过程。在培训团队使用新工具和技术的同时,要逐步引导他们接受新的工作文化。例如,构建 - 运行团队模式需要团队成员承担更多的责任,从传统的分工明确到更加自主的工作方式,这需要时间来适应。
6. 迁移流程优化
为了确保迁移过程的高效和稳定,我们可以对迁移流程进行优化。以下是一个优化后的迁移流程:
-
评估阶段
- 评估现有系统的架构、功能和性能,确定哪些部分适合迁移到新平台。
- 评估团队的技术能力和对云原生的了解程度,为培训计划提供依据。
-
准备阶段
- 构建MVP平台,确保其具备基本的功能和稳定性。
- 准备开发者入门套件和演示应用,为团队迁移做好准备。
- 开展内部宣传活动,提高员工对转型的认知和支持。
-
迁移阶段
- 按照渐进式迁移模式,每次迁移两到三个团队。
- 为迁移团队提供必要的培训和支持,确保他们能够顺利使用新系统。
- 监控迁移过程,及时解决出现的问题。
-
优化阶段
- 根据迁移过程中的反馈,对平台和迁移流程进行优化。
- 持续改进团队的工作方式和文化,提高团队的云原生能力。
7. 迁移效果评估
迁移完成后,需要对迁移效果进行评估,以确定转型是否达到了预期目标。评估指标可以包括以下几个方面:
| 评估指标 | 描述 |
|---|---|
| 生产效率 | 对比迁移前后的开发和部署速度,评估生产效率的提升情况。 |
| 系统稳定性 | 监测系统的故障率和恢复时间,评估系统的稳定性。 |
| 团队满意度 | 收集团队成员的反馈,评估他们对新工作方式和平台的满意度。 |
| 业务指标 | 分析迁移对业务指标的影响,如客户满意度、销售额等。 |
8. 未来展望
随着云原生技术的不断发展,我们可以预见未来会有更多的创新和改进。例如,服务网格技术可能会更加成熟,成为云原生平台的标配。同时,人工智能和机器学习等技术也可能会与云原生相结合,进一步提高系统的性能和效率。
在未来的转型中,我们需要保持敏锐的洞察力,及时引入新的技术和模式,不断优化云原生平台和团队的工作方式。同时,也要注重组织文化的建设,确保团队能够适应不断变化的技术环境。
流程图
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(评估阶段):::process --> B(准备阶段):::process
B --> C(迁移阶段):::process
C --> D(优化阶段):::process
D --> E(迁移效果评估):::process
E --> F{是否达到目标?}:::process
F -->|是| G(未来持续优化):::process
F -->|否| A(评估阶段):::process
总结
云原生转型是一个复杂而长期的过程,需要我们在构建阶段精心规划和执行。通过创建MVP平台、采用渐进式迁移模式、优化迁移流程和评估迁移效果,我们可以逐步实现从传统软件开发向云原生的转变。同时,我们也要关注未来的技术发展趋势,不断优化和改进我们的云原生平台和团队的工作方式,以适应不断变化的市场环境。
希望以上内容能够为你在云原生转型的道路上提供一些有益的参考和指导。
超级会员免费看
1604

被折叠的 条评论
为什么被折叠?



