강의

멘토링

로드맵

BEST
Programming

/

Back-end

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

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

  • Dowon Lee
마이크로서비스
이론 실습 모두
Java
Spring Cloud
Design Pattern
MSA
patterns

学習した受講者のレビュー

こんなことが学べます

  • マイクロサービス アーキテクチャの理解

  • マイクロサービスアーキテクチャパターンの理解

  • マイクロサービス設計に基づくパターンの適用

マイクロサービスアーキテクチャのパターンを理解し、アプリケーションに適用できます。

基本的なマイクロサービスアーキテクチャの概念と構成を理解したら、現在はアプリケーション構築に必要なサービス決定とMSAのパターンを利用して、マイクロサービスアプリケーションを設計し構築してみることができます。

複雑なシステムを柔軟でスケーラブルでメンテナンスしやすいマイクロサービスアーキテクチャに変革したいすべての開発者とアーキテクトにとって不可欠なプロセスです。今回の講義を通じて、アプリケーション開発の重要な能力を強化しましょう!

  • モノリシックとマイクロサービスアーキテクチャの理解、大規模モノリシックアーキテクチャとマイクロサービスの違いを理解し、各アプローチの長所と短所を学ぶことができます。

  • 基本的なモノリシック方式のアプリケーションをマイクロサービスアーキテクチャの構造に変換するために必要な過程と悩むべき重要なポイントについて説明しています。

  • MSA設計原則:スケーラビリティと信頼性を向上させるためのマイクロサービスアーキテクチャ(MSA)設計原則をカバーします。ドメイン分割、疎結合、独立展開などの重要な概念について学ぶことができます。

  • このレッスンでは、サービスの種類に合ったマイクロサービスアーキテクチャのパターンを理解し、MSAパターンを適用するために必要な概念を理解することができます。

  • MSAコアパターン学習: APIゲートウェイサービスディスカバリー佐賀パターンなど、主要なMSAデザインパターンを実際のケースで勉強できます。


  • 仮想MSAの例を実装し、実行プロセスに必要なすべてのコースを一緒に練習することができます。

  • MSAの主なパターンによる使用率のグラフは次のとおりです。



こんな方におすすめです

この講義を聞かなければならない方(1)

MSAの概念と理解を持って、マイクロサービスの導入を検討中の組織でアプリケーション構築のためのアーキテクチャと適用可能なパターンを実習例を通じて学習したい方

この講義を聞かなければならない方(2)

MSA の Inner/Outer Architecture を構成する際に、適用可能なさまざまな MSA パターン、処理メカニズムを通じて大規模なサービスの開発および保守を試みるバックエンド開発者

この講義を聞かなければならない方(3)

Spring Boot + Spring Cloudを使用したマイクロサービスアプリケーションを開発しながら、データ管理と分散トランザクションについて少し深くなったことを知りたい人

受講後は

  • モノリスアプリケーションをMSAアプリケーションに移行するために必要な構成とアーキテクチャとパターンについて理解することができます。

  • MSAに必要なデータ同期方法分散トランザクションでのデータ処理方法について理解できます。

  • マイクロサービスアプリケーションの開発に考慮する必要があるアーキテクチャとパターン、およびさまざまなパターンに適用する方法を理解できます。

  • MSAのさまざまなデザインパターンを状況に合わせて適用することで、問題解決能力を向上させることができます。

  • 既存のプロジェクトやサービスにMSAを導入する際に明確なロードマップを描画できるようになり、 DevOps文化クラウドインフラストラクチャの理解に基づいて展開環境を設計できるようになります。

この講義の特徴

サービスタイプ別MSAパターンの理解

本講義では、モノリシック方式のアプリケーションとマイクロサービスで開発されたアプリケーションとのアーキテクチャとサービスの観点の違いと長所と短所を理解し、シナリオやテーマ別にマイクロサービスの分解パターンから、データ通信、テスト戦略に至るまで、さまざまなMSAパターンを区分して学習することができます。

MSAパターンを適用したサンプル例を直接実装

モノリス方式とマイクロサービス方式で構成された30の実習例をもとに、サービスに適用してみられるMSAパターンを段階的に適用してみることができ、クラウドサービスに展開する過程についても学習してみることができます。

このようなことを学びます。

マイクロサービスアーキテクチャのパターンの種類と理解

マイクロサービスアーキテクチャの形でサービスを構成するために考慮する必要がある構造的な状況とさまざまなパターンを、サービス間の通信、非同期データ処理方法、データ管理の視点に分類して段階的に学習することができます。

分散変換処理のための技術と適用方法

マイクロサービスアーキテクチャでのデータ管理方法と、分散トランザクション処理のために考慮しなければならないCQRS、Event Sourcing、SAGA、Event Driven Architectureの理解だけでなく、実習例を通じて、実装に必要な過程について学習できます。

講義で扱うMSAパターンは次のとおりです。

  • 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レイヤーを作成し、効率性と開発生産性を高めます。

この講義を作った人

  • IT キャリア 25 年間の講義、コンサルティング、開発経験をもとに、実務的な経験とノウハウを理解するための説明で講義を進めています。

  • MSAの基本的な理解と紹介に基づいて、MSAの理解を一段階アップグレードできるマイクロサービスパターンの理解と適用について取り上げています。

  • 「Spring Bootを利用したRESTful Web Servicesの開発」、「Spring Cloudで開発するマイクロサービスアプリケーション(MSA)」、「Jenkinsを利用したCI/CD Pipelineの構築、「DevOpsのためのDocker仮想化技術(Private Harbor Registry)」講義に続くMSAの実装とパターンについて説明しています。

  • 「頭の中の知識は知識ではない」という考えで、私が持っている小さな経験と知識をよく包装し、より理解しやすく説明するために努力しています。 JavaとSpring Frameworkへの関心が、Cloud NativeやMicrsoervice Architectureまで続く方だとすれば、より簡単に理解できる講義になると思います。

質問がありますか?

Q. レッスンで扱うソースコードを実装または実行するために必要なインフラストラクチャの構成と実践環境はどうなりますか?

講義で使用しているサンプルコードの合計30個になっており、各セクションが進むにつれて、セクションで紹介している内容に基づくコードに変換して実行してみることができます。すべてのソースコードは、Java言語ベースのSpring framework + Spring Bootを使用して作成されました。簡単なオンラインショッピングモールというテーマを持ち、商品リストの表示、購入などの基本的な機能を持つサンプルプロジェクトです。オンラインショッピングモールのソースを実行するには、WindowsやMacOS環境で、JDKやEclipseやIntelliJなどのIDEを使用すればデバッグと一緒に簡単に実行でき、Docker Desktopなどのコンテナ仮想化環境を構築して使用できるなら、パッケージされているコンテナイメージを元に実行してみることができます。ただし、MSAパターンを適用してプロジェクトの一部を修正しながら、テストを行う必要があるため、IDEを利用する実践環境をお勧めします。最後に、練習に必要な環境とSWをまとめると以下のようになります。

  • Windows 10 or 11 または MacOS Intel chip バージョン or Apple chip バージョン

  • JDK 17+

  • IntelliJ IDEA (CommunityまたはUltimateバージョンは関係ありません)

  • Visual Studio Code

  • Postman

  • Chromeウェブブラウザ

  • Docker Desktop

Q.マイクロサービスアーキテクチャでアプリケーションやサービスを設定しようとしていますが、デザインパターンを必ず適用する必要がありますか?

IT関連のアプリケーションやサービスを開発しながら、使用したプログラミング言語またはデータベースを選択できます。そして、仕事に必要なDomain Knowledgeに基づいて、開発者のアルゴリズムに応じてさまざまな形で開発することができます。実装したい業務ロジックは、決められたプロセスやプロセスがあるというよりは、実装する開発者が考える最善の方法と効率的なアルゴリズムを通じて実装すれば良いと思います。ただし、同じタイプのDomainサービスで既存開発されていた多数のアプリケーションですでに検証されている開発方式やプロセスや開発タイプは存在しています。従来開発されているこのような方法を参考にすれば、効率的かつ検証された方法でサービスを実装してみることができると考えられます。デザインパターン(Desigin Pattern)はこのように、過去のソフトウェア開発過程で発見された設計のノウハウを蓄積し、その方法に名前をつけて以後、再利用しやすい形で特定の規約を作ってまとめたものであり、これらのデザインパターンはソフトウェア設計における共通の問題に対する標準的な解決策と記述法を提案しています。つまり「効率的なコードを作るための方法論」だと思えばいいようです。マイクロサービスアーキテクチャでも、サービスの分割でも分散トランザクションに対する処理まで、さまざまな形態のデザインパターンが提示されており、これらのMSAデザインパターンを適用すると、より効率的で信頼性の高いサービスを実現するのに役立ちます。結論として、MSAだけでなく、他のSW開発時、デザインパターンの適用はオプションですが、正しく適用されたデザインパターンは効率的で安定したシステム開発に役立つと考えられます。

Q. Spring Boot、Spring Cloudに関する知識がないのですが、講義を受講できますか?

このレッスンでは、Spring Boot + Spring CloudをベースにしたMSAの基本的な知識を持っているという前提の下で、MSAパターンの一部について説明します。 MSAで語っているOuter Architecutreの概念や、JPAを利用して基本的なCRUD(Create、Read、Update、Delete)に対する作業を処理するのにどのようなプロセスで動作するのか程度だけ理解していても、MSAパターンに関する部分を勉強するのに十分だと考えられます。ただし、既存に作成されたモノリス方式のアプリケーションと新しく構成されるMSA方式のアプリケーションがどのような構造に変更され、適用されたかをよく理解するには、Spring BootやSpring Cloudに対する基本的な理解を備えている状態で授業を進めれば学習効果が倍になると考えられます。

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):Windows 10+、macOS Intell chip、ma​​cOS Apple chip、CentOS7+、Ubuntu 16.04+

  • 使用ツール: JDK 17+, Spring Boot, Spring Cloud, Visual Studio Code, Postman, Docker Desktop, IntelliJ Commnity (Ultimate 推奨)

  • PC仕様:CPU i5+、RAM 16G+、Storage 50G+、Internet対応環境

学習資料

選手の知識と注意事項

  • Javaプログラミングの理解とSpring Frameworkの記念的な概念を理解すると、講義を受講するのに役立ちます。

  • 講義に使用されるサンプルコードはそのまま実行してみることができますが、受講生の方の環境によっては一部修正しなければならない部分がある場合があります。

  • 講義に関する質問は掲示板を通じて残していただければ、確認するのに回答させていただきます。

  • 講義に関連する教案およびソースコードの著作権は講師にありますが、使用が必要な場合は出所を残していただきありがとうございます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • マイクロサービスアプリケーションを開発しようとする開発者

  • マイクロサービスアーキテクチャを設計しようとするエンジニア

  • MSAへの理解を基にMSAパターンを適用しようとする開発者

前提知識、
必要でしょうか?

  • Java + Spring framework

  • Spring Boot

  • スプリングクラウド

こんにちは
です。

29,527

受講生

1,586

受講レビュー

1,355

回答

4.8

講座評価

8

講座

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 

  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수

  • ) JP Morgan Chase AMJ Tech consultant (일본)

  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

カリキュラム

全体

118件 ∙ (26時間 38分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

12件

5.0

12件の受講レビュー

  • swookkim님의 프로필 이미지
    swookkim

    受講レビュー 4

    平均評価 4.3

    5

    31% 受講後に作成

    • 네오스카이님의 프로필 이미지
      네오스카이

      受講レビュー 38

      平均評価 5.0

      5

      31% 受講後に作成

      다양한 예제를 통한 설명이 이해하기 쉽습니다. 마이크로서비스 패턴에 대해서 자세히 알게되었습니다.

      • 심영우(Young-Woo SHIM님의 프로필 이미지
        심영우(Young-Woo SHIM

        受講レビュー 5

        平均評価 5.0

        5

        31% 受講後に作成

        • gmpgs87님의 프로필 이미지
          gmpgs87

          受講レビュー 1

          平均評価 5.0

          5

          31% 受講後に作成

          • hyungdoo.yoon님의 프로필 이미지
            hyungdoo.yoon

            受講レビュー 17

            平均評価 5.0

            5

            31% 受講後に作成

            ¥13,110

            Dowon Leeの他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!