跳至内容

欢迎: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 模型服务

有两个机器学习工作流可以对用户的评论进行情感分析和仇恨言论检查。您将使用Knative 序列来确保它们按顺序执行。

书店 Broker

它充当我们事件驱动架构的中央大脑。它将所有微服务连接在一起,接收事件,并确保所有事件安全地传递到正确的目的地。

敏感词 Broker

它充当书店 Broker 和 Slack Sink 之间的桥梁,因此当提交包含“敏感词”的评论时,我们可以向您的 Slack 发送通知。

教程页面结构¶a

我们将按以下顺序构建示例应用程序

  1. 环境设置:为教程设置环境。这包括安装集群、前端和后端。

  2. 将评论发送到 Broker:通过 Broker 将评论从前端传递到事件显示器。这包括了解 Broker、SinkBinding 和 CloudEvents 事件类型。

  3. 部署情感分析服务:了解如何使用 Knative Function 部署情感分析服务。

  4. 部署敏感词过滤服务:使用 Knative Function 自己实现敏感词过滤服务。

  5. 使用序列按顺序运行 ML 工作流:了解如何利用 Knative 序列来确保您的 ML 工作流按顺序执行。

  6. 数据库部署:了解如何使用简单的 Kubernetes 部署部署内存中 PostgreSQL 实例。

  7. 高级事件过滤:通过接收 Broker 的“分析后的评论”(使用触发器)并将它们存储到数据库中来集成所有组件。这包括学习关于触发器和过滤器的知识。

  8. 连接到外部服务/API:学习如何使用 Knative Eventing 和 Apache Camel K 集成将您的应用程序连接到外部服务和 API。

  9. 额外挑战:额外的挑战,测试您对本教程中学习的概念的理解。

如何正确学习?

预览最终书店:1 分钟演示视频

为了帮助您可视化您将要创建的内容,我们准备了一个简短的演示视频。这段两分钟的预览展示了最终的书店应用程序,让您更清楚地了解您可以期望构建的内容。

上面的视频无法播放?

如果视频无法播放,您可以在此处观看。

针对初学者的分步指南

Beginner Guide

本教程经过精心构建,对初学者友好,包含构建示例应用程序的分步详细说明。只需按照我们列出的顺序进行操作:每个部分都建立在前面部分的基础上,引导您完成应用程序的构建。如果您遇到任何问题,Knative 社区是一个很棒的支持资源。请随时提出问题并寻求建议。查看下面的帮助部分!

针对高级用户的加速学习路径

Advanced Users Guide

如果您觉得本教程过于基础,或内容过于熟悉,请随时调整您的学习方式。本教程的每个部分都配有简洁的图形来概括关键概念。高级学习者可以选择专注于这些图形,以便更快地掌握要点,从而简化学习体验,而不会牺牲深度或理解。

帮助

Help Image

通过云原生计算基金会 (CNCF) 的 Slack 加入支持性的 Knative 社区,特别是 #knative 频道。在发布问题之前,请搜索查看是否已解答。您对此教程的反馈非常宝贵,如有任何建议或问题,请随时与我们联系。

下一步

Environment Setup

让我们先设置环境。

前往环境设置

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,用于该目的。 了解更多。