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

Java基础

浏览数:187

2019-2-15

AD:资源代下载服务

第一阶段 – 项目成立

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

第二阶段 – 开始运营

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

第三阶段 – 天使在望

  1. 注册用户竟然达到了惊人的10万。
  2. 一些调皮的用户开始对你的系统进行业务测试,你开始关注防火墙与SQL注入等安全问题。
  3. 为队列系统购买了数台服务器充当RabbitMQ Cluster与Worker Cluster角色。将一些非实时性与高消耗任务迁移到队列。

    1. 发生短信/邮件。
    2. 计算用户行为。
    3. 统计各项数据报表。
  4. 同时购买了阿里云的RDMS从库,使用KingShard等中间件进行透明读写分离。CPU不在持续在80%以上。
  5. 开始开发全端客户端,使用Access Token权限机制代替Session。
  6. 开始处理当初写下得烂SQL,优化系统性能。
  7. 招聘了程序员小B,小C。

第四阶段 – 数据盛宴

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

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

第五阶段 – 全球覆盖

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

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

原文地址:https://segmentfault.com/a/1190000018137492