阿里云云原生应用管理实践与挑战
一、云原生应用管理的核心问题
- 应用资源:云资源使用与应用生命周期不一致。
- 应用配置:复杂的应用配置和大量差异性配置。
- 应用发布:原生支持扩展性差,发布过程复杂。
- 应用隔离:多应用共用同一Master可能导致冲突。
二、解决方案
-
应用配置和模型:
- 单集群:使用OAM开源框架,解耦研发和运维配置。
- 多集群、多地域、多环境:通过用户定义模板和Trait管理,减少参数暴露。
-
应用发布:
- 兼容性和非侵入性:使用OpenKruise处理复杂发布问题。
- 渐进式滚动升级:减少资源浪费。
-
应用隔离:
- OAM框架:解决关注点分离问题。
- 虚拟集群架构:解决控制面operator冲突和资源问题。
-
应用管理平台架构:
- UI层:提供直观的应用管理界面。
- 逻辑层:实现应用、环境、集群和云资源的管理。
- 应用内核层:支持应用的部署、弹性、环境和集群管理。
三、实践经验
-
应用管理全生命周期:
- IaC与产品化的取舍:90%普通应用通过产品化接入,10%复杂应用采用IaC。
- 资源效率:实现流式非阻塞发布和SLO监控双重优化。
- 人效提升:建设应用可观测能力和诊断能力,降低平台人员投入。
-
经验总结:
- 推荐工具:Flagger、Argo-rollout、OpenKruise。
- 应用效率:兼顾资源效率和人效。
- 多环境应用:通过一套定义多处运行,实现应用和云资源生命周期的一致性。
通过以上方法,阿里云有效地解决了云原生应用管理中的主要挑战,并提供了高效的解决方案。