コース概要

Day 1: Goでのイベント駆動アーキテクチャの基礎

  • EDAの概要
    • イベント駆動アーキテクチャとは何か?
    • モノリス型、マイクロサービス、イベント駆動システムの比較
    • Goの並行処理モデルと軽量なgoroutinesがEDAに適している理由
  • 核心概念と利点
    • エンタープライズシステムにおける疎結合、スケーラビリティ、堅牢性
    • イベント、プロデューサー、コンシューマー、イベントブローカーの定義
    • Goが高パフォーマンスなイベントシステムを支える実際の例と事例研究
  • CAP定理とEDAでのトレードオフ
    • 一貫性、可用性、パーティション耐性の概要
    • EDAがこれらの特性に与える影響
    • Goベースシステムで一貫性と可用性をバランスさせる戦略

Day 2: Goでのイベント、メッセージ、通信パターン

  • イベントの種類の理解
    • ドメインイベントと統合イベント
    • Goアプリケーションにおける同期イベントと非同期イベント
  • 実践的なメッセージングパターン
    • Goでのパブリッシュ-サブスクライブ(Pub/Sub)
    • JSON、Protocol Buffers、Avroを使用してイベントペイロードを設計し構造化する方法
  • Goでのイベント処理の実装
    • メッセージング用の人気Goライブラリとフレームワークの概要
    • コード例:Goの慣用的なパターンを使用してイベントをディスパッチし処理する
    • 実践セッション:シンプルなイベント駆動サービスをGoで構築する

Day 3: Goでのメッセージングシステムとイベントブローカー

  • イベントブローカーの選択と統合
    • 人気のあるブローカー:Apache Kafka、RabbitMQ、NATSの概要
    • Goベースシステムにおけるユースケースとベストプラクティスの比較
  • メッセージングインフラストラクチャのセットアップ
    • Kafka、RabbitMQ、NATS用のDocker Composeセットアップ
    • トピック、エクスチェンジ、キュー、チャンネルの設定
    • Goクライアントライブラリの概要
  • 実践ワークショップ
    • イベントを生成し消費するシンプルなGoマイクロサービスの構築
    • 選択したイベントブローカーとの統合
    • イベントフローのデバッグとテスト

Day 4: Go EDAの展開、監視、高度なトピック

  • KubernetesでのGoイベント駆動アプリケーションの展開
    • 本番環境向けにGoアプリケーションをコンテナ化する
    • Kubernetesクラスター上でKafka(または他のブローカー)を展開する
    • KEDA(Kubernetes Event-Driven Autoscaling)の導入:イベント消費者のスケーリング
  • エラー処理と監視
    • ストラテジーを使用したイベント障害の処理方法
    • Goサービスでの観測性の実装
  • 高度なトピックとQ&A
    • Goを使用したサーバーレスイベント駆動アーキテクチャの探索
    • イベントコリオグラフィーとオーケストレーション:ユースケースと設計上の考慮点
    • 一般的な落とし穴、学んだ教訓、ベストプラクティス
    • オープンQ&Aセッションとインタラクティブなトラブルシューティング

要求

  • Go(Golang)でのスキル、特にgoroutinesとchannelsの使用方法
  • モノリス型やマイクロサービスなどのソフトウェアアーキテクチャモデルの基本的な理解
  • DockerとDocker Composeに精通していること
  • REST APIとネットワーク概念の基本的な知識
  • コマンドラインツールとGitの使用経験
  • KubernetesやKafka、RabbitMQ、NATSなどのメッセージングシステムに触れたことがあるとより役立つ(任意)

対象者

  • スケーラブルなイベント駆動アプリケーションを構築するGo開発者
  • モノリス型やRESTベースのアーキテクチャから非同期システムに移行するソフトウェアエンジニア
  • コンテナ化または分散マイクロサービスで働くDevOpsおよびクラウドエンジニア
  • Goを使用したEDAパターンを探索する技術アーキテクトやシステムデザイナー
 28 時間

参加者の人数


参加者1人当たりの料金

お客様の声 (7)

今後のコース

関連カテゴリー