what a wonderful docker world (この素晴らしき docker の世界)

35
1 Shuji Yamada @uzyexe Mar 28, 2016 What a Wonderful Docker World (この 素晴 らしき Docker 世界) https://www.flickr.com/photos/maerskline/7101140285/ Docker 102

Upload: shuji-yamada

Post on 09-Apr-2017

1.482 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: What a Wonderful Docker World (この素晴らしき Docker の世界)

1

Shuji Yamada @uzyexeMar 28, 2016

What a Wonderful Docker World(この素晴らしき Docker の世界)

https://www.flickr.com/photos/maerskline/7101140285/

Docker 102

Page 2: What a Wonderful Docker World (この素晴らしき Docker の世界)

Shuji Yamada @uzyexe

9 years Build &IT Infrastructure Operating Ops. #cloud #network #server #docker #coreos #devops #lean #agile #monitoringlove Works at SAKURA Internet inc.

2

• website: http://uzy-exe.hateblo.jp/ • twitter: https://twitter.com/uzyexe • slideshare: http://www.slideshare.net/uzy_exe • github: https://github.com/uzyexe • dockerhub: https://hub.docker.com/r/uzyexe

2

Page 3: What a Wonderful Docker World (この素晴らしき Docker の世界)

“What is Docker?”

3

https://www.flickr.com/photos/johnkeane/5408126721/

Page 4: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/yukop/11941236015/

4

• Docker 社によるオープンソース・プロダクトの一つ。

• 標準化されたコードでアプリケーション環境を定義することで、アプリケーション環境をイメージ化することができる。

• アプリケーション環境を確実な再現性を持つ Dockerイメージ形式で配布することで、誰とでも簡単に環境を

• 開発環境や検証環境の共有手段

What is Docker?

Page 5: What a Wonderful Docker World (この素晴らしき Docker の世界)

5

Docker Image

build Push Provisioning(pull)

• Dockerfile に任意のアプリケーション環境を定義する。 • ビルドしたイメージを Docker Hub などに push する。 • 任意のサーバ上でDocker Hub にあるイメージを pull して稼働させる。

Dockerfile Docker Hub Run

Run

シンプルな Docker ワークフローの例Run

Page 6: What a Wonderful Docker World (この素晴らしき Docker の世界)

6

Docker HubPush Push

GitHub or

Bitbucket

Provisioning(pull)

Dockerfile

• GitHub、Bitbucket と Docker Hub を連携させることもできる。 • この場合、イメージのビルド処理を Docker Hub に任せることもできる。

Docker Image

Automated Build

Push

Run

Run

Run

Page 7: What a Wonderful Docker World (この素晴らしき Docker の世界)

7

Push

Automated Build

Push

Push

GitHub or

Bitbucket

Provisioning(pull)

Dockerfile

• Docker イメージは任意の Docker Repository に保管できる。 • Docker イメージの保管先は必ずしも Docker Hub でなくとも構わない。

Repository

Run

Run

Run

Docker Image

Page 8: What a Wonderful Docker World (この素晴らしき Docker の世界)

8

RepositoryPush

HookPush

GitHub or

Bitbucket

Provisioning(pull)

Dockerfile

• CI サービスにイメージのビルド処理やテスト処理を任せることも可能。 • CI サービスの例:Travis CI、CircleCI、Jenkins など。

CI Service Docker Image

Build and Test

Run

Run

Run

Page 9: What a Wonderful Docker World (この素晴らしき Docker の世界)

9

Docker Engine

HyperVisor

GuestOS

Server

GuestOS

GuestOS

App-1

App-2

App-1

App-1’

App-3

App-4

App-1

App-2

App-1

App-1’

App-2

App-3

DockerType-1 HyperVisor

OS

HyperVisor

Server

App-1

App-2

App-1

App-1’

App-3

App-4

Type-2!HyperVisor

Bins/Libs Bins/LibsBins/Libs Bins/Libs

Bins/Libs Bins/Libs

Bins/Libs Bins/Libs

GuestOS

GuestOS

GuestOS

OS

Server

Page 10: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/maerskline/7101143435/

Docker の代表的な

10

1. 軽量・省• Docker イメージにはアプリケーションに必要なものしか含まれていない。 • 軽量・省メモリで迅速に起動・停止することが

2. Docker • Windows PC 上でも Macbook 上でも Linux サーバ上でも動く。

3. イメージを• 他人が作成した Docker イメージを再利用できる。• アプリケーション環境をコードで定義できるのでバージョン管理

Page 11: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/christopherbrown/15002659050/

Docker コンテナの課題

• CPU使用率、ストレージ容量などのリソース制御機能が充分ではない。

• 既存のネットワークやストレージやアプライアンスとの親和性が低い。

• コンテナならではの厄介なクセがある。

• Docker 周辺の開発スピードが速すぎる。情報収集が追いつかない。

• いざ本番で利用しようと思うと決して小さくない学習コスト

11

Page 12: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/77108378@N06/17784119510/

Docker 代表的な

12

1. Continuous Integration!• 開発者が任意の環境で迅速にアプリケーションをテストする環境として

2. DevOps!• 開発と運用チームの融合性を高める

3. Big Data / HPC• ビッグデータや HPC など。

4. Infrastructure Optimization!• インフラに関わる各種コストを削減していく

Page 13: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/cote/15789016578/

現在の Docker

13

• 1,400,000,000+ Image Download!

• 240,000+ Repositories on DockerHub!

• 200+ Meetup Groups in 50+ countries!

• 1300+ Contributors!

• 80,000+ Third-party projects on GitHub

Page 14: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/taymtaym/14226257335/

Docker をサポートしているエコシステム群• Config Management Tools *

• Container OS *

• Scheduler/Orchestration/Management *

• Database/BigData *

• Networking *

• Security *

• Monitoring *

14

• Image Registry *

• Hosting/Service Providers *

• Developer Tools *

• Deplopment Platform *

Page 15: What a Wonderful Docker World (この素晴らしき Docker の世界)

IaaSInfrastructure as a Services

15

PaaSPlatform as a Services

&

What Problem...

Page 16: What a Wonderful Docker World (この素晴らしき Docker の世界)

16

PaaSPlatform

PaaS の利用におけるユーザビリティ上の

• PaaS のミッションはオペレーション層までを抽象化すること。それ以上の高レベル

• 例えば、アプリケーション層は抽象化されていない。アプリケーションのビルドやパッケージ方法は各 PaaS プロバイダごとに独自の手法を提供

• 他の PaaS 環境への移行コストが大きい。ノウハウが固定化してしまい、結果として PaaS プロバイダにロックインされがち

Page 17: What a Wonderful Docker World (この素晴らしき Docker の世界)

IaaSInfrastructure

17

IaaS の利用におけるユーザビリティ上の• インフラが抽象化されているが、実際の操作感は各 IaaS プロバイダごとに異なる。

• 各 IaaS プロバイダで API が用意されていれば、各 IaaS プロバイダ間におけるユーザビリティ(操作感)のギャップは埋めることができる。しかし、本格的に API を利用しようと思うと学習コストや開発コストが無視できない。

• CLI を独自提供している IaaS プロバイダも存在するが、CLI とベンダロックされてしまう。

Page 18: What a Wonderful Docker World (この素晴らしき Docker の世界)

The one thing that is truly necessary. (本当に必要なことは何なのか?)

18

Page 19: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/techcrunch/15407337357/

19

“Build, Ship, and Run Any App, Anywhere”!(構築した環境を安全に保管して、好きな場所で迅速に動かすことだけ。)

Page 20: What a Wonderful Docker World (この素晴らしき Docker の世界)

20

Build• Infrastructure as Code • Continuous Integration (CI/CD) • Secure Signing/Trust • +++

• Trusted Registries • Access Controll • Policies • +++

• Management • Deploy and Scalling • Metrics/Monitoring/Logging • +++

Ship Run

“Build, Ship, and Run Any App, Anywhere”

Page 21: What a Wonderful Docker World (この素晴らしき Docker の世界)

21

Build• Infrastructure as Code • Continuous Integration (CI/CD)• Secure Signing/Trust • +++

• Trusted Registries • Access Controll• Policies • +++

• Management • Deploy and Scalling • Metrics/Monitoring/Logging • +++

Ship Run

1. Build!• 標準化された定義ファイルを設定するだけで、任意のアプリケーション環境を誰でも利用可能なイメージファイルの形にビルドと。

2. Ship• アプリケーションの開発、テスト、配布のサイクル全体が標準化され、一貫性のあるユーザーインターフェースで操作・管理

3. Run• セキュアかつ確実な再現性をもってスケーラブルなアプリケーション環境を多種多様なプラットフォーム上に展開可能な機能を

“Build, Ship, and Run Any App, Anywhere”

Page 22: What a Wonderful Docker World (この素晴らしき Docker の世界)

CaaSContainer as a Services

22

Page 23: What a Wonderful Docker World (この素晴らしき Docker の世界)

Container as a Service Platform Stack

23

Page 24: What a Wonderful Docker World (この素晴らしき Docker の世界)

CaaSContainer

24

考えられうる CaaS パターン1. プライベート Docker クラウド (例: Docker Datacenter など)

• Docker イメージをプライベート環境にあるレポジトリに保管して、プライベートなオンプレ環境上でアプリケーション環境を稼働するためのソリューションとして

2. パブリック Docker クラウド (例: Docker Cloud など)

• Docker イメージをパブリッククラウド環境にあるレポジトリに保管して、任意のインフラ環境上でアプリケーション環境を稼働するための

3. Docker コンテナ

• Docker イメージをパブリッククラウド環境にあるレポジトリに保管して、インフラを気にせずに任意のアプリケーション環境を稼働するためのソリューションとして

Page 25: What a Wonderful Docker World (この素晴らしき Docker の世界)

Docker Datacenter

25

https://www.flickr.com/photos/115938778@N06/23137464863/

Page 26: What a Wonderful Docker World (この素晴らしき Docker の世界)

Volume

Netwroking

Logging

Monitoring

LDAP/AD

Docker UniversalControl Plane

Client

Compose

26

Docker Toolbox Docker Datacenter

Virtual Private CloudOnpremises

Integrations

!

!

!

Docker Trusted Registry

Infrastructure

Docker Swarm

Page 27: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/115938778@N06/23137464863/

Docker Trusted Registry

• Web UI for administrators and users LDAP/AD integration!• Role-based access control!• Docker Content Trust image signing and verification!• Garbage collection for saving memory space!• User audit logs

27

• GUI management for clusters, apps, containers, images, networks, volumes. Monitoring and logging

• Monitoring / Logging of UCP users and • Out of the box High availability!• LDAP/Active Directory• Role-based-access control for teams• SSO and push/pull images from Docker Trusted Registry(DTR)• Out of the box TLS• Docker native stack with Swarm, Compose, CS • Full Docker API compatible

Docker Universal Control Plane

Docker Datacenter

Page 28: What a Wonderful Docker World (この素晴らしき Docker の世界)

Docker Cloud

28

https://www.flickr.com/photos/outofideas/178040396/

Page 29: What a Wonderful Docker World (この素晴らしき Docker の世界)

Volume

Client

Compose

Netwroking

Logging

Monitoring!

!

!

Docker Cloud

29

Docker Toolbox Docker Cloud

Onpremises

Integrations

!

!

!

Docker Hub

Infrastructure

Cloud (public/private)

Page 30: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/34121831@N00/6027016005/

30

Docker Cloud• Manage node clusters!

• Pull images from Docker Hub!

• Deploy containers across nodes!

• Monitor and scale applications

• Automated builds!

• Webhooks!

• image scanning!

• Role based access control

Docker Hub

Page 31: What a Wonderful Docker World (この素晴らしき Docker の世界)

Docker Container Hosting

31

https://www.flickr.com/photos/johnkeane/5408126721/

Page 32: What a Wonderful Docker World (この素晴らしき Docker の世界)

Volume

Netwroking

Logging

Monitoring

!

!

!

User Control Panel

Client

Compose

32

Docker Toolbox Container Hosting

Cloud (public/private)Onpremises

Integrations

!

!

!

Registry

Infrastructure

Orchestration Tools

or

or

Page 33: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/alreadytaken/2504312455/

33

Docker Container Hostings2014-11 Google Container Engine2014-11 Amazon EC2 Container Service2014-12 Giant Swarm!2015-03 sloppy.io2015-03 Arukas!2015-06 profitbricks!2015-07 mocloud.io!2015-09 2015-10 Carina by RackSpace

2010-12 2013-11 Tutum2013-11 2013-11 2013-11 Resin.io!2014-02 ContainerShip2014-08 Jelastic!2014-09 2014-11 Joyent Triton

Page 34: What a Wonderful Docker World (この素晴らしき Docker の世界)

https://www.flickr.com/photos/maerskline/7101140285/

まとめ

• Docker の世界観(ドッカー・ワールド

• Build から Run まで、統一的な一貫したユーザビリティで提供されることが望ましい。

• これを失念してしまうと Docker の強みを失ってしまう。

• 多くの問題を今すぐに解決してくれる夢のテクノロジーではない。

• サーバや仮想マシンが持つ弱みを補完する技術として捉えたほうが良い。

• おそらく、トレンドの流れは Docker Datacenter -> Docker Cloud -

• 今、本格的な利用を検討するなら、まずは Docker Datacenter から

34

Page 35: What a Wonderful Docker World (この素晴らしき Docker の世界)

Thank You!

35