互联网架构设计原则
互联网架构,主要追求的是高可用,可扩展 这两个特性
在这里做了一些个人的总结,算是给2014年的工作做个总结。
推陈出新:一定要做的,死守积累会逐渐丢失人才,但凡技术公司都会不断更新技术
KISS原则:keep it simple stupid 优秀的代码都会很简单,简单理解,简单更改,能把复杂的事情做简单是一种能力。
轻解耦:接口可管理,接口靠RPC完全脱离服务器,系统模块相互依赖减弱,对系统的依赖减弱,不仅仅是拆分
功能单一:一个功能就做一件事,不重复,不复杂,同时提高可复用。
集中化管理:只有集中管理才会更好管理。
归类总结:任何东西要经常对其特征进行归类管理
定期重构:针对共同特性进行抽象重构是唯一能够去掉诡异陈酿大坑的唯一方法
可横向扩展:访问增大后服务器可以快速扩展,互联网的用户量一向成长很快,不能很好应对,单点服务器第一个遭殃。
紧急情况限流:优秀的互联网架构,都会在高冲击下通过限流保证部分用户正常
核心功能和周边功能区分:可根据需要进行服务降级
透明:好理解,好用,好管理
容错:极好的容错是必须做的
边界划分:合作方和内部划分,系统间边界,应用间边界划分
高效:只有开发速度快,运行速度快,管理简单
易维护:任何故障都能够还原
科学化的监视:性能监视,功能监视,服务群监视,分组管理,合理监视
自动化管理:自动化测试,自动化检查,灰度发布
分层依赖:一层只依赖一层,不跨层
分层隔离:隔离业务的复杂度是必须做的
安全防护:长期要做不能忽略的问题,要落实到开发每个细节内
快速迭代与定期重构:新产品可以先快速迭代出来,后续慢慢抽象整理,不做会越拖越烂。