从零到亿:WEB后台的变迁史

第一阶段 – 项目成立

随便在阿里云买了一台虚拟机。
在万网买了一个不是很满意的域名。
使用免费的Gitlab创建了自己的代码项目。
通过朋友介绍认识设计师小A。

第二阶段 – 开始运营

另外多买了一台虚拟机。
购买了阿里云的负载均衡服务,并且将80,443端口指向这一新一旧两台服务器。
考虑到数据库安全,购买了阿里云的RDMS服务,不再担心数据丢失与备份问题。
给服务器创建了一些短信告警。

第三阶段 – 天使在望

注册用户竟然达到了惊人的10万。
一些调皮的用户开始对你的系统进行业务测试,你开始关注防火墙与SQL注入等安全问题。

为队列系统购买了数台服务器充当RabbitMQ Cluster与Worker Cluster角色。将一些非实时性与高消耗任务迁移到队列。

发生短信/邮件。
计算用户行为。
统计各项数据报表。

同时购买了阿里云的RDMS从库,使用KingShard等中间件进行透明读写分离。CPU不在持续在80%以上。
开始开发全端客户端,使用Access Token权限机制代替Session。
开始处理当初写下得烂SQL,优化系统性能。
招聘了程序员小B,小C。

第三阶段 – 数据量的盛宴

你开始从别人的口中听到你的产品消息。好的或者不好的。
系统数据量开始以超过60度角的水平递增,你坐在电脑前 tail -f /var/log/nginx.access.log 享受着qps带来的荣耀感。
你开始在办公室挂了2块屏幕显示当前系统的平均响应时间和异常总数。
几张极度增长的MySQL数据表开始让你担忧,开始设计下一代系统。引入了分表分库,将搜索功能迁移到了ElasticSearch。你在Google上疯狂的搜索SQL优化技巧。

开始将一些独立的服务从主系统剥离,使用RPC进行构建。

权限系统
存储系统
多媒体处理系统
验证码系统

你的日PV达到了千万级。内部系统的hits达到了数亿。
你从几篇博客里学习了几篇DDD的知识,要求程序员小B、小C开始写单元测试。直接使得小C的不满,导致小C的离职。小C认为小单元测试是对他技术的不信任。你没有多说什么,招聘了程序员小D,同时将小B提拔为技术总监,你开始将精力放到了你不擅长的商务领域。

第四阶段 – 全球覆盖

你终于迎来了你的第一个海外客户。但是你的客户将他那高达2300ms的ping截图甩你脸上令你羞愧不已。
下定决心开始构建全球系统。
将静态资源存储在Amazon S3,并且使用七牛回源到中国大陆。
使用阿里云的智能域名解析,将域名的ip解析到离客户最快的海外节点。海外节点与主系统构建VPN系统相连接。
开始引入多语言系统,对系统的错误码,文案进行多语言翻译。
你开始拥有了6位程序员,你将小B和小E分为系(加)统(班)保(不)障(给)组(钱).其余人分为前端后端两大组。
小B和小E完善了你的Bug Worker程序,引入了完善的ACK机制和异常处理,解决了偶尔充值不到账的问题,客服小U对小E心生爱意。

终于,你拥有了一个现代化的全球Web后台系统。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理