序言
武漢的肺炎疫情牽動著全國人民的心,日益嚴峻的疫情更是給本該全國歡慶的春節蒙上一層陰影。看到疫區醫院 IT 運維志願者的召集令以及各地同行紛紛動手開發系統為國家盡力時,有些坐立不安。
一通電話打響了衝刺戰
夥伴有個公益的項目希望我們能支持,希望能儘早上線,幫助廣大學生在疫情期間依然能有機會學到最好的知識。在就產品需求、技術方案、人員情況、當地疫情等多方面全面評估後,夥伴們決定一起用技術奉獻社會。
- “需求能不能做?” “公益的事情再難也要做!”
- “回家過年帶沒帶電腦?” “帶了!”
- “這兩天能不能在家參與開發?” “能!”
- “家裡有沒有網絡?” “沒,我來解決!”
- “當地疫情如何?” “沒事,放心!”
在和夥伴們溝通時,大家的積極響應讓之前擔心的難題一一化解。為夥伴們的積極奉獻點贊!為夥伴的公益創意點贊!
衝刺96小時
3.1 面臨的挑戰
環境的挑戰
- 春節期間很多同學都回老家過年,家裡網絡情況參差不齊
- 大家分散辦公,不在一個局域網內,模塊間聯調是個挑戰
- 在公司時,有很多基礎服務來支撐研發工作,現在這些都遠水解不了近渴
- 平時忙難得在家,親人需要照顧,家務要儘量去幫把手
溝通的挑戰
- 平時在公司,抬頭、側臉就能看到對方,探身看下屏幕就能瞭解情況,現在只能不停的碼文字、語音、電話
- 平時每天的晨會讓大家快速瞭解團隊的情況,現在每個人的進展如斷線的珍珠散落一地,需要不斷梳理
- 平時需求溝通,可以按節奏推進,現在只能倒排計劃,就像一面開車、一面查目的地的情況
技術的挑戰
- 由於事發緊急,又要趕進度,要儘量選擇對現有功能影響最小的方案,不讓新需求干擾既有功能。要充分利用既有系統架構的特點。
- 需求的訪問量未知,流量可能會極速激增,將系統壓垮。於是只能做最壞的打算,做最好的準備。要充分發揮雲計算的彈性優勢。
- 要考慮財務的可行性。不惜一切代價是態度,但不能作為工程實踐的指南。要做好預算,做好預案,讓花的每一分錢,都有價值。
3.2 讓人感動的細節
細節一:打磨需求,不放過每個細節
這個文案與這次公益行動不符,要改!
這個不容易理解,要改!
正向需求驗證沒問題,既有的系統功能呢?要驗證!
前臺交互沒問題,後臺日誌系統是否有影響?要分析!
對其他依賴的第三方應用是否有影響?要保證兼容性!
細節二:持續優化流量
增加 50%能不能抗住?
流量翻倍能不能抗住?
流量數十倍增加能不能自我保護?
能不能動態擴容抗住壓力?
能不能減少流量抖動帶來的不必要的彈縮?
流量模型是什麼樣子?流量會聚集在哪個瓶頸點上?
各個突發情況下,除了自動化機制外,還有哪些其他的應急措施?
在這樣追問、討論中,大家不斷深入思考;在 PTS 的各種壓測數據中,大家不斷探求優化的思路和可能。為了不影響既有用戶的訪問,所有的壓測都集中深夜;為了獲得真實的一手數據,敢於直接壓測生產環境(這也得益於系統的魯棒性強)。
3.3 精誠協作的團隊
- 夥伴團隊:一聲召集令,所有相關人員齊上陣。產品經理、技術專家、業務領導全部參與,細節上能耐心反覆打磨,夜間壓測能共進退,技術方向上能全局把控。
- 雲頂雲團隊:雖橫跨北方多省,但不影響團隊成員間的相互配合。敢拼!敢試!敢承諾!
- 阿里雲團隊:無論值班的同學還是已放假的同學,都積極配合。技術工單快速響應,技術問題鼎力支持。
3.4 留下的數據
- 連續作戰 4 天 4 夜,不只是96 小時
- 持續發佈 7 版,不斷迭代完善
- 流量激增XX倍,抗住了!
- 釘釘語音會議 30+ 次
- 參與的同學 20+ 名
我們的裝備
- 開發工具:IDEA、VS Code、微信開發者工具、Chrome 開發者工具
- 協作工具:GitLab、釘釘、微信、電話、WPS
- 測試工具:PTS、阿里雲容器服務、按量搶佔式ECS、雲監控、SQL
- 防護工具:口罩、消毒液
❤眾志成城 共克時艱❤
閱讀更多 黃軍雷 的文章