Spring Cloud是集微服務框架大成的超值套件
Docker是終極高效輕量級虛擬化的雲端超容器
一個實例貫穿Spring Cloud、微服務架構以及與Docker整合,一試就能上手掌握架構基礎與應用技術。
本書特色
隨著業務的發展、程式的堆砌,公司專案變得日益臃腫、複雜、開發效率低落、難以維護?我們迫切需要能夠解放生產力的新技術──微服務架構Spring Cloud!
作者為Spring Cloud社區創辦者之一,以實戰開發者之豐富經驗,將設定簡單、設計優雅的Spring Cloud所有相關的基礎知識和工具的使用,在本書中進行完整而精闢的剖析;最後則說解了如何將Spring Cloud微服務應用部署運行在Docker上,讓架構系統得予快速、輕鬆且高效運用。
精彩內容
本書涵蓋了微服務理論、開發框架(Spring Cloud)以及執行平台(Docker)三大主題。
❑ Part 1(第1章):有系統的介紹微服務架構。
❑ Part 2(第2-11章):使用Spring Cloud開發框架編寫一個「電影售票系統」。
❑ Part 3(第12-14章):說明如何將微服務實際執行在Docker平台上。
全書採用精心設計的Demo驅動,以連貫的場景、真實的程式範例,來引導讀者學習如何使用強大的微服務技術實現架構設計。本書涵蓋最新版本架構所獨具的技術特性、技巧及案例,幫助讀者避開升級過程中可能遭遇到的困難與陷阱。
更多理論性的內容(如Cloud Native、12-factor APP、DDD等)在文中皆以「延伸閱讀」、「Tips」或「Warning」的形式註記,提供有興趣的讀者依此專研,擴展視野。
適用讀者群
Java工程師、系統架構師和運行維護人員,以及對 Spring Cloud 有興趣的技術同好。
前言
隨著業務的發展,筆者當時所在公司的專案越來越臃腫。隨著程式的堆砌,專案變得越來越複雜、開發效率越來越低、越來越難以維護,夥伴們苦不堪言,毫無幸福感可言。
我們迫切需要能夠解放生產力、放飛夥伴的「良藥」,於是,微服務進入視野。然而,微服務究竟是什麼,眾說紛紜,沒有人能說清楚什麼是微服務。不僅如此,大家對微服務的態度也是涇渭分明,吹捧者、貶低者比比皆是,在筆者的QQ群、微信群中硝煙四起。筆者參加了不少交流會,感覺許多分享常常停留在理論階段。一場會下來,覺得似乎懂了,卻苦於沒有對應的技術堆疊去實現這些理論。
Docker、Jenkins等工具筆者均有涉獵,然而使用什麼技術堆疊去實作微服務架構,在很長時間內都是筆者心中的疑問。
2015年中,筆者偶然在GitHub上看到一個名為Spring Cloud的架構,它以Spring Boot為基礎,設定簡單、設計優雅,且大多元件都經過了生產環境的考驗。筆者花1個月左右的時間詳細研究了Spring Cloud的相關元件後,體會更深。然而,技術選型必須進行客觀、多維度、全方位的分析,而不應由筆者個人的主觀意見作為決定因素。文件豐富程度、社區活躍度、技術堆疊生態、開發效率、執行效率、成功案例等,都是我們選型的重要因素。經過研究,其他幾點都很OK,只缺成功案例—在當時,中國大陸幾乎沒什麼成功案例,甚至連中文的部落格、相關資料都沒有。
這讓筆者陷入兩難,在這一過程中,公司一邊繼續使用阿里巴巴開放原始碼的Dubbo(Dubbo雖然非常流行,但畢竟有段時間沒有維護了,開放原始碼生態也不是很好),一邊在筆者的組織下進行一些Spring Cloud相關的技術分享。一方面是希望借此開拓夥伴們的視野,另一方面也希望能將兩者相互印證,看是否可在現有平台上參考Spring Cloud的設計或使用其部分元件。
2016年8月,筆者有幸代表公司參加了全球微服務架構高峰討論區。會上,Josh Long對Spring Cloud的說明在現場引起了不小的轟動,也讓筆者眼前為之一亮。會後筆者諮詢Josh,Spring Cloud是否可用於生產、是否適合大規模使用、國內是否已有成功案例,對方一一給予肯定的答覆。此一回覆消除了筆者最後的一絲疑慮,開始考慮從Dubbo逐步移轉至Spring Cloud的規劃與方案。會後,筆者心想,不妨將Spring Cloud相關知識歸納成一個「系列部落格」,一來是加深自己的了解,二來也算是豐富Spring Cloud的中文資料。於是,筆者建立自己的部落格(http://www.itmuch.com),並開始了系列部落格的撰寫。寫了兩篇後,筆者將部落格連結分享到微信群中,沒成想,剛好被Josh Long看到,並引用至Spring 官方部落格中。這讓筆者感到無比榮幸的同時,也讓自己貢獻開放原始碼社區的欲望空前強烈,於是乎,一口氣又寫了兩篇。
再後來,筆者成立了微服務/Spring Cloud/Docker相關的QQ群(157525002),在QQ群夥伴的鼓勵下,筆者決定寫一本Spring Cloud開放原始碼書(https://github.com/eacdy/spring-cloud-book),沒想到竟然獲得開放原始碼中國大陸的推薦。再然後,筆者在許進的邀請下,聯合創辦了Spring Cloud中國社區。最後,在群管理員馮靖的引薦下,認識了網紅級的高手張開濤,開濤幫忙引薦了電子工業出版社編輯俠少。從此,筆者正式撰寫實體書。
本以為,有了開放原始碼書的撰寫經驗,實體書應該是較為輕鬆的一件事。然而,樣稿發出後,卻被俠少鄙視⋯⋯主要是語文是體育老師教的,病句滿天飛,況且,理論不是我的專長。期間一度想要放棄,多虧了俠少的鼓勵,總算堅持寫了下去⋯⋯。
倉促完稿之際,感慨萬千,激動與感激交織,於是,本段不可免俗,進入老生常談的「致謝」環節—感謝我的家人,寫書是件費時費力的功夫,在近半年的時間,我的父母和妻子給予我相當大的支援;感謝電子工業出版社夥伴們的辛苦工作,沒有劉佳禾、孫奇俏、俠少等可愛的朋友們,我的書不可能問世;衷心感謝丁露、馮靖、張英磊、王天青、吳峻申(N本書的作者)在百忙之中幫忙校對;衷心感謝QQ群、微信群的朋友們,你們給了筆者最大的幫助和支援!(註:排名不分先後。)
特別致謝:感謝吳峻申對筆者提出很多中肯實用的建議和意見;感謝張英磊幫忙重繪、美化書中絕大部分架構圖。
謹以此書獻給想要學習微服務、Spring Cloud、Docker又不知從何開始的讀者朋友們。希望本書能切切實實地幫助你使用特定技術堆疊實現微服務架構的落實,也希望本書不會令你失望。本書很多理論性的內容並未深入探討,例如Cloud Native、12-factor APP、DDD等,但筆者都在文中以「延伸閱讀」、「Tips」、「Warning」、「測試」的形式進行註記,這部分內容希望讀者能夠自行延伸閱讀。本書書附程式碼放在Github上,網址為:「https://github.com/eacdy/spring-cloud-study」。
周立
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。