一个简单的互联网架构样例图

  咋看标题感觉像是一个伪命题,因为在之前我就描述过:架构永远是服务于业务的,不同的业务类型、不同的业务体量、甚至不同的管理层价值观和公司文化都会对最终的架构产生重要影响。但是从另外一方面说,互联网行业是开放、发展迅速同时在技术上同质化较强的行业,所以相当多的公司可能最初都像传统行业一样对工程进行功能确定和架构的详细设计,而是以近似野蛮的方式快速开发和部署业务系统,待到业务量快速上升的时候再借鉴类似行业的解决方案去做演化更新和扩容,因此来说大部分互联网企业的架构还是有章法可循的,只是会根据具体的业务逻辑做一些变更,或者组件集群化,甚至对某些组件进行二次定制开发等,也就是随着业务规模的越庞大、运营的越精细,架构才会演化的越来越复杂。
  最近在看一本书《Designing Data-Intensive Applications》,因为目前只有英文原版所以啃起来还是有点慢。这本书是一个英国人写的,因此书的内容偏重于从理论、宏观概念上对现代Data-Intensive类服务开发面临的挑战进行描述,同时对现在各个企业、开源服务、学术论文等给出的解决方案进行介绍。虽然这本书可能不是那种看了就立马技能提升并在实践中操刀用起来的那种,不过有一定工作经验的人看的过程中能获得很大的共鸣感,可以说是对工作中一些遇到的问题进行了更高层次的一种总结归纳。之前有人说,计算机科班出身和野路子出身的程序员很大的区别就是:前者会从理论慢慢走向实践,而后者会从实践再慢慢回归理论。现在仔细想来,盖莫如此啊……
arch
  上面的这张图总结的是目前我所认识到的互联网系统的常用架构,就当是一个系统架构设计的起点吧,原设计我是使用Draw.io工具进行绘制的,源文件可以从这里下载。可能现在看起来还算十分简单,有些东西可能还不够完善,但希望随着自己知识和经验的积累,其内容也能更加的丰满精细。

本文完!