2019年1月17日

クラウドでコンテナーが最適であるかどうかを見極める方法

新しいテクノロジーには必ずメリットとデメリットがあり、コンテナーも例外ではありません。この記事では、お客様の企業にコンテナーが最適であるかどうかを見極める方法を紹介します。

ソフトウェア分野の最新のトレンドであるコンテナーは、アプリケーションとほぼすべてのマシンで実行できる「ソフトウェアコンテナー」内のアプリケーションの依存関係をパッケージ化する手段を開発者に提供します。

実際、このテクノロジーの主なセールスポイントはポータビリティにあり、コンテナーに存在するアプリケーションを作成した後、アプリケーションを再作成することなく、それらのコンテナーをクラウドプラットフォーム間で移行できることが、開発者にとっての最大のメリットとなっています。 

コンテナーは、この数年で多く使用されるようになりましたが、これについて、Docker社のCEOであるBen Golub氏は、DockerCon (6月に開催された業界イベント)での基調演説において、現在46万のアプリケーションが「Docker化」されており、その数はこの2年間で3,100%増加したと述べています。実際、Dockerはコントリビューターとユーザーで構成される急成長中の大規模なコミュニティに支えられており、たとえば、Docker Meetupのメンバーは、現在全世界で12万5,000人に達します。

ただし、急激に増加して導入が進められているテクノロジーが、お客様の企業に最適であるとは限りません。新しいテクノロジーや技術標準には必ずメリットとデメリットがあり、コンテナーも例外ではありません。特にクラウドにおけるコンテナーの使用に関しては、コンテナーが最適なケースとそうでないケース、そしてコンテナーが企業にもたらす可能性がある価値について検討すべきです。

 

コンテナーの価値

コンテナーの主なメリットは、アプリケーションのポータビリティを高められる点にあります。ただし、こうしたメリットには、コンテナーを活用するためにアプリケーションの一部、またはすべてを再作成するコストや新しいテクノロジーへの移行に関わるリスクなどの犠牲が伴います。

もう1つ留意しなければならない重要なポイントはタイミングです。コンテナーは、現在の戦略に適していなかったとしても、2年後には最適なものになっている可能性があります。そしてもちろん、テクノロジーの世代が変わるときまでに、早期導入者の成功例と失敗例から学べるというメリットもあります。

また、コンテナーは単一の標準ではなく、実際にはエコシステムであるということも理解しておくべきです。多くの人がDockerというブランド名を使用していますが、コンテナーまたはコンテナーテクノロジーと呼ぶ方がより正しく、さまざまなコンテナー専用の製品も開発されています。

このエコシステムに関しては、既存のアプリケーションと新しいアプリケーションの「プラットフォーム」として実際に活用できるのか、という本質的な問題が残されていますが、以下に示すように、コンテナーテクノロジーを活用すべき理由は数多くあります。

  • アプリケーションを移植できる。コンテナーを使用することにより、基盤となる複雑なプラットフォームから抽象化されます。
  • テクノロジーではなく、ビジネス価値に重点を置くことができる。コンテナーを使用すれば、アプリケーションが動作するプラットフォームではなく、アプリケーションの機能に重点を置けるようになります。
  • 多くのアプリケーションにわたるサービスを再利用できる。
  • 共有できる。そのまま使用するか、特定のニーズに合わせて変更することが可能な既存のコンテナーを入手できるサービスがオープンインターネットにあります。
  • コンテナーレベルで変更を追跡してリビジョンを管理できる。
  • ツールとコンテナーのエコシステムが拡大し続けている。

 

ポータビリティは必要か

コンテナーを活用するにあたっては、ポータビリティが最も重要となります。ポータビリティは、Amazon Web Services、IBM、Google、Microsoftなどの企業が運用するパブリッククラウドへの大規模な移行を進めている、一般的な開発マネージャー、CTO、CIO、またはITリーダーに多大な価値をもたらす可能性があります。これらのプロバイダーに関しては、1社だけ利用する場合もあれば、2社の場合や4社すべてを利用するケースもあるでしょう。

個々のパブリッククラウドの機能を有効活用するためにアプリケーションを変更すると、ポータビリティを犠牲にすることになり、たとえば、他の大部分のパブリッククラウドで実行可能なアプリケーションを作成した場合、一般的には、パブリッククラウドプラットフォームのネイティブの機能を最大限に活用することはできません。また反対に、ホストクラウドの機能を最大限に活用する場合は、ポータビリティを諦めなければなりません。 

コンテナーは、クラウドベースのプラットフォームにポータビリティのメリットをもたらしますが、既存のアプリケーションと新しいアプリケーション両方にとってのコンテナーのデメリットについても考えなければなりません。コンテナーには、以下のようなデメリットがあります。 

  • 「従来の」プログラミング言語がサポートされない。システムが20年以上前のもので、現在広く普及しているプログラミング言語を使用していない場合、コンテナーへの移行は少し難しくなります。多くの場合、コンテナーに使用できる類似言語はなく、そうした言語がなければ、コンテナーは最適とは言えません。アプリケーションがFortranやCobolで作成されている場合、コンテナーを使用すべきではないと思われます。 
  • データを活用するのが難しい。アプリケーションとそのデータが緊密に結び付けられている場合、コンテナーが問題になる可能性があります。コンテナーから、またはコンテナー内でデータを管理することは可能ですが、新しいアプリケーションであっても、セットアップのプロセスが複雑になります。既存のシステムを「コンテナー化」している場合は、コンテナーに移行するときにコストリスク分析で不適切と判断される可能性がある大規模な変更が必要になります。

 

最適なタイミングの見極め

では、コンテナーを使用するタイミングと使用すべきではないタイミングは、どのように見極めるのでしょうか。以下に検討すべき5つのガイドラインを示します。

  1. クラウド間でアプリケーションを移行する可能性が低い場合、コンテナーは必要ないかもしれません。
  2. コンテナーを活用するためにアプリケーションを大幅に変更しなければならない場合、コンテナーへの移行のコストがすべてのメリットを上回る可能性があります。
  3. アプリケーションとそのデータが緊密に結び付けられているか、アプリケーションのデータ管理に重点が置かれている場合、コンテナーは最適ではないかもしれません。
  4. レガシーシステムからアプリケーションを移行する場合、おそらく現在のコンテナーに使用できる類似言語はありません。
  5. ネイティブのプラットフォームからしか到達できないIoTデバイスに直接アクセスする必要があるなど、アプリケーションの要件がコンテナーの機能に対応していない場合、コンテナーを活用すべきではありません。

 

コンテナーの導入は容易ではありませんが、企業のIT部門は最新のオブジェクトを追い求める傾向にあり、最近ではコンテナーが大きな注目を集めています。ただし、実際にどのようなメリットがもたらされるのかを十分に把握しておかなければ、多くの場合にそれがまったくの期待はずれになってしまいます。

 

クラウドコンテナー: リーダーのためのアドバイス

  • コンテナーの大きなメリットは、アプリケーションのポータビリティを高められる点にあります。
  • コンテナーを使用すれば、多くのアプリケーションにわたるサービスを再利用できます。
  • アプリケーションとそのデータが緊密に結び付けられている場合、コンテナーが問題になる可能性があります。

アプリケーションとそのデータが緊密に結び付けられている場合、コンテナーが問題になる可能性があります。

この記事/コンテンツは、記載されている特定の著者によって書かれたものであり、必ずしもHewlett Packard Enterpriseの見解を反映しているとは限りません。

コンテナ Dummies のダウンロード

enterprise.nxt

ITプロフェッショナルの皆様へ価値あるインサイトをご提供する Enterprise.nxt へようこそ。

ハイブリッド IT、エッジコンピューティング、データセンター変革、新しいコンピューティングパラダイムに関する分析、リサーチ、実践的アドバイスを業界の第一人者からご提供します。