SlideShare a Scribd company logo
OpenStackとDockerの未来像
〜 インフラ運用とアプリケーションアーキテクチャーの進化
レッドハット株式会社
中井悦司 / Etsuji Nakai
Senior Solution Architect
and Cloud Evangelist
v1.2 2016/01/12
2
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Contents
 OpenStackのメリットのその限界
 Dockerの概要
 OpenStackとDockerを組み合わせるメリット(運用視点のアプローチ)
 OpenShiftによるマイクロサービス化(アプリケーション視点のアプローチ)
 今後の方向性
OpenStackのメリットとその限界
4
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenStackが提供するコンピューティングリソース
 OpenStackのユーザは、Webコンソール/APIを利用して、
次のようなコンピューティングリソースを利用します。
– 仮想ネットワーク
– 仮想マシンインスタンス
– ブロックボリューム
データ領域 ブロックボリューム
仮想ルータ
仮想スイッチ
外部ネットワーク
プロジェクト環境
OpenStackユーザ
OS領域
 インフラの構成要素を抽象化してコン
ポーネント化することで、セルフサー
ビスによる迅速な環境構築を実現。
仮想マシンインスタンス
5
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
「企業文化の変革」に挑戦するOpenStack導入企業
 TD Bank
– 金融市場の変化に応じた事業拡大に向けて積極
的に企業買収を実施
– システム基盤が統合されず「Vender Centric」
なサイロシステムが乱立
– 社内に高い専門性を有する「エンジニアリング
センター」を設立して、エンジニアの教育を含
めた「User Centric」な基盤統合を推進
https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/architecting-organizational-change-at-td-bank
https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/changing-culture-at-time-warner-cable
 Time Warner Cable
– 「安定」が最重要の企業文化(決まった時間に
決まった番組を確実に配信することが使命)
– ハードウェア中心のソリューションでシステム
構築はベンダーにお任せ
– 「オンデマンド時代」に対応する苦しみの中、
アプリケーションの内製化を進めるために新し
いツールとプロセスを導入
6
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenStackの価値は「Fast/Fast/Fast」
 Walt Disney Company
– 社内ITインフラとしてOpenStackを導入
– コンシューマー向けITサービスと同じスピード感で
社内ITサービスを提供
https://youtube.googleapis.com/v/SREEnNQ6zqg
よくある誤解
OpenStackが必要だった
本当の理由
7
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenStackを含むIaaSの課題はアプリケーションデプロイ
 OpenStack/IaaSの機能的な限界
– OpenStackにより、仮想化インフラ(サーバー、ストレージ、ネットワーク)の構築は
ほぼ完全な自動化が可能
– その一方で仮想マシン上へのアプリケーションのデプロイは、OpenStackの守備範囲外
– 従来のアプローチは、ゴールデンイメージ、もしくは、動的デプロイ
 ゴールデンイメージ方式
– アプリケーションをインストール済みのテンプレートイメージを作成して配布
– アプリケーションを含めたテンプレートイメージ作成の自動化方法、効率的な保守管理
手法は未だに確立していない
– クラウド間でのテンプレートの移行手法が標準化されておらず、環境移行が困難
 動的デプロイ方式
– 最小構成OSのテンプレートから仮想マシンを起動して、Chefなどの構成管理ツールで
動的にアプリケーションをデプロイ
– テンプレートのOS構成への依存性を完全に排除できず、テンプレートの変更によるデプ
ロイ失敗のリスク
– 「構成管理ツールの設定(レシピファイル)管理」という新たな管理負担
Dockerの概要
9
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Dockerが提供する基本機能
Dockerfile
① Dockerイメージを自動作成
OSイメージ
アプリケーション
ライブラリー
アプリケーション
フレームワーク
イメージの
作成手順を記載
Docker
イメージ
OS上にインストール可能な
ものはすべてイメージ化可能
② Dockerイメージを保存・公開
③ Dockerサーバーに
 イメージを配布・実行
10
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Linuxコンテナーの仕組み
コンテナー
物理サーバー/仮想マシン
Linuxカーネル
アプリケーション
アプリケーション
・・・
物理サーバー/仮想マシン
Linuxカーネル
・・・
コンテナー
通常のLinux環境 コンテナーで分割した環境
コンテナーごとに
見える環境が異なる
すべてのアプリケーション
から同じ環境が見える
 「Linuxコンテナー」は、プロセスグループごとに独立したOS環境を見せる技術
– ローカルディスクの内容(ディレクトリー内のファイル)
– ネットワーク環境(NIC、IPアドレス)
– CPU、メモリー割り当て
※ Dockerよりもずっと古くから存在する技術です。
アプリケーション
アプリケーション
11
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Dockerとコンテナーの関係
コンテナー
アプリケーション
ディレクトリーツリー
Linux上にマウント
ルートディレクトリー
として割り当て
 「Dockerイメージ」の実体は、コンテナーに
割り当てるディスクイメージに、ネットワー
ク設定などの環境情報を付与したものにすぎ
ません。
 Dockerの真の価値は、次のような「イメージ
管理機能」にあります。
– Dockerfile:
Dockerイメージを自動作成する仕組み
– Docker Hub:
Dockerイメージを共有・配布する仕組み
Dockerイメージ
OpenStackとDockerを
組み合わせるメリット
(運用視点のアプローチ)
13
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenStackによる自動化(オーケストレーション)手法
 Dockerが無かった時代は・・・
– 仮想マシン、ストレージ、ネットワークなどのインフラは、OpenStackで自動構成
– ゲストOS上のアプリはChef/Ansible/Puppetなどの構成管理ツールで自動構成
 ゲストOSとアプリの管理が別れているため「Immutable」な運用が困難!
– ゲストOSのテンプレートはOpenStack側で管理
– 仮想マシン起動時に動的にアプリの導入・設定を実施
「第14章 Dockerを利用したアプリケーション展開」より引用
ゲストOSの変更に起因する
アプリ導入の失敗が発生
14
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenStackとDockerの組み合わせ手法
 Dockerを用いた運用だと・・・
– OpenStackは、「インフラ+DockerホストOS」の提供に専念
– アプリの実行環境は、Dockerイメージで作成・管理・デプロイ
 インフラとアプリの管理を分離することで「Immutable」な運用が容易に!
– ゲストOSのテンプレートはDockerの稼働環境を提供
– 事前作成済みのDockerイメージを配布してアプリを起動
「第14章 Dockerを利用したアプリケーション展開」より引用
アプリの導入・管理を
OpenStackから分離可能
15
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
「1VM - 1コンテナ」方式でのDocker活用メリット
 仮想マシン上のアプリケーションをコンテナイメージ化することで、アプリケー
ションのデプロイを安全/簡単にします。
– 「1仮想マシンに1アプリケーション」という配置はあえて変更しないことで、運用方
法やアプリケーションのデザインへの影響を最小限に留めます。
– 外部からアプリケーションに接続するユーザー/外部システムは、アプリケーションが
コンテナ化されていることを意識する必要がありません。
OpenStack/仮想化基盤
仮想マシン
(ゲストOS)
アプリA
・・・
・・・
これまでの環境
アプリケーションの
コンテナイメージ化
OpenStack/仮想化基盤
仮想マシン
(Dockerホスト)
アプリA
(コンテナ
 イメージ)
仮想マシン
(Dockerホスト)
アプリB
(コンテナ
 イメージ)
・・・
・・・
仮想マシン
(ゲストOS)
アプリB
16
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Ansibleによる複数インスタンス環境のオーケストレーション
永続データ
領域
OS領域
コンテナ
(MySQL)
/data
コンテナ
イメージ
Dockerデーモン
/var/lib/mysql
フローティングIP
OS領域
コンテナ
(node.jsアプリ)
コンテナ
イメージ
Dockerデーモン
フローティングIP
フローティングIPにアクセス
フローティングIPにアクセス
接続先DBのIP/ポートは
環境変数で参照
 Ansibleを利用すると、OpenStack APIによる仮想インフラの構成とDockerによるアプリ
ケーション配布のワークフローをまとめて自動化も可能に
アプリケーション利用者
17
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
(参考)Ansibleのプレイブック構成
 インフラ構築に関連する個々の作業を「サブルーチン化」したプレイブックを組み合わせ
ることで、作業全体をまとめて自動化します。
– このデモで使用するプレイブックは、下記で公開しています。
• https://github.com/enakai00/ansible_eplite
- include: lib/prep_tenant.yml
- include: lib/create_instances.yml
vars:
servers:
- name: epmysql
meta: "managed=yes"
- name: eplite
meta: "managed=yes"
- include: lib/attach_volumes.yml
vars:
volumes:
- name: mysql_volume
volsize: 2
server: epmysql
- include: lib/check_reachable.yml
vars:
servers:
- epmysql
- eplite
- include: lib/mount_volume.yml
vars:
server: epmysql
- include: lib/deploy_eplite.yml
OpenStackのテナント環境を初期設定
仮想マシンインスタンスを起動
ブロックボリュームを作成して接続
ゲストOSの起動を確認
ブロックボリュームをフォーマットしてマウント
Dockerイメージを配信してアプリケーションを起動
OpenShiftによるマイクロサービス化
(アプリケーション視点のアプローチ)
19
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
Kubernetes:複数ホストのDockerを管理する仕組みを提供
http://jp.techcrunch.com/2014/07/11/20140710google-microsoft-ibm-and-others-collaborate-to-make-managing-docker-containers-easier/
20
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
サーバーの境界を意識しないアプリケーションデプロイ
 コンテナーの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つ
のコンピューティングリソース」として活用します。
 アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリッ
トが得られます。
– 必要な機能を負荷に応じてオートスケールします。
– 機能単位でコンテナーを入れ替えることにより、稼働中のアプリケーションの動的な機
能変更が可能になります。
Dockerホスト Dockerホスト Dockerホスト ・・・
複数ホストを束ねて「1つのコンピュータ」として活用
マイクロサービス化
アプリケーション
21
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
OpenShift
仮想マシン/
ベアメタルサーバー
Docker
Kubernetes
実行リソース提供
複数サーバーに跨る
オーケストレーション
・・・
・・・
コンテナ化
アプリケーション
仮想マシン/
ベアメタルサーバー
Docker
OpenShift:Dockerによるマイクロサービス管理を実現
 OpenShiftは、Docker/Kubernetesをコアコンポーネントとして、次のような機能
拡張を提供します。
– CIシステムと連携したコンテナーイメージの自動作成
– コンテナーのオートスケール
– 稼動中のコンテナーの動的な入れ替え
22
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
マルチテナント機能を利用したDevOpsの実現
 開発/テストとサービス用でプロジェクトを分割することで、OpenShift上でのDevOps環境
が実現できます。
内部レジストリー
ImageStream
BuildConfig
Deployment
Config
Route
Service Service
エイリアス
テスト済みイメージを
エイリアスで参照
Deployment
Config
開発/テスト
プロジェクト
サービス用
プロジェクト
イメージの
実体を保存アプリケーションの元ネタ
(Dockerfile/ソースコード)
を保存
Route
RHEL7
MyApp MyApp
23
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
テンプレートとGUIの組み合わせによるPaaSの提供
 OpenShiftのテンプレート機能とGUIを組み合わせることで、いわゆる「PaaS」環境を提供
することも可能です。
今後の方向性
25
OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化
今後の方向性
 コンテナ化とマイクロサービス化は、アプリケーションの特性に応じた併用が可
能だと考えます。
– 複数サービスの共通機能(ある程度固定化した機能)は、コンテナ化でSaaS的に提供
– サービス特有の機能(頻繁な変更が求められる部分)は、マイクロサービス化して
OpenShiftで開発・実行
– いずれの場合もアプリケーションとインフラ環境の分離性を高めることで、クラウド間
での環境移行は圧倒的に容易
OpenStack
仮想
マシン
・・・
・・・
アプリケーションのコンテナ化で
本番デプロイを安全・迅速に
OpenStack
ベアメタル
サーバー
ベアメタル
サーバー
・・・
アプリケーションのマイクロサービス化
でオートスケール、動的機能拡張を実現
仮想
マシン
仮想
マシン
Dockerによるコンテナ化
OpenShiftによるマイクロサービス化
EMPOWER PEOPLE,
EMPOWER ENTERPRISE,
OPEN INNOVATION.

More Related Content

OpenStackとDockerの未来像

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy