佐藤 卓由
日本アイ・ビー・エム株式会社
IBMコンサルティング事業本部
オープンシフト・ミドルウェア、パートナー
コンテナとは
ITの世界で言うコンテナとは何でしょうか?ご存じの方も多いと思いすので、手短に表現しますと・・・OSから上のレベルで仮想化を実現する仕組みです。これは、現在広く使われている仮想マシン上の仮想化よりもインフラ・リソースの削減効果が期待できます。ただ、その効果はこれだけではありません。ここにいくつか挙げていきます。
コンテナのメリット
Hybrid Cloud環境との相性の良さ、可搬性
コンテナを実行するには、開発したアプリケーションの「コンテナイメージ」を用意、Dockerというコンテナ実行エンジン上で稼働させる形が一般的です。これは各クラウド・プロバイダーでサポートされていますし、自前のサーバー上で実行させることもできます。コンテナ化したアプリケーションは各種のクラウド環境、オンプレ環境、どこでも実行することができます。この可搬性の高さ。ハイブリッド・マルチクラウド環境上のどこでも動くアプリケーションを作ることができるのです。
これにより、例えばPC上で開発・テストしたコンテナ・イメージをサーバー上に簡単にデプロイできます。また、例えばクラウド・ベンダーを変えよう!と思えばそれも容易にできます。
クラウドネイティブ時代の開発環境
コンテナが出てきてから約10年経ちました。可搬性等のコンテナのメリットを感じる開発者も多く、様々な開発支援ツールがコンテナをサポートするようになっています。開発後のコンパイル、イメージ作成、実行、テスト、本番へのデプロイの作業がツールを使って自動的に実行できるようになっています。アプリケーション開発者はそれらのツールを利用し、効率的に継続開発や統合(デプロイ)しています。まさにアジャイル(迅速な)開発です。お客様やユーザーニーズに迅速に応えていくにはこのメリットは欠かせません。
コンテナの使われ方
これらのメリットを活かすべく、コンテナを利用したアプリケーションが増えてきています。数年前から様々な企業が技術検証目的で使い始めました。徐々に本番でも使っていく流れができ、社内システムに使うといった用途で少しずつ広がりました。更に、アジャイル開発に向いている点を活かし、B2C(Business to Customer。顧客向け)のアプリケーションで使われるケースも増えてきています。今後もこの流れは進んでいくでしょう。
昨今はコンテナの可搬性の高さを活用してAI/ML(Machine Learning。機械学習)の実行環境として使われるケースがいくつか出てきました。また、IoTの世界でも使われユースケースも少しずつでてきています。今後もコンテナは様々な所で使われ、拡大していくことが期待されます。
OpenShiftの良さ、おすすめする理由
これらコンテナを実行する仕組み、開発ツールはほとんどがオープンソースだったりします。開発者がおのおの好きなツールをダウンロードして使って・・・、そのうえオープンソースはバージョンアップも頻繁なので、ツール種類が増えるとなると・・・、そう。維持管理がとても大変になります。個人の趣味で作っているだけならいいのですが、企業で使われるアプリケーションの開発・維持管理となると、なかなかの作業量になりそうです。
この問題を解消するためにコンテナ実行環境やツール群等を統合したものがOpenShiftです。これもオープンソースなのですが、Red Hat社によって様々なソフトがテストされ、パッケージされたものです。そのため、開発者自身が個別のソフトやツールの維持管理に悩まされることはなくなります。
一方、各クラウド・プロバイダーもそれぞれの環境で使いやすいように開発支援ツールやサービスを提供しています。単一のクラウド・プロバイダーだけをずっと使い続ける分には便利なのですが、オンプレや複数のクラウドを使っている場合は結局維持管理がバラバラになりえます。また、いろいろなサービスを使うことになり、稼働アプリケーション数が増えていくとクラウド利用料もかさんでしまいます。
その問題もOpenShiftが解決します。主要クラウド・プロバイダー上でOpenShiftがマネージ・サービスとして提供されていますので、どのクラウドを利用しようともOpenShiftが使えます。この環境やツールを使っていれば、結局は維持管理が楽になり、将来のコスト高を抑制することができるのです。
まとめ
今回はコンテナ概要や、可搬性、アジャイル開発への適応性といったコンテナのメリット、コンテナの用途、OpenShiftで更にコンテナが使いやすくなることをお伝えしてきました。
シリーズ 3分で読める「コンテナの現在(いま)」。次回以降は、実際にコンテナが使われている例をいくつか紹介していきます。より具体的に用途やメリットをお伝えしていければと思います。