モノリシック
複数の機能を一枚の岩(モノリス)のように1つのアプリケーションを構築する従来型のアーキテクチャを「モノリシック(Monolithic)」という。複数の機能はモノリス内で相互に連携しながら実行される。
モノリシックのメリットは分かりやすさにある。コードが一か所にまとまっているため、複数のシステムを調整することなく、1つのアプリケーションで様々な機能を管理できる。デプロイ(展開、配置)前に複数のアプリケーションをテストする必要がなく、1つのソフトウェアを対象にテストすればいいので、全体の処理が高速になる。
一方デメリットは、アプリケーションの拡張、変更や管理などの柔軟性が低いこと。アップデートのたびにデプロイからやり直す必要があり、修正や変更を重ねるうちにコードが複雑化し、システムの仕様変更や機能拡張が困難になることもある。また、一部の障害で全体がダウンするリスクも高い。
モノリシックに対し、単一の機能を組み合わせてアプリケーションを構築するアーキテクチャを「マイクロサービス」という。それぞれの機能は独立しており、APIを通じて相互に連携されている。このため、一部の機能に障害が生じても、他に影響を与えにくい。メンテナンス性に優れ、システムの変更や改修時のリスクが軽減され、開発や改良が迅速に行える。デジタルトランスフォーメーション(DX)の実現に向けた取り組みにおいて、マイクロサービスを導入する企業は多い。
現在は、柔軟性と適応性の高いマイクロサービスの人気が高まっているが、システム全体の状況を把握し管理する負荷は大きく、高度なスキルと知識を持った専門のエンジニアが不足している。単純なソフトウェアを迅速に立ち上げたい場合など、モノリシックが適切なケースもある。それぞれの特徴を理解し最適な開発手法を選択することが重要だ。
(青木逸美)