描述
本書特色
◎ 一線資深架構師合力撰寫
◎ 凝聚從服務化到雲端佈署的前端架構認知
◎ 對未來網際網路技術走向的深度解讀
◎ 內容全面,循序漸進
◎ 概念清晰明瞭,前端技術一覽無遺
◎ 創新性概念,技術領先一代
◎ 深度揭密ShardingSphere 的Apache之路
內容簡介
網際網路架構不斷演化,經歷從集中式架構到分散式架構,再到雲端原生架構的過程。雲端原生因能解決傳統應用升級緩慢、架構臃腫、不能快速反覆運算等問題,而成為未來雲端應用的目標。
本書首先介紹架構演化過程及雲端原生的概念,讓讀者對基礎概念能有一個準確的瞭解。接著闡述分散式、服務化、Observability、容器調度、Service Mesh、雲資料庫等體系及其原理,並介紹與其相關的Dubbo、Spring Cloud、SkyWalking、Kubernetes、Istio開源解決方案。最後深度揭秘開源分散式資料庫生態圈Sharding-Sphere的設計與實現。
適合讀者群:具有前端工作經驗的工程師或架構師,或對雲端原生有興趣者。
序
一次誠摯的寫書邀約,一個深思熟慮後的決定,一番夜以繼日的付出,以及一些「曲折離奇」的經歷,這本書誕生了!
2015 年年底,當時我還在當當網擔任架構師,從事業務系統架構設計與內部應用架構研發方面的工作,處於事業上升期。在一次技術分享的會場,我偶遇電子工業出版社博文視點的孫奇俏編輯,她向我發出寫書邀約。雖然當時我自認資歷尚淺,並未接受這份邀約,但這件事卻像一顆種子一樣深深紮根在我的心中。
在那之後,我在網際網路架構這個圈子裡不斷拓寬視野,累積經驗,產生了越來越多的熱情和新鮮想法,也深深受到周圍那些具有真才實學又意氣風發的摯友和同僚們的感染。這些點點滴滴讓我覺得,我也要做點事情來傳遞多年以來在這個業界中沉澱的經驗,分享我眺望到的未來架構的前端思潮。倘若這些想法和經驗能夠幫助或影響到更多的朋友,或能讓我自己與更多朋友結識、交流、碰撞出新的想法,那該是一件多麼令人驕傲的事啊!於是我與奇俏老師保持密切溝通,經過反覆的推敲琢磨,這顆深埋在心裡的種子終於開始萌芽,2016 年年底,我的寫作之旅正式開啟。
書到用時方恨少,事非經過不知難。美好的願景總會受到現實的無情打擊,寫書亦是如此。雖說可以以本身的所見所聞、所觀所悟為素材提煉出寫作的內容,可是如何確立選題和設計主線才能讓一本書承載更多精粹的知識,容納更多有價值、有意義的內容呢?我覺得我所追求的「完美」的書,應當是一本能夠有質有量地給予讀者極大價值的書。
網際網路的反覆運算十分迅速,目前經歷的一切都在漸漸逝去。我希望這本書能承載現今網際網路架構的精粹,而不只是一本簡單的使用手冊,因為速食只能讓人獲得一時的能量,無法帶給人們長久的滿足。與此同時,我還希望讀者們能透過這本書了解未來的趨勢,捕捉到前端的技術熱點,在架構選擇與從業選擇方面獲得一些有價值的建議。
在確立了本書的定位後,經過深思熟慮,靜心沉澱,充分研究,融合提煉,我對現有的知識系統進行了重塑,希望能將更多的架構設計理念、技術實現原理、熱點概念背後的本質匯集在這本書中。
在開啟寫作之旅後,只要有機會我就會陷入「心流」狀態,在腦海中不斷地構思內容、提煉基礎知識,並在無數個寂寞的夜晚以燈為伴,將平時的所思所感匯集於一頁頁紙張中。
寫小說可以隨心所欲,心隨筆動;而寫技術書則應當不差毫釐、信而有征,讓內容兼備深度與廣度。為了達到這個目的,數不清的查閱校對、詢問商討是必不可少的,這其中的艱辛,也只有真正寫過書的人才能感同身受。
為了讓這本書更具專業性,並能儘快與大家見面,我特意邀請了我的三位摯友共同組織內容,他們是,Apache 基金會孵化器專案SkyWalking 創始人吳晟、ServiceMesher 中文社區聯合創始人及Service Mesh 佈道師敖小劍、ServiceMesher 中文社區聯合創始人及雲端原生佈道師宋淨超,我相信集眾人所長定能讓這本書更具功力。
身處這個高速發展的時代,以及高速反覆運算的IT 企業,我知道每個人都不甘平庸,否則又怎會在網際網路企業的高速路上不停奔跑呢?作為一名架構師,我主導且參與了一些優秀的開放原始碼專案,這其中也包含進入Apache基金會的專案ShardingSphere。作為一名擁有十多年開發經驗的程式設計師,我崇尚程式優雅和簡捷,並一直以極客主義嚴格要求自己和團隊。我深切感受到,在這個企業中若想成為優秀的人,甚至完美的人,不僅需要投入程式的世界,也需要觀察業界動態,洞察未來趨勢,最重要的是,要不忘初心,持之以恆,永遠懷有熱愛和感恩之心。
2018 年對我而言是充滿轉折的一年,這一年裡我對已經寫好的內容又進行了修改和增強,還將ShardingSphere 從開放原始碼到進入Apache 的經歷也融入書中。終於,在2018 年即將結束之時,我為自己的寫書之旅畫上了一個圓滿的句點。
這本書獻給我遠去的回憶和憧憬的未來,獻給想要洞察架構真諦的你,獻給想要迫切了解業界發展動態的你,獻給想要認識未來架構的每一個你⋯⋯
張亮
目錄
01 雲端原生
1.1 網際網路架構變遷
1.2 什麼是雲端原生
02 遠端通訊
2.1 通訊方式
2.2 序列化
2.3 遠端呼叫
03 設定
3.1 本機設定
3.2 設定集中化
3.3 設定中心和註冊中心
3.4 讀效能
3.5 變更即時性
3.6 可用性
3.7 資料一致性
04 服務治理
4.1 服務發現
4.2 負載平衡
4.3 限流
4.4 熔斷
05 觀察分散式服務
5.1 層次劃分
5.2 核心概念
5.3 分散式追蹤
5.4 應用效能管理與可觀察性平台
5.5 Apache SkyWalking
06 侵入式服務治理方案
6.1 Dubbo
6.2 Spring Cloud
07 雲端原生生態的基礎Kubernetes
7.1 Kubernetes 架構
7.2 分層設計理念及架構模型
7.3 設計哲學
7.4 Kubernetes 中的基本操作
7.5 應用 Kubernetes
7.6 Kubernetes 與雲端原生生態
08 跨語言服務治理方案Service Mesh
8.1 Service Mesh 概述
8.2 Service Mesh 演進歷程
8.3 Service Mesh 市場競爭
8.4 Istio
09 雲端原生資料架構
9.1 關聯式資料庫尚能飯否
9.2 未達預期的 NoSQL
9.3 冉冉升起的 NewSQL
9.4 雲端原生資料庫中介軟體的核心功能
10 分散式資料庫中介軟體生態圈ShardingSphere
10.1 緣起
10.2 核心功能
10.3 Sharding – JDBC
10.4 harding-Proxy
10.5 Database Mesh
10.6 未來規劃