IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第83回 Docker/OpenShiftで実現する「プライベートPaaS」の全体像 (中井悦司) 2016年2月

はじめに

 本コラムでは、これまでに何度か「Docker」の役割について触れてきました。たとえば、「第80回 OpenStackとDockerの未来像(その1)」では、アプリケーション実行環境をイメージ化することで、本番環境へのアプリケーションデプロイを安全かつ効率的に実施するという使い方を紹介しました。しかしながら、その一方で、開発したアプリケーションをイメージ化するという作業も考えておく必要があります。この際、アプリケーションの開発環境そのものをDockerで提供することにより、開発したアプリケーションをそのままイメージ化して本番環境に展開するという流れを考えることができます。

 もともと、Dockerは、dotCloud社がパブリックのPaaSサービスを実現する技術として開発を始めたものですので、アプリケーションの開発環境としてDockerを利用する、すなわち、DockerでプライベートなPaaS環境を実現するというのは、自然な発想と言えるでしょう。今回は、OpenShiftを例にして、Dockerで実現するプライベートPaaSの全体像を解説したいと思います。

Dockerが解決を目指したPaaSの課題

 まず、図1は、一般的なPaaSの利用形態です。事前に用意されたテンプレートから、必要な開発環境を選んでクラウド上にデプロイした後に、そこでアプリケーションの開発を進めていきます。開発したコードをコードリポジトリーにPushするとクラウド上の環境にデプロイされるので、そこで稼働確認を行っていきます。

fig01

図1 一般的なPaaSの利用形態

 個人の趣味でアプリケーションを開発する程度であれば、これで十分ですが、長期的にアプリケーション開発を継続する上では、図2のような課題への対処も考える必要があります。

fig02

図2 一般的なPaaSの課題

 特にパブリックのPaaSサービスで課題になりやすい点としては、テンプレートの開発/メンテナンスがあげられます。一般企業の業務アプリケーション開発であれば、それぞれの企業に固有の開発環境をテンプレート化して、さらにそのテンプレートをメンテナンスしていく必要があります。開発実施中のプロジェクトで、ライブラリーのバージョンアップなど、環境のアップデートが必要になることもあります。

 開発環境をDockerでイメージ化して提供することにより、このような問題に対処しようというのが、Dockerを利用したプライベートPaaSの目標となります。さらに、開発が終わってすべてのテストが完了したアプリケーションをそのままイメージ化すれば、本番環境にデプロイ可能なイメージを用意するという、冒頭で触れた課題も解決できることになります。

OpenShiftが実現するPaaSの全体像

 このような、Dockerを用いたプライベートPaaSを実現するオープンソースがOpenShiftです。OpenShiftが提供するPaaS環境の全体像を1つの絵にまとめると、図3のようになります。図の左下が従来のPaaSに相当する部分で、アプリケーションの開発者から見ると、テンプレートから必要な環境を選んでアプリケーションを開発するという、今まで通りの使い方が可能です。

fig03

図3 OpenShiftが実現するPaaSの全体像

 ただし、その裏側にはテンプレートそのものを開発/メンテナンスする「テンプレート管理者」が控えています。Dockerfileなどの仕組みを用いて、開発環境のテンプレートとなるイメージを用意していきます。開発環境では、新たなコードをビルド/デプロイするごとに最新のテンプレートを使用する設定ができますので、これにより、開発中のテンプレートをバージョンアップすることも容易になります。

 さらに、図の右下には、開発済みイメージをテスト環境や本番環境にデプロイする機能も用意されています。これにより、開発済みのイメージをそのままテスト環境/本番環境に展開することが可能になります。もちろん、完成したイメージを取り出して、OpenStackの仮想マシン上など外部の環境で利用することも可能です。

 ちなみに、OpenShiftの解説記事やBlogを読むと、「ImageStream」「BuildConfig」「DeployConfig」など、さまざまな設定が登場して、なかなか難しそうな印象を受ける事があります。ただし、このような設定を理解する必要があるのは、図3における「テンプレート管理者」である点に注意が必要です。アプリケーション開発者やその他の担当者は、用意された設定にしたがって、自動的にデプロイされた環境を利用するだけです。このような役割分担を理解することが、OpenShiftを使いこなすポイントになります。

次回予告

 今回は、Dockerを活用したプライベートPaaSの一例として、OpenShiftが提供する環境の全体像を紹介しました。「ImageStream」「BuildConfig」「DeployConfig」などの設定にも触れましたが、これらについても、図3の全体像が理解できていれば、それぞれ「何のための設定なのか」という点は比較的簡単に理解することができます。次回は、これらの設定の役割を順に説明していきたいと思います。

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes