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で行こう
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「データストレージの活用方法」に関するアンケート
-
4
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
5
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
6
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
221人調査で分かった「情シス最大のストレス」は?
-
9
LLMの「過学習」、正しく説明している文章はどれ?
-
10
レガシー基幹システムをSAPに統合 山善が突き止めた「標準化と個別最適」の境界線
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー