《架构即未来》一书提出了分布式应用设计的十四条基本原则,而这正是最为重要的云原 生应用架构的核心要素。
N+1 设计: 要确保任何你所开发的系统在发生故障时,至少有一个冗余的实例。
回滚设计: 确保系统可以回滚到以前发布过的任何版本。
开关禁用设计: 能够关闭任何发布的功能。
监控设计: 在设计阶段就必须要考虑监控,而不是在实施完成之后补充。
设计多活数据中心:设计时就考虑多活部署,不要被一个数据中心的解决方案把自己限制住。
异步设计: 异步适合并发,只有在绝对必要的时候才进行同步调用。
无状态系统:无状态的系统更利于扩展, 更利于做负载均衡。只有当业务确实需要的时候, 才使用状态。
水平扩展非垂直升级:永远不要依赖更大、更快的系统。微服务核心思想是水平扩展,不 要把所有的功能都集中在一个系统里面。必要的时候把需求分为多个系统,而不是升级原有的 系统。
设计的前瞻性:提前考虑影响下一阶段系统扩展性问题的方案,不断提炼公共共享服务, 以减少重构的次数。
非核心则购买:如果不是你最擅长的, 也提供不了差异化的竞争优势则直接购买。数据库、 云服务这种的就购买好了。
小构建,小发布,快试错:全部研发要小构建,不断迭代,让系统不断地成长。小版本的 失败率较低,因为失败率与解决方案中的变更数量直接相关。
隔离故障:实现隔离故障设计,通过断路保护避免故障传播和交叉影响。避免多系统之间 的互相影响,这个很重要。
自动化: “自动化是智慧之源”,在云原生架构中,快速部署和自动化管理是核心。设计 开始就需要尽可能通过架构和设计实现自动化的过程。如果机器可以做,就不要依赖于人。
使用成熟的技术: 如果某技术故障率比较高,就绝不能使用。