官术网_书友最值得收藏!

前言

當前,微服務架構在國內正處于蓬勃發展的階段,無論是大型互聯網公司還是傳統的IT企業,紛紛采用微服務架構構建系統。在過去幾年里,DevOps、云原生、面向演進式架構等理念已經深入人心,圍繞微服務生態也出現了大量的組件、框架、工具,這很好地支撐了海量的數據增長和用戶業務需求的快速變化。本書將從微服務理論開始介紹,結合作者多年的工作經驗,深入講解分布式系統和微服務架構,從而幫助技術人員切實掌握微服務架構技術。

緣起

“物之所至者,志亦至焉;志之所至者,禮亦至焉;禮之所至者,樂亦至焉;樂之所至者,哀亦至焉。”

——楚簡《民之父母》

2008年,在一次軟件架構設計高端課程中,有人將中國傳統的“五至”與軟件工程做了形象的類比,提到從事軟件開發工作的工程師要“以物為本”。這次課程學習讓我印象深刻,也讓剛剛從事軟件開發工作的我第一次對“架構”這個詞有了直觀而深刻的認識,這次課程學習成了我后來的架構師之路的燈塔。

在“五至”中,對“物、志、禮”進行了明確的排序:先有物,而后有志,最后有禮,所以重點是“物”。我們把這種思想對應到軟件工程的項目實踐中,可以這樣理解:物就是最終的交付物,即軟件產品;志對應項目的利益相關人;而禮則對應項目的過程管理。這樣的排序不無道理,在項目實踐過程中,應該以最終的交付物為中心,所以我們必須重視架構設計,只有經過完善的架構設計,才能呈現最好的軟件產品。在項目的初期就要做好架構設計,達到“物之所至”;協調項目的利益相關方,達成共識,達到“志亦至焉”;在項目的進行過程中,做好項目管理和流程監控,達到“禮亦至焉”。

由上可知,軟件架構是決定軟件工程成敗的首要因素,架構之道就是面對不同的問題域找到最佳的技術實現方案。在軟件工程中,技術架構同時受到組織、流程管理的影響,然而軟件產品最終能否成功仍然需要“以物為本”。

與時俱進

縱觀計算機產業,過去的半個世紀,遵從摩爾定律的規律,計算力一直保持著大跨度的提高。1956年,英特爾創始人戈登·摩爾提出,集成電路的集成度每兩年會翻一番;而后這個周期縮短到18個月,微處理器的性能每隔18個月提高1倍。然而,硅芯片已逼近物理和經濟成本上的極限,許多專業人士紛紛預測,摩爾定律在不久的將來會失效。界時,我們會面臨CPU性能提升放緩,計算力增長勢微的局面。同時云計算、大數據、物聯網、邊緣計算、人工智能等技術的進一步成熟所產生的海量數據,卻加大了對后端數據中心計算力的需求。

數字化經濟的快速發展和云計算給底層IT系統帶來的巨大變革正是當下微服務架構快速發展的時代背景。Gartner預計,從2018年到2022年,PaaS將成為未來的主流平臺交付模式,而PaaS平臺需要更加靈活的云原生應用架構做技術支撐,微服務架構正是云原生架構落地的關鍵技術。

正所謂“大道至簡”,微服務本身是一個化繁為簡的過程,它采用細粒度的分布式架構模式,通過系統化的思考方式,將紛繁復雜的業務邏輯映射到底層技術。在軟件構建方面,微服務傾向于使用面向服務和領域驅動設計(Domain Driven Design)的方法論,將現實中的問題投影到對象的世界。“抽象、分解、擴展、復用”是常見的微服務構建系統的內功心法。然而軟件開發沒有“銀彈”,架構設計還要從使用、性能、成本、效率、團隊、收益等多方面權衡(Trade-off),進行綜合考慮。

微服務架構的目標是,將業務與技術的復雜度進行分離,使業務更專注于實現對客戶的價值交付,而將非功能需求封裝在平臺或者底層SDK中。目前在企業的應用開發中,Spring Boot和Spring Cloud平臺作為微服務的技術開發框架,依然占據主流地位;而伴隨容器和Kubernetes平臺的崛起,結合自動化和DevOps持續交付流程,微服務可以顯著提升應用交付的效率和產品的質量,此外。微服務還有如下優勢:

● 更加快速地響應業務需求。

● 可提升應用的開發效率。

● 可滿足對云原生的支持。

● 可滿足系統的彈性、擴展性的需求。

● 容錯性及生產就緒特性可保證服務的高可用。

● 有標準化的服務實現和交付方式。

● 基于“不可變基礎設施”模式,可以減少環境因素的影響。

● 可提升系統性能及資源利用率。

傳統粗放式的開發和運維方式將逐漸被取代,而更加高效、智能化、自動化的開發和運維方式將使每個人從中獲益。當前,微服務和云原生應用架構還在快速演進之中,其間充滿了機遇和挑戰。作為軟件從業人員,面對技術的更新迭代,我們唯有整裝待發,才能與時俱進。

關于本書

本書的原理篇將深入講解當前微服務架構的理念和方法論;實踐篇主要講解Spring Boot和Spring Cloud微服務框架體系;進階篇關注微服務發展的技術趨勢。本書既涵蓋了我多年在傳統電信企業中積累的分布式架構設計經驗,也涵蓋了互聯網金融行業的前沿技術實踐;本書既有我在大型項目中的經歷分享和痛點復盤,也有開源軟件的案例介紹,以及當下微服務技術趨勢的深度剖析和預測。在本書的代碼案例中,使用的是Spring Boot 1.5.11,在進階篇中使用了Spring Boot 2.x,這兩種版本在使用和配置方面有諸多不同,并且其中一些功能僅支持JDK1.8及以上版本,讀者在閱讀中需要注意。

內容結構

本書在結構上從3個層次深入解讀微服務架構,希望讀者能夠循序漸進地深入了解微服務架構的理論及技術實踐;當然,具備一定微服務架構經驗的工程師也可以根據需要選擇性地閱讀。

原理篇

原理篇主要講解微服務的概念、微服務與云原生的關系、微服務的主要特性及設計哲學、采用微服務的前提、微服務構建的理論基礎及基本原則,以及領域驅動設計和微服務構建方法論、DevOps方法論等相關知識。

實踐篇

實踐篇主要對微服務架構落地的腳手架、關鍵技術、系統集成、數據架構、持續交付、服務治理監控等重要技術話題展開講解。另外,針對初學者對Spring Boot和Spring Cloud體系“入門容易、精通難”的問題,實踐篇中結合框架源碼詳細解構了Spring Boot的框架底層運行機制,并具體介紹了Spring Cloud核心治理組件及其工作原理,還會講解如何基于開源軟件做擴展性開發。

進階篇

進階篇主要介紹函數式編程、響應式微服務架構設計原理、常用的響應式編程框架、Spring Boot 2新特性,講解Kubernetes工作原理、微服務與云原生生態的技術融合演進、微服務未來的技術發展趨勢。

由于我在編寫本書的同時需要兼顧工作,時間和精力有限,書中難免有不足之處,懇請廣大讀者批評指正。

致謝

首先感謝工作中的各位同事,感謝生活中的朋友,感謝宜信公司的高蕾涵同學,感謝電子工業出版社董英老師的鼓勵和幫助,因為你們我才有動力完成這本書。最后,謹以此書獻給我的妻子和家人,感謝你們對我工作的大力支持!

王佩華

讀者服務

微信掃碼回復:41238

● 獲取本書配套資源

● 獲取作者提供的各種共享文檔、線上直播、技術分享等免費資源

● 加入本書讀者交流群,與作者互動

● 獲取博文視點學院在線課程、電子書20元代金券

主站蜘蛛池模板: 大冶市| 吴堡县| 房产| 衡东县| 龙州县| 明星| 咸阳市| 安泽县| 陈巴尔虎旗| 沁源县| 武夷山市| 中西区| 宜州市| 福安市| 富蕴县| 北流市| 清远市| 天峨县| 卢氏县| 泌阳县| 沁阳市| 鄢陵县| 土默特右旗| 上林县| 剑阁县| 曲麻莱县| 广南县| 扎赉特旗| 尼勒克县| 长兴县| 盘山县| 新平| 抚宁县| 吉水县| 洛扎县| 乌海市| 甘德县| 南木林县| 荣昌县| 日土县| 通州市|