開発者向けの「コンテナネイティブなプラットフォーム」とは、どのようなソフトウェアで構成されているのか?[PR]
クラウドが企業の新たなIT基盤として定着しつつあるなかで、クラウドに最適化されたアプリケーション開発と運用環境として注目されているのがコンテナ型仮想化プラットフォームです。
コンテナ型仮想化は、開発、テスト、デプロイの全体をカバーする基盤となった
Dockerに代表されるコンテナ型仮想化の最大の特徴は、軽量でポータブルな点にあります。
Docker登場当初はこの特徴を生かして、開発者が用いるノートPCなどの開発環境におけるDocker環境から、アプリケーションをシームレスにテスト環境、本番環境へ投入できる点が重宝されました。
さらに、軽量な特徴を生かしたクラスタ構成でのコンテナ運用が注目されるようになり、クラスタのオーケストレーションツールとしてDocker SwarmやMesos Marathon、Kubernetesなどが登場します。
同時に、コンテナをクラスタ化した分散アプリケーションのあり方としてマイクロサービスアーキテクチャが浸透しはじめました。
現在では、コンテナを基盤とした新しいアプリケーション実行基盤のサーバレスコンピューティングの登場と活用がはじまっています。
そしてクラウドは、コンテナ型仮想化を活用する上で必要な、アプリケーションの開発とテスト、デプロイ、本番環境での運用まで、ライフサイクル全体をカバーする重要な基盤となりました。
そのためクラウド大手各社は、このライフサイクル全体をシームレスにカバーする製品やサービス群の拡充を進めています。
その代表的な企業のひとつがオラクルです。
「Oracle Container Native Application Development Platform」発表
オラクルはいまから1年以上前、2016年9月の「Oracle OpenWorld 2016」で、Docker対応のOracle Container Cloud正式リリースを発表。同時にDockerイメージのレジストリサービスであるOracle Container Registryも発表し、この時点でクラウドにおけるコンテナ対応を正式に開始しました。
そこから1年後の今年10月に行われた「Oracle OpenWorld 2017」では、Oracle Container Cloudを発展させた「Oracle Container Native Application Development Platform」を発表します。
Oracle Container Native Application Development Platformとはその名前の通り、コンテナネイティブなプラットフォームとして構成された、アプリケーションの開発、テスト、デプロイ、運用のアプリケーションライフタイム全体をカバーするソフトウェアやサービス群です。
その主要なコンポーネントが、マネージドなKubernetesのサービスなどを提供する「Oracle Container Engine」と、全体をひとつのパイプラインとしてつなぐことで継続的インテグレーション/継続的デリバリ(CI/CD)を実現する「Oracle Container Pipelines」(サービス名:Wercker(ワーカー))、そして「Fn Project」ベースのサーバレスコンピューティングのランタイムサービスです。
マネージドKubernetesサービスを提供
コンテナを組み合わせてアプリケーションを実現するには、複数のコンテナをクラスタ構成で運用した場合の運用管理を司る仕組みであるコンテナオーケストレーションの機能が欠かせません。
このコンテナオーケストレーション機能を提供するソフトウェアとして事実上の標準とみなされているのがオープンソースで開発されているKubernetesです。
オラクルは今年の6月にKubernetesへの注力を表明。9月にはKubernetesの開発をホストする独立団体であるCloud Native Computing Foundationに加盟し、コンテナオーケストレーションツールとしてKubernetesを推進する立場を明確にしています。
Oracle Container Engineは、コンテナランタイムに加えてオーケストレーションツールのKubernetesをマネージドサービスとして提供するため、ユーザーは必要なコンテナをデプロイするだけで、運用をOracle Container Engineにまかせることができます。
アプリケーションの構造を発展させ、サービスを提供する小さなソフトウェアが多数連係するマイクロサービスアーキテクチャとするには、サービス間をつなぐための複雑なルーティングの設定やトラフィックの管理、ロードバランシング、通信の暗号化や全体のモニタリングなど、ネットワーク関連のさまざまなサービスが求められます。
こうした機能はサービスメッシュと呼ばれます。
Oracle Container Native Application Development Platformでは、ここでもオープンソースで開発されているIstioを採用。マイクロサービスアーキテクチャの実現を支援します。
Wecrkerを使ってCI/CDのパイプライン
マイクロサービスアーキテクチャに対応したコンテナ基盤であるOracle Container Engineは、Restful APIなどを通じて代表的な開発ツールやオートメーションツールと連携できるようになっています。
代表的なのはビルドやデプロイの作業を自動化するJenkinsでしょう。
オラクルには、このJenkisと同様にビルド、テスト、デプロイなど開発の一連の作業を自動化するサービス「Wercker」(ワーカー)があります。
Werkerの最大の特徴はコンテナネイティブなワークフローを構築できる点です。コンテナレジストリと統合することでコンテナイメージをワークフロー内で扱えます。
GitやSlackとの統合機能も備えており、柔軟なDevOps環境を構築可能です。
オラクルは2017年4月にこのWerckerを買収。「Oracle Container Pipelines」としてOracle Container Native Application Development Platformに組み込んでいます。
サーバレスコンピューティング環境も発表
さらにオラクルはサーバレスコンピューティングを実現するオープンソースのプロジェクト「Fn Project」を、2017年10月のJavaOneで発表。Oracle Cloud上で商用サービスの提供も発表しました。
同社クラウドのDockerコンテナとKubernetesを基盤に構築され、マネージドサービスとして提供されます。Fn Projectもコンテナネイティブなサーバレスコンピューティングとして開発されているとのことです。
オラクルはコンテナプラットフォームにおいて、DockerやKubernetesのように、事実上の標準やオープンソースとなっているテクノロジーを用いることを基本的な戦略としています。それがコンテナの軽量でポータブルな特徴を生かすためのプラットフォームの要件でもあるといえるでしょう。
そしてコンテナのテクノロジーはさまざまな面で発展途上です。今後も多くのソフトウェアが登場し、プラットフォームの進化や強化を支援していくことになると考えられます。
≫クラウドネイティブ開発などオラクルの最新テクノロジーを紹介するイベント、Oracle CloudWorld Tokyoの詳細はこちら
(本記事は日本オラクル提供のタイアップ記事です)
あわせて読みたい
Visual Studioを、VSCodeのコード補完や文法チェックを実現するLanguage Server Protocol対応にする拡張機能が登場
≪前の記事
「VMware virtualization on Azure」に、VMwareは関わっていないしサポートもしていないと。VMwareがマイクロソフトを牽制