Tech Insights / Microservices

マイクロサービス:拡張可能なソフトウェアを、より迅速にデリバリする

マイクロサービスは、個々のチームがソフトウェアをより頻繁に納品することを可能にしますが、それには新しい考え方とアーキテクチャパターンの刷新が必要です。マイクロサービスアーキテクチャを導入することで、より良く、より迅速な実行が可能になります。


マイクロサービスとは

マイクロサービスとは、単一目的のサービスの連続的なデリバリを優先順位付けするために個々のチームが用いる構造的なアプローチを意味します。マイクロサービスモデルは、緊密に統合されたモジュールから成り、頻繁に納品できず、単一ユニットとして規模の拡大縮小を行う必要がある従来のモノリシックソフトウェアの対極にあるものです。モノリシックアプローチは一部の組織やアプリケーションではうまく機能しますが、より優れたアジリティや拡張性を求める企業では、マイクロサービスの方が一般的になり始めています。




マイクロサービスアーキテクチャを検討する際の 考慮事項

マイクロサービスはすべての組織やアプリケーションに適合するわけではなく、適切に導入されないとコストが高額になる場合があります。事前に把握しておくべき事柄:

組織の準備はできているか

マイクロサービスへの移行は、技術的というより、組織的な移行です。チームは、自動化と継続的デリバリ重視のアプローチによるソフトウェア構築を受け入れる準備を整える必要があります。あなたの組織は、職務的サイロを排除し、サービスの構築と運用の両方を行う自己充足的なチームをつくる準備はできていますか?変更管理プロセスは、人的介入なしに、デプロイパイプラインに耐えられますか?

熱心すぎる開発者を抱えていないか

すべてのアプリケーションがマイクロサービスを必要としているわけではありません。マイクロサービスをすべてに適用しようと意気込む開発者は、ビジネス上変更の必要がない既存のアプリケーションのコードの記述に時間を大いに取られる恐れがあります。変更の頻度が低いアプリケーション、またはミッションクリティカルな機能を提供しないアプリケーションは、モノリシック状態のままの方が具合がいいかもしれません。マイクロサービスはアジリティを向上させますが、同時に複雑さも増大させます。マイクロサービスを採用する前に、アジリティの向上が本当に必要かどうか確認してください。


重要なトピックの最新情報を入手

ニュースレター配信登録

サービスの連携をどうするか

マイクロサービスは互いにゆるくつながっており、頻繁に変化します。サービスの最新URLをどのように確認しますか?また、数が日々変化するサービスインスタンスへのトラフィックの経路をどのように決定しますか?サービスでデータをどのようにやりとりするか?多くの場合、現在配備されているサービスの検出、負荷分散、およびメッセージングのためのテクノロジーは、マイクロサービスによって導入されるダイナミクスにとって非常に不適切です。

複雑な環境における「Day2」管理をどうするか

管理するアイテムの数が増えると、運用上のリスクも増えます。何百または何千ものサーバーにわたって何百または何千ものマイクロサービスを構築することは、新しいアプローチを取らない限り必ずや管理上の頭痛の種になるでしょう。基幹マシンのパッチやアップグレードをどうするか?あなたは、依存関係を追跡したり、リスクにさらされているアプリケーションを特定したりできますか?最新のアプリケーション構成を用いて、何十もあるマイクロサービスインスタンスを最新状態に維持することについてはどうでしょうか。マイクロサービスプラットフォームを構築するために使用するコンポーネントと、それらのコンポーネントやサービスをどこで実行するかは、今後数年間にわたって組織のアジリティに大きな影響を与えます。