Download - Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドライバについてのイベント)
(C) Copyright 1996-2016 SAKURA Internet Inc.
このスライドの内容
『 Arukas 』で何ができるのか、どのようなインフラで実現されているのかについて、解説を交えながら皆様にご紹介いたします!
2
さくらインターネットが密かに開発していた Docker コンテナホスティングサービス『 Arukas 』のサービス内容と裏側のインフラについて。
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
(山田 修司)
4
価値あるサービスの実現と インターネットの発展に寄与する
先進的な技術の探求
スケールメリットと柔軟性を 兼ね備えたコスト競争力の高い
ITインフラの実現
高品質で低価格なIT プラットフォームと革新的で面白い インターネットサービスの提供
TechnologyInfrastructureService
Vision
VISION / MISSION / VALUE弊社のビジョン
5
NEW SERVICE新たな事業・サービスへの取り組み
コンテンツ配信サービス(CDN)
さくらのIoT Platform α版
Docker コンテナホスティング β版
高火力コンピューティング、ブロックチェーン など
日本国内向けに高速かつ安定的にウェブコンテンツを配信可能
通信環境とデータの保存や処理システムを一体型で提供するIoTのプラットフォーム
Docker コンテナを手軽に起動できるホスティングサービス
その他の取り組み…
6
Stealthβ
Openβ
Stable Release
Privateα
2015/03 2015/09 2016/04 Coming Soon...
開発マイルストーン
What’sDocker ?
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
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
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
11
1. Development 2. Test 3. Stage / Production
Dockerfile Docker Image
CI/CD
Docker Image
DEPLOY
On-Premise Cloud
OpsDev
QA/QE
Version Control
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
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”
Container as a Service Platform Stack
15
What’s
Docker
1. Simple Workflow (12-Factor App like)
2. Light-Weight (non-virturized, native)
3. Isolation (CPU, RAM, Filesystems, etc...)
コンテナは独特の管理が必要
• Scheduling• Life Cycle• Health Check• Discovery• Monitoring• Scaling• Authorized
16
What’sArukas?
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
User Control PanelOVERVIEW
21
22
ArukasAPP DEFINITION
•実行する App(コンテナ)を定義
• CPU, RAM, PORT, ENV, CMD...
23
Arukas
SERVICE
• App(コンテナ)を必要なだけ保持するスケジューラ
•自動復旧に対応
•エンドポイントを発行
24
Arukas
UPDATE
• App(コンテナ)を Update すると新しい App がデプロイされる
• Blue-Green deployment• Update 中には新旧バージョンの APP が混在する
アーキテクチャ概要
25
26
ContainerContainerContainer
インフラ構成概要
Host OS
Orchestrator/Container Scheduler
Infrastructure
Bins/Libs Bins/Libs Bins/Libs
App-1 App-2 App-3
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...)
28
コンテナコンテナコンテナ
コンテナネットワーク構成概要
収容ホストサーバ
veth
--net=bridge
eth0
eth0 (veth)
veth
--net=bridge
eth0 (veth)
veth
--net=bridge
eth0 (veth)
veth
--net=bridge
コンテナeth0 (veth)
Bridge (docker0)
29
ポートマッピング
• コンテナには『ランダムな IPアドレス と ポート』がマッピングされる。(下図において、コンテナの Port 80 は収容ホストサーバの Port 49154 にマッピングされている。)
収容ホストサーバ コンテナ
port 49154
Bri
dge port 80
eth0
ランダム!
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 空間
31
コンテナ収容リソース(ゾーン)
• コンテナを収容するリソースは『ゾーン』という単位で資源管理。
東京第1ゾーン 東京第2ゾーン
32
33
高品質な国産サービス 機動的なスケール
Dockerコンテナを直感的に操作できるWEBコントロールパネルを使って、複数台のコンテナでも簡単に管理することができます。
コンテナ用に独自設計されたインフラと高品質なネットワーク回線を利用して、Dockerコンテナをすぐに利用開
始することができます。
簡単・高速なスケールイン・スケールアウト機能によって、必要なリソースに応じて、オンデマンドで必要なリソ
ースを提供します。
複数コンテナを管理
(C) Copyright 1996-2016 SAKURA Internet Inc.