コンテナ&マイクロサービスが常に優れているわけではない:コンテナの誇大広告を斬る
レガシーシステムをコンテナでマイクロサービス化することがトレンドの一つになっているが、それが常に最良の方法というわけではない。企業はコンテナとどう向き合うべきなのか?
本稿は、データレイクプロバイダーDatabricksの製品担当シニアバイスプレジデントであるデービッド・マイヤー氏へのインタビュー記事だ。
関連記事
- いまさら聞けないコンテナ&マイクロサービス
- クラウドネイティブアプリを支えるコンテナ技術群
- Red Hatのマネジャーが教える“コンテナにまつわる6つの誤解”
- 企業が絶対知っておくべきコンテナセキュリティの弱点
- 実はリスクが多いコンテナのセキュリティを確保する方法
Computer Weekly(以下CW):コンテナの設計、開発、デプロイ、メンテナンスについて企業が考えるべきことは何でしょうか。
デービッド・マイヤー氏(以下DM):あらゆる企業は、全体的な成果に注目する必要がある。目標を把握したら、マイクロサービスがモノリシックアーキテクチャよりも優れているかどうかを判断する。あるタスクを多くのマシンにスケールアウトする必要があるなら、それをコンテナに配置することになる。だがコンテナにまつわる誇大広告に惑わされてはいけない。
マイクロサービスはモノリシックアーキテクチャよりも優れていると考えられる傾向がある。その考えは必ずしも正しいとは限らない。全ては目標によって異なる。ソフトウェアとは複雑なものだ。コンテナを利用するからといってシステム設計がシンプルになるわけではない。システムをコンテナにラップすることを選ぶなら、メリットがデメリットを上回ることを確認しなければならない。
CW:API接続をサポートしないレガシーシステムにコンテナを適合させるのは容易ではないという意見もあります。コンテナのエコシステムはAPIが中心になっていると思いますが、APIをサポートしていないレガシーシステムにコンテナを接続するのはいつも難しいというのは正しいですか。
DM:その通りだ! 分けて考えてみよう。全てのコンテナにはAPIがある。コンテナ内のソフトウェアにはAPIを操作する方法がある。コンテナが意味を成すためには、コンテナのシステム設計内で両者に互換性が必要になる。それが難しい。
CW:クラウドネイティブに移行できない古いレガシーシステムとコンテナを連携させるためには、複数のシステムを並列で作成しなければならないことになりますか。
DM:必ずしもそうではない。企業はそれぞれ異なる。必要なのはコンテナが意味を成す場合でのみ利用することだ。コンテナのハイプ・サイクルは、コンテナによってソフトウェア開発が容易になると信じるように導かれている。容易になることもあれば、複雑になるものもある。
例えば、コンテナで稼働しているシステム全体の設計を見直す方法を考えてみる。ワークロードを大規模に運用しているSaaS企業は全て、コンテナで運用する方が容易になるのでコンテナを利用するだろう。スケーリングが不要ならば、コンテナを利用すれば複雑になるだけだろう。コンテナにはスケールメリットがあるが、それが必要かどうかを自問すべきだ。
CW:結局、コンテナはスケーラビリティと無限の回復力の万能薬ではないということですね。
DM:コンテナがスケーリングさせるわけではない。スケーリングさせたいなら、コンテナによってそのプロセスが容易になるということだ。自社に適したものにより広く目を向けるべきだ。
CW:誰もが最初にコンテナについてしっかりと学習すべきでしょうか。
DM:コンテナは、効率、再利用、慣習に関係する。だが「コンテナはそのようなシステムの運用をシンプルにする」とまとめてしまってはいけない。実際には非常に難しいからだ。独自のコンテナを大規模に運用する方法を考えるのではなく、タスクをコンテナにカプセル化して大規模に運用できるベンダーを利用する方法を考えるべきだ。
ベンダーがコンテナベースのアーキテクチャを提供できる、統合されたベンダーエコシステムを作成する必要がある。
次に、社内の誰かがコンテナについてしっかり学んで技法を習得しておく。そしてベンダーと契約する前に、そのベンダーが正しい知識を身に付けていることを確認する。
Copyright © ITmedia, Inc. All Rights Reserved.