2023 聊一聊云原生设计模式系列 - 开篇
引言
在降本增效的行业大环境下,原有业务要面对改造迁移上云的过程。 但云上环境的高动态性、可伸缩性、零信任性,某种程度上物理共享等特点,又给原应用改造适配带来重重困难。
难点主要有三方面:数据管理;应用通信机制的设计;云上部署与构建。
具体来看:
- 数据管理:需要考虑的问题,比如数据存储在哪?怎么存储最经济?数据的访问模式是什么样的?如何保证数据的一致性?如何应对数据的增长?多源异构的数据如何分别选型?
- 云上部署与构建:需要考虑的问题,如何拆分功能到不同的组件中?如何保持部署的一致性、连贯性、简化管理开发的可维护性?如何保证环境的安全,异常攻击的防范?
- 应用通信机制的设计:大型应用往往包含多个组件,多组件之间的通信一般依赖消息机制来进行解耦,以最大化云上的可伸缩性。异步消息投送机制也会带来许多挑战,如消息排序、幂等行和有害消息处理等。
那么,有没有指导性建议可以帮助构建出可靠且可伸缩的安全云原生应用呢?答案自然是有 —— 云原生设计模式。把云原生设计模式来开发和设计应用,不仅可以降低云上应用设计和开发的难度,而且能够使得构建出的应用更加适合云上环境,实现较优投入产出比。
本文参考了多家云厂商提供的最佳实践文档,对一些常见云原生设计模式谈一谈个人的理解和经验。