1、上線規範:mysql
- 規範git版本使用:使用特性分支避免上線衝突;進行代碼review,防止明顯錯誤;使用tag分支可以回滾代碼;
- 規範環境使用:避免測試環境直接鏈接線上服務;上線前必須測試,增長預發佈環境,加強安全意識;
- 上線機器:使用ci工具,進行灰度上線,必須跟蹤上線功能實際狀況
- 壓測:新接口建議進行壓測,瞭解QPS狀況
2、接口設計規範:git
- 考慮接口安全性、冪等性
- 儘可能和客戶端溝通好接口的使用狀況
- 對應null字段,能夠選擇不返回,可是客戶端要作好兼容判斷(避免客戶端空指針問題)
- 要求客戶端接口解耦,不要在頁面層傳遞數據,服務端提供原子接口
- 考慮客戶端支持302
- 必須定義良好的異常碼信息
3、代碼規範:sql
- 避免屢次遠程調用(mysql、緩存、rpc等網絡請求),儘可能使用mget,多線程等減小請求次數。若是使用多線程,須要考慮原始排序問題
- sql語句必須考率性能問題
- 控制服務的併發請求,防止資源耗盡
- 考慮自動/手動降級,防止資源耗盡
- 考慮mock
- 由於瓶頸會出如今網絡故障/網絡帶寬/網卡問題/等非第三方自己服務上,因此必需要考慮超時致使的性能問題
4、報警機制(只定位一部分線上問題,不能定位業務邏輯致使的問題):緩存
- 業務異常:好比某些重要字段爲空、特殊字符、等
- 性能異常:第三方超時、基礎服務不可用等
- 機器異常:機器自己,或者網絡異常等
- 指標異常:mysql鏈接數等
5、善用工具安全
- 全鏈路監控:性能可視化;行級定位;重要業務場景還原
- 業務分析:自動分析業務執行狀況