跳到內容

歡迎:Knative 書店教學

Welcome Image

歡迎來到 Knative 的端對端範例應用程式教學!

  • 您是 Knative 的新手,不確定從哪裡開始嗎?
  • 您正在考慮將您的應用程式轉換為事件驅動架構,但不知道如何做嗎?
  • 您好奇想了解 Knative 在現實生活中的實際應用嗎?
  • 您是雲端運算領域的新手,並且希望開始使用開放原始碼嗎?

您找對地方了

如果這些問題與您產生共鳴,那麼您已經找到了完美的起點。

在本教學中,我們將建立一個線上書店應用程式。本互動式指南適用於初學者和經驗豐富的工程師,將引導您逐步使用 Knative 的強大功能來建置、部署和監控應用程式。對於熟悉此流程的人員,我們提供簡潔的圖形來簡化您的學習體驗。

我們要建置什麼?

App Diagram

我們的應用程式是一個線上書店,僅銷售一本書。客戶可以匿名發佈關於這本書的評論,每則評論都會顯示一個表情符號,以反映評論的情緒。不適當內容的評論會自動過濾掉、丟棄並記錄在後端。

身為書店老闆,如果提交的評論中包含「不雅字詞」,您每次都會收到 Slack 通知。

學習目標

Learning Goal Image

您將學習事件驅動架構 (EDA),以及它與使用微服務和 REST API 的傳統應用程式設計有何不同。您將學習

  • EDA 的基本原理:探索事件驅動架構的核心原則,以及它如何增強應用程式的響應性和可擴展性。
  • 比較觀點:了解 EDA 與傳統架構之間的差異,並強調兩者的優點和使用案例。
  • 實際應用:探索如何使用 Knative Eventing 的強大功能將現有的應用程式轉換為事件驅動模型。

Knative Framework

Knative 是一個強大的框架,可在 Kubernetes 之上運行。本教學將引導您完成

  • 設定您的叢集:您將從啟動自己的 Kubernetes 叢集開始,這是部署和管理容器的基礎。
  • 探索 Knative:獲得 Knative 主要概念和元件的實作經驗。
  • Knative 的一些範例使用案例.

在本教學結束時,您不僅將了解這些概念,還會感到能夠輕鬆地實作它們,讓您能夠使用 Knative 建置強大、可擴展的事件驅動應用程式。

書店架構

Bookstore Architecture

書店應用程式包含下列元件

使用者介面

一個與這些服務互動的前端 Next.js 應用程式。這是一個網頁,使用者可以在此查看書籍的詳細資訊、評分和評論。

資料庫服務

Kubernetes 上的一個記憶體內 PostgreSQL 執行個體,用於儲存所有使用者評論。

書籍評論服務

一個 Node.js Web 伺服器,將執行事件轉送、資料庫操作,並處理 WebSocket 連線。

通知服務

一個 Apache Camel K 管線,將我們的事件驅動架構與第三方 Webhook (Slack) 連接。它會接收 CloudEvent,並將其作為訊息傳送到 Slack 工作區。

ML 模型服務

有 2 個機器學習工作流程可以對使用者評論進行情感分析,並對仇恨字詞進行健全性檢查。您將使用 Knative Sequence 來確保它們依序執行。

書店代理人

它作為我們事件驅動架構的中央核心。它將所有微服務連接在一起、接收事件,並確保所有事件都安全地傳遞到正確的目的地。

不雅字詞代理人

它作為書店代理人和 Slack Sink 之間的橋樑,因此當提交包含「不雅字詞」的評論時,我們可以向您的 Slack 發送通知。

教學頁面結構

我們將依照此順序建置範例應用程式

  1. 環境設定:設定本教學的環境。這包括安裝叢集、前端和後端。

  2. 將評論傳送至代理人:透過代理人將評論從前端傳遞到事件顯示。這涉及學習代理人、SinkBinding 和 CloudEvents 事件類型。

  3. 部署情感分析服務:學習如何使用 Knative Function 部署情感分析服務。

  4. 部署不雅字詞篩選服務:使用 Knative Function 自行實作不雅字詞篩選服務。

  5. 使用 Sequence 依序執行 ML 工作流程:了解如何利用 Knative Sequence 來確保您的 ML 工作流程依序執行。

  6. 資料庫部署:了解如何使用純 Kubernetes 部署來部署記憶體內 PostgreSQL 執行個體。

  7. 進階事件篩選:透過代理人 (使用觸發條件) 接收「已分析的評論」,並將其儲存到資料庫中,以此來整合所有元件。這包括學習觸發條件和篩選器。

  8. 與外部服務/API 連線:學習如何使用 Knative Eventing 和 Apache Camel K 整合將您的應用程式與外部服務和 API 連接。

  9. 額外挑戰:其他挑戰,以測試您對本教學中所學概念的理解。

如何正確學習?

預覽最終書店:1 分鐘示範影片

為了幫助您視覺化您將建立的內容,我們準備了一段簡短的示範影片。這段 2 分鐘的預覽展示了最終的書店應用程式,讓您更清楚地了解您可以建置什麼。

上方影片無法運作?

如果影片無法運作,您可以在這裡觀看。

初學者逐步指南

Beginner Guide

本教學經過精心設計,對初學者非常友善,提供建立範例應用程式的詳細逐步說明。只需按照我們安排的順序操作:每個章節都建立在前一個章節的基礎上,引導您完成應用程式的建構。如果您遇到任何障礙,Knative 社群是尋求支援的絕佳資源。請隨時提出問題並尋求建議。查看下面的幫助部分!

進階用戶加速學習路徑

Advanced Users Guide

如果您覺得本教學太過基礎,或者涵蓋了您熟悉的內容,請隨意調整您的學習方法。本教學的每個章節都附有簡潔的圖形,總結了關鍵概念。進階學習者可以選擇專注於這些圖形,以更快地掌握要點,從而簡化學習體驗,而不會犧牲深度或理解。

幫助

Help Image

透過 Cloud Native Computing Foundation (CNCF) Slack 加入支持性的 Knative 社群,特別是#knative頻道。在發布您的問題之前,請先搜尋看看是否已經有人回答過。您對本教學的意見回饋非常寶貴,因此請隨時提出建議或問題。

下一步

Environment Setup

我們先來設定環境。

前往環境設定

我們使用分析和 Cookie 來了解網站流量。為了這個目的,我們與 Google 分享您使用我們網站的相關資訊。了解更多。