2014年の初めから 2015年にかけて、マイクロサービスは新しくてホットなバズワードとなり、人々の注目を集めました。今回は、マイクロサービスの基礎知識を説明し、マイクロサービスのメリット・デメリットと共に、実際の活用事例などについても触れてみたいと思います。

【目次】

・マイクロサービスとは?

・メリットとデメリット

・最新事例

LINEやAmazonも導入する「マイクロサービス」とは?

マイクロサービスとは、アプリケーションを複数の小さな(マイクロ)サービスで構成するアーキテクチャスタイルです。これは、従来型のすべての機能を一箇所にまとめるモノリシックなシステムに対して、各サービスはそれぞれ独立していて、大規模で複雑なアプリケーションの迅速で頻繁で信頼性の高い配信を可能にします。また、マイクロサービスの導入により組織はテクノロジースタックをより進化させることができるのです。

LINE、Amazon、Facebookなどの大手企業は既にマイクロサービスを導入していています。なぜ大手企業が揃ってマイクロサービスを導入しているかと言うと、ビジネスモデルの高速な変革に最も適しているのが、マイクロサービス・アーキテクチャーによるアプリケーション開発であるからです。

 

 

マイクロサービスのメリットと課題・注意点とは?

ここまでマイクロサービスとは何なのかを説明してきました。では、マイクロサービスを導入することによって、どのような利点があるのでしょうか。ここでは、マイクロサービスのメリットとデメリットをご紹介します。

マイクロサービス導入の5つのメリット

1.各機能の独立性があるため、柔軟開発が可能

基本的にはそれぞれの機能独立しています。そのため、設計にあたってはそれぞれのサービスに特化した手法をとることができます。そして何かトラブルが起こった時には、特定が可能になるため、従来型のようにすべてのシステムを変えるのではなく、問題の一部分だけを変えれば良く柔軟な開発が可能なのです。      

2.ビジネス機能を中心に編成可能

マイクロサービスのシステムは複数の小さなサービスで構成されています。システムを元にビジネス機能に特化したマイクロサービスのみを導入することで、ビジネス機能のみを中心としたサービスも多く作ることができます。サービスが細分化されていることで不要な機能やモジュールを導入することなく、必要なものだけで開発を行うことができます。

3.マイクロサービス同士の依存関係が薄い

マイクロサービスにはマイクロサービスを構成するサービス同士の依存関係が薄いことがメリットとしてあげられます。従来はの開発手法では、各機能はシステムレベルで強いつながりがあることが多く、それが故一つのバグが連鎖的なバグに繋がるということがありました。しかし、マイクロサービスでは各機能が独立して構成されている他、特異性、独自性を一定程度保持することができます。

4.各サービスのサイズが小さく、負荷が少ない

それぞれのマイクロサービスのサイズが小さいこともメリットしてあげられます。ほかサービスとの依存も少ないため必要最低限の構成で成り立つ各サービスのサイズは必然的に小さくなるため、新規のサービス開発もスムーズに行うことができます。また、変更を加える際には、それぞれのマイクロサービスが小さい上にそれぞれのサービスが依存関係にないため、従来型のように全体を変えるのではなく、一部分を変えるだけで済みます。

5.変更や機能追加に対する、柔軟性 

既にお気づきかもしれませんが、マイクロサービスのメリットの代表的な観点が、その柔軟性にあります。マイクロサービスのサイズも関係していますが、とにかく変更が容易で柔軟性に長けています。容易新技術の採用、新規機能の追加、高頻度の軽微な変更が容易になってきます。

 

現在のように世界中で新技術の登場や導入が加速する中、自社の開発にそれらを乗せるためには柔軟な受け入れ体制が必要となります。そういったことも見越して、特に世界で活躍する大手企業はマイクロサービスを導入しているのです。

 

マイクロサービス導入の5つの課題と注意点

1.マイクとサービス開発者の経験と専門知識が必要不可欠

マイクロサービスは先進的な開発手法のためまだまだ経験者少ない分野であり、規模を大きくしていく上では、より多くの技術者が必要になってきます。海外では浸透し始めているマイクロサービスという手法ですが、日本ではまだまだ新興的な開発手法のため、対応できる技術者も国内には多くありません。しかし、マイクロサービスの導入のためには専門的な正しい知識を身につけた技術者の参画が必要不可欠なのです。

2.技術の過負荷があるため、独自導入が難しい

柔軟だからこそなのですが、マイクロサービスの運用用務は一貫性に欠けるため、技術者への負担が増加してしまう傾向があります。そのため、独自でのマイクロサービスの導入は難しく、やはり柔軟な開発手法に対する専門知識や経験がある開発リソースが必要になります。

3.ルールがなければコミュニケーションが難しくなる             

マイクロサービスにおいては、サービスごとにそれぞれ違う分野を開発しているチームにより成り立つため、その数が増えれば増えるほど、チーム同士の報告や連絡が難しくなります。そのため、各部門間を横断して関係者全員が統一したコミュニケーションルールを理解・運用している必要があり、もちろんそのルールを作る必要もあるのです。

4.中央機関のモニタリングとトラブル対応が重要

マイクロサービスでは、1つのシステムを複数のサービスで構成しています。そこで、それぞれのサービスからの情報を集約してシステム全体の状況を把握するモニタリングとトラブル対応を徹底することが、運用監視や障害対応を行う上で重要なのです。そのため、開発方法だけでなく、開発期間を行う上での中央機関のノウハウも重要となります。   

5.セキュリティ面のリスクを担保するための正しいノウハウが必要

分散されているマイクロサービスは、従来型のモノリシックなサービスに比べると、一つ一つのサービスのセキュリティは弱くなってしまう可能性があります。そのため、マイクロサービス全体のセキュリティ性を担保するためにも正しいノウハウが必要となります。

 

尚、これらの多くの課題や注意点がある一方で、それらを対処するためのシステムも存在しているのです。情報収集、トレーシング、視覚化ツールを備えたメトリクス情報収集や分散トレーシング、サービス間の連携を制御する各種機能を提供してサービスを管理する負荷を軽減するサービスメッシュなど多くのツールが存在しています。これらを組み合わせることによって、マイクロサービスによるより良いサービスを目指しているのです。

 

マイクロサービス導入の世界の最新事例3選

 では、本記事の最後に実際にマイクロサービスを導入している企業をご紹介したいと思います。実際の事例をご覧になっていただくとご自身のビジネスへの導入の仕方もよりイメージが付きます。

1.スーパーアプリ化目指す、LINEのマイクロサービスの導入

LINEは、もともとはモノリスティックなアプリケーションで、メッセージ機能などの簡単な機能のみを備えたツールでした。しかし、会社が大きくなるに連れ、より多くの機能を取り付けようとしたのです。例えば、スタンプを送る機能、LINEニュースの機能、通話機能などです。

他方、これを一つのWEBアプリケーションサーバーで実行する時には必ずトラブルが起こります。様々な観点で調整が必要になり、それが開発のスピード低下につながり、、、などなど、そういった課題を解決するために導入されたのがマイクロサービスでした。中央機関に柔軟な開発体制を構え、マイクロサービスを追加していく手法で、スーパーアプリ化を目指しているのです。

2.数千のチームで従来の開発に限界を感じたAmazonの導入事例

巨大化したモノリシックアーキテクチャに限界を感じたAmazonは、マイクロサービス同士をつなげる役割をもつ、HTTPSのAPIのみでマイクロサービスを連携させるシステムを作りました。これにより、チームごとの独立性を確保し、開発スピードと、バグが起こる可能性を減らしました。

さらに、数千のチームがあるということはそれだけの数の責任者がいるということでもあり、それぞれが自分のチームのサービスをより良くする動機と責任を持つことで、サービス向上に取り組むモチベーションをアップさせることにも繋がりました。

そして、モチベーションを高めることで、サービス品質は向上し、改善スピードも早めることができたのです。

3. 世界各国にマイクロサービスを導入したNashTechのプロジェクト

世界複数ヵ国に拠点を持ち、テクノロジー開発、コンサルタント、およびアウトソーシングを専門としているグローバル企業であるNashTechは、イギリス・タイ・香港などで従来型のモノリシック・アーキテクチュアが使われている企業を発見しました。そして、6ヶ月間の調査で、それらの企業でエラーが多発していたり、アプリの展開が遅かったり、管理が難しい状況にあるという事をを発見しました。

そこで、NashTechの専門的な知識と経験を兼ね備えたマイクロサービス開発チームを企業に導入し、従来型のシステムからマイクロサービスへと転換することで、よりスムーズなサービスが提供できるようになったのです。

 

まとめ

このようにマイクロサービスについて見てきましたがいかがだったでしょうか。他の多くのサービスと同じように、マイクロサービスには、メリットとデメリットが存在します。もちろん、従来型のモノリシック・アーキテクチュアにもメリットはあり、デメリットがあります。日々スピードを増すデジタルテクノロジーに対応しているのは、マイクロサービスですが、その導入については、外部への相談も含め、慎重な検討が必要といえます。