一日,与一高手在茶馆聊天。他问道:在鞋厂剑派这两年,可习的什么高深的剑法?我不由一愣,细细想来,这两年每日练习的都是简单的劈砍动作和一些简练的套路。并没有去练什么高深的剑法。不过鞋厂剑派在江湖上也算小有名气战力不俗,也攻下了不小的山头,就连天下三大门派之一BB派也对我们的山头虎视眈眈。门派的头领们为何没让我们去练习高深的剑法?想来,我们打的是群架,而不是单挑。把每个练习简单招式的人放在一起,简单的招式组成的就是威力极大的剑阵。
剑阵才是一门神功。
剑阵也并非一开始就威力极大,也是由几个人简单的组合,经历生死攸关的战斗,才逐步发展而来。
这剑阵就是我们互联网公司大型的IT系统。
那怎样才算一个大型的IT系统呢?一个系统既要有大并发的用户访问,又有海量的数据才能算大型IT系统。
我们现在常用的大型IT系统都是从小系统开始,随着用户量和数据量的大幅增加一步一步发展而来。
最开始是最简单的系统架构,应用和数据库部署在同一台服务器上,比如:网站应用+数据库服务器或者面向App的Service+数据库服务器。
这种系统架构可以支撑每天几百到上万人的访问。
一、随着用户量和数据量的上升,单服务器的负载逐渐升高,这时候可以把数据库拆分到一台单独的服务器上。这样就能缓解系统的压力。
二、接下来应用服务器的负载又过高,这时候就要将应用服务器扩展为集群。通过2个手段:1,引入负载均衡设备,将请求均匀的转发到集群中的服务器上。2,引入Session Server 让用户感觉到是跟同一台服务器通讯。
三、后来数据库压力又变大。这个时候,可以将数据库进行垂直切分,就是按照业务单元,将数据库解耦。每个独立的业务数据,可以单独存放在一个数据库中。还有水平分表、读写分离等措施。这个时候公司可以搭建公司内统一的分布式数据访问层框架。
四、随着业务的飞速发展,系统无节制的变的臃肿庞大,大量的web service 的调用将我们的系统变成了一个蜘蛛网。质量越来越难以保证。故障频发,效率低下,团队人困马乏。
这个时候就可以引入服务化框架,将系统拆小,重视系统分层,控制系统间的调用关系。
采用消息系统来解决业务系统之间的强耦合问题。
五、使用软负载中心与集中配置管理来支撑服务化框架、消息系统、分布式数据访问层、所有应用的配置管理等。
六、另外构建大型互联网IT系统的其他要素:CDN、大型网站的存储系统(分布式文件系统、NoSQL、缓存系统)、搜索系统、数据计算支撑、发布系统、应用监控系统、依赖管理系统等等。
如图: