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

互联网公司IT系统架构进化之路的更多相关文章

  1. 从游击队到正规军:马蜂窝旅游网的IM系统架构演进之路

    本文引用自马蜂窝公众号,由马蜂窝技术团队原创分享. 一.引言 今天,越来越多的用户被马蜂窝持续积累的笔记.攻略.嗡嗡等优质的分享内容所吸引,在这里激发了去旅行的热情,同时也拉动了马蜂窝交易的增长.在帮 ...

  2. 大型网站系统架构演化之路【mark】

    前言 一 个成熟的大型网站(如淘宝.天猫.腾讯等)的系统架构并不是一开始设计时就具备完整的高性能.高可用.高伸缩等特性的,它是随着用户量的增加,业务功能的 扩展逐渐演变完善的,在这个过程中,开发模式. ...

  3. springcloud (一)系统架构演变之路

    演变过程 从传统架构(单点应用)→分布式架构(以项目进行拆分)→SOA架构(面向服务架构)→微服务架构 1 传统架构 其实就是ssh架构或者ssm架构,属于单点应用,把整个开发业务模块都会在一个项目中 ...

  4. QQ音乐PB级ClickHouse实时数据平台架构演进之路

    导语 | OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过Q ...

  5. Android之路-------浅淡Android历史、系统架构与开发特色

    前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结 ...

  6. HBase 学习之路(二)—— HBase系统架构及数据结构

    一.基本概念 一个典型的Hbase Table 表如下: 1.1 Row Key (行键) Row Key是用来检索记录的主键.想要访问HBase Table中的数据,只有以下三种方式: 通过指定的R ...

  7. 转:微信Android客户端架构演进之路

    转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 20 ...

  8. 架构师之路-在Dubbo中开发REST风格的远程调用

    架构师之路:从无到有搭建中小型互联网公司后台服务架构与运维架构 http://www.roncoo.com/course/view/ae1dbb70496349d3a8899b6c68f7d10b 概 ...

  9. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  10. 5G系统架构

    原文标题:迈向5G之路,颠覆性的5G系统架构?   本文部分图片,资料摘自<迈向5G C-RAN:需求.架构与挑战> 突如一夜春风来,随着Polar码与LDPC码作为5G编码候选方案,通信 ...

随机推荐

  1. 如何使用纯JS过掉淘宝滑块

    起因 众所周知淘宝滑块很难过掉,今天博主就专门研究了一下淘宝滑块,之前博主也有研究过但是发现并不好过.今天恰好有个项目需要淘宝登录,就有滑块验证,说明一下博主做的是浏览器插件哦.今天博主打算在研究滑块 ...

  2. 监控系统grafana常见问题合集

    监控系统搭建完毕后,使用中确实存在不少的习惯问题. 系统组成: 展示界面:Grafana 核心系统:Promethus snmp监控:SNMP Exporter ping监控:Blackbox Exp ...

  3. 一步一步地完成题目——费解的开关(C/C++语言)递推、递归、顺序思维

    前言 本文中博主将一步一步地.以正常人的顺序思维完成题目--费解的开关,使用的核心方法是递推与递归. 题目 参考题目:费解的开关 详细的题目信息相信大家都已经知道了,因此这里为了简洁只展示输入输出格式 ...

  4. c++获取类型信息

    获取类型信息 typeid typeid运算符用来获取一个表达式的类型信息. 对于基本类型数据, 类型信息比较简单, 主要指数据的类型; 对于对象(类类型的数据), 类型信息指: 对象所属的类, 所包 ...

  5. Python 20个常用库

    Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它. Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的.用过它之后你就不会再想用别的 ...

  6. k8s证书续期10年

    一.拉取脚本 git clone https://github.com/yuyicai/update-kube-cert.git cd update-kube-cert chmod 755 updat ...

  7. Windows11使用WSL Ubuntu搭建paddle的GPU环境

    Windows11使用WSL Ubuntu搭建paddle的GPU环境 最近升级到了Windows11,突然有个大胆的想法:在Windows11上安装WSL,将所有开发环境安装到WSL中.这样就能在w ...

  8. Kubernetes 安装网络插件(calico)

    简介 Calico是Kubernetes生态系统中另一种流行的网络选择.虽然Flannel被公认为是最简单的选择,但Calico以其性能.灵活性而闻名.Calico的功能更为全面,不仅提供主机和pod ...

  9. 题解[HEOI2013]SAO.md

    题意 给定一棵树,边有方向.要给点重标号,使得边都由小编号指向大编号,求重标号方案数. \(n\le10^5\) 思路 有关树的计数.套路性考虑树形 DP. 设计状态 \(f_{u}\) 表示 \(u ...

  10. 088_BatchApex_Callout

    global class BatchSync implements Database.Batchable<sObject>, Database.AllowsCallouts { publi ...