本書從單體應用編程基礎開始,帶領讀者一步步地完成單體應用并將單體應用改造成微服務,然后進行容器化以及容器編排,循序漸進地構造云原生應用。本書著重于經(jīng)驗分享和總結,同時也會有相關的概念解析以及代碼示例,希望能夠幫助大家少走彎路,共同學習與進步。
本書著重于云原生技術落地實踐的經(jīng)驗分享和總結,通過完整的單體應用改造與云原生構建實踐,更快地建立起自身對云原生應用的理解以及感受傳統(tǒng)應用演變?yōu)樵圃鷳玫倪^程變化;并力求在把云原生相關關鍵技術和實踐案例講解清楚的同時,能將實際工作中走過的路甚至踩過的坑凝練成具體的經(jīng)驗,融入其中,以期幫助讀者少走彎路,共同學習和進步。
隨著云計算的飛速發(fā)展,近年來,云原生這三個字不斷地出現(xiàn)在我們的視線內(nèi)。對于云原生,我們可能存在著一系列的問題,如什么是云原生、什么是云原生應用、為什么要云原生、應該如何構建云原生應用、云原生未來的發(fā)展趨勢是什么等。對于這些問題,通過本書,都可以找到相關的答案。 本書以現(xiàn)代軟件行業(yè)的需求以及軟件架構的變化為出發(fā)點介紹了云原生的相關概念,并在此基礎上進行了云原生應用的構建實踐。在構建實踐的過程中秉承著先概念解析后代碼示例的原則,詳細地記錄了如何從單體應用一步步地變?yōu)槲⒎⻊,然后如何進行容器化以及容器編排,循序漸進地為大家展示了整個構建之路。 本書著重于云原生技術落地實踐的經(jīng)驗分享和總結,筆者力求在把云原生相關關鍵技術和實踐案例講解清楚的同時,能將自己在實際工作中走過的路甚至踩過的坑凝練成具體的經(jīng)驗,融入其中,以期幫助讀者少走彎路,共同學習和進步。 除此之外,筆者更希望通過本書寫作中對云原生整體架構的梳理,幫助讀者理清云原生這個大體系中各個組成部分之間的內(nèi)在關聯(lián),找到它們之間相扣的環(huán);若能做到這一點,那么讀者心中的云原生體系就不再模糊和散亂,而是一個有條不紊、各司其職的有機整體了。 本書為誰而寫 鑒于在實際工作中積累而得的淺見以及對云原生從業(yè)崗位的了解,筆者深切地希望以下三類讀者能從本書的寫作架構和工作經(jīng)驗中獲益。 (1)軟件開發(fā)初學者和在校學生 云原生技術體系龐大,知識點較多,軟件開發(fā)初學者及在校學生往往不知從何學起, 希望通過本書可以幫助初學者及在校學生理清知識脈絡,找到適合自己的學習路線。 (2)有一定開發(fā)經(jīng)驗的軟件工程師和架構師 隨著云原生的發(fā)展,云原生技術逐漸成為目前的主流,希望通過本書可以幫助軟件 工程師和架構師更加系統(tǒng)地了解云原生的體系架構與內(nèi)在關聯(lián),繼而在實際的工作中能夠落地云原生,推動新技術的發(fā)展。 (3)非技術人員和項目管理者 隨著現(xiàn)今業(yè)務的不斷上云,從云化到云原生化的轉變只是時間問題。 希望通過本書可以幫助非技術人員和項目管理者了解行業(yè)技術發(fā)展以及云原生的相關理念。 源代碼下載包 為了方便讀者更好地學習本書,筆者將書中源代碼整理成下載包,讀者可通 封底鏈接下載獲取。 交流與感謝 本書的內(nèi)容大都來源于筆者的工作經(jīng)驗,由于筆者水平有限,編著時間倉促,難免存在遺漏或不準確之處,懇請各位讀者多提寶貴意見,可以發(fā)送郵件到筆者的工作郵箱cloudnativesmile@163.com,批評指正,以促提高。若在閱讀本書的過程中有任何疑惑之處,也歡迎發(fā)送郵件到筆者的工作郵箱,筆者都會在看到后時間給出回復。 后,感謝中國鐵道出版社有限公司全體工作人員為本書出版所做的努力,尤其 感謝責任編輯老師長達數(shù)月的付出,對本書架構提出寶貴意見,為本書寫作做出持續(xù)的指導。
鄒炎 多年從事互聯(lián)網(wǎng)Java開發(fā)與架構工作,擁有豐富的系統(tǒng)架構經(jīng)驗,曾參與過多個大型分布式網(wǎng)站架構設計與開發(fā),指導操作過多個互聯(lián)網(wǎng)系統(tǒng)的微服務改造,擔任過所在企業(yè)的技術講師和校/社招面試官;對分布式與高并發(fā)、云原生有著較為深入的研究和理解。目前從事系統(tǒng)架構和企業(yè)架構設計評審工作,對安全性、高可用、高性能、云原生系統(tǒng)設計與開發(fā)有著豐富的實戰(zhàn)經(jīng)驗。 謝邵虎 曾于GE消費者金融集團(GECF)全球研發(fā)中心擔任系統(tǒng)架構師和TechLeader;擁有十年以上后端開發(fā)經(jīng)驗,精通分布式系統(tǒng)設計和開發(fā),對分布式系統(tǒng)實現(xiàn)及設計理念有獨到的見解,多年系統(tǒng)架構經(jīng)驗。參與開發(fā)/架構多個大型項目,對SpringCloud、微服務、持續(xù)集成、持續(xù)交付、容器技術、大數(shù)據(jù)生態(tài)圈常用組件均有涉獵。 朱明杰 擁有豐富的Java開發(fā)經(jīng)驗,一直工作在編程一線,作為開發(fā)主力參與過多個高并發(fā)、微服務架構的大型項目,現(xiàn)已在線上穩(wěn)定運行,對微服務領域有著較為深入的理解。
第1章何為云原生,云原生為何而生1.1現(xiàn)代軟件行業(yè)的需求.........................................................................................................11.1.1上線交付時間要求越來越短..................................................................................11.1.2支持的設備形式越來越多樣化..............................................................................21.1.3服務可靠性要求越來越高......................................................................................31.2軟件架構的變化...................................................