はじめに: Knative Bookstore チュートリアル¶
Knativeのエンドツーエンドサンプルアプリケーションチュートリアルへようこそ!
- Knativeを初めて使用し、どこから始めたらよいかわからない方はいますか?
- アプリケーションをイベント駆動型アーキテクチャに移行することを検討していますが、方法がわからない方はいますか?
- Knativeの実際の機能を知りたい方はいますか?
- クラウドコンピューティングの世界を初めて使用し、オープンソースを始めることを検討している方はいますか?
最適な場所を見つけました
これらのいずれかに共感された場合は、完璧な出発点を見つけました。
このチュートリアルでは、オンライン書店アプリケーションを構築します。初心者と経験豊富なエンジニアの両方に適したこのインタラクティブなガイドでは、Knativeの強力な機能を使用してアプリケーションを構築、展開、監視する手順を説明します。このプロセスに精通している方のために、学習体験を効率化するための簡潔な図表を用意しています。
何を構築しますか?¶
私たちのアプリは、1冊の本を販売するオンライン書店です。顧客は匿名で本のコメントを投稿でき、各コメントにはコメントの感情を表す絵文字が表示されます。不適切な内容のコメントは自動的にフィルタリングされ、破棄され、バックエンドに記録されます。
書店オーナーとして、「悪い言葉」を含むコメントが送信されるたびに、Slackで通知を受け取ります。
学習目標¶
イベント駆動型アーキテクチャ(EDA)とそのアーキテクチャが、マイクロサービスとREST APIを使用する従来のアプリケーション設計とどのように異なるかを学びます。以下のことを学びます。
- EDAの基本:イベント駆動型アーキテクチャの中核となる原則と、それがアプリケーションの応答性とスケーラビリティをどのように向上させるかを調べます。
- 比較による洞察:EDAと従来のアーキテクチャの違いを理解し、それぞれの利点とユースケースを強調します。
- 実践的なアプリケーション:Knative Eventingの強力な機能を使用して、既存のアプリケーションをイベント駆動型モデルに移行する方法を学びます。
KnativeはKubernetes上で動作する強力なフレームワークです。このチュートリアルでは、以下について説明します。
- クラスタの設定:まず、コンテナの展開と管理の基礎となる独自のKubernetesクラスタをスピンアップします。
- Knativeの探求:Knativeの主要な概念とコンポーネントに関する実践的な経験を積みます。
- Knativeのユースケースの例.
このチュートリアルの最後には、これらの概念を理解するだけでなく、それらを自由に実装できるようになり、Knativeを使用して堅牢でスケーラブルなイベント駆動型アプリケーションを構築できるようになります。
書店アーキテクチャ¶
書店アプリケーションは、以下のコンポーネントで構成されています。
ユーザーインターフェース¶
これらのサービスと対話するフロントエンドNext.jsアプリケーション。ユーザーが本を選択して詳細、評価、レビューを表示できるWebページです。
データベースサービス¶
Kubernetes上のインメモリPostgreSQLインスタンスで、すべてのユーザーコメントを保存します。
書籍レビューサービス¶
イベント転送、データベース操作、Websocket接続の処理を実行するNode.js Webサーバーです。
通知サービス¶
イベント駆動型アーキテクチャとサードパーティのWebhook(Slack)を接続するApache Camel Kパイプ。CloudEventを受け取り、Slackワークスペースにメッセージとして送信します。
MLモデルサービス¶
ユーザーのレビューコメントの感情分析と憎悪表現の健全性チェックを実行できる2つの機械学習ワークフローがあります。Knative Sequenceを使用して、それらが順番に実行されるようにします。
書店ブローカー¶
イベント駆動型アーキテクチャの中枢として機能します。すべてのマイクロサービスを接続し、イベントを受け取り、すべてのイベントが正しい宛先に安全に配信されるようにします。
悪い言葉ブローカー¶
書店ブローカーとSlackシンク間のブリッジとして機能するため、「悪い言葉」を含むコメントが送信されたときにSlackに通知を送信できます。
チュートリアルページの構造¶
サンプルアプリは、この順序で構築します。
-
環境設定:チュートリアルの環境を設定します。これには、クラスタ、フロントエンド、バックエンドのインストールが含まれます。
-
コメントをブローカーに送信する:フロントエンドからブローカーを介してイベント表示にレビューを渡します。これには、ブローカー、SinkBinding、CloudEventsイベントタイプに関する学習が含まれます。
-
感情分析サービスを展開する:Knative Functionを使用した感情分析サービスの展開について学びます。
-
悪い言葉フィルターサービスを展開する:自分でKnative Functionを使用して悪い言葉フィルターサービスを実装します。
-
MLワークフローを順番に実行するためのシーケンスを使用する:MLワークフローが順番に実行されるようにKnative Sequenceを使用する方法を学びます。
-
データベースの展開:プレーンなKubernetes展開を使用してインメモリPostgreSQLインスタンスの展開について理解します。
-
高度なイベントフィルタリング:ブローカー(トリガーを使用)を介して「分析されたレビュー」を受信し、それらをデータベースに保存することにより、すべてのコンポーネントを統合します。これには、トリガーとフィルターに関する学習が含まれます。
-
外部サービス/APIとの接続:Knative EventingとApache Camel Kの統合を使用して、アプリケーションを外部サービスやAPIに接続する方法を学習します。
-
追加課題:チュートリアルで学習した概念の理解度を確認するための追加課題です。
効果的な学習方法¶
最終版書店アプリプレビュー:1分間のデモビデオ¶
作成するものを視覚的に理解するために、簡単なデモビデオを用意しました。この2分間のプレビューでは、最終的な書店アプリケーションを紹介し、作成するものの概要をより明確に理解できます。
上記のビデオが再生されない場合
ビデオが再生されない場合は、こちらでご覧いただけます。
初心者向けステップバイステップガイド¶
このチュートリアルは、初心者にも分かりやすいように、サンプルアプリの作成手順を詳細にステップバイステップで説明しています。説明されている順序に従って進めてください。各セクションは前のセクションに基づいて構築されており、アプリケーションの作成をガイドします。問題が発生した場合は、Knativeコミュニティが優れたサポートリソースとなります。ご質問やアドバイスが必要な場合は、遠慮なくお問い合わせください。ヘルプセクションをご覧ください!
上級者向け高速学習パス¶
チュートリアルが簡単すぎる、または既知の内容であると感じた場合は、学習方法を調整してください。チュートリアルの各セクションには、重要な概念をまとめた簡潔な図が付属しています。上級者は、これらの図に焦点を当てることで、本質をより迅速に理解し、理解の深さを犠牲にすることなく学習を効率化できます。
ヘルプ¶
Cloud Native Computing Foundation (CNCF) のSlack、特に#knativeチャンネルを通じて、サポート力のあるKnativeコミュニティに参加してください。質問を投稿する前に、既に回答されているかどうかを検索してください。このチュートリアルに関する皆様からのフィードバックは非常に貴重です。ご提案やご質問などがございましたら、お気軽にお問い合わせください。
次のステップ¶
まずは環境設定を行いましょう。