Download - Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

Transcript
Page 1: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

(C) Copyright 1996-2016 SAKURA Internet Inc.

Page 2: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

このスライドの内容

『 Arukas 』で何ができるのか、どのようなインフラで実現されているのかについて、解説を交えながら皆様にご紹介いたします!

2

さくらインターネットが密かに開発していた Docker コンテナホスティングサービス『 Arukas 』のサービス内容と裏側のインフラについて。

Page 3: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

3

SHUJI YAMADA9 years Build &IT Infrastructure Operating Ops.#cloud #network #server #docker #coreos #monitoringlove #devops #lean #agileWorks at SAKURA Internet inc.

website: http://uzy-exe.hateblo.jp/twitter: https://twitter.com/uzyexeslideshare: http://www.slideshare.net/uzy_exegithub: https://github.com/uzyexedockerhub: https://hub.docker.com/r/uzyexe

(山田 修司)

Page 4: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

4

価値あるサービスの実現と インターネットの発展に寄与する

先進的な技術の探求

スケールメリットと柔軟性を 兼ね備えたコスト競争力の高い

ITインフラの実現

高品質で低価格なIT プラットフォームと革新的で面白い インターネットサービスの提供

TechnologyInfrastructureService

Vision

VISION / MISSION / VALUE弊社のビジョン

Page 5: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

5

NEW SERVICE新たな事業・サービスへの取り組み

コンテンツ配信サービス(CDN)

さくらのIoT Platform α版

Docker コンテナホスティング β版

高火力コンピューティング、ブロックチェーン など

日本国内向けに高速かつ安定的にウェブコンテンツを配信可能

通信環境とデータの保存や処理システムを一体型で提供するIoTのプラットフォーム

Docker コンテナを手軽に起動できるホスティングサービス

その他の取り組み…

Page 6: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

6

Stealthβ

Openβ

Stable Release

Privateα

2015/03 2015/09 2016/04 Coming Soon...

開発マイルストーン

Page 7: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

What’sDocker ?

Page 8: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

1. Dockerfile に任意のアプリケーション環境を定義。2. Dockerfile を Build して Docker イメージを作成。3. ビルドした Docker イメージを Docker Hub などに Push。4. 任意のサーバ上で Docker イメージを Pull してアプリケーションを起動。

8

Docker ImageDockerfile

docker run!

Docker Hub docker run!

docker run!

SIMPLEDocker Workflow

Page 9: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

9

Host OSHyperVisor

Infrastructure

Guest OS Guest OS Guest OS

Bins/Libs Bins/Libs Bins/Libs

App-1 App-2 App-3

Host OSDocker Engine

Infrastructure

Bins/Libs Bins/Libs Bins/Libs

App-1 App-2 App-3

VM vs. DockerVM

Container

Containers are isolated, but share OS and, where appropriate, bins/libraries

Page 10: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

10

Host OSNameSpaces

• UTS• IPC• PID• User• Network• ++

cgroups• memory• cpu• blkio• devices• network• ++

Container (Namespace)

alpine basenginx

Container (Namespace)

Ubuntu baseRails

Container (Namespace)CentOS base

Apache2MySQLpostgresql

Network• veth• bridge• iptables• ++

Storage• aufs• btrfs• devicemapper• overlayfs• ++

Security• SElinux• apparrmor• capability• Grsecurity• PaX

...

Docker Engine

Infrastructure

Page 11: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

11

1. Development 2. Test 3. Stage / Production

Dockerfile Docker Image

CI/CD

Docker Image

DEPLOY

On-Premise Cloud

OpsDev

QA/QE

Version Control

Page 12: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

12

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

• Trusted Registries • Access Control • Policies • +++

• Container Management • Deploy and Scaling • Metrics/Monitoring/Logging • +++

Ship RunBuild

Container as a Service

Page 13: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

13

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

• Trusted Registries • Access Control • Policies • +++

• Container Management • Deploy and Scaling • Metrics/Monitoring/Logging • +++

Ship RunBuild

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

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

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

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

Page 14: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

Container as a Service Platform Stack

Page 15: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

15

What’s

Docker

1. Simple Workflow (12-Factor App like)

2. Light-Weight (non-virturized, native)

3. Isolation (CPU, RAM, Filesystems, etc...)

Page 16: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

コンテナは独特の管理が必要

• Scheduling• Life Cycle• Health Check• Discovery• Monitoring• Scaling• Authorized

16

Page 17: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

What’sArukas?

Page 18: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)
Page 19: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

19

What’s

Arukas• Container Orchestrator• Runs Docker Containers• Deploy to Arukas Infrastructure• User Controll Panel (UCP)• REST-Based API• CLI Tool

Public API CLI(Command Line Tool)

UCP(User Control Panel)

Arukas Infrastructure

Page 20: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)
Page 21: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

User Control PanelOVERVIEW

21

Page 22: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

22

ArukasAPP DEFINITION

•実行する App(コンテナ)を定義

• CPU, RAM, PORT, ENV, CMD...

Page 23: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

23

Arukas

SERVICE

• App(コンテナ)を必要なだけ保持するスケジューラ

•自動復旧に対応

•エンドポイントを発行

Page 24: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

24

Arukas

UPDATE

• App(コンテナ)を Update すると新しい App がデプロイされる

• Blue-Green deployment• Update 中には新旧バージョンの APP が混在する

Page 25: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

アーキテクチャ概要

25

Page 26: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

26

ContainerContainerContainer

インフラ構成概要

Host OS

Orchestrator/Container Scheduler

Infrastructure

Bins/Libs Bins/Libs Bins/Libs

App-1 App-2 App-3

Page 27: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

27

Arukas API

Container

libcontainer

exec driver (native)

Public API CLI (Command Line Tool)

rootfs (overlayfs...)

other drivers...

Orchestrator / Scheduler

docker daemondocker.sock

network driver

UCP(User Control Panel)

graph driver

Orchestrator

Docker Engine

Arukas UIarukas run ...arukas start ...arukas stop ...

Registries(DockerHub, etc...)

Page 28: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

28

コンテナコンテナコンテナ

コンテナネットワーク構成概要

収容ホストサーバ

veth

--net=bridge

eth0

eth0 (veth)

veth

--net=bridge

eth0 (veth)

veth

--net=bridge

eth0 (veth)

veth

--net=bridge

コンテナeth0 (veth)

Bridge (docker0)

Page 29: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

29

ポートマッピング

• コンテナには『ランダムな IPアドレス と ポート』がマッピングされる。(下図において、コンテナの Port 80 は収容ホストサーバの Port 49154 にマッピングされている。)

収容ホストサーバ コンテナ

port 49154

Bri

dge port 80

eth0

ランダム!

Page 30: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

30

エンドポイント

• エンドポイントで『 任意の *.arukascloud.io ドメイン URL 』がマッピングされる。(※ HTTP通信限定)

port 49154

Bri

dge port 80

ホストサーバ#1 コンテナ

port 32632

Bri

dge port 80

ホストサーバ#2 コンテナ

Endp

oint

HTTP

HTTPS eth0

eth0

https:// *.arukascloud.io

Internet 空間

Page 31: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

31

コンテナ収容リソース(ゾーン)

• コンテナを収容するリソースは『ゾーン』という単位で資源管理。

東京第1ゾーン 東京第2ゾーン

Page 32: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

32

Page 33: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

33

高品質な国産サービス 機動的なスケール

Dockerコンテナを直感的に操作できるWEBコントロールパネルを使って、複数台のコンテナでも簡単に管理することができます。

コンテナ用に独自設計されたインフラと高品質なネットワーク回線を利用して、Dockerコンテナをすぐに利用開

始することができます。

簡単・高速なスケールイン・スケールアウト機能によって、必要なリソースに応じて、オンデマンドで必要なリソ

ースを提供します。

複数コンテナを管理

Page 34: Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)

(C) Copyright 1996-2016 SAKURA Internet Inc.