2000年,个人主页已经不能满足好奇,在当时的网管中心管起几台机器,作起网线水晶头,用ALL PEOPLE SEEMS TO NEED DATA PROCESS的理论开始认识了7层网络模块(面试技术员工时,经常会问这些网络基础知识的理解)。有了基础理论的武装,我也开始配置各种服务来玩LINUX,AIX和FREEBSD这些系统。面对各种原理不懂的系统,目的只是想尽办法去解决网站需要的各种基础服务。当时搭建了REALSERVER流媒体服务,各种开源FTP下载服务,BATTLENET游戏网关,APACHE(keepalive等配置,http报头相关的知识 也是面试的老客户),DNS,QMAIL等服务给学校的学生使用;
iaas层负责实现持久层,一般数据源都在这一层,常见网站的数据源不外呼这四种:RMDB(这个玩转了近20年了),KV(最近10年比较热,KV可以分为内存型或持久型,对于持久型的KV,可以把数据挂到各类存储中),inverted index or file(倒排索引类),FILE SYSTEM(各类传统文件存储或自已实施的小文件中间件,普通文件中间件)。
部署架构是网站进入10亿级规划,99.99%可用性要求下必然关注的问题。无论是EBAY还是AMAZON都在部署上有很多投入。单一的机房由于电力,机柜等问题,经常出现部署上的硬件约束;容灾与不同地区访问体验要求异地机房能提供在线同时的服务。部署上需要考虑是全机房的对称部署,或是应用不同分级的分区部署。比如持久层统一,服务层与应用层多机房对称部署;或是持久层与应用层服务层完全对称,但数据分区;这种分区需要考虑买家维度、卖家维度,或是IP区域分区,不同区生成的数据通过同步系统实现各区的最终一致。以订单为例,分区是可以让美国买家创新的订单写在美国分区数据持久层,然后异步消息生成同步任务,数据同步到卖家所在的分区。
基础架构的工作还有很多,架构师责无庞待。if not me, who?
有些架构师被称为PM型架构师,也有被感觉像RA型的,偏咨询师型的架构,偏业务型的,偏算法型的,偏性能调优的,偏中间件和服务治理的,偏基础架构型的,这个是看网站发展阶段的需要,缺什么,作什么。关键是看架构在软件工程过程中对产品,对团队的输出是否能解决问题,拿到结果!eat what, what strong。