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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NashTechのマイクロサービス世界大手企業向け導入事例3選

では、実際にマイクロサービスを導入した事例もご紹介します。NashTechが実際がお客様の抱えていた課題をマイクロサービスを導入し解決した事例になります。実際の事例をご覧になっていただくとご自身のビジネスへの導入の仕方もよりイメージが付くため、ぜひご参考にしてください。

アメリカが誇る世界有数の資産運用会社への導入事例

Nash Techはアメリカ・ニューヨークに本社を持ち、グローバル規模に展開している大手資産運用会社の開発を請負いました。Nash Techが支援した資産運用会社は、長年の歴史がある会社で、世界中に顧客を抱えている企業です。

大手資産運用会社は長年のデータの蓄積により、既存のシステムで今まで蓄積されてきた膨大なデータを処理することが困難になりました。そこでNash Techはマイクロサービスを活用したシステムへの移行を提案しました。

マイクロサービスの導入より、どんなにデータ量が増えても、それぞれのデータが1つのシステムに蓄積されることなく、分散して保存されるので、容量オーバーを引き起こす可能性がなくなります。さらに、Nash Techはシステムの導入だけではなく、専門スタッフを派遣し、マイクロサービス導入後のメンテナンスやシステムチェックなど、様々なアフターフォローを行っています。

世界的なアワード受賞歴のあるマーケティング企業への導入事例

アメリカの某マーケティング企業では、SNSを活用したマーケティングのサービスを提供しています。この会社が活用していたSNSはTwitter、Facebook、LinkedInなど様々なSNSの分析を得意としていました。しかし、Webアプリケーションやツールは年々増え続け、情報の分析が難しくなるという課題を抱えていたのです。

そこで、Nash Techはマイクロサービスの導入を提案します。マイクロサービスを導入することで、各SNSで得られる情報を統合することに成功したのです。情報が保存されている場所は別々でも、マイクロサービスによって、必要な時に必要な情報が1つのプラットフォームで入手できるようになりました。

さらに、マイクロサービスの導入により、マーケティングには必須の複数SNSのリアルタイム分析がより簡単に行えるようになったり、ビッグデータの分析を行う際も、マイクロサービスが大きな役割を担っています。さらに、Nash Techは開発チームを派遣する際は、様々なノウハウを活用して、システムの徹底管理を行っています。

イギリスの大手自動車部品メーカーへの導入事例

海外複数カ国にも支社をもつイギリスの某自動車部品メーカーは、近年の自動車産業の競争の激化の流れを受け、社内の技術のアップデートを必要としていました。また、この会社はビジネスを運営する上で、レガシーシステムも含む26以上ものシステムを使用していて、それらのシステムの運用と維持にも大変な労力がかかっていました。

こんな中、Nash Techチームが依頼を引き受け、まずは現状の調査から、現状の分析、そして分析を基にした新規システムとしてマイクロサービスの導入を提案しました。マイクロサービス導入の結果としては、26以上のシステムに何か問題があった時に、すぐに場所を特定し、システム改善ができるようになったため、システム管理における労力の削減に成功しました。

また、自動車部品メーカーからは、なるべく現在の勤務体制を変えたくないため、全てのシステムのアップデートではなく、必要なシステムのみをアップデートしたいとの依頼も受けました。そのため、Nash Tech開発チームは、現状で使える技術の向上と、必要な箇所にはマイクロサービスを導入するという開発方法をとりました。こうした臨機応変な対応はNash Techならではであり、常に依頼主の声や現場の調査に基づき、開発を行っています。

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

続いて、合わせてLINEやAmazonのマイクロサービスの導入事例を紹介します。

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

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

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

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

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

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

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

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

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

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

まとめ:マイクロサービス導入相談は専門家へ

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