-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

架構探險:輕量級微服務架構(下冊)

( 簡體 字)
作者:黃勇類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社架構探險:輕量級微服務架構(下冊) 3dWoo書號: 47449
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:9/1/2017
頁數:340
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121324475
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
微服務,我們如何與你相處


微服務來了,有了“服務”這兩個字,這注定又是個一說就明白、一舉例就糊涂、一討論就吵架的概念。微服務的出現有其必然的商業背景和架構哲學,如何更好地認識微服務的內涵、如臂使指地應用微服務架構,還是有著很多挑戰的,這也許就是本書被命名為“架構探險”的原因。
企業數字化轉型驅動架構升級
互聯網經濟深刻改變了我們身邊的商業環境,消費者的生活方式日益數字化,人們可以在任何時間、任何地點利用線上、線下渠道體驗無縫購物,運用社交媒體表達自我,企業也在運用多種技術手段,發揮數字化潛力,改善客戶聯系,促進企業業務模式的轉型。Gartner認為,數字化就是把人、事、物和商業聯系起來,建立新的商業模式。未來的企業都將是IT企業,IT將從后臺走向前臺,從ERP、CRM等內部流程優化為主的業務,逐步轉向內外兼修的模式,從而實現商業創新。
這一變化要求IT架構更加靈活地與上下游企業協作,更加快速地響應客戶的個性化需求,更加彈性地應對無時不在的客戶請求并提供良好的客戶體驗,同時云計算、大數據等技術的出現也為上述改變提供了新的技術選擇,我們正面臨B/S多層架構出現后新的一次架構升級,而微服務架構就是在這個架構升級過程中應運而生的。
分而治之的哲學是微服務的理論基礎
把大的問題分解為容易解決的小問題,找到小問題的解決辦法,再來解決大問題,這就是分而治之的哲學。正如萬事萬物由分子、原子組成一樣,軟件也可以分解為基本單元,以這樣的基本單元進行開發、測試、維護,是解決大規模系統建設的思路。分而治之首先要解決如何分的問題,企業軟件的分法應該是以業務驅動的,而不是以技術驅動的,也就是分解為獨立的業務邏輯,而這樣的不可再分的業務邏輯就是微服務。
凡事有一利必有一弊,細分為微服務后,勢必帶來部署、測試、信息集成難度的提高,分而治之除了“分”,還需要“治”。傳統恐龍型ERP是一個面向組織的軟件,完備、復雜、響應變化慢,適合業務穩定的情況,而在數字化時代,客戶個性化的要求讓我們從這種面向組織的軟件逐漸演變為面向個體的軟件。例如,從前的EHR軟件是為人力資源部門服務的,整體開發、整體實施,而現在我們會從個體的角度規劃軟件,可以先從招聘專員開始做一個面試管理的流程,逐步推出新的流程,完善現有的流程。這些面向個體的流程就是微應用,企業應用將由無數個微應用組成。微服務則是一個技術概念,能更好地解決微應用的技術實現問題,是一個事物的不同側面,所謂“橫看成嶺側成峰,遠近高低各不同”,微服務和微應用是事物的一體兩面。正因為微服務實際就是一個業務邏輯,因此做好微服務需要從微應用的維度考慮,將分解開的邏輯形成一個整體,要從多渠道接入、客戶體驗、數據管理、應用交付、運維全方位的視角考慮,這就是分而治之中實現“治”的體驗,也是微服務架構需要解決的問題。
站在SOA的肩膀上踐行微服務
微服務是一個新概念,但這絕不是一個全新架構,更不是一個包治百病的架構。由于有服務二字,很容易讓人聯想到面向服務架構(SOA),其實微服務架構屬于應用技術架構,和以 B/S 為代表的三層架構相對應,強調將巨石型應用拆分為由微服務組成的應用,在數據上也視情況從集中的存儲拆解為更小的存儲單元。而SOA屬于企業架構的范疇,從企業架構出發把業務分解為不同領域的服務,不同物理系統提供不同服務,注重系統之間通過服務互聯互通的規范,對服務如何實現并不關注。因此,面向服務架構的服務應該是一個業務意義的服務,而微服務是系統中的技術服務,更關注服務的實現,雖然提供了業務意義的服務,但是不能混為一談。微服務使用也不是無限度的,事實上由于數據一致性等問題的限制,不能無限度拆分微服務,因此可以把微服務分為系統對外提供的遠程服務、系統內部的遠程服務和系統內部的本地服務,顯式聲明、明確職責。事實上,在企業架構上使用SOA支撐業務,而在應用技術架構上使用微服務架構,是一個合適的選擇。
黃柳青博士是我和黃勇共同的導師,他在2004年所著的《軟件的涅槃》一書中指出:“互聯網時代的企業應用定義,正發生革命性的變化……橫向的部門互動、實時的企業間互動、多樣的交互渠道、靈活的業務規則,使得原有意義上的獨立應用不復存在……對軟件設計者來說,能直觀地分割并具有最小內部耦合的軟件結構是簡約之美……美的軟件是軟件企業與軟件開發者的終極目標”,那時候他把這種全新的軟件生產模式稱為“面向構件”。回頭看來,微服務正是“面向構件”在數字化時代的解讀,用微服務架構實現軟件之美,加速企業數字化轉型。

—焦烈焱,普元CTO

前言


2017年,微服務三歲了。我們一直期盼它能快速長大,希望微服務技術社區能推出更多框架與工具,可以幫助我們更好地落地微服務,并從中獲得微服務給我們帶來的甜頭,但實際情況卻讓我們感到有些失望。我們至今還在尋找適合自身技術需求的微服務架構,甚至仍然覺得微服務離自己有些距離。
因此我們更多的是在觀望,希望看到有成功實踐微服務的企業能夠將自己的技術分享出來,以供更多的企業來使用,但實際情況仍然讓我們感到失望。我們不得不選擇Spring Cloud這樣的“全家桶”式的微服務框架來實現微服務架構,此時我們就需要基于Spring Boot來開發微服務,Spring Cloud提供的大量基礎設施雖然可與Spring Boot進行無縫整合,但這樣的架構給微服務的技術選型帶來了一定的局限性。此外,Spring Cloud包含了大量的Spring官方所提供的開源項目,目前不同的版本在兼容性方面也存在一些不穩定現象。
我們認為,微服務是一個靈活的技術架構,它不能綁定在特定的技術平臺上,微服務不應該存在任何的局限性,同時還要確保有較強的兼容性。比如,雖然我們也使用Spring Boot開發微服務,但也允許使用其他更適合的開發框架或編程語言來實現微服務。再比如,我們目前通過ZooKeeper來實現服務注冊,但也能輕松地切換為其他技術選型,對于整個應用程序而言,這些都是無感知的。微服務所提倡的理念就是,用最合適的技術以最高效的方式來解決實際應用中的問題。
經過兩年多的實踐過程,我們找到了一款能讓微服務架構快速且穩定落地的解決方案,并將此方案的核心內容匯集成本書,希望該方案能給微服務世界帶一點新的能量。
本書將重點關注微服務基礎設施方面,其中大部分內容涉及微服務運維相關技術。全書以實踐的角度進行編寫,讀者首先將學習輕量級微服務架構的全景視圖,隨后的各個章節將圍繞微服務的日志、監控、通信、解耦、測試、配置六大方面進行展開。讀者可親自動手,從零開始搭建輕量級微服務架構,充分享受架構探險的樂趣。
本書是如何組織的?
第1章:輕量級的微服務。
本章將從宏觀上描述輕量級微服務架構。首先我們將從架構與架構師開始講起,簡單回顧架構演進的過程與微服務的發展趨勢。隨后我們將探討在搭建微服務架構之前需要準備的工作,認識微服務架構的“冰山模型”,介紹切分微服務邊界的方法和技巧。最后我們將從部署與運行兩個角度來觀察微服務架構,并以一幅架構全景圖來結束本章。
第2章:微服務日志。
本章將關注點放在微服務日志上。首先我們將從Spring Boot日志框架入手,使應用日志可以輸出到Docker容器外部,以便我們可隨時查看日志文件。隨后我們將學習Docker日志驅動,使日志信息輸出到Linux的Syslog中。最后我們將Syslog與ELK技術棧整合,搭建一款微服務的日志中心。
第3章:微服務監控。
本章將視角放在微服務監控方面。首先我們將學習Spring Boot應用程序自帶的監控特性,接著將介紹Spring Boot Admin開源監控系統的使用方法。隨后我們將集成InfluxDB、cAdvisor、Grafana等開源工具,搭建一款微服務的監控中心。最后我們將學習Zipkin工具的使用方法,將其用于微服務的追蹤中心。
第4章:微服務通信。
本章將圍繞微服務之間的通信來展開。首先我們將在Spring Boot應用程序中實現基于HTTP的同步調用,同時我們也會對比Spring RestTemplate、OkHttp、Retrofit等工具的使用方法。隨后我們將使用gRPC框架實現基于RPC的同步調用,并將gRPC與Spring Boot進行整合。最后我們將親自動手,搭建一款輕量級分布式RPC框架。
第5章:微服務解耦。
本章將使用消息隊列的異步方式來解耦微服務調用問題。首先我們將對比ActiveMQ與RabbitMQ,它們是兩款經典的開源消息隊列。隨后我們將使用RabbitMQ來實現請求應答模式,并通過RabbitMQ來實現RPC同步調用。最后我們將使用Event-Sourcing與MQ相結合,巧妙地解決分布式事務問題。
第6章:微服務測試。
本章將聚焦在微服務測試方面。首先我們將以Spring Boot應用程序為例,分別針對Service層與REST API進行單元測試。隨后我們將使用Postman來充當REST API的測試工具,并結合Jenkins與Newman搭建一款REST API的自動化測試框架。最后我們將分別使用Swagger與apiDoc工具來自動生成REST API文檔,并比較這兩款工具的優缺點。
第7章:微服務配置。
本章將解決微服務的配置參數問題。首先我們將通過一些實例,快速學習Ansible自動化運維工具的使用方法。隨后將Ansible作為微服務的配置中心,并將Jenkins與Ansible相結合,可用于優化我們現有的微服務部署框架。最后我們將使用Registrator所提供的自注冊特性,實現微服務的平滑升級目標。
此外,請關注“架構探險圖書”微信公眾號,可免費獲取關于本書后續的更多內容。

致謝
首先需要感謝的是我們的技術團隊,如果沒有你們所提供的實踐經驗,這本書也不可能問世。我很慶幸自己能加入特贊技術團隊,也很感激你們對我一如既往的支持與鼓勵。在微服務實踐這條路上,你們才是專家,我只是把你們的寶貴經驗整理出來,希望能讓更多的人從中受益,我想這也是我們特贊技術團隊的共同理想。
自從去年9月上冊出版以后,很多讀者都在問“下冊什么時候出版?”,我原本以為是今年上半年就能完成的事情,沒想到計劃不如變化,公司有更加重要的工作需要我去完成,因此寫書的計劃也被頻繁打斷。直到一年后的今天,下冊才能與你們見面。在此,我先對你們說聲抱歉,也感謝你們一直對我的關注與等待,希望下冊能給你們帶來更多的幫助。
最近這一年中,我在很多公開場合下分享過關于微服務的話題,在此向曾經幫助我的技術專家們致謝,和你們聊技術是一件興奮的事情,讓我更加深刻地認識到微服務的本質,也讓我對我們技術團隊現在搭建的微服務架構更有信心了。同時也感謝你們對這本書所做的推薦,希望我的全力以赴能夠配得上你們的稱贊。
如果說寫完一本書全是作者的功勞,那就大錯特錯了。沒有好的出版社,沒有優秀的編輯,我想再好的書也會讓大家失望。感謝本書編輯陳曉猛先生對本書的辛勤付出,我在曉猛身上學會了謹慎與專注,這是我和曉猛第三次合作,每次合作都能讓我感到,寫書其實是一件快樂的事情,我很享受這個過程。
最后我想把感謝的話留給我的妻子和女兒,感謝你們一路陪伴著我,我們共同見證著對方的成長。這本書能夠順利完成,絕對離不開你們努力,因為你們給了我一個幸福而美滿的家庭,讓我能夠將心思沉醉在寫作之中。雖然最后我才感謝你們,但你們在我心中永遠是最重要的人,永遠無法取代。

黃勇
2017年7月18日于上海
內容簡介:

本書將重點關注微服務基礎設施方面,其中大部分內容涉及微服務運維相關技術。全書以實踐的角度進行編寫,讀者首先將學習輕量級微服務架構的全景視圖,隨后的各個章節將圍繞微服務的日志、監控、通信、解耦、測試、配置六大方面進行展開。讀者可親自動手,從零開始搭建輕量級微服務架構,充分享受架構探險的樂趣。

目錄:

第1章 輕量級的微服務
1.1 微服務將變得輕量級
1.1.1 架構與架構師
1.1.2 架構演進過程
1.1.3 微服務架構發展趨勢
1.2 微服務架構前期準備
1.2.1 認識微服務架構冰山模型
1.2.2 冰山下的微服務基礎設施
1.2.3 根據業務切分微服務邊界
1.3 輕量級微服務架構圖
1.3.1 輕量級微服務部署架構
1.3.2 輕量級微服務運行架構
1.3.3 輕量級微服務全局架構
1.4 本章小結
第2章 微服務日志
2.1 使用Spring Boot日志框架
2.1.1 使用Spring Boot Logging插件
2.1.2 集成Log4J日志框架
2.1.3 將日志輸出到Docker容器外
2.2 使用Docker容器日志
2.2.1 Docker日志驅動
2.2.2 Linux日志系統:Syslog
2.2.3 Docker日志架構
2.3 搭建應用日志中心
2.3.1 開源日志中心:ELK
2.3.2 日志存儲系統:Elasticsearch
2.3.3 日志收集系統:Logstash
2.3.4 日志查詢系統:Kibana
2.3.5 搭建ELK日志中心
2.4 本章小結
第3章 微服務監控
3.1 使用Spring Boot監控系統
3.1.1 Spring Boot自帶的監控功能
3.1.2 Spring Boot Admin開源監控系統
3.2 搭建系統監控中心
3.2.1 時序數據收集系統:cAdvisor
3.2.2 時序數據存儲系統:InfluxDB
3.2.3 時序數據分析系統:Grafana
3.2.4 集成InfluxDB + cAdvisor + Grafana
3.3 搭建調用追蹤中心
3.3.1 開源調用追蹤中心:Zipkin
3.3.2 追蹤微服務調用鏈
3.3.3 追蹤數據庫調用鏈
3.4 本章小結
第4章 微服務通信
4.1 使用HTTP實現同步調用
4.1.1 使用Spring Boot開發服務端
4.1.2 使用Spring RestTemplate開發客戶端
4.1.3 使用OkHttp開發客戶端
4.1.4 使用Retrofit開發客戶端
4.2 使用RPC實現同步調用
4.2.1 RPC通信原理
4.2.2 初步體驗gRPC
4.2.3 Spring Boot集成gRPC
4.3 搭建分布式RPC框架
4.3.1 架構設計
4.3.2 搭建模塊代碼框架
4.3.3 開發RPC服務端
4.3.4 開發RPC客戶端
4.4 本章小結
第5章 微服務解耦
5.1 使用MQ實現異步調用
5.1.1 使用ActiveMQ實現JMS異步調用
5.1.2 使用RabbitMQ實現AMQP異步調用
5.2 使用請求應答模式實現RPC調用
5.2.1 請求應答模式簡介
5.2.2 使用RabbitMQ實現RPC調用
5.2.3 封裝RabbitMQ的RPC代碼框架
5.3 解決分布式事務問題
5.3.1 什么是Event-Sourcing
5.3.2 使用Event-Sourcing與MQ實現分布式事務控制
5.4 本章小結
第6章 微服務測試
6.1 使用Spring Boot單元測試
6.1.1 搭建待測應用程序框架
6.1.2 測試Service層
6.1.3 測試REST API
6.2 搭建REST API自動化測試框架
6.2.1 使用Postman手工測試REST API
6.2.2 使用Newman批量測試REST API
6.2.3 搭建REST API自動化測試框架
6.3 自動生成REST API文檔
6.3.1 使用Swagger生成REST API文檔
6.3.2 REST API文檔的另一選擇:apiDoc
6.4 本章小結
第7章 微服務配置
7.1 Ansible入門與實戰
7.1.1 Ansible是什么
7.1.2 準備Ansible實戰環境
7.1.3 Ansible實戰
7.2 搭建服務配置中心
7.2.1 如何管理微服務中的配置
7.2.2 設計Ansible配置中心
7.2.3 動手實現自動化部署框架
7.3 自注冊服務配置
7.3.1 目前服務注冊存在的問題
7.3.2 使用Registrator實現服務自注冊
7.3.3 微服務平滑升級解決方案
7.4 本章小結
序: