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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品レビュー
[Dropbox Japan株式会社] ランサムウェア対策の重要ポイント バックアップがあっても安心できない理由 -
製品資料
[Dropbox Japan株式会社] 失敗しないDropbox導入 移行の進め方と事前設計の注意点 -
製品レビュー
[Dropbox Japan株式会社] 取引先から聞かれる前に知っておきたい、SCS評価制度とファイル共有管理の基本 -
製品資料
[TXOne Networks Japan合同会社] 沖電気工業に学ぶ、OT環境の「リスク可視化」から始めるセキュリティ対策 -
事例
[Neatframe株式会社] 船井総研HDのビデオ会議はここが違う 美観・品質・操作性を追求した環境構築術
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
2
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
3
Microsoft 365導入後も稟議は「Excelをメールで回覧」 承認が止まる理由
-
4
生成AIが普及しても「技術書」を手放せないエンジニアの本音
-
5
OpenAIやAnthropicでさえ制御不能 2026年夏「3大サイバー攻撃」の衝撃
-
6
AIエージェントで「ERPの魔改造」復活の懸念 せっかくのクリーンコアが崩壊
-
7
増えすぎたAIエージェントが野良化 幹部の36%がインシデント発生時に隠したいと回答
-
8
米国防総省で300万人分の個人情報が流出 その「意外な原因」と教訓
-
9
その名は「Hajime」、IoTマルウェア「Mirai」と戦う“善玉ワーム”が出現
-
10
「Copilot」はなぜ放置される? “議事録要約止まり”を脱する処方箋
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
3
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
4
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
5
「IT史に名を残すシステム障害」8選
-
6
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
7
マンガで学ぶXDR/MDRのメリット、中小企業のセキュリティ強化になぜ有効か?
-
8
SASE選定は「見極め力」で大きな差――本当に必要な製品を選ぶための6つの視点
-
9
Wi-Fi 7はまだ導入しなくてよい? AI時代の企業ネットワーク戦略、次の一手は
-
10
脱VMwareに成功した企業は何をどう実践した? 事例に学ぶ戦略立案&実装のコツ
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー