(1)向全棧工程師轉變
應用開發工程師不僅要能開發前端、無線和后端的代碼,還要具備線上運維能力,包括
排查瀏覽器端的前端問題;
排査域名解析和DNS劫持等常見問題
解決前端JS的錯誤定位和資源加載限制問題;
掌握無線端的網絡特性:無線情況下建立TCP連接的耗時、數據下載的影響、WiFi和4G以及弱網絡下的內容適度匹配等;
掌握無線端請求的全鏈路過程:包括手機端到基站的接入,從省級網關出口到服務端網關再到應用系統等;
排查無線端的問題:鏈路染色、日志上報、輿情收集等;掌握無線端的開發技能;
理解服務端 Nginx、 Cache、 Tomcat等服務器的配置文件理解JDK的基本配置參數、內存分配方式和GC調優;
具備線上Java運行環境的排查技能。包括一些開源中間件的報錯定位、操作系統的端口沖突、JWM的異常退出等;
掌握線上應用系統的性能指標,包括網絡、QPS、RT、線程級的CPU消耗、Load、內存的dump;
熟悉線上網絡部署架構,應用服務器和交換機的連接情況、跨機房和跨單元之間的網絡情況
熟悉CDN的部署分布;
熟悉源站DNS的解析步驟,包括VIP的管理、LVS的流量分配、應用服務器之間的健康檢查機制等。
以上是工作中經常會遇到的問題和常用的技能知識,掌握這些內容對排查線上問題非常有幫助。
(2)向全鏈路運維轉變
以前開發人員參與線上運維通常只會關注應用系統本身的問題和業務日志錯誤信息,較少關注整個應用的全鏈路問題,所以當問題出現時,由于信息掌握不全,很難具體定位問題。工程師的關注點應從單系統轉向全鏈路,必須掌握如下內容。
掌握資源依賴的關聯系統:頁面的資源依賴情況、JS和CSS如何發布到CDN節點以及圖片的回源方式等
掌握請求鏈路:掌握無線請求鏈路上每個關鍵環節的信息透出,能夠根據關系數據追蹤請求軌跡;頁面的輸出、信息是如何聚合的、動態內容和靜態內容頁面中的異步加載等;請求的來源和請求的去向。
(3)向工具化和規劃化轉變
工具化能提升效率和把不規范的流程程序化,減少人為操作的出錯概率,它包括如下內容。
信息的輸出要標準化和規范化,包括端上的Log、請求跟蹤、應用日志輸出格式等;
數據的采集要工具化、集中化;數據的統計和分析要多維度化;數據的展示可以個性化和可視化;
建立長期可以跟蹤變化的網站制作基線數據,包括性能、成本、鏈路變更基線。
本文地址:http://murenxiang.com.cn//article/4549.html