SlideShare a Scribd company logo
Docker活用パターンの整理・どう組み合わせるのが正解?!
Ver1.1 中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
Docker活用パターンの整理
Docker/OpenStack/Ansible/Kubernetes/OpenShift/etc…
どう組み合わせるのが正解?!
Open Cloud Campus
2
Docker活用パターンの整理・どう組み合わせるのが正解?!
自己紹介
 中井悦司(なかいえつじ)
– Twitter @enakai00
 日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
 昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
好評発売中!
Open Cloud Campus
3
Docker活用パターンの整理・どう組み合わせるのが正解?!
最近の趣味
http://enakai00.hatenablog.com/entry/2016/02/29/121321
Docker活用パターンの整理・どう組み合わせるのが正解?!
Dockerの役割をもう一度確認しよう!
Open Cloud Campus
5
Docker活用パターンの整理・どう組み合わせるのが正解?!
Dockerが提供する基本機能
Dockerfile
① Dockerイメージを自動作成
OSイメージ
アプリケーション
ライブラリー
アプリケーション
フレームワーク
イメージの
作成手順を記載
Docker
イメージ
OS上にインストール可能な
ものはすべてイメージ化可能
② Dockerイメージを保存・公開
③ Dockerサーバーに
 イメージを配布・実行
Docker活用パターンの整理・どう組み合わせるのが正解?!
IaaS基盤へのアプリケーションデプロイに
Dockerを使ってみよう!
Open Cloud Campus
7
Docker活用パターンの整理・どう組み合わせるのが正解?!
OpenStackによる自動化(オーケストレーション)手法
 Dockerが無かった時代は・・・
– 仮想マシン、ストレージ、ネットワークなどのインフラは、OpenStackで自動構成
– ゲストOS上のアプリはChef/Ansible/Puppetなどの構成管理ツールで自動構成
 ゲストOSとアプリの管理が別れているため「Immutable」な運用が困難!
– ゲストOSのテンプレートはOpenStack側で管理
– 仮想マシン起動時に動的にアプリの導入・設定を実施
「第14章 Dockerを利用したアプリケーション展開」より引用
ゲストOSの変更に起因する
アプリ導入の失敗が発生
Open Cloud Campus
8
Docker活用パターンの整理・どう組み合わせるのが正解?!
OpenStackとDockerの組み合わせ手法
 Dockerを用いた運用だと・・・
– OpenStackは、「インフラ+DockerホストOS」の提供に専念
– アプリの実行環境は、Dockerイメージで作成・管理・デプロイ
 インフラとアプリの管理を分離することで「Immutable」な運用が容易に!
– ゲストOSのテンプレートはDockerの稼働環境を提供
– 事前作成済みのDockerイメージを配布してアプリを起動
アプリの導入・管理を
OpenStackから分離可能
Open Cloud Campus
9
Docker活用パターンの整理・どう組み合わせるのが正解?!
「1VM - 1コンテナ」方式でDockerを使ってみる
 仮想マシン上のアプリケーションをコンテナイメージ化することで、アプリケー
ションのデプロイを安全/簡単にします。
– 「1仮想マシンに1アプリケーション」という配置はあえて変更しないことで、運用方
法やアプリケーションのデザインへの影響を最小限に留めます。
– 外部からアプリケーションに接続するユーザー/外部システムは、アプリケーションが
コンテナ化されていることを意識する必要がありません。
OpenStack/仮想化基盤
仮想マシン
(ゲストOS)
アプリA
・・・
・・・
これまでの環境
アプリケーションの
コンテナイメージ化
OpenStack/仮想化基盤
仮想マシン
(Dockerホスト)
アプリA
(コンテナ
 イメージ)
仮想マシン
(Dockerホスト)
アプリB
(コンテナ
 イメージ)
・・・
・・・
仮想マシン
(ゲストOS)
アプリB
Open Cloud Campus
10
Docker活用パターンの整理・どう組み合わせるのが正解?!
Ansibleによる複数インスタンス環境のオーケストレーション
永続データ
領域
OS領域
コンテナ
(MySQL)
/data
コンテナ
イメージ
Dockerデーモン
/var/lib/mysql
フローティングIP
OS領域
コンテナ
(node.jsアプリ)
コンテナ
イメージ
Dockerデーモン
フローティングIP
フローティングIPにアクセス
フローティングIPにアクセス
接続先DBのIP/ポートは
環境変数で参照
 Ansibleを利用すると、OpenStack APIによる仮想インフラの構成とDockerによるアプリ
ケーション配布のワークフローをまとめて自動化も可能に
アプリケーション利用者
Docker活用パターンの整理・どう組み合わせるのが正解?!
Docker活用パターンの整理・ど
う組み合わせるのが正解?!
11
サーバーの境界を意識しない
世界を見てみよう!
Open Cloud Campus
12
Docker活用パターンの整理・どう組み合わせるのが正解?!
Kubernetes:複数ホストのDockerを管理する仕組みを提供
http://jp.techcrunch.com/2014/07/11/20140710google-microsoft-ibm-and-others-collaborate-to-make-managing-docker-containers-easier/
Open Cloud Campus
13
Docker活用パターンの整理・どう組み合わせるのが正解?!
サーバーの境界を意識しないアプリケーションデプロイ
 コンテナの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つの
コンピューティングリソース」として活用します。
 アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリッ
トが得られます。
– 必要な機能を負荷に応じてオートスケールします。
– 機能単位でコンテナを入れ替えることにより、稼働中のアプリケーションの動的な機能
変更が可能になります。
Dockerホスト Dockerホスト Dockerホスト ・・・
複数ホストを束ねて「1つのコンピュータ」として活用
マイクロサービス化
アプリケーション
Open Cloud Campus
14
Docker活用パターンの整理・どう組み合わせるのが正解?!
今後の方向性
 コンテナ化とマイクロサービス化は、アプリケーションの特性に応じた併用が可
能だと考えます。
– 複数サービスの共通機能(ある程度固定化した機能)は、コンテナ化でSaaS的に提供
– サービス特有の機能(頻繁な変更が求められる部分)は、マイクロサービス化して
OpenShiftで開発・実行
– いずれの場合もアプリケーションとインフラ環境の分離性を高めることで、クラウド間
での環境移行は圧倒的に容易
OpenStack
仮想
マシン
・・・
・・・
アプリケーションのコンテナ化で
本番デプロイを安全・迅速に
OpenStack
ベアメタル
サーバー
ベアメタル
サーバー
・・・
アプリケーションのマイクロサービス化
でオートスケール、動的機能拡張を実現
仮想
マシン
仮想
マシン
Dockerによるコンテナ化
OpenShiftによるマイクロサービス化
Docker活用パターンの整理・どう組み合わせるのが正解?!
Docker活用パターンの整理・ど
う組み合わせるのが正解?!
15
おまけ
Open Cloud Campus
16
Docker活用パターンの整理・どう組み合わせるのが正解?!
(おまけ)OpenShiftがGCPで使えるようになります!
http://googlecloudplatform-japan.blogspot.jp/2016/01/red-hat-openshift-dedicated-google.html
Open Cloud Campus
17
Docker活用パターンの整理・どう組み合わせるのが正解?!
OpenShiftにおける役割分担
アプリ開発者
開発環境
構成テンプレート
テンプレート管理者
公式RHEL
イメージ
Dockerfile
テスト担当者
開発環境
イメージ
テスト環境
構成テンプレート
開発中
アプリイメージ
ソースコード
動作確認
コード開発
テスト用
デプロイ環境
動作確認
本番環境
構成テンプレート
開発用デプロイ環境
本番用
デプロイ環境
開発済み
アプリイメージ
テスト済み
アプリイメージ
リリース担当者
http://www.slideshare.net/enakai/open-shift-v3
Docker活用パターンの整理・どう組み合わせるのが正解?!
中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
Docker&OpenShiftでマイクロサービス
アーキテクチャーを実現!

More Related Content

PDF
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
PDF
C16 45分でわかるPostgreSQLの仕組み by 山田努
PDF
Linux女子部 systemd徹底入門
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
超実践 Cloud Spanner 設計講座
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
C16 45分でわかるPostgreSQLの仕組み by 山田努
Linux女子部 systemd徹底入門
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
超実践 Cloud Spanner 設計講座
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)

What's hot (20)

PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PDF
sysloadや監視などの話(仮)
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
トランザクションをSerializableにする4つの方法
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
PPTX
分散システムについて語らせてくれ
PDF
Dockerからcontainerdへの移行
PDF
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
Spring Integration 超入門
PDF
JVMのGCアルゴリズムとチューニング
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
DockerとDocker Hubの操作と概念
PPTX
root権限無しでKubernetesを動かす
PPTX
Dockerからcontainerdへの移行
PDF
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
PPTX
分散ストレージ技術Cephの最新情報
PDF
インフラエンジニアのためのRancherを使ったDocker運用入門
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
sysloadや監視などの話(仮)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
トランザクションをSerializableにする4つの方法
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
分散システムについて語らせてくれ
Dockerからcontainerdへの移行
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
Spring Integration 超入門
JVMのGCアルゴリズムとチューニング
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
DockerとDocker Hubの操作と概念
root権限無しでKubernetesを動かす
Dockerからcontainerdへの移行
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
分散ストレージ技術Cephの最新情報
インフラエンジニアのためのRancherを使ったDocker運用入門
Ad

Similar to Docker活用パターンの整理 ― どう組み合わせるのが正解?! (20)

PDF
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
PDF
試して学べるクラウド技術! Eucalyptus/AeolusConductor
PDF
Eucalyptus infra technology
PDF
第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)
PDF
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
PDF
分散ストレージソフトウェアCeph・アーキテクチャー概要
PDF
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
PDF
Dockerクイックツアー
PDF
RDOとPackstackのご紹介
PDF
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
PDF
RDOで体験! OpenStackの基本機能
PDF
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
PDF
DevOpsにおける組織に固有の事情を どのように整理するべきか
PDF
OCP Meetup Tokyo #05 ECK on OCP
PPTX
Mesos consulで構築するマイクロサービスインフラ
PDF
Invitation to the Open Cloud Campus #osckansai 2011
PDF
Hadoop on eucalyptus_20110221
PDF
JAWS-UG Nagoya 20160729
PDF
仮想化&クラウドで活用!自動化ツールの基礎
PDF
Dockerの現在と未来
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
試して学べるクラウド技術! Eucalyptus/AeolusConductor
Eucalyptus infra technology
第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
分散ストレージソフトウェアCeph・アーキテクチャー概要
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
Dockerクイックツアー
RDOとPackstackのご紹介
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
RDOで体験! OpenStackの基本機能
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
DevOpsにおける組織に固有の事情を どのように整理するべきか
OCP Meetup Tokyo #05 ECK on OCP
Mesos consulで構築するマイクロサービスインフラ
Invitation to the Open Cloud Campus #osckansai 2011
Hadoop on eucalyptus_20110221
JAWS-UG Nagoya 20160729
仮想化&クラウドで活用!自動化ツールの基礎
Dockerの現在と未来
Ad

More from Etsuji Nakai (20)

PDF
PRML11.2-11.3
PDF
「ITエンジニアリングの本質」を考える
PDF
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
PDF
Introducton to Convolutional Nerural Network with TensorFlow
PDF
Googleにおける機械学習の活用とクラウドサービス
PDF
Spannerに関する技術メモ
PDF
Googleのインフラ技術から考える理想のDevOps
PDF
A Brief History of My English Learning
PDF
TensorFlowプログラミングと分類アルゴリズムの基礎
PDF
TensorFlowによるニューラルネットワーク入門
PDF
Using Kubernetes on Google Container Engine
PDF
Lecture note on PRML 8.2
PDF
Machine Learning Basics for Web Application Developers
PDF
Your first TensorFlow programming with Jupyter
PDF
Deep Q-Network for beginners
PDF
Life with jupyter
PDF
TensorFlowで学ぶDQN
PDF
PRML7.2
PDF
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
PDF
Open Shift v3 主要機能と内部構造のご紹介
PRML11.2-11.3
「ITエンジニアリングの本質」を考える
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Introducton to Convolutional Nerural Network with TensorFlow
Googleにおける機械学習の活用とクラウドサービス
Spannerに関する技術メモ
Googleのインフラ技術から考える理想のDevOps
A Brief History of My English Learning
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowによるニューラルネットワーク入門
Using Kubernetes on Google Container Engine
Lecture note on PRML 8.2
Machine Learning Basics for Web Application Developers
Your first TensorFlow programming with Jupyter
Deep Q-Network for beginners
Life with jupyter
TensorFlowで学ぶDQN
PRML7.2
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
Open Shift v3 主要機能と内部構造のご紹介

Docker活用パターンの整理 ― どう組み合わせるのが正解?!