SOAの進化系
初心者が陥る、マイクロサービス化にありがちな10の課題
マイクロサービスに関心を持つ企業が増えている。マイクロサービスは変化の多い環境でメリットを発揮するが、適用領域には見極めが必要だ。初心者がつまずきやすい10個の課題を挙げる。
ITでビジネスを変革するデジタルビジネスを展開する上で、ビジネス環境の変化に合わせて最適な開発手法を取り入れることは避けられない。こうした背景から、企業のアプリケーション開発手法としてマイクロサービスアーキテクチャへの関心が高まっている。マイクロサービスアーキテクチャは、多数の小規模サービス(マイクロサービス)の組み合わせでアプリケーションを構成する手法だ。
今なぜマイクロサービスアーキテクチャが注目されるのか。既存アプリケーションのマイクロサービス化を進めるに当たって注意する点はどこにあるのか。2018年3月に開催された「ガートナー エンタプライズ・アプリケーション戦略 & アプリケーション・アーキテクチャ サミット 2018」において、ガートナーリサーチのリサーチディレクターである飯島公彦氏がマイクロサービス化のヒントを語った。
併せて読みたいお薦め記事
マイクロサービスを構築する
無視できないデジタルビジネスの潮流
ガートナーに寄せられる相談の中で、近年アプリケーションのマイクロサービス化に関する内容が増えており、特に2017年は多かったと飯島氏は説明する。「マイクロサービス化」という明示的な指定はなくても、スピーディーにアプリケーションのデリバリー(開発から配備までの一連の作業)をしたい、既存アプリケーションがビジネスの変化に追従できない、などマイクロサービス化で解決できる課題に関する相談が増えてきたという。「ビジネスを取り巻く環境がそれだけ変化していることの表れでしょう」(同氏)
デジタルビジネスのためのIT基盤(デジタルビジネスプラットフォーム)を作り、エコシステムを築こうとする機運が企業の間で高まっており、飯島氏は「グローバルでは50%の企業が2018年までにプラットフォーム戦略を重要な戦略として位置付ける」と予測する。日本国内においても先進的な企業には同様の傾向が見られるという。企業や個人からの多様な要望に素早く応えるためには、デジタルビジネスプラットフォームの構成要素であるアプリケーションを迅速にデリバリーできなければならない。さらに各アプリケーションの拡張性も確保する必要がある。こうしたニーズが広がった結果、マイクロサービス化に高い関心が集まっているのだと同氏は言う。
マイクロサービス化で得られるメリット
そもそもマイクロサービスアーキテクチャとは何か。飯島氏はその定義として次の4点を挙げる。
- 均一なサービスが内部的に疎結合で結ばれていること
- 各サービスがオープンスタンダードのインタフェースを持つこと
- 各サービスが自律的に動き、自己完結できるよう必要なデータを保持すること
- 各サービスが単独で配備でき、スケーラビリティを備えること
マイクロサービスアーキテクチャの目的は、アプリケーション開発の俊敏性を高める、デリバリーを迅速化し、拡張性を確保することにある。そのために、大きくモノリシック(一枚岩)のアプリケーションを個々に独立した小さい塊、つまりマイクロサービスに分割する。「アプローチの類似性から、SOA(サービス指向アーキテクチャ)の進化形ともいえるでしょう」(飯島氏)
マイクロサービスアーキテクチャの適用候補となる企業のデジタルビジネスプラットフォームは、
- 利便性や効率性を高めるための人と人とのコラボレーション
- ビジネス機能を組み合わせるオーケストレーション
- ビジネスを生み出す場となるクリエーション
- 需要者と供給者を結ぶマッチング
の4つに分類できる。共通するのは、変化に対する俊敏な追従や新機能の継続的な追加が必要な点だ。
ユーザー層を軸にすると、デジタルビジネスプラットフォームは以下3つのスコープで考えられる。
- 社内ユーザー限定のインターナル(内部的)なプラットフォーム
- 取引先など関連性が高いユーザーにまで参加してもらうプライベートなプラットフォーム
- パートナー企業や個人ユーザーにも開放するパブリックなプラットフォーム
デジタルビジネスプラットフォームへのニーズの変化に伴って、アプリケーションに求められる機能や性能は変化する。そうした変化に耐えられる仕組みが、マイクロサービスアーキテクチャというわけだ。「デジタルビジネスプラットフォームがアプリケーションに求める要件と、マイクロサービスアーキテクチャが提供するメリットは合致しています」(飯島氏)
マイクロサービス化で起こりがちな10個の課題とその対策
全てのアプリケーションをマイクロサービスアーキテクチャにすればいいという簡単な話ではない。マイクロサービスアーキテクチャが生きるところと、既存アーキテクチャのままでいいところを見極め、うまく使い分ける必要がある。講演で飯島氏はマイクロサービス化に当たってつまずきがちな10個の課題を挙げ、それぞれについて対策を示した。
課題1:どこから手を付けるべきか分からない
1つ目の課題は、どこからマイクロサービス化するかだ。新しい開発手法を取り入れる際に必ず挙がる課題といえる。全てのアプリケーションを一気にマイクロサービス化しようとする例もあると飯島氏は言うが、これもどこから手を付けていいか分からないから起こる問題だ。
「ビジネスの変化スピードやその頻度、ビジネスの価値を考え、適用すべき領域を特定するとメリットを得やすいでしょう」と飯島氏は指摘する。特にデリバリーのスピードや拡張性が求められるアプリケーションは、マイクロサービス化が大きな効果を発揮する。
課題2:適正な粒度が分からない
第2の課題は、マイクロサービスの適正な粒度が分からないというもの。「モノリシックなアプリケーションを分割するといっても、どの程度のサイズに分割すればいいのか分からない」という相談や、「とにかくマイクロサービスを小さくすればいい」という勘違いが多いと飯島氏は明かす。一般的にサイズを小さくすればデリバリーを迅速化できる。ただし小さくし過ぎると、アプリケーションを構成するマイクロサービスの種類や数が増え、管理が複雑化する。
この課題を解決するためには、まずはビジネスのスピードに、アプリケーションのデリバリースピードを合わせるべきだと飯島氏は言う。ビジネスの変化に応じて、その遂行に必要なアプリケーションは変化する。アプリケーションの改修や新規開発に関するデリバリースピードが、ビジネスの変化に追い付いていなければ、サイズをさらに小さくした方がいいというわけだ。
「マイクロサービスは多様な粒度を取り得るので、目的や範囲に応じて粒度を考えるべきです」と飯島氏はアドバイスする。変更の必要性がなかったり、データの厳密な一貫性が求められたりするアプリケーションは、モノリシックのまま、もしくはそれに近い“マクロサービス”と呼べるほど大規模なマイクロサービスが適する場合もある。「自社のアプリケーションがどのような目的を持ち、どのように拡張するのかを考え、マイクロサービス化の対象や粒度を決める必要があります」(同氏)
課題3:マイクロサービスの適用シナリオが現実的ではない
マイクロサービス化を進めようとしたものの、いきなり複数のアプリケーションをマイクロサービス化しようとするなど、その適用シナリオが現実的ではない場合、かえって混乱を招いてしまうこともある。これが3つ目の課題だ。マイクロサービス化のロードマップを描く際には、適用可能なシナリオが幾つもあることを知り、自社に適したシナリオを選ぶことで適用の可能性が広がる。
課題4:提供者目線でAPIを設計、提供してしまう
マイクロサービスは、API(アプリケーションプログラミングインタフェース)を通じて他のマイクロサービスと連携できる。その点で、マイクロサービスは「APIサービス」だと捉えることもできる。
APIを軸にしてデジタルエコシステム(IT分野のビジネス生態系)を構成するプレイヤーを考えると、APIを提供する側と利用する側(ユーザー)に分けられる。5つ目の課題は、API、つまりマイクロサービスを提供する側が、自社の都合をAPIのユーザーに押し付けてしまうことだ。
デジタルエコシステムにおいてAPIは商品であり、ユーザー目線での設計が必要だと飯島氏は強調する。その上でサービス全体のメトリクス(品質指標)を見つつ、品質のボトルネックを解消し続けなければならない。
課題5:マイクロサービス化を一時的なプロジェクトとして扱う
課題3の対策は、課題5にも関連する。マイクロサービス化の適用を一時的なプロジェクトと考え、将来的な状況まで考えていないというものだ。マイクロサービス関連技術は進化し、デジタルビジネスプラットフォームに求められる要件も変化する。この双方を視野に入れ、ビジネス成長のロードマップを描く必要がある。
課題6:設計開発プロセスが未熟
飯島氏は、開発プロセスを成熟させないままプロジェクトをスタートしてしまうという課題も挙げる。「マイクロサービスのメリットを生かすため、開発やデリバリーのプロセスを成熟させ、プロセス自動化の完成度を高めてからプロジェクトをスタートしなければなりません」と同氏は強調。サービスを機能単位で小さく提供する、デプロイの生産性を上げてアジリティーを高める、サービス基盤の自動化を進めるなどの準備が必要だと指摘する。
課題7:構築方法が分からない
飯島氏が7つ目に挙げるのは、マイクロサービスの開発実行インフラの構築方法が分からないという課題だ。マイクロサービス化のメリットであるアジリティーを最大限に得ようと考えるなら、API公開用のゲートウェイ、デプロイやビルドの自動化機能などを全て自社で構築していては非効率だ。
「マイクロサービスアーキテクチャを生かすためには、インフラにもアジリティーが求められます。既存のクラウドをうまく使うのがいいでしょう」と飯島氏は指摘。責任の範囲やアジリティー目線で
- IaaS(Infrastructure as a Service)
- CaaS(Container as a Service):コンテナを提供するクラウドサービス
- aPaaS(Application Platform as a Service):アプリケーションの開発・デプロイ環境を提供するクラウドサービス
- fPaaS(Function Platform as a Service):サーバレスを提供するクラウドサービス
を使い分けるべきだとアドバイスする。
課題8:開発環境、実行環境が管理不能
第8の課題は、マイクロサービスの独立性や自由度を追求し過ぎてしまうこと。その結果としてマイクロサービスの開発言語やAPIの種類が膨大になると、開発環境や実行環境の管理が困難になる。ベースとなる言語を幾つかに絞り込んでおくこと、APIを増やし過ぎないことなどに気を付けるべきだと飯島氏は指摘する。
課題9:既存アプリケーションとシームレスに連携できない
9つ目は、既存アプリケーションとの連携に関する課題。マイクロサービスはAPIを備えるため、自然と他のマイクロサービスやアプリケーションとの連携が容易になる。マイクロサービス化を進めるアプリケーションだけではなく、他の既存アプリケーションとの連携もしやすくしたい、というニーズもあるだろう。これを実現するためには、既存アプリケーションのAPI化を並行して推進する、REST API(システム連携の設計原則「REST」に準拠したAPI)を積極的に活用するなどの工夫が求められる。
課題10:社内にスキルがない
最後は、マイクロサービス化に必要なスキルが社内にないというもの。エンジニアは一朝一夕で成長できるわけではないので、最初から完全なスキルセットを求めないようにすべきだと飯島氏はアドバイスする。開発者コミュニティーやハッカソン(プログラミングイベント)、ユーザー会への参加で最新技術にキャッチアップをすることも有効だと訴える。
マイクロサービスアーキテクチャは優れた点はあるものの、万能ではない。「マイクロサービス化にこだわり過ぎることなく、ビジネス上の観点から現状をチェックし、ロードマップを設定し、アプリケーションの進化に必要なプロセスを考える必要があります。ビジネスとの整合性を考えながら、開発チームを編成し、そこに適するのであればマイクロサービスアーキテクチャを取り入れていくといいでしょう」(飯島氏)
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー