inflearn logo
知識共有
inflearn logo

マイクロサービス設計パターン完全ガイド

このコースは、マイクロサービスアプリケーション開発のためのMSAデザインパターンと実装戦略に必要な様々な内容、パターン、および設計について学ぶコースです。既存のモノリシックアプリケーションをMSA方式で成功裏に移行するために必要な中核知識と実践的な方法論について学習します。マイクロサービスアーキテクチャの根幹をなす様々なデザインパターンについて分析し、各パターンがどのような状況に適しており、どのように適用されるかを学習できます。

難易度 初級

受講期間 無制限

Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns
Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns

お知らせ

4 件

  • kenneth님의 프로필 이미지

    こんにちは。Spring開発者向けの「実践LLMサービス開発(Part 1)」講義に、新しい補足講義を追加しました。最近公開されたTypeSafe AIの決定モデルJevをSpring Bootアプリケーションに連携する内容で、約1時間の講義です。

    なぜ追加したのか
    Section 4では、entity()を使ってLLMの応答をJavaオブジェクトとして受け取る方法と、モデルがJSONをコードフェンスで囲むことでパースに失敗する実務上の落とし穴を扱いました。プロンプトで依頼するにしても、entity()で自動化するにしても、結局のところLLMに形式を"お願い"する方式であるという限界は残ります。
    Jevは異なるアプローチを取ります。文章を書くのではなく、あらかじめ定められた選択肢の中から答えを選び、確率とともに返します。つまり、形式が構造的に保証されるということです。同じ入力を2つの方式で処理してみると、「構造化された出力」を設計する際に何を考慮すべきかが、より明確になります。そのため、Section 4の延長線上にある内容としてまとめました。

    何を学びますか

    1. JevとSystem Oneモデルの概念:テキストではなく「型が定められた決定」を返すことの意味

    2. LLMとJevの違い:記述式回答 vs 選択式回答、それぞれが得意なことと苦手なこと

    3. 3つの質問タイプ(choice・score・noul)と/v1/systemoneリクエストの構造

    4. Springから呼び出す:RestClientでJev APIを呼び出し、Java enumで選択肢を作成してレスポンスを型安全に変換する

    5. 比較デモ:同じ映画レビューをentity()とJevでそれぞれ分析し、速度、形式エラー、確信度、一貫性を比較する

    併せて更新された資料

    • セクション4のサンプルコード(ch4):レビュー分析API 2種(/api/movies/review/llm、/api/movies/review/jev)とJevClientを追加

    • 補足講義スライドと教材

    • 比較テストスクリプト:macOS用review-compare.sh、Windows用review-compare.ps1

    あらかじめ知っておいていただきたいこと

    • JevはSpring AIの機能ではなく、TypeSafe AIが提供する別個の外部サービスです。講義でもSpring AIのChatClientではなく、RestClientで直接呼び出します。

    • Jevは現在アーリーアクセス段階のため、APIキーの発行に時間がかかる場合があります。サンプルコードでは基本的にJev機能が無効になっているため(jev.enabled=false)、キーがなくても従来の演習はそのまま進められます。キーをお持ちでない方は、動画でのデモをご覧いただきながら、概念とコードを中心に学習してください。

    • リリース初期のサービスのため、今後価格やAPIが変更される可能性があります。変更があった場合は、新しいお知らせで改めてご案内いたします。

    📌講義はこちら: https://inf.run/VVpnV

    追加された講義を受講しながら疑問点や実習中に行き詰まった部分があれば、気軽にコメントでお知らせください。これからも実務ですぐに使える内容を継続的に充実させていきます。

    0
  • kenneth님의 프로필 이미지

    こんにちは、イ・ドウォンです。


    "Jenkinsパイプラインは作ってみたけれど、ArgoCDやGitOpsは概念を聞いたことがあるだけだ。"

    "dev・staging・production環境ごとのデプロイをどのように設計すべきか途方に暮れている。"


    このようなお悩みをお持ちの方に向けて、「JenkinsとArgoCDで学ぶ実践GitOps CI/CD」講座をインフランで公開しました。


    この講義はこのような点が異なります


    • Jenkinsベースの従来のCI/CDからArgoCDベースのGitOpsまで一緒に扱います。

    • Push方式(Jenkins)とPull方式(ArgoCD)を同じクラスター上で直接比較します。誰かがkubectlで手動変更を加えた際、一方はそのまま残り、もう一方は自動的に復旧する様子を目で確認し、ロールバックやデプロイ履歴の確認方法の違いも実際に体感します。

    • 2つの方式を組み合わせ、dev・stagingはJenkins Push、productionはArgoCD Pull(手動Sync承認)に分けるハイブリッドデプロイパイプラインを最初から最後まで構築します。

    • Canary、Blue-Green、RBAC、承認手順、障害対応、自動ロールバックまで、運用に必要な主要デプロイ技術を実践します。


    実習環境

    Docker Desktopひとつで進めます。WindowsとmacOSの両方に対応しており、AWSなどのクラウドアカウントや別途費用は必要ありません。


    このような方におすすめです


    • Jenkinsは使ったことがあるものの、ArgoCD/GitOpsは初めてのバックエンド・インフラエンジニア

    • Kubernetesデプロイを手動のkubectl applyから自動化へ移行したい方

    • デプロイの承認、ロールバック、監査証跡などの運用要件に悩むDevOps・SRE担当者


    総学習時間は約10~11時間で、実習資料とトラブルシューティングガイドも併せて提供されます。


    👉 講義を見る:https://inf.run/dEjZE

    気になる点があれば、コメントや講座のQ&Aにお気軽にお寄せください!

    0
  • kenneth님의 프로필 이미지

    今回、新たにSpring開発者のための実践LLMサービス開発(Part 1)講座を開講しました。少し遅きに失した感は否めませんが、Java開発者にとってなじみ深いSpring frameworkを利用してLLMアプリケーションを開発するために必要な内容を学べる講座として構成しました。ぜひご注目ください。


    なぜこの講義を作ったのか

    最近では、RAGやベクトル検索、AIエージェントといったキーワードはどこでも目にしますが、実際に"Spring Bootバックエンドにどのように組み込むのか"を実務レベルで扱った資料は多くありませんでした。

    この講義では、私が実際にRAG推薦エンドポイントをデバッグする中で経験した問題――文書をトークン単位でチャンク化したことで意味のまとまりが崩れ、検索品質が低下した経験や、段落単位のチャンク化に戦略を変更して問題を解決した過程――を、そのままカリキュラムに落とし込んでいます。チュートリアルのように正解コードだけを見せるのではなく、「なぜうまくいかないのか → どのように診断するのか → どのように直すのか」を一緒に追っていく形式です。


    このような方におすすめです

    • Spring Bootの経験はあるものの、LLM/AIサービス開発は初めてのバックエンド開発者

    • RAGやベクトル検索をチュートリアルではなく、実務プロジェクトレベルで適用したい開発者

    • 社内AI機能(チャットボット、ドキュメント検索、レコメンドなど)をSpringベースで自ら実装する必要がある実務担当者

    Spring BootでREST APIを作った経験があれば十分です。AI/LLMに関する事前知識は必要ありません。


    何を学びますか

    1. Spring AIのコア基礎 ChatClientの基本的な使い方、構造化出力(Structured Output)、ストリーミング応答の実装

    2. RAGパイプラインの構築 ベクトルストア連携、ドキュメントチャンク分割戦略の比較と実践的なトラブルシューティング、検索品質の改善、プロンプト設計

    3. ツール・マルチモーダルの拡張 MCP(Model Context Protocol)を活用した外部ツール連携、画像などのマルチモーダル入力処理、Dify連携

    4. サービスの安定化と実践プロジェクト ガードレールの適用、信頼性の高いサービス設計、これまで学んだ内容を統合するミニプロジェクト

    付録として、AIコーディングツールとOllamaの活用方法も併せて扱います。


    シリーズ案内

    今回リリースしたのは、全シリーズのPart 1です。Part 2、3ではさらに発展的なアーキテクチャと実践的なケースを扱う予定で、シリーズがすべてリリースされたら、パッケージ全体の割引も用意する予定です。


    📌 講義はこちら: https://inf.run/VVpnV

    気になる点やカリキュラムに関する質問は、コメント欄にお気軽にお寄せください。Part 1を通じて、皆さんのSpringサービスにLLMを組み込む第一歩を一緒に踏み出せればと思います。

    0
  • kenneth님의 프로필 이미지

    こんにちは、離島院です。

    今回新たにMicroservice ArchitectureのためのDesign Pattern講義をオープンしました。

    本当に、あまりにも大変で忙しかった2024年を後にして、新たに2025年もすでに5月が過ぎていますね。

    プロジェクトに執筆に講義に個人史に色々なことが多かったのですが、それでも長い間遅れてきた講義を一つオープンすることになりました。

    • Spring Cloudで開発するマイクロサービスアプリケーション(MSA)

    • Jenkinsを使用したCI / CDパイプラインの構築

    • DevOpsのためのDocker仮想化技術(Private Harbor Registry)

    • マイクロサービス設計パターンを適用したMSAアプリケーションの開発

    講義に続いて、アプリケーションの構築に必要なデザインパターンに関する講義を準備しました。最初に「Spring Cloudで開発するマイクロサービスアプリケーション(MSA)」講義を企画する際、Cloud Nativeに関する基本的な講義を完了し、次の段階でデザインパターンと実務に適用できるアーキテクチャを通じてWebサービスを開発してみる講義を企画したところ、思ったより時間がかかりました。それでも様々なパターンをいくつかのグループにまとめて講義をオープンすることになりましたので、多くの関心をお願いします。

    今回の講義では、次のようなパターンを扱っています。

    • API Gateway(API Gateway):クライアントからのすべての要求を単一のエントリポイントで受け取り、認証、ロギング、ルーティングなどを処理するパターン。複数のマイクロサービスを1か所で管理できます。

    • サービスディスカバリ:動的に変化するサービスインスタンスの場所を中央レジストリに登録して検索するパターン。これにより、サービス間通信時にアドレスを自動的に探索します。

    • 同期および非同期通信:同期通信は、要求を送信したサービスが応答を受信するのを待つように、応答が来るまでスレッドがブロックされます。 REST/gRPC/GraphQL API 方式で同期通信を実装できます。非同期通信は、要求を送信したサービスが応答を待たずに直ちに次の作業を進める方法で、Kafkaなどのメッセージブローカーを介してイベントを発行して購読する方法で通信します。

    • サーキットブレーカー(Circuit Breaker):あるサービスの障害が連鎖的に広がるのを防ぐために通話を短絡するパターン。外部サービスが無効になっていると、一定時間の呼び出しを中止し、迅速な失敗を引き起こします。

    • フォールバック処理:サーキットブレーカーなどが作動したときの対策として、代替応答や再試行ロジックを提供するパターンです。部分障害時にシステムの弾力性を高めます。

    • 佐賀パターン:分散サービスでデータの一貫性を維持するための分散トランザクションパターン。各サービスのローカルトランザクションをイベント/メッセージにリンクして、最終的な一貫性を確保します。

    • CQRS&イベントソース:CQRS(Command Query Responsibility Segregation)は読み取りと書き込みモデルを分離してスケーラビリティを高めるパターンであり、イベントソース(Event Sourcing)はステータス変更をイベントログに保存して履歴に基づいて状態を復元するパターンです。一緒に使用され、複雑なビジネスのデータを管理します。

    • EDA: Event Driven Architectureは、イベントの生成、検出、消費、および使用を中心にシステムを設計するソフトウェアアーキテクチャパターンです。マイクロサービスアプリケーションのコンポーネントが「イベント」を介して互いに通信して相互作用する方法です。

    • BFF(Backend for Frontend): Web、モバイルなど、プラットフォーム固有のバックエンドを提供するパターンです。各フロントエンドのニーズに合わせた専用APIレイヤーを作成し、効率性と開発生産性を高めます。

    今までずっと遅れてきた、「Spring Cloudで開発するマイクロサービスアプリケーション(MSA)」講義を皮切りに、既存の講義のコンテンツを更新しようとしています。講義をオープンした指導時間がかなり流れ、最新の内容で再作成しなければいけないという考えを続けてきましたが、さらに遅くないように更新しようとしています。

    講義に関心を持ってくださった方々にもよろしくお願いします。

    ありがとうございます。

    1

¥13,785