
本講座でどんなことが学べるのか、対象はどのような人なのか、含まれていない内容は何なのか、といったことを学習します。
本語講座で学習する内容について概要を確認します。
マイクロサービスの概要
マイクロサービスのあるべき姿
マイクロサービスへの移行
モノリス(モノリシックなシステム)とは「すべてのコンポーネントが1つにまとまったシステム」のこと。
モノリスの特徴を振り返り、これまでの開発で発生してきた課題について確認します。
マイクロサービスとは「サービスを構成する要素を独立したサービス群へ分割、それらサービス群が全体として1つのアプリケーションとして動作するシステム」のことです。
本レクチャーではマイクロサービスのメリット、導入することによる課題について学習します。
マイクロサービス化すると新たに発生する課題について、どのようなものがあるのか概要を学習します。
よく比較されるSOAとの違いについて、アーキテクチャ、データ、通信といった視点から比較をします。
マイクロサービスの導入に伴って見直しが発生する「開発体制」と「開発サイクル」について、どのようなカタチに変わるのかモノリスのときと比較して学習します。
「サービス間通信」のサブセクションで学習する内容を確認します。
マイクロサービス同士をつなげる通信方法として主要な方法について学習します。
マイクロサービス化すると必ず登場する「メッセージブローカー」について、その仕組みを学習します。
マイクロサービス同士の各種通信方法の特徴を整理し、使いどころを学習します。
マイクロサービス化した際、あるサービスが止まってしまった時の影響を最小限にする仕組みについて学習します。
マイクロサービス化した結果できあがる複数のサーバーに対し、アクセスしたいホストがどこにあるのかを確認する仕組みについて学習します。
「外部公開」のサブセクションで学習する内容を確認します。
マイクロサービス化すると、外部からみたとき複数サービスの内情を知る必要がなくて済むようファサードの仕組みを導入します。
「アプリ設計」のサブセクションで学習する内容を確認します。
変化が激しい開発においてできるだけ変化に耐えられるような設計として「ドメイン駆動設計」の概要を学習します。
「データ整合性」のサブセクションで学習する内容を確認します。
マイクロサービス化した結果分散してしまったデータに対してどのようにデータ整合性を担保するのか、その実装方法について学習します。
データ整合性を担保する方法の1つ「サーガ」について、仕組みと実装時のポイントを学習します。
マイクロサービス化した結果、分散してしまったデータを再び集めて再構成する方法について学習します。
N+1問題について出題です。
N+1問題の例題に対する解答例です。
回答例に加えて実装時にどんな実装だと問題が起こるのかポイントを学習します。
マイクロサービス化して分散してしまったデータを再度結合する際、効率的に実行する仕組みについて学習します。
「セキュリティ」のサブセクションで学習する内容を確認します。
クッキーとセッションについてどのような仕組みなのか学習します。
OAuth と OpenIDConnect の仕組みについて学習します。
マイクロサービスにおける認証認可の仕組みの導入方法について学習します。
「テスト」のサブセクションで学習する内容を確認します。
マイクロサービス化したシステムをテストする方法について学習します。
ビルド、デプロイ、リリースの違いについて学習します。
「デプロイ/リリース」のサブセクションで学習する内容を確認します。
デプロイ手法としてどのような方法があるのか学習します。
リリース方法としてどのような方法があるのか学習します。
システム全体にわたって共通的に利用したい機能を導入する仕組みについて学習します。
自由に開発されたアプリを効率的に管理する仕組みについて学習します。
「CI/CDパイプライン」のサブセクションで学習する内容を確認します。
アプリを実際の本番環境へリリースするまでの流れについて学習します。
「サービス正常性確認」のサブセクションで学習する内容を確認します。
マイクロサービスにおける各サービスが利用可能な状態なのかどうか、確認するためにヘルスチェック用のAPIを準備します。
本レクチャーではヘルスチェックAPIがどのようなリクエスト、レスポンスで構成されるのか、学習します。
「可観測性」のサブセクションで学習する内容を確認します。
マイクロサービスの運用で大切になる可観測性には「ログ」「メトリクス」「トレース」の3つがあります。
本レクチャーでその概要を学習します。
可観測性の1つ「ログ」に関して、マイクロサービスにおけるログ収集をどのように実現するのか、その方法を学習します。
可観測性の1つ「メトリクス」に関して、マイクロサービスにおけるメトリクス収集をどのように実現するのか、その方法を学習します。
可観測性の1つ「トレース」に関して、マイクロサービスにおける障害箇所の特定をどのように実現するのか、その方法について学びます。
モノリスからマイクロサービスへ移行するときのポイントについて学習します。
改めてマイクロサービス化する目的について確認します。
モノリスな開発体制からマイクロサービス向けの開発体制に変革を行う際、どのように進めるのか、その方法を学びます。
モノリスからマイクロサービスへは段階的に分解、再構築を行っていきます。
完全なモノリスからマイクロサービスへ移行する大まかな手順について学習します。
マイクロサービス化したとしても必要となる共通的な仕組みや運用としてどのようなものがあるのか、学習します。
モノリスからマイクロサービスへ移行する手順のうち「モデル化」と「優先順位付け」について、例題を使って考えていきます。
モノリスからマイクロサービスへ移行する手順のうち「モデル化」と「優先順位付け」について、例題を使って考えていきます。
「アプリ分割」のサブセクションで学習する内容を確認します。
プロキシを使ってアプリケーションをマイクロサービスへ分割するする手順について学習します。
I/F定義を使ってマイクロサービスへ分割する手順について学習します。
「データ分割」のサブセクションで学習する内容を確認します。
「データベース」「スキーマ」「テーブル」の用語の違いについて学習します。
マイクロサービスにおけるデータベースの分割方法として論理分割と物理分割を学習します。
データベース側からマイクロサービスへ分割する手順を学習します。
アプリケーション側からマイクロサービスへ分割する手順を学習します。
アプリケーションとデータベースを同時にマイクロサービスへ分割する手順について学習します。
本コースの振り返り
本講座全体を振り返り、今後どのようなことを学習したらよいかの指針を確認します。
ボーナスレクチャーです。
マイクロサービスとはどのようなもので、どのように設計、実装していくのか、そしてそのあるべき姿に対してどのように現状のモノリスから移行していけばよいのかについて学習します。
本講座は幅広い内容を含んでいます。まだマイクロサービスについて詳しくわからない方にとってザっと概要がつかめるコースとなっています。
ぜひ、本コースをマイクロサービス化の取り組みの足掛かりとしていただければと思います!
【講座概要】
マイクロサービスアーキテクチャ概要
モノリスの特徴(メリット、課題)
マイクロサービスの特徴(メリット、課題)
マイクロサービスとSOAの違い
開発体制、開発サイクルの違い
マイクロサービスのあるべき姿
設計・実装・テスト
サービス間通信の方法
外部へ公開する方法
ドメイン駆動設計
データ整合性を担保する方法
認証認可
マイクロサービスのテスト
ビルド/デプロイ/テスト
デプロイ方法
リリース方法
CI/CD
運用監視
ヘルスチェック
ログ収集
メトリクス収集
分散トレース
マイクロサービスへの移行
組織体制の変革
共通の仕組みづくり
アプリの分割
データベースの分割
【変更履歴】
v1.1.0 2025/02/21 振り返り追加
v1.0.0 2021/10/12 初版リリース