架构设计
架构设计主要目的是为了解决软件系统复杂度带来的问题。 复杂度来源于高性能、高可用、低成本、安全、扩展性等方面。
基本原则:合适、简单、演化。起始时先从简单出发,后续再根据需要逐渐迭代演化,不要为难以预测的未来过度设计。
高性能方案:读写分离、分库分表、NoSQL、缓存。
高可用方案:双机架构、数据集群、数据分区、接口熔断、异地多活。
可扩展方案:分层架构、SOA/微服务架构、微内核架构。通过合理拆分服务来减少耦合。
在整个架构演进过程中,避免一次性重构,先易后难。以解决当前最主要的问题为出发点。
通过沟通协作,让重构带来的价值更大,以合作共赢的态度促进团队进步。
通过设计原型进行迭代优化,在保持系统基本原则不变的情况下,逐渐满足复杂度的需要。