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

Knative實戰:基于Kubernetes的無服務器架構實踐

( 簡體 字)
作者:李志偉 游楊類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社Knative實戰:基于Kubernetes的無服務器架構實踐 3dWoo書號: 54338
詢問書籍請說出此書號!

有庫存
NT售價: 445

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

譯者序:

前言:

Serverless一直是開發者的美好愿望,也是軟件開發目標最終回歸本質的選擇。隨著云原生平臺逐漸成熟并成為主流解決方案,Serverless計算平臺已經有了長足的進步。2020年,行業中的各大Serverless計算平臺變得更加通用。例如,通過預留資源完全消除冷啟動對延時的影響,使得延時敏感的在線應用也能夠使用Serverless方式構建。同時,Serverless生態不斷發展,在應用構建、安全、監控報警等領域涌現出了很多開源項目和創業公司,工具鏈越來越成熟。用戶對Serverless的接受度不斷提高,傳統企業也開始采用Serverless技術。Serverless正在如下幾方面持續演進。

1)Serverless的使用場景從偏離線業務進一步擴展到在線業務。以FaaS為代表的Serverless技術一開始都是從對響應時間不敏感、事件驅動的偏離線業務入手的。現在,我們已經看到,包括AWS Lambda Provisioned Capacity和Azure Functions Premium plan在內的產品都是讓用戶付出一點額外的成本來換取更短的響應時間。這對于在線業務來說,無疑是更適合的。

2)Serverless不僅賦予了應用彈性計算的能力,也推動了基礎設施和后端服務的無服務器化。業務代碼托管給Serverless平臺之后,即可實現自動擴縮容、按請求計費。但是,如果基礎設施和相關服務不具備實時擴縮容能力,那么業務整體就不是彈性的。我們已經看到AWS圍繞Lambda對VPC網絡、數據庫連接池等資源做了大量實時彈性優化,相信其他廠商也會跟進,進而使行業整體加速基礎設施和各類云服務的無服務器化。

3)以Knative為代表的開源解決方案受到越來越多的關注。盡管各個云廠商都在大力推廣自己的Serverless產品,但是開發者普遍還是會擔心被廠商綁定,因此具備一定規模的組織會基于開源方案,如Knative,搭建自己的Serverless平臺。一旦某個開源方案成為主流,云廠商就會主動去兼容開源標準并增大社區投入。

4)Serverless開發者工具和框架會更加多樣。IDE、問題診斷、持續集成/發布等配套的工具和服務會更加完善。我們將看到更多的成功案例和實踐。

5)Java持續發展,將成為Serverless平臺的主流語言之一。Serverless平臺要求應用的鏡像足夠小,以便能夠快速分發,同時要求應用的啟動時間極短。雖然在這些方面,Java和Node.js、Python等語言相比有差距,但是Java社區一直在不斷努力。我們看到Java通過Java 9 Modules以及GraalVM Native Image等技術在不斷“瘦身”。主流框架Spring也開始擁抱GraalVM,而新的框架如Quarkus和Micronaut也在力爭突破。期待Java在Serverless領域給人煥然一新的感覺。

6)解決FaaS狀態傳遞的中間層(加速層)研究或產品有望得到突破。未來,Serverless在函數計算場景下最大的挑戰是函數之間串聯需要狀態傳遞,以及函數處理時頻繁和外部交互帶來的時延放大,等等。在傳統架構下,狀態傳遞和函數處理都是在一個程序進程內部完成的。上述挑戰需要通過可計算中間層(加速層)來解決。可計算中間層是未來學術研究和產品攻堅的方向之一。

7)基于WebAssembly(WASM)的FaaS方案有望出現。Docker創始人Solomon Hykes曾說:“如果2008年有WASM和WASI,我們當時就沒有必要創造Docker了。”這句話在一定程度上說明了WASM的重要性。雖然當下WASM更多是作為一種運行在瀏覽器端的技術被人了解,但是它具備非常優秀的安全隔離能力、極快的啟動速度,并支持超過20種語言。那么,為什么不能讓它運行在服務端呢?這些技術特性都非常契合FaaS的要求。

事實上,隨著Knative社區的快速發展壯大,Knative已經成為Kubernetes平臺上最佳的Serverless解決方案。與傳統的FaaS平臺不同,Knative的服務管理并不需要統一的開發框架支持,應用只要封裝成可運行的容器即可。這極大地擴展了Knative的適用范圍,同時也使得傳統微服務可以更加平滑地轉換成Serverless應用。

基于此,我們希望能夠為開發者提供一本系統學習Knative的工具書,從Serverless的概念到Knative的實戰,努力將Knative的全貌展現給讀者,也希望Knative能夠為企業提升工程效率、降低計算成本。

本書內容

全書分為4篇,具體內容如下。

準備篇(第1∼2章):通過介紹Serverless與Knative項目的技術背景、架構設計以及相關的云原生平臺基礎設施,幫助讀者了解Serverless技術。通過快速搭建Knative測試平臺,使讀者直觀地感受Knative是如何管理應用的。

基礎篇(第3∼5章):通過對Knative Serving和Eventing組件、CI/CD平臺的介紹,幫助讀者全面了解各個組件的基礎概念、架構設計及原理。

實戰篇(第6章):采用多個實際范例來驗證Knative的服務管理能力以及事件驅動基礎設施的能力。

擴展篇(第7∼9章):詳細介紹了運維Knative平臺需要關注的內容,包括Serving的高級配置、日志中心、監控平臺。

本書的讀者對象

對Serverless技術感興趣的讀者。

想要將Knative引入當前技術棧的架構師。

想要采用Serverless技術的應用開發者。

想要自己維護Knative Serverless平臺的運維開發人員。

勘誤與支持

如果你在閱讀本書的過程中有任何問題或者建議,可以在GitHub的源碼倉庫提交Issue或者以PR的方式進行交流。我們會對你提出的問題、建議進行梳理,并在本書后續版本中及時做出勘誤與更新。

Knative是一個開源項目,書中使用了官方的示例源代碼,讀者可以通過以下鏈接獲取相關內容。

致謝

在本書的寫作過程中,作者得到了眾多同事及朋友的鼓勵,在此對他們表示感謝。感謝機械工業出版社華章公司的策劃編輯楊福川老師、責任編輯董惠芝老師,是他們的鼓勵才讓我們能夠堅持寫完本書。也感謝Knative開源社區的貢獻者,是他們辛勤、無私的工作,讓我們得以與Serverless如此近距離接觸。謝謝大家!
內容簡介:

本書從架構設計、功能、原理、開發、運維5個維度對Knative進行了全面的剖析,系統地講解了基于Knative的無服務器架構解決方案。作者融合了在Kubernetes、Serverless領域的工程實踐,詳細介紹了Knative在服務管理、事件驅動、自動化構建部署方面的核心概念、架構設計及應用實踐。同時,通過大量的示例展示了Knative管理無服務器應用的過程。

全書共9章,分為4篇:

準備篇(第1~2章)

首先介紹了Serverless和Knative的概念和基礎知識,然后講解了Knative的架構設計和工作環境搭建;

基礎篇(第3~5章)

首先分析了Knative的服務管理組件和事件驅動組件的功能和工作原理,然后講解了如何如何通過Tekton實現無服務器應用的CI/CD;

實戰篇(第6章)

通過多個案例講解了如何基于Knative完成云原生應用的設計實現;

擴展篇(第7~9章)

詳細講解了Knative平臺的運維,包括Serving組件的擴展配置、日志中心解決方案以及監控報警平臺的實現。



隨著云原生技術的快速發展,無服務器架構再次成為熱門技術重回人們的視線。Knative是新一代開源Serverless解決方案的代表。它建立在容器與Kubernetes基礎上,是云原生生態的重要組成部分。

Serverless正在改變應用軟件的開發和運維模式。作為一種面向開發者友好的云計算服務,Serverless實現了將業務需求與技術需求解耦,降低了應用的復雜度,提高了應用的開發效率。Serverless具有自動彈性擴展、資源按需分配的特點,大幅減少了運維工作量,提高了計算資源的利用率。



通過閱讀本書,你將:

全面了解Serverless的主要特點及發展現狀

深入了解Knative服務管理與事件驅動組件的工作原理

掌握通過Tekton實現無服務器應用的CI/CD

掌握基于Knative的云原生應用設計

了解Knative的運維管理工具(日志中心、監控報警平臺)
目錄:

準備篇
第1章 全面認識Knative 2
1.1 Serverless的前世今生 2
1.1.1 Serverless簡介 2
1.1.2 Serverless的主要特征 3
1.1.3 Serverless的優缺點 3
1.1.4 Serverless的發展現狀 4
1.1.5 Serverless的使用場景 4
1.2 什么是Knative 4
1.2.1 Knative的產生背景及發展歷程 5
1.2.2 Knative的架構設計 5
1.2.3 Knative的主要受眾群 6
1.2.4 Knative的商業托管服務產品 7
1.3 Knative開發運維需要具備的基礎知識 7
1.3.1 容器 7
1.3.2 Kubernetes 8
1.3.3 Istio 9
1.4 本章小結 10
第2章 搭建Knative運行環境 11
2.1 在Kubernetes平臺上安裝Knative 11
2.1.1 Istio平臺的安裝 12
2.1.2 安裝Knative Serving組件 13
2.1.3 安裝Knative Eventing組件 14
2.1.4 安裝可觀察性組件 14
2.2 部署HelloWorld應用 15
2.2.1 Serving Hello World范例 15
2.2.2 Eventing Hello World范例 16
2.3 本章小結 19
基礎篇
第3章 Knative的服務管理組件Serving 22
3.1 Serving的架構設計 22
3.2 Knative相關的Kubernetes Service 23
3.3 Autoscaler的工作流程 24
3.4 Queue Proxy 25
3.5 本章小結 26
第4章 Knative的事件驅動組件Eventing 27
4.1 Eventing的架構設計 27
4.1.1 總體設計目標 28
4.1.2 Eventing的基礎概念 28
4.1.3 事件傳遞方式 29
4.2 關于CloudEvent 30
4.2.1 CloudEvent簡介 30
4.2.2 術語 30
4.2.3 上下文屬性 32
4.2.4 事件數據 34
4.2.5 大小限制 34
4.2.6 隱私與安全 35
4.2.7 示例 35
4.3 事件源 35
4.3.1 核心事件源 35
4.3.2 社區貢獻的事件源 36
4.3.3 Google Cloud Source 36
4.4 Broker/Trigger事件模型 36
4.4.1 工作原理 37
4.4.2 默認代理配置 37
4.4.3 Broker/Trigger模型范例 38
4.5 事件注冊表 39
4.5.1 事件發現 39
4.5.2 事件訂閱 40
4.5.3 填充事件注冊表 42
4.6 事件流控制 43
4.6.1 Sequence 43
4.6.2 Parallel 44
4.7 事件通道 45
4.7.1 當前可用的通道 45
4.7.2 默認通道設置 45
4.8 本章小結 46
第5章 基于Tekton的CI/CD平臺 47
5.1 Tekton概述 47
5.1.1 Tekton的優勢 47
5.1.2 Tekton的組件構成 48
5.1.3 Tekton的資源對象 48
5.2 Tekton的概念模型 49
5.2.1 Step、Task和Pipeline 49
5.2.2 輸入與輸出資源 50
5.2.3 TaskRun與PipelineRun 51
5.2.4 Tekton的運作方式 51
5.3 Tekton Pipeline資源對象詳解 52
5.3.1 Task 52
5.3.2 TaskRun 66
5.3.3 Pipeline 74
5.3.4 PipelineRun 97
5.3.5 條件資源 111
5.3.6 變量替換 113
5.3.7 基于Git與Docker Registry的身份驗證 117
5.3.8 基于Kubectl向Kubernetes集群持續部署 124
5.4 Trigger 126
5.4.1 TriggerTemplate 126
5.4.2 TriggerBinding 128
5.4.3 EventListener 131
5.4.4 將EventListener暴露給外部 138
5.4.5 ClusterTriggerBinding 138
5.4.6 CEL表達式擴展 139
5.5 Dashborad簡介 140
5.5.1 Dashboard主要支持功能 140
5.5.2 Dashboard常用功能示例 141
5.6 安裝Tekton Pipeline及相關組件 143
5.6.1 Tekton Pipeline安裝 143
5.6.2 Tekton Dashborad安裝 145
5.6.3 Tekton Trigger安裝 145
5.7 應用CI/CD配置示例 146
5.7.1 Java語言配置示例 146
5.7.2 PHP語言配置示例 151
5.8 本章小結 155
實戰篇
第6章 基于Knative的云原生應用的設計實現 158
6.1 云原生應用的設計原則 158
6.2 使用Knative的服務管理組件管理應用 160
6.2.1 部署一個Knative Service 161
6.2.2 更新Knative Service Configuration 164
6.2.3 流量分發到不同版本 166
6.2.4 藍綠部署與灰度發布 167
6.2.5 Knative Service的彈性伸縮配置 170
6.3 使用事件驅動組件解耦服務依賴 172
6.3.1 部署一個Knative事件驅動應用 172
6.3.2 使用通道與訂閱方式傳遞事件 175
6.3.3 與Apache Kafka集成 177
6.3.4 ContainerSource事件源 180
6.3.5 PingSource事件源 182
6.3.6 Parallel 183
6.3.7 Sequence 187
6.3.8 SinkBinding 190
6.3.9 GitHub事件源 191
6.4 本章小結 194
擴展篇
第7章 Serving組件的擴展配置 196
7.1 自動擴縮容的配置 196
7.1.1 全局或修訂版范圍設置 196
7.1.2 Class 197
7.1.3 度量指標 198
7.1.4 目標值 198
7.1.5 縮放邊界 202
7.1.6 KPA特性設置 203
7.2 路由管理 208
7.2.1 定制Knative服務的主域名 208
7.2.2 DNS泛域名解析配置 211
7.2.3 服務的可見范圍控制 212
7.3 網絡與安全 213
7.3.1 證書管理工具cert-manager 213
7.3.2 手動配置TLS證書 214
7.3.3 自動配置TLS證書 216
7.4 運維相關配置 220
7.4.1 從私有容器鏡像倉庫部署應用 220
7.4.2 組件高可用配置 221
7.5 本章小結 222
第8章 日志中心 223
8.1 基于EFK的日志中心解決方案 223
8.1.1 EFK基礎功能介紹 223
8.1.2 應用日志格式說明 223
8.1.3 添加Fluentd配置 224
8.1.4 配置Kibana索引模式 225
8.1.5 數據搜索展示 225
8.1.6 創建可視化圖表 225
8.1.7 創建儀表盤 227
8.2 本章小結 229
第9章 監控報警平臺 230
9.1 基于Prometheus和Grafana的監控報警平臺 230
9.1.1 Prometheus 230
9.1.2 Grafana 233
9.2 Knative儀表盤 233
9.3 本章小結 238
附錄 239
序: