天天看點

《Docker微服務架構實戰》| 每日讀本書

編輯推薦

1.内容豐富,清晰講解了架構演進過程、Service Mesh技術原理、Docker技術原理、Docker與DevOps整合等要點,深入淺出前沿技術。

2.融合了作者在中小型企業推廣微服務和Docker的親身經驗,适合中小型企業從業者閱讀、學習,讓小公司也能玩轉大項目。

3.理論結合實戰,觸達微服務和容器領域的熱門技術與清晰工程實踐流程,帶你快速建立為服務生态圈的全局知識體系。

《Docker微服務架構實戰》| 每日讀本書

蔣彪 著

内容提要

微服務與Docker是近年來分布式大規模服務架構中兩個主流的技術趨勢,《Docker微服務架構實戰》主要介紹中小型企業在架構落地過程中柔性地切入微服務和Docker虛拟化的各種方法。

《Docker微服務架構實戰》主要介紹了微服務架構的各種技術選型、微服務拆分的各項原則、傳統應用向微服務架構過渡的方法論、Docker技術原理、Docker跨主機通信選型、Docker與DevOps的整合方法等要點,同時簡單介紹了利用Rancher搭建Docker容器雲平台的快速解決方案,非常适合雲計算從業人員閱讀、學習。

作者簡介

蔣彪

蘇甯易購進階架構師。2006年至今,曆任程式員、技術經理、架構師、進階架構師等職,具有十餘年研發及技術管理工作經驗。早年在日本參與過みずほ銀行(瑞穂實業銀行)内部精算系統重構項目,以及東京證券交易所新一代交易系統研發項目,回國後主持過江蘇三六五網、麥芽金服、蘇甯易購等公司的大型高并發網際網路架構工作。主要技術領域是微服務設計、容器化部署、容器雲計算、DevOps方法論、AIOps模型實戰。

精彩導讀

前言

Docker與微服務是什麼

到底什麼是架構師?一名架構師的職責應該是什麼?

很多年前,我作為一名架構初學者,便了解了架構師要做的事情。從方法論上來看,就是“識别利益相關者”“梳理各個層次的利益傳遞”和“根據利益線索設計有伸縮性的架構”。

同樣,以架構師的視角來看,到底什麼是微服務呢?作為架構師,我所看到的微服務,是在團隊人數井噴,産品疊代周期太快,系統中的技術負債過剩導緻不能将雞蛋放到同一個搖搖欲墜的籃子,投資人對産品功能特性提出誇張、多變要求的大背景下,在投資人、經理層、研發人員、測試人員、運維人員等各個利益相關者的逼迫下,被迫地将系統從并發、擴充、易維護等次元進行的拆分。

按照微服務的思想将系統拆分之後,我們發現,拆分得越厲害,系統的資訊熵就越大,是以有了系統的拆分,就要有拆分之後的治理。

比如,如何保證拆分之後應用的注冊發現?如何保證拆分之後服務的熔斷限流監控?如何保證服務之間底層通信的可靠性和序列化?

為此,各種各樣的服務治理以及分布式服務協同架構便出現了。

那麼是不是有了微服務的拆分再加上微服務的治理就足夠了呢?對于開發人員而言也許足夠了,但是對于運維人員而言,遠遠不夠。拆分使得系統的健壯性大大提高,但是也使系統的釋出和運維異常複雜。試想一下,如何在一個分布式的環境下令幾萬個微服務快速啟停?如何實作幾萬個微服務的管理、編排與自動擴容?

為了解決這些問題,Docker以及與Docker關聯的各種容器編排技術便出現了。

是以,如果我們站在終點回望起點,就會知道為什麼會有微服務,又為什麼會有Docker,乃至為什麼會有今天的Service Mesh。我們可以說,這些技術的産生一脈相承,它們的根本目的都是解決系統複雜度井噴之後的系統架構問題;從學術上來說,這些技術都是在和複雜分布式架構中的資訊熵進行對抗;從工程上來說,這些技術是當今時代背景催生出的必然産物。

為什麼寫此書

作為一名技術人員,比起知道技術的用法,更重要的是要知道如何使這項技術切合公司現有的技術棧、業務線,如何解決公司的痛點,如何在各個部門的協同下将技術實際落地。

一項技術再好,再優秀,在實際落地中也要“削足适履”,要根據公司的産品線走,跟着公司的技術現狀确定如何應用。畢竟絕大多數公司的第一要務是生存與盈利,能夠專職供養一支底層研究技術團隊的公司少之又少,更何況是對Docker這樣的“底之又底”的技術棧。

對于一名架構師而言,當你決定引入Docker的時候,你要知道,你在公司内引入的不是一個簡單的技術架構、一個中間件、一個自動化工具,而是一種思想、一個雲平台、一個新的開發習慣。

對于Docker的引入,從入門到落地,需要架構師、運維工程師、網絡工程師、研發人員、測試工程師,乃至公司高層的全面支援和協作。把Docker用到極緻,就是在建設自己的雲平台和PaaS,對于這種體量的研究,若沒有一個全面的規劃和路線圖是無法完成的。

同時,對于Docker的引入者而言,需要學習包括Docker底層的原理、Docker的網絡模型、Docker的容器隔離、Docker下的自動釋出與自動運維,乃至常被很多人挂在嘴邊的Docker容器編排、Docker與微服務、Docker與DevOps在内的方方面面的知識。

上述所有的知識,若能夠集中在一個人身上,實在是難得。畢竟,在IT行業,每個人都有自己的知識短闆。

甚至我可以負責任地說,在很多公司中,若想找到一支能夠搞定底層到上層方方面面建設的專業團隊,都是很困難的。

舉個例子,我見過很多Docker實際應用的場景,在一些中型場景中,通常直接用bridge端口來轉發通信,為什麼會這樣?因為很多公司雖然不缺少優秀的程式員,但是缺少網絡方面的架構師,不懂也不敢嘗試複雜的網絡模式。再比如,我親眼見到有的項目在落地的時候,采用Docker挂載卷軸的方式釋出代碼,為什麼?因為這些公司缺少專門的人來維護CI/CD平台。

正是因為有這些困難,是以筆者将自己在中小型企業中推廣微服務和Docker的親身經曆和親眼所見總結出來,從技術選型和架構切入的層面進行梳理,希望通過這本書将這些好的經驗傳遞給需要的讀者,幫助更多的人。

積跬步以至千裡。每天讀本書,為您搜羅最具權威專業書籍,更多圖書推薦請關注

每日讀書

好知識需要分享,如您有喜歡的書籍想與廣大開發者分享,請在文章下方評論留言,我們将為大家推薦您的愛書!