云架构与系统设计的全面指南
1. 云架构的冰山一角
在云环境中编写和运行的代码只是冰山一角,其背后有着大量支撑服务和应用的基础设施。不同云提供商虽都具备相关能力,但差异不可小觑,搭建这些基础设施也需付出不少努力。部分供应商提供兼容性层,但这可能导致对小型第三方的依赖。
为避免这种情况,建议采用跨云提供商的多元化平衡策略,例如按 80:15:5 的比例分配。选择一家首选云提供商承载大部分服务,同时利用另外两家运行部分服务,这样既能积累不同云的使用经验,又能构建灵活架构,实现服务在云提供商间的快速迁移。
采用无服务器优先的方法,将大部分基础设施管理工作交给云提供商,通过连接器类和处理函数封装特定云提供商的接口。此外,观测工具应能统一监控各云提供商,CI/CD 工具应部署在与服务不同的提供商上。
2. 创新架构的关键要点
创新架构的构建需关注多个方面。首先要赢得信任并建立动力,同时搭建好架构跑道。合理的资金模式也很重要,应与持续的实验和发现过程相匹配。
Strangler 模式能有效降低迁移风险,它通过逐步替换旧系统的部分功能,实现平稳过渡。而事件优先方法也有其独特优势,但需正确理解和运用,避免常见误解。
多语言编程、多语言持久化和多云策略有助于优化整个系统,为未来发展做好准备。
3. 实践操作建议
接下来可以尝试各种模板,具体操作如下:
- 创建事件中心和微前端。
- 构建微应用和 BFF 服务。
- 用 ESG 服务包装外部系统,使其能响应 BFF 服务的事件,反之亦然。
在实践过程中,要思考如何将系统划分