IT部門もアジャイル、DevOpsで行こう【第3回】
Dockerが提唱する“Container as a Service”とは、早い話がPaaSである(1/2 ページ)
DockerとPaaSは、DevOpsを支援する技術として相反するもののように見えるが、実際は対立関係ではなく協力関係にある。具体的にどういうことか。両者の仕組みを図で解説する。
DockerとPaaSの違い
前回(アプリケーションの開発と運用を加速するDockerとPaaS、両者の違いは?)は、「Docker」と「PaaS(Platform as a Service)」の違いについて解説したが、もう一度簡単に両者についておさらいしてみよう。
まずDockerは、コンテナ技術を応用したソフトウェアであり、アプリケーションのポータビリティ性を高め、さまざまな場所で環境差分なく展開できる仕組みを備えている。開発者と運用者の橋渡しに最適なツールだ。
PaaSはカテゴリの名称であり、各サービスによって差異はあるものの、簡易な操作でアプリケーションをデプロイでき、かつ運用を一任できるようなサービスを指す。アプリケーション開発の現場から、運用という仕事をなくしてしまうことで生産性を高めるのがPaaSだ。
広がる“Docker+PaaS”
さて、既に述べたようなDockerとPaaSの違いを考えると、「アプリケーション開発の生産性向上のために、DockerとPaaSのどちらを採用すべきか」という疑問に至るだろう。だがちょっと待ってほしい。DockerとPaaSは相いいれないものなのだろうか――そんなことはない。それどころか、両者の相性は非常によいものなのだ。
Dockerは以前、dotCloudという名称の企業であった。そのdotCloudが行っていた事業は、何とPaaSなのである。dotCloudが、社名と同じ「dotCloud」というPaaSを開発・運用する中で生まれたもの、それがDockerなのだ。もともとPaaSのために作られた仕組みなのだから、相性が悪いはずもない。それでは、PaaSの中で生きるDockerとは、どのような仕組みで動いているのだろうか。
図1は、ユーザーがアプリケーションをデプロイした際に、PaaS内部で行われる作業を示したものだ。
第1フェーズとして、ユーザーはアプリケーションをCLI(Command Line Interface)や「Git」、GUI(Graphical User Interface)などでPaaSにアップロードする。PaaS側では、APIを提供しているコントローラーがそれを受け取り、然るべき場所に保存する。この作業を「Upload(アップロード)」と呼ぶこととする。
第2フェーズとして、アップロードされたアプリケーションを実行可能な形にする作業が入る。これは2つの作業に分けられる。まず、アップロードされたアプリケーションがどのような言語/フレームワークで作られているか検出する。これを「detect(ディテクト)」という。次に、検出された言語/フレームワーク向けに必要な環境を整え、イメージ化する作業が入る。これを「compile(コンパイル)」という。例えばRubyアプリケーションであれば、「Rubyランタイムの配置」「bundle installの実行(必要なライブラリのダウンロード)」などが行われる。こうして出来上がったファイル一式をアーカイブして、実行イメージとして然るべき場所に保存する。この第2フェーズのことを「Staging(ステージング)」と呼ぶ。
第3フェーズでは、出来上がったイメージを実行ノードにコピーし起動する。負荷分散や冗長化のために複数インスタンス実行が指示されている場合は、指示された個数だけコピーして起動する。このフェーズのことを「Run(実行)」と呼ぶ。
このUpload、Staging、Runの3フェーズがPaaSの肝となっているのだ。
それでは、DockerとPaaSを組み合わせた場合はどうなるか。勘のいい読者はお気付きかもしれないが、Stagingはイメージを作成する作業だ。ユーザーが「Docker image」を所持しているならば、それをStagingの代わりとすればよいのだ。
DockerとPaaSの融合を図にすると以下のようになる。
この形を取ることで、ユーザーは動作実績のあるDocker imageを手元で利用しながら、かつ本番環境ではPaaSに運用を委任するという、いいとこ取りが可能になるわけだ。
「Dockerfile」やDocker imageを作るのが面倒だというユーザーもいるだろう。そういったユーザーは、従来のソースコードアップロードの仕組みを利用すればいい。この場合、Staging時に生成されるイメージの形式をDocker imageとすればいい。
第3世代のPaaSとは
これまでのPaaSは、デプロイの容易性や運用を一任できる利便性が評価される一方、その内部の不透明性からくるトラブルシューティングのしづらさやPaaS間での互換性の低さ、柔軟性の低さが指摘されてきた。
固定的な言語や環境しか使えなかった世代を第1世代。汎用的な技術や他環境との相互運用性を意識し、複数の言語や環境を扱えるように改良された世代を第2世代とすると、Dockerを採用し、高い相互運用性や自由な環境構成を達成したPaaSは第3世代といえるだろう。
新たに登場したPaaSの他、既存のPaaSも追加機能としてDocker対応を果たしつつある。以下にDockerに対応しているPaaSを列挙する。
OpenShift v3
Red Hatが中心となって開発しているPaaS「OpenShift」。OpenShiftは2012年にOSSとして公開されたPaaSだが、2015年に公開されたバージョン3(以下、OpenShift v3)でアーキテクチャを一新し、Dockerを扱えるPaaSとして生まれ変わった。
OpenShift v3は、Googleが中心となって開発しているDockerコンテナの管理機構「Kubernetes」をベースとしており、KubernetesにPaaSとしてのユーザビリティを組み合わせたものになっている。
Deis
「Deis」もまた、Dockerが扱えるPaaSの1つだ。PaaSベンダーであるEngine Yardが開発しているOSSのDeisは、Docker imageやDockerfileが扱えるだけでなく、「Heroku」ライクな使い勝手も実現し、注目されつつある。
Cloud Foundry
OSS PaaSの代表格「Cloud Foundry」も、内部的なアーキテクチャを一新。以前からの互換性を残しながら、Docker image互換を果たした。
AWS Elastic Beanstalk
「Amazon Web Services(AWS)」が提供するPaaS「AWS Elastic Beanstalk」は、2014年4月というかなり早い時期からDocker対応を果たしている。
Google App Engine
Googleが提供するPaaS「Google App Engine(GAE)」も、2014年からDocker対応を果たしている。
Copyright © ITmedia, Inc. All Rights Reserved.
IT部門もアジャイル、DevOpsで行こう
この記事の著者
関連記事
新着ホワイトペーパー PR
-
市場調査・トレンド
[AvePoint Japan株式会社] SCS評価制度の死角は“SaaSの中” クラウド標準機能では届かない領域とは? -
製品資料
[デジタルサーカス株式会社] 5分で分かる、「オープンソースCMS」比較ガイド -
製品資料
[デジタルサーカス株式会社] 1つのアプリを各国で運用 多言語モバイルアプリを簡単に開発・導入できる方法 -
製品資料
[ニュータニックス・ジャパン合同会社] 複雑化するKubernetes運用、VMとコンテナの二重管理を解消する方法は? -
市場調査・トレンド
[アルプス システム インテグレーション株式会社] 急増する高度なフィッシング詐欺 先回りしてブロックするには何が必要?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHPはそもそも必要か? 脆弱性で問われる自社サイト安全性と保守負担のバランス
-
2
京王電鉄・東京メトロの被害から学ぶ境界防衛 ITの侵害はどこまで波及するか
-
3
米国防総省で300万人分の個人情報が流出 その「意外な原因」と教訓
-
4
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
5
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
6
PHP2Shellの「事前の情報流出」でパニックに パッチ公開を巡る“混乱劇”
-
7
Microsoft 365導入後も稟議は「Excelをメールで回覧」 承認が止まる理由
-
8
金融・通信で情報漏えいが続出 IPAとJPCERT/CCが情シスに求める緊急点検
-
9
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
10
“不適切投稿”をブロックする「コンテンツモデレーション」がAIで遂げる進化
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
3
「IT史に名を残すシステム障害」8選
-
4
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
5
SCS評価制度時代の「SASE選定」ガイド
-
6
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
7
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
8
「EDR」選定ガイド:比較・検討フェーズで整理すべきポイントを解説
-
9
MDMだけでは防げない? Appleデバイスに潜む5つのセキュリティギャップ
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー