本文由 網易雲 發布。
作者:張亮
如果說一個項目的發展歷程就像一段未知的旅程,那《雲原生應用架構實踐》就像一張地圖,基於前人的探索標明了在這段旅途中將會碰到的障礙,並注明了越過這些障礙的方法
最近,利用碎片化的時間把團隊寫的《雲原生應用架構實踐》通讀了一遍。
作為一個解決方案架構師,我感覺收獲很多,主要是對雲原生架構有了一個系統的認識,並了解了一個從無到有、從小到大的項目,在整個成長過程中可能碰到的問題,以及解決這些問題的思路、方法和工具。
這本書首先介紹了雲原生架構的發展歷程,解釋了企業為什么要采用原生架構。然后以一個業務通常的發展路徑(即從無到有、快速成長到比較穩定的大型應用)為例,講述在各個階段的不同業務目標下,企業在可用性、可擴展性、可維護性、安全性等方面的需求,結合網易實際業務的經驗,給出了建議,並講解了常見的技術和工具。
如果說一個項目的發展歷程就像一段未知的旅程,那么這本書就像一張地圖,標明了在這段旅途中將會碰到的障礙,並且注明了用什么辦法去越過這些障礙。而且這張地圖是別人已經走過一遍的,因此這些問題不是憑空想象出來的,而解決這些問題的經驗,也都是花費了很多時間,進行了大量測試,在不斷迭代不斷改進之后得到的。對於拿到這份地圖的人來說,一路的障礙並沒有減少,但卻可以少走很多彎路,可以更從容、更自信地抵達他們的目的地。這也是我認為這本書最有價值的地方。
這些內容會讓我們對項目從小到大發展過程中遇到的問題和解決辦法,有一個較為全面的認知,當項目真正碰到問題時,我們對問題的關鍵以及主要的解決手段能做到心中有數。我們不一定會立刻用得上這些知識,因為項目目前可能還沒有達到那么龐大的規模,但是我們可以為即將面臨的技術挑戰做好必要的准備,這樣當項目不斷發展壯大,並確確實實暴露出書上描述的問題時,我們不至於欠太多的技術債從而導致應用或者難以擴展,或者難以協同開發,或者難以維護,或者改造的成本非常高昂,以至於最終影響了業務的發展,為最初沒有做良好的設計而付出沉重代價。
書中提到的雲、微服務、DevOps,這些概念其實已經被提出來很久了,尤其是雲,那是前幾年非常熱門的話題。行業內的人會感覺這些概念已經是盡人皆知,沒有新意。因為他們天天都在用,都在實踐。但從我接觸到的不少客戶來看,實際卻不是這樣的。比如一些傳統行業的客戶,並不是很了解雲計算到底是什么,對使用雲服務到底能帶來多少好處、會有哪些風險也不是很清楚;有一些做Web開發的程序員,還不知道Redis這樣的緩存服務;也有很多開發者,還不清楚容器是什么,使用容器有什么好處。
這很正常,因為在這些概念被炒得熱火朝天的時候,這些客戶的業務大部分都並沒有像互聯網公司的業務那樣有指數級的用戶增長,有雙11的海量訪問,有秒殺、搶購的突發流量,有業務劇烈波動帶來的波峰波谷,因而也沒有面對海量訪問保證服務穩定可用同時還要保持成本盡可能低的需求。正因為他們的業務還沒有碰到這些問題,彈性伸縮、秒級啟動、動靜分離、無狀態服務、服務治理、分布式應用、分布式事務等等在大規模互聯網業務中常見的技術,對他們而言是屠龍之技,或者是可用可不用,因為帶來的價值不高。
然而,現在他們開始關心這些技術了。根據我的觀察,這主要有三個原因:
- 這些客戶看到了IT能力將慢慢變成企業核心競爭力的一部分,他們的部分或全部業務依賴軟件來為自己或他們的客戶提供服務。
- 客戶的業務規模擴大了。
- 市場變化越來越快,客戶需要盡可能快地根據市場調整業務,因而開始有了應用快速迭代、便於多個團隊協同開發、盡量自動化、減少維護、成本隨業務發展而變化等需求。
因此,這些客戶目前就碰到了之前那些大型互聯網業務所碰到的同樣的問題。這時候,這本書中那些解決這些問題的經驗就能給他們帶來很大的幫助。
當然,由於雲原生架構涉及到非常多的技術領域,比如Web前端、負載均衡、數據庫、緩存、CDN、監控、日志收集、微服務等等,每一個領域詳細解析都可以寫不止一本書,這本書並沒有涉及每個技術的原理、安裝配置、使用維護和開發,因而我們對於那些內容需要參考其他相關材料。
在IT領域,技術總是不斷發展,新技術層出不窮。可以斷言,未來一定會出現能更好地解決問題的技術和產品。就當下而言,這本書能給那些在上雲、微服務化、DevOps方面尋求業界經驗和最佳實踐的讀者一些啟發,能讓我們將這些經驗用在業務開發當中解決我們的實際問題,並為將來應用更多新技術做好准備,是一本值得一讀的cookbook。
了解 網易雲 :
網易雲官網:https://www.163yun.com/
新用戶大禮包:https://www.163yun.com/gift
網易雲社區:https://sq.163yun.com/