系统设计的原则-4SE原则

系统设计课程中,太阁冯沁原提出的SNAKE原则和九章算法东邪老师提出的4S原则都不能完全体现系统设计的真髓,SNAKE原则缺少了Storage(存储)部分的强调,4S原则缺少对系统参数的计算。在此我想总结两位前辈的经验,提炼出自己对于系统设计原则的理解:4SE原则。

设计一个可用的系统并不是一蹴而就的事情,而是随着整个业务逻辑的提升,系统的架构也会随之变化,所以在系统设计之前一定要明确系统设计的处于什么样的场景,需要多大的用户量,才能决定整个系统的架构,选择合适的存储系统。

Scenario

场景:首先明确系统设计所在的场景,具体要设计哪些功能,具有什么样的特性等等。
关键词:功能

Suppose

假设:假设用户量,QPS,DAU(日活跃用户)等。
关键词:QPS/DAU/PAU(高峰活跃用户)

Service

服务:将实现的整个系统拆分成小的服务和模块。
关键词:SOA/Push/Pull

Storage

存储:选择合适的存储系统。
关键词:SQL/NoSQL/File System

Evolve

扩展:解决可能会遇到的一些问题。
关键词:雪崩问题/单点失败/多点失败