從0到1:WEB後臺的變遷史

第一階段 - 項目成立

  1. 隨便在阿里雲買了一臺虛擬機。
  2. 在萬網買了一個不是很滿意的域名。
  3. 使用免費的Gitlab創建了自己的代碼項目。
  4. 通過朋友介紹認識設計師小A。

第二階段 - 開始運營

  1. 另外多買了一臺虛擬機。
  2. 購買了阿里雲的負載均衡服務,並且將80,443端口指向這一新一舊兩臺服務器。
  3. 考慮到數據庫安全,購買了阿里雲的RDMS服務,不再擔心數據丟失與備份問題。
  4. 給服務器創建了一些短信告警。

第三階段 - 天使在望

  1. 註冊用戶竟然達到了驚人的10萬。
  2. 一些調皮的用戶開始對你的系統進行業務測試,你開始關注防火牆與SQL注入等安全問題。
  3. 為隊列系統購買了數臺服務器充當RabbitMQ Cluster與Worker Cluster角色。將一些非實時性與高消耗任務遷移到隊列。
  4. 發生短信/郵件。
  5. 計算用戶行為。
  6. 統計各項數據報表。
  7. 同時購買了阿里雲的RDMS從庫,使用KingShard等中間件進行透明讀寫分離。CPU不在持續在80%以上。
  8. 開始開發全端客戶端,使用Access Token權限機制代替Session。
  9. 開始處理當初寫下得爛SQL,優化系統性能。
  10. 招聘了程序員小B,小C。

第四階段 - 數據盛宴

  1. 你開始從別人的口中聽到你的產品消息。好的或者不好的。
  2. 系統數據量開始以超過60度角的水平遞增,你坐在電腦前 tail -f /var/log/nginx.access.log 享受著qps帶來的榮耀感。
  3. 你開始在辦公室掛了2塊屏幕顯示當前系統的平均響應時間和異常總數。
  4. 客戶開始投訴系統越來越慢,幾張極度增長的MySQL數據表開始讓你擔憂不已,開始設計下一代系統。引入了分表分庫,將搜索功能遷移到了ElasticSearch。你在Google上瘋狂的搜索SQL優化技巧。
  5. 開始將一些獨立的服務從主系統剝離,使用RPC進行構建。
  6. 權限系統
  7. 存儲系統
  8. 多媒體處理系統
  9. 驗證碼系統
  10. 你的日PV達到了千萬級。內部系統的hits達到了數億。
  11. 你從幾篇博客裡學習了幾篇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後臺系統。

從0到1:WEB後臺的變遷史


分享到:


相關文章: