HerokuがDockerのサポートを開始、DockerコンテナがPaaSで運用管理可能に。その仕組みは

2015年5月11日

HerokuがDockerのサポートを発表しました。ベータ版として利用可能です。

Heroku | Introducing 'heroku docker:release': Build & Deploy Heroku Apps with Docker

Dockerコンテナ化したユーザーのアプリケーションをHerokuにデプロイできるようになったことで、コンテナの死活監視や負荷分散、負荷に合わせたコンテナの増減、ルーティングなどの運用をすべて、Herokuが備えるPaaSの機能に任せられるようになります。

Herokuはどのような仕組みでDocker対応を実現したのでしょうか? 米国Heroku Inc. ソリューションアーキテクトの相澤歩氏に教えていただきました。以下はその説明を基にしたものです。

HerokuはいかにDocker対応を実現したか

Herokuが通常のHerokuアプリケーションを実行するまでのプロセスは次のようになっています。

通常のHerokuの動作

ユーザーがコードをHerokuにGit Pushすると、Slug Compileが動いてコードの依存関係が解決され、関連するライブラリなどが追加されてSlugファイルが作られます。

fig

Slugファイルは実行に必要なファイルがまとめてTarボールになったもので、Heroku内部のコンテナ機能であるCedar Containerにロードされて実行されます。

Cedar ContainerはDyno Managerによって、さまざまな運用管理が自動化されています。

Docker対応時の動作

今回のDocker対応では、ユーザーはあらかじめHerokuが用意したDockerイメージとDockerfileのテンプレートを使います。これを基にアプリケーションを開発し、HerokuのツールによってローカルでSlug互換のファイルを生成、Herokuにデプロイ。Dyno Managerの上で実行することになります。

fig

(2015/5/12追記:公開時の図が一部間違っていたため、上図を差し替えました)

現在、Herokuが用意したDockerfileのテンプレートではNode.jsとRubyがサポートされており、今後ほかの言語のサポートも追加されていくとのことです。

このようにHerokuのDockerサポートは、Dockerに対応しつつも従来のHerokuのアプリケーションと同様にPaaSの機能が活用できるようになっています。そのため、ユーザーが用意したDocker環境を何でも受け入れて実行するのではなく、Herokuの環境できちんと実行できるようなDockerイメージとDockerfileが用意されているわけです。

Docker対応は昨年から議論されていた

「HerokuでのDockerサポートは、昨年の早い時期には社内で繰り返し議論されていました」と相澤氏。Herokuによる従来の体験を損なわずに、運用品質も下げずにいかにDockerをサポートするかを検討した結果、このような仕組みの採用になったとのことです。

「HerokuでDockerをサポートしたということは、Salesforce Platformとして、コンテナ型のアプリケーションアーキテクチャのエンタープライズ領域への適用を本気で推し進めていくという意志の表れとも言えます。今後のアップデートにおいても、柔軟で堅牢なプラットフォームとして個人ユースから大規模なシステムまで、あらゆるユーザの生産性向上を支援していきます。」(相澤氏)

現在、Dockerの運用管理のためのフレームワークとしてKubernetesなどさまざまなソフトウェアが注目を浴びていますが、まだ成熟には時間がかかると見られていますし、エンタープライズで利用されるようになるにはそこからまたさらに実績が求められるでしょう。Herokuのような実績のあるPaaSがDockerのサポートを開始することは、そうした状況に一石を投じることになるかもしれません。

あわせて読みたい

Docker クラウド Heroku PaaS




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本