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