35. 運用
監視
Operation
Monitoring
―Don't forget. always, somewhere,
someone is fighting for you.
―As long as you remember her.
you are not alone.
忘れないで、いつもどこかで誰かがあなたの為に戦っている。
彼女を覚えている限り、あなたは一人じゃない。
(出典:魔法少女まどかマギカ最終話「わたしの、最高の友達」)
36. DECISIVE BATTLE
A HUMAN WORK
You can advance.
This Photo is under creative commons license by torkildr
http://www.flickr.com/photos/torkildr/3462606643/sizes/l/in/photostream/
47. The NIST Definition of Cloud Computing (NIST Special Publication 800-145)
http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
NISTによるクラウドコンピューティングの定義 米国国立標準技術研究所による推奨(IPA翻訳版)
https://www.ipa.go.jp/files/000025366.pdf
基本的な特長:
• オンデマンド・セルフサービス
• 幅広いネットワークアクセス
• リソースの共用
• スピーディーな拡張性
• サービスが計測可能であること
サービスモデル:
• SaaS ( Software as a Service )
• PaaS ( Platform as a Service )
• IaaS ( Infrastructure as a Service )
実装モデル:
• Private Cloud
• Community Cloud
• Public Cloud
• Hybrid Cloud
53. ニンゲンヤメマスカ?
Do you resign as human being?
It is necessary to answer the following questions to start OPERATION.
YES はい
はい YES
運用を続けるためには、イカの質問に答える必要があります。
正直、キツそうです。
83. [zem@artemis ~]$ docker run Ubuntu echo “Hey World”
Hey World
[zem@artemis ~]$ docker run centos cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[zem@artemis ~]$ docker run centos:6 cat /etc/redhat-release
CentOS release 6.6 (Final)
[zem@artemis ~]$ docker run ubuntu cat /etc/issue
Ubuntu 14.04.2 LTS ¥n ¥l
プロセスとして手軽に実行を
することができます。
84. [zem@artemis ~]$ docker run –t -i --name=madoka ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from ubuntu
83e4dde6b9cf: Extracting 65.79 MB/65.79 MB
b670fb0c7ecd: Download complete
29460ac93442: Download complete
d2a0ecffe6fa: Download complete
ubuntu:latest: The image you are pulling has been verified. Important: image
verification is a tech preview feature and should not be relied on to provide
security.
Digest:
sha256:cb90b1a107073ab3e17271e45a6177b23f548b44157d88d955b7e8bcdbcfd14a
Status: Downloaded newer image for ubuntu:latest
446712c7188861edb406fc85e3c50ecb2efab329d2cb8c5511a4e323358c75ea
root@e1096840bb9e:/#
これは、典型的な起動例。
bashを実行するコンテナを
起動しているものです。
90. [zem@artemis ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
magical_girl latest 755948a5430e 6 seconds ago
188.3 MB
# docker run -ti magical_girl bash
root@d4a7018a4949:/# echo "madoka" > /who.txt
root@d4a7018a4949:/# exit
exit
[zem@artemis ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
d4a7018a4949 magical_girl "bash" 34 seconds ago
Exited (0) 19 seconds ago trusting_goldstine
イメージはスナップショット
のようなもの。
91. [zem@artemis ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
d4a7018a4949 magical_girl "bash" 34 seconds ago
Exited (0) 19 seconds ago trusting_goldstine
[zem@artemis ~]$ docker diff d4
C /root
C /root/.bash_history
A /who.txt
[zem@artemis ~]$ docker commit d4 magical_girl:madoka
76111a745047008b7a383ae91af27c5a543da273bea94e9590c7062fbef457cd
[zem@artemis ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
magical_girl madoka 76111a745047 6 seconds ago
188.3 MB
magical_girl latest 755948a5430e About a minute
ago 188.3 MB
差分を確認したり、イメージ
コミットして保存もできます
92. [zem@artemis ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
magical_girl mami a1504bae269e 3 seconds ago
188.3 MB
magical_girl madoka 76111a745047 3 minutes ago
188.3 MB
magical_girl latest 755948a5430e 5 minutes ago
188.3 MB
[zem@artemis ~]# docker run magical_girl:madoka cat /who.txt
madoka
[zem@artemis ~]# docker run magical_girl:mami cat /who.txt
mami
同じイメージのレポジトリで
違うタグを持つイメージ群
93. [zem@artemis ~]$ docker run -ti magical_girl:mami bash
root@add71b4968ba:/# rm -rf --no-preserve-root /
(snip)
rm: cannot remove '/sys/block/dm-1': Read-only file system
rm: cannot remove '/sys/block/dm-2': Read-only file system
root@add71b4968ba:/# ps
bash: ps: command not found
root@add71b4968ba:/# ls
bash: ls: command not found
root@add71b4968ba:/# exit
exit
[zem@artemis ~]$ docker run -ti magical_girl:mami bash
root@cdd86dbb4b50:/# cat /who.txt
mami
コミットさえしなければ、
消えたとしても・・・
ほら、大丈夫。
94. $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
cdd86dbb4b50 magical_girl:mami "bash" About a minute ago Exited (0) 6 seconds ago
insane_blackwell
add71b4968ba magical_girl:mami "bash" 2 minutes ago Exited (127) About a minute ago
mad_yalow
04bb8e9143b5 magical_girl:mami "bash" 2 minutes ago Exited (0) 2 minutes ago
cranky_ritchie
3fbf384fce5b magical_girl:mami "cat /who.txt" 12 minutes ago Exited (0) 12 minutes ago
high_perlman
75ed3382443c magical_girl:madoka "cat /who.txt" 12 minutes ago Exited (0) 12 minutes ago
elated_goldstine
47f99d7f78a7 magical_girl "bash" 14 minutes ago Exited (0) 14 minutes ago
jovial_pasteur
d4a7018a4949 magical_girl "bash" 18 minutes ago Exited (0) 18 minutes ago
trusting_goldstine
e1096840bb9e ubuntu "bash" 37 minutes ago Exited (0) 19 minutes ago
madoka
$ docker rm $(docker ps -aq --filter='status=exited')
でも、別々のコンテナIDが作
られるので、因果が…
容量を圧迫するので、たまに
綺麗に片付けましょう。
95. 95Introduction to Docker Basic Course
‣ https://hub.docker.com/
Docker Hub
# docker search wordpress
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
wordpress The WordPress rich content management syst... 358 [OK]
tutum/wordpress Wordpress Docker image - listens in port 8... 44 [OK]
tutum/wordpress-stackable Wordpress Docker image - listens in port 8... 23 [OK]
centurylink/wordpress Wordpress image with MySQL removed. 7
.
.
.
ブラウザ上で公式イメージを
含む様々な検索が可能です。
96. 物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
App App App App App App
App App App App
仮想化・クラウド Dockerのコンテナ管理
でも、Docker Engineだけでは
足りない所があります。
97. 物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
GUI
CLI
API
Docker Cluster 管理レイヤ
( ECS, Docker Swarm, rkt, Rancher …etc )
App App App App App App App App App App
仮想化・クラウド Dockerのコンテナ管理
クラスタ管理部分が今は弱い
98. 物理マシン 物理マシン 物理マシン
OS OS OS
HyperVisor HyperVisor HyperVisor
VM VM VM VM VM VM
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Guest
OS
App App App App
物理マシン 仮想マシン クラウド
OS OS OS
Docker
Engine
Docker
Engine
Docker
Engine
App App App App App App
GUI
CLI
API
Docker Cluster 管理レイヤ
( ECS, Docker Swarm, rkt, Rancher …etc )
オーケストレーション
サービス検出・クラスタ管理
仮想化・クラウド Dockerのコンテナ管理
色々な動きが進みそうです。
102. Google Kubernetes
CoreOS× libcontainer 廃止
The Open Container Project (OCP)
runC
Orchestration
PROJECT ORCA
appcは独自に継続
Linux
Foundation
事務局として協力
Google Container
Engine
IBM Containers
on Bluemix
Amazon ECS
127. 127 / 130
The Tao of HashiCorp
•
最も簡単にするためのワークフローを考え、そこに対応するツールが無ければ作るという設計思想
•
Unix哲学と同様、全体の問題を解決するのではなく、個々の要素(コンポーネント)に分解
•
システムや基盤に対するバージョン管理や自動化によって、システムにとっても人にとっても利点となる
https://hashicorp.com/blog/tao-of-hashicorp.html
130. Development environments made easy. Vagrant is
the defacto way to create and configure lightweight,
reproducible, and portable development
environments with support for VirtualBox, VMware,
Hyper-V, Docker, and more.
Say goodbye to long onboarding times and “works on
my machine” excuses.
開発環境を簡単にします。Vagrant は開発環境の作成として広く
使われており、簡単な設定、持ち運び可能です。サポートしている
環境は VirtualBox、VMware、Hyper-V、Docker 等です。
長い待機時間と「私のマシンでは動くのに」問題にサヨナラを。
https://vagrantup.com/
134. Packer is a tool for creating images for platforms
such as Amazon AWS, OpenStack, VMware, VirtualBox,
Docker, and more – all from a single source
configuration.
Common use case for Packer include creating
appliances, pre-baking deployment images, packaging
applications, testing configuration management, and
more.
Packer は Amazon AWS、OpenStack、VMware、VirtualBox、
Docker といったプラットフォーム向けのイメージを作成するための
ツールであり、すべて単一のソースから作成します。
アプライアンスにPackerを使うのは一般的な使用例であり、
アプリケーションを組み込み、環境構築済みであり、テストされ、
設定済みのイメージを提供します。
https://packer.io
139. Serf is a lightweight and decentralized solution for
cluster membership, failure detection, and orchestration.
Serf is used as a building block for highly available
systems, such as Consul.
Serf はクラスタのメンバー管理、障害検出のほか、オーケスト
レーションを行うための軽量かつ非中央集権的ソリューションです。
Serf は Consul という高可用性を持つシステムの確立の
ためにも使われています。
https://serfdiom.io
147. Consul is a distributed, highly-available, and multi-
datacenter aware tool for service discovery, configuration,
and orchestration. In the ever-growing datacenter, Consul
enables rapid deployment, configuration, and maintenance
of service-oriented architectures.
Consul は分散し、高い可用性を持ち、複数のデータセンタで
サービス検出や、設定、オーケストレーションを行うための
ツールです。成長しつづけるデータセンタにおいて、Consul は
迅速なデプロイ、設定、サービス指向アーキテクチャにおける
管理機能を提供します。
https://consul.io
152. Vagrant Packer Serf Consul Terraform Atlas Vault
HashiCorp
Vagrant
開発環境の構築と
作成を簡単にする
ためのツールで、
様々な環境に対応
Packer Serf
自動的にマシン
イメージを生成、
様々な開発環境
クラウドも対応
Consul
クラスタの管理や
障害検出や自動的
な処理を同時実行
Terraform
サービス検出機能、
DNS・HTTP・API
各インターフェース
連携する自動処理
Consul
153. Terraform allows you to effortlessly combine high-level
system providers with you own or with each – from
physical and virtual servers to email and DNS providers.
Once launched, Terraform safely and efficiently changes
infrastructure as the configuration is evolved.
Terraform によって、自分自身で持っているかどうかに関わらず、
高レベルのシステム、たとえば物理や仮想サーバであったり、
メールや DNSプロバイダが提供するシステムを効率的に連携
することができます。
https://terraform.io
157. Atlas provides a unified dashboard and workflow for
developing, deploying, and maintaining applications on
any public, private, or hybrid infrastructure. Developers
and operators have a single unified view to manager and
provide visibility for infrastructure.
Atlas は開発・デプロイ・アプリケーションの維持を、統一の
ダッシュボードとワークフローを通し、あらゆるパブリック、
プライベート、ハイブリッドなインフラで提供します。開発者と
運用担当者は統一画面で一緒に管理し、インフラの可視性を
提供するものです。
https://atlas.hashicorp.com