Nuclio 實戰與原始碼分析:基於Kubernetes的Serverless FaaS平台

李彬 詹煜卓 任勝寒 張晨

  • 出版商: 機械工業
  • 出版日期: 2024-05-30
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 252
  • 裝訂: 平裝
  • ISBN: 7111753836
  • ISBN-13: 9787111753834
  • 相關分類: KubernetesServerless
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

無伺服器運算是一種新的範式,可在無須管理伺服器的情況下編寫和部署應用程式。
它使開發人員能夠專注於程式碼的編寫,而無須擔心伺服器的配置、維護和擴展。
本書全面介紹了無伺服器的演進歷程、架構原理與設計,
深入探討了開源Serverless Nuclio的架構、原始碼和實踐,並提供了豐富的案例和程式碼範例。

目錄大綱

前言
準備篇
第1章 全面認識Nuclio2
1.1 Serverless簡介2
1.1.1 Serverless的發展背景2
1.1.2 Serverless的定義3
1.1.3 Serverless的優缺點4
1.1.4 Serverless的現況4
1.1.5 Serverless的適用場景5
1.2 Nuclio簡介5
1.2.1 Nuclio的產生背景及發展歷程6
1.2.2 Nuclio的架構設計6
1.2.3 Nuclio的使用群體8
1.3 Nuclio開發運維的基礎知識8
1.3.1 應用容器引擎—Docker8
1.3.2 容器鏡像建置工具—Kaniko10
1.3.3 容器叢集管理系統—Kubernetes11
1.3.4 監控與告警系統—Prometheus13
1.3.5 路由基礎—Ingress15
本章小結19
第2章 Nuclio初體驗20
2.1 本地Docker環境20
2.1.1 準備環境20
2.1.2 快速開始22
2.1.3 問題排除25
2.2 KataCoda互動式環境27
2.3 Kubernetes 環境28
2.3.1 準備環境28
2.3.2 安裝Nuclio28
2.4 Kubernetes生產環境32
2.4.1 Prometheus的部署32
2.4.2 Ingress的部署37
2.4.3 Nuclio平台41
2.4.4 Nuclio環境驗證44
本章小結46
基礎篇
第3章 DashBoard 服務組件48
3.1 DashBoard架構48
3.2 DashBoard參數解析50
3.3 Golang chi簡介54
3.3.1 chi的特點54
3.3.2 chi的使用範例55
3.4 DashBoard啟動流程56
3.4.1 取得平台配置項目56
3.4.2 建立root日誌物件57
3.4.3 創建DashBoard實例物件59
3.4.4 創建並啟動健康檢查服務59
3.4.5 創建平台實例物件59
3.4.6 創建鑑權配置59
3.4.7 創建server61
3.4.8 建立並監控Docker連線63
3.4.9 DashBoard服務啟動63
3.5 DashBoard運行63
3.6 DashBoard創建函數流程64
3.6.1 Golang協程函數部署65
3.6.2 函數程式碼編譯建置74
3.7 DashBoard API功能81
3.7.1 函數API功能82
3.7.2 專案API功能86
3.7.3 函數事件API功能89
3.7.4 函數模板API功能92
3.7.5 API網關功能93
3.7.6 V3IO流函數觸發器功能97
3.7.7 其他API功能98
本章小結99
第4章 控制器組件100
4.1 控制器概述100
4.1.1 Informer元件101
4.1.2 SharedInformer 元件101
4.1.3 Workqueue組件103
4.2 自訂控制器103
4.3 Nuclio控制器104
4.3.1 Nuclio控制器的架構104
4.3.2 控制器參數解析107
4.3.3 控制器啟動流程108
4.3.4 控制器的運作112
本章小結116
第5章 擴縮容服務組件117
5.1 擴縮容服務組件架構117
5.2 擴縮容服務組件DLX的啟動流程118
5.2.1 創建DLX物件118
5.2.2 啟動DLX122
5.3 擴縮容服務組件DLX的運作122
5.3.1 取得地址清單122
5.3.2 啟動對應資源123
5.3.3 選取目的位址126
5.3.4 轉送請求126
5.4 擴縮容服務組件AutoScaler的啟動流程127
5.5 擴縮容服務組件AutoScaler的運作128
本章小結130
第6章 函數處理器131
6.1 函數處理器的架構131
6.2 函數處理器的元件132
6.3 函數處理器的啟動133
6.3.1 讀取函數處理器配置與平台配置133
6.3.2 建立日誌與健康檢查服務134
6.3.3 創建觸發器135
6.3.4 創建管理服務137
6.3.5 創建指標服務139
6.3.6 函數處理器開始運作145
6.4 函數處理器處理請求147
6.4.1 請求資訊校驗148
6.4.2 取得所需的日誌等級148
6.4.3 分配工作器並提交請求事件進行處理149
6.4.4 根據日誌等級設定回應日誌152
6.4.5 處理錯誤日誌152
6.4.6 根據事件回應類型設定對應內容153
6.5 函數語言運行時153
6.5.1 共享記憶體語言153
6.5.2 Golang語言159
6.5.3 Shell語言162
6.5.4 .NET語言164
本章小結166
第7章 Nuclio的命令列客戶端167
7.1 nuctl的用法167
7.2 nuctl運行平台168
7.3 Cobra的用法168
7.3.1 Cobra命令列參數169
7.3.2 Cobra使用範例169
7.3.3 nuctl Cobra命令列參數實作171
7.4 nuctl範例171
7.4.1 建構函數171
7.4.2 創建資源172
7.4.3 刪除資源173
7.4.4 部署資源174
7.4.5 導出資源176
7.4.6 展示資源詳情177
7.4.7 導入資源178
7.4.8 呼叫函數178
7.4.9 更新資源179
7.4.10 顯示版本179
本章小結179
第8章 Nuclio的事件來源映射與觸發器180
8.1 Nuclio支援的事件類型180
8.2 Nuclio觸發器182
8.2.1 Cron觸發器182
8.2.2 HTTP觸發器183
8.2.3 Kafka觸發器185
8.2.4 RabbitMQ觸發器187
8.2.5 MQTT觸發器188
8.2.6 NATS觸發器188
8.2.7 Kinesis觸發器189