SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

Google Cloudが直伝! コンテナ基礎入門

「マイクロサービス×コンテナ」の組み合わせが増えているワケ 4つのポイントから見る

第3回:マイクロサービスアーキテクチャを実現するコンテナとは

 第2回はアプリケーション開発者の視点でコンテナ採用の利点について解説した。第3回は、視点をシステムアーキテクトに変え、コンテナと親和性の高いマイクロサービスアーキテクチャの解説と、マイクロサービスアーキテクチャのプラットフォームとしてコンテナを採用することの利点を解説する。

大規模サービスで採用が増えているマイクロサービス

 すべての機能を一枚岩(モノリス)のようにまとめて実装を行うモノリシックなアプリケーションは、実現したい機能が単純で、チームが小さい段階では実装が早くできるというメリットがある。その一方、機能の追加が続くと、コードベースが複雑になり、開発の生産性が下がり、リリースにともなうテストの負荷も大きくなるなど運用作業の負担が増加。変更の負担が増えることで、ビジネス成長にあわせたタイムリーな拡張が難しくなるというデメリットが発生することが多い。

 そこで、Thoughtworks社のJames Lewis氏とMartin Fowler氏が2014年に提唱したのがマイクロサービスアーキテクチャだ。機能ごとにアプリケーションを分割し、サービス間を疎結合とし、 軽量なAPIなどでお互いが協調動作することにより一つのシステムを構成するというソフトウェアアーキテクチャ。これにより、各機能をより小さいコードベースで、それぞれ別のチームで独立して開発、リリース作業ができるようになり、大規模なアプリケーションでもビジネスのニーズに合わせた変更を簡単に行うことができるようになった。

画像を説明するテキストなくても可
クリックすると拡大します

 また、前述の容易な機能追加に加えて、以下のようなメリットもマイクロサービスを採用すると享受することができ、近年BtoCの大規模なサービスなどで採用が増えている。

  • スケールアウトが容易になる
  • 可用性・耐障害性の向上
  • 異なる技術を組み合わせることができる

コンテナが最適だと言える4つのポイント

 前述のようにマイクロサービスを採用することで、様々なメリットを享受することが可能だが、これらのメリットを最大化するためにマイクロサービスのプラットフォームとしてはコンテナを採用されるケースが多い。その親和性について、それぞれのメリットとの関係を含めて、ポイントごとに解説する。

機能追加

 マイクロサービスでは、コードベースを分割し、別々のチームで個別開発が可能になるが、裏返すとデプロイの頻度が多くなり、この作業負荷や作業ミスによる障害発生などが懸念となる。ここでアプリケーション基盤にコンテナを採用することで、デプロイ方法をすべてのサービスで「コンテナの入れ替え」にて統一、自動化することができる。これによりサービスごとにデプロイ方法が異なるという状況を回避でき、デプロイ作業が頻繁に発生しても作業負荷の高まりや手順ミスでの障害発生も防止できる。加えて、前回紹介した、CI/CDも合わせて採用することで、デプロイ作業を自動化し、これらの作業を人の手を介することなく実施できる。

スケールアウト

 マイクロサービスを採用すると、より少ないリソースでシステムのスケールが可能となる。どういうことかと言うと、モノリシックなアプリケーションでは、アプリケーション全体でスケールしていたが、マイクロサービスでは分割されたマイクロサービス単位でスケールすることが可能だ。たとえば、ECサイトのマイクロサービスにおいては参照が増えた際に商品表示のAPIだけスケールでき、より少ないリソースで多くのトラフィックを捌ける。このように細かい単位でアプリケーションプロセスの稼働と、スケールのためのプロセスの増減が頻繁に発生するのがマイクロサービスであるが、基盤としてVMなど、オーバーヘッドの高いものを使うと、積み重なって無駄な大きなリソース消費となってしまうが、コンテナを利用することで無駄なコストを削減しつつ最大限のスケールを実現できる。

画像を説明するテキストなくても可
クリックすると拡大します

次のページ
レスポンス悪化時に、切り分けをしやすくするために

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
Google Cloudが直伝! コンテナ基礎入門連載記事一覧

もっと読む

この記事の著者

安原 稔貴(ヤスハラ トシタカ)

グーグル・クラウド・ジャパン合同会社 技術部長(インフラ、アプリケーション開発)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/18880 2024/01/09 08:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング