IT系统设计从早期的Jsp/Servlet类应用为主,到今天的微服务、ServerLess、Docker、Paas、CI&CD、Devops。目标:高效研发、弹性扩展、高效运维。手段:Divide&Conquer (分层,解耦合)。web
协议层从早期的HTTp+XML&SOAP 到今天的Restful (Spring)& 轻量级RPC (Dubbo, gRpc),协议的效率和内容自描述性方面获得了很大提升;sql
功能分离:缓存和消息队列获得了普遍的应用。数据库
数据存储:各种Nosql(Cassandra、Hbase、MongoDB、Nero4J等) 数据库的出现极大丰富了数据存储的选择。缓存
微服务框架:Spring Cloud, Dubbo 等,简化了微服务开发和治理工做微信
当前一些有自研需求的公司逐步开始在已有Iaas平台基础上,引入Docker,基于K8s实现服务(容器)的治理,逐步实现DevOps & CICD 目标。框架
实际应用开发中,典型的应用首先会对应用进行分层,客户端层(微信客户端、web、Android、Ios)和服务层分离,这样能够各层实现自我优化;服务层经过分布式技术,使用微服务设计理念,实现服务的弹性扩展和支撑能力;数据层经过分库分表、读写分离等技术扩展数据存储层面的能力。运维
对于技术人员来讲,须要了解核心的设计思想,在选择技术框架时,可以根据不一样的层分析不一样的适用原则选择框架,上线运维过程当中可以快速定位问题,并用合适的方式来解决。分布式