第一階段 - 項目成立
- 隨便在阿里雲買了一臺虛擬機。
- 在萬網買了一個不是很滿意的域名。
- 使用免費的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後臺系統。
閱讀更多 防火牆最開心 的文章