Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

運用に自動化を求めるのは間違っているだろうか

51,139 views

Published on

July Tech Festa 2015 発表資料です。
平成27年7月26日(日)
AIIT, Shinagawa, Tokyo

Published in: Technology
  • Be the first to comment

運用に自動化を求めるのは間違っているだろうか

  1. 1. A U TO M AT I O N M Y T H 2015年7月26日 @zembutsu July Tech Festa 2015
  2. 2. HashiCorpとAtlasの インフラ管理 クリエーションライン株式会社 前佛雅人
  3. 3. アジェンダ  1. HashiCorpとは?  HashiCorpの歴史  The Tao of HashiCorp – HashiCorp 道  2. HashiCorpの提供するツール群  Vagrant … 開発環境自動構築  Packer … マシンイメージ自動作成  Terraform … インフラ環境の自動構築  Serf … オーケストレーション  Consul … サービス検出と運用自動化  Atlas … DevOps プラットフォーム  Vault … シークレット管理  3. まとめ・質疑応答 開発と運用が一枚岩となって戦うDevOps スタイルが広まりつつある昨今。これは開 発者視点だけではありません。運用として も、避けて通れない課題。それを解決する ためにDevOpsツール群の使用と、自動化 が必要とされています。 しかし、「運用の自動化」も本当に必要な のでしょうか? なぜ、必要なのでしょうか? この答えの一つが、HashiCorpの考え方や、 ツール・サービスかもしれません。運用だ からこそ、今、知っておきたい考え方や ツールが、ここにあります。 本講は、運用担当者視点で、HashiCorpの Vagrant、Packer、Terraform、Serf、Consul の各ツールの考え方や使い方を通して、 自動化のありかたについて、皆さんと考え る場にしたいと考えます。
  4. 4. 自己紹介  前佛雅人  Technology Evangelist  クリエーションライン株式会社  主な経歴  ホスティング・サービスの運用エンジニア  自動化・省力化に取り組む  監視ツール Zabbix・Munin 等の運用・検証  特定業種向けMSPサービス  趣味  3DS:ファイアーエムブレムif  プレゼン研究 おや…スライドの様子が…
  5. 5. 俺のスライドが こんなに堅いはずがない。
  6. 6. 普通のプレゼンだと思った? 残念、俺だよ!
  7. 7. 【運命の分岐点】 進む道を選んでください。 運用に自動化を求めるのは間違っているだろうか 俺のコンテナがこんなに軽いわけがない。 ラブライブ!に学ぶ運用組織論 一応、選択肢を用意しました
  8. 8. 今回のスライドで伝えたい事
  9. 9. 扱う範囲は…次のスライドで
  10. 10. “私の最強デッキ戦略”とは
  11. 11. A U T O M A T I O N M Y T H 我々は何処から来たのか、何者なのか、 何処へ行くのか? 1■□□□ Where Do We Come From/ What Are We? Where Are We Going?
  12. 12. 13 自己紹介 ‣ @zembutsu a.k.a. 前佛雅人 - Technology Evangelist; Creationline, Inc. – 1.5 yrs - Data Center Operations Engineer – 15+ yrs 興味関心:運用監視自動化、趣味でOSSやクラウド系の検証・情報発信 - SlideShare http://slideshare.net/zembutsu - Blog http://pocketstudio.jp/log3 書籍・記事 - Serf/Consulで管理を自動化! (Gihyo.jp) http://gihyo.jp/admin/feature/01/serf-consul - HashiCorpのツール群からみる インフラ構築運用の未来 (Think IT) http://thinkit.co.jp/book/2015/03/05/5700 Why am I here? +MasahitoZembutsu ISBN-10: 4774174416 ISBN-10: 4844338145 ISBN-10: 4798139785 一応改めて自己紹介です。 会社的にこういう立場ですが
  13. 13. 無理にHashiCorp導入しても…
  14. 14. 無理にDockerを入れても…
  15. 15. そして時間があれば農業の事
  16. 16. 16Personalities http://www.16personalities.com/ja 性格タイプ:仲介者 INFP型 • 理想主義者 • 人生の意味を求める者 • 今の自分のことは分かっているが、 今後どうなるかは分からない ちなみに、こんな性格です。
  17. 17. Technology Evangelist こんな肩書きなので、どんな 仕事されてるんですかとよく 聞かれます。
  18. 18. Technology Evangelist 私がずっと紹介しているのは 仕事とか関係無く、良い物を 皆で共有したいという立場!
  19. 19. みなさん、仕事は楽しいですか ところで…
  20. 20. 「楽」の漢字の語源は、木の 棒に糸を貼ったもの。
  21. 21. 楽しい 楽 Fun Easy ≒ 現状では「楽しい」と「楽」 意味あいがちょっと違います
  22. 22. 楽しい 楽 Easy ≠ Fun むしろ仕事では一致しません たとえば…
  23. 23. DANDELION ATTACK さ し み た ん ぽ ぽ し ゅ う ら い
  24. 24. 出典:タンポポとは (タンポポとは) [単語記事] - ニコニコ大百科 “ 近年インターネット上で、「誰にでもできる簡単な仕事」かつ「やりがいのない単調な仕事」を 表現する時に、もしくは「非常に過酷な仕事」を表現するネタとして、刺身の上にタンポポを 乗せる」という仕事がしばしば引き合いに出される。本当にそのような、タンポポを乗せる「だけ」 の仕事があり、その上きちんと給料が出るのかは不明。” http://en.wikipedia.org/wiki/Taraxacum#/media/File:T_japonicum04.jpg Creative Commons License BY-SA 3.0
  25. 25. 26 ‣ 苦痛 painful ‣ 時間を消費する time-consuming ‣ 退屈でつまらない tedious process 刺身タンポポ的な手作業 What is the “Sashimi-Tanpopo”’s working?
  26. 26. WEAVING SUTRA し ゃ き ょ う ぶ ん か
  27. 27. 29 ‣ 動的に変化するシステム基盤が当たり前 自動化や省力化を推進する、クラウド・コンピューティングの価値。もう普通に使える技術。 ‣ 変化に応じて設定ファイルの書き換えが発生 例:監視設定ファイル、リバース・プロキシ設定、サーバ情報一覧の追加・削除が都度発生 ‣ 変化に対応できないと、この先生きのこれないかも 例:銀行の窓口対応よりも、24時間稼働するATMを使うほうが正確で速く便利。 「刺身タンポポ」「写経文化」の現在… ??「駆逐してやる!!」
  28. 28. 刺身タンポポ・写経対抗 もしかして:自動化
  29. 29. あの日セットアップしたサーバの名前を僕達はまだ知らない
  30. 30. あの日セットアップしたサーバの名前を僕達はまだ知らない シ ス テ ム
  31. 31. 33 / 130 稼働率 = MTBF MTBF+MTTR 平均故障間隔 Meam Time Between Failures 平均修理時間 Meam Time to Repair Availability 平均故障間隔 Meam Time Between Failures
  32. 32. http://www.flickr.com/photos/ewan_the_moomintroll/4127615397/ by Ewan Bellamy 前職はデータセンタでずっと 運用保守に携わってきました
  33. 33. 運用 監視 Operation Monitoring ―Don't forget. always, somewhere, someone is fighting for you. ―As long as you remember her. you are not alone. 忘れないで、いつもどこかで誰かがあなたの為に戦っている。 彼女を覚えている限り、あなたは一人じゃない。 (出典:魔法少女まどかマギカ最終話「わたしの、最高の友達」)
  34. 34. 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/
  35. 35. INFRASTRUCTURE ENGINEER SERVER OPERATION DATACENTER http://www.flickr.com/photos/torkildr/3462606643/ by torkildr http://www.flickr.com/photos/toyohara/395472864/ by toyohara
  36. 36. Before After軽く環境の変遷を見てみます
  37. 37. 監視第1世代・物理 (~2000年)=死活監視 First Generation Monitoring System, Dead or Alive とりあえずNagios+MRTG的な。 ピークが読めた時代です。
  38. 38. (出典)総務省「平成23年通信利用動向調査」 http://www.soumu.go.jp/johotsusintokei/statistics/statistics05.html 5,593 6,942 7,730 7,948 8,529 8,754 8,811 9,091 9,408 9,462 9,610 46.3 57.8 64.3 66.0 70.8 72.6 73.0 75.3 78.0 78.2 79.1 0 10 20 30 40 50 60 70 80 90 100 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 普 及 率 ( % ) 利 用 者 数 ( 万 人 ) 利用者数 人口普及率 ですが利用者数が増えると、 環境が変わります。
  39. 39. 監視第2世代・仮想化 (~2009年)=時系列リソース Second Generation Monitoring System, Time Series and Resource Monitoring 携帯電話とSNSの普及が拍車 スキルも交換が必要でした
  40. 40. CLOUDCOMPUTING!! そこにうまくハマったのが クラウド技術の登場です。
  41. 41. これはクラウド違いです…
  42. 42. 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
  43. 43. 監視第3世代・クラウド対応 (~現在)=時系列サービス Third Generation Monitoring System, Time Series Service Level 今はこんな感じで凌ぎますが
  44. 44. ?M2M ; Machine to Machine この先どうなるんだろうと。
  45. 45. 今の運用や監視はあくまでも 「人」が対応する組織設計
  46. 46. しかしコンテナが、
  47. 47. コンテナが来たら…
  48. 48. ニンゲンヤメマスカ? Do you resign as human being? It is necessary to answer the following questions to start OPERATION. YES はい はい YES 運用を続けるためには、イカの質問に答える必要があります。 正直、キツそうです。
  49. 49. 今の手法では、正直このまま この先生きのこる自信がない
  50. 50. じゃ、どうするの?
  51. 51. まったく、Dockerは最高だぜ 手作業が許されるのは小学生
  52. 52. まったく、Dockerは最高だぜ 手作業が許されるのは小学生 という話にはなりません。
  53. 53. TMTOWTDI There’s More Than One Way To Do It これはPerlのスローガン。 答えは1つではなく、色々な やりかたがあってもいい。
  54. 54. そして、ピンと来ました。 これだ!
  55. 55. 脱・刺身タンポポ 脱・写経 その為の自動化スキルセット
  56. 56. ┌──────────────────────┐ │ドッカースウォームが あらわれた! │ │ドッカーコンポーズが あらわれた! │ │コマンド? │ │ ∨ │ └━━━━━━━━━━━━━━━━━━━━━━┘ ┌────┐ │ていじで │ │かえろう │ └━━━━┘ ┌──────コマンド─────┐ │ たたかう じゅもん │ │ にげる げんじつとうひ │ └━━━━━━━━━━━━━━━┘ > 新しいツールだ!敵だ!と 構えるのではなく、
  57. 57. 自分の手札にしませんか?
  58. 58. 自由に使えるカードが沢山!
  59. 59. 自分だけの最強デッキを作ろう
  60. 60. もちろん敢えて刺身タンポポ 写経文化を受け入れるのなら 止めませんが、それは
  61. 61. A Certain Information Management あと、使わないのと知らない には、天地の差があります。
  62. 62. ATOKの [TAB] 補完で日本語変換速度向上TAB シェルのように使える機能、 ご存知でしたか? 分野は 違いますが、これも効率化に
  63. 63. A U T O M A T I O N M Y T H ご注文はコンテナですか? 2■■□□ Is the Order a Container?
  64. 64. ご注文はコンテナですか? Is the order a container?
  65. 65. ご注文はコンテナですか? Is the order a container?
  66. 66. 物理時代 仮想化・クラウド時代 コンテナ時代 機 材 発 注 機 材 納 品 設 置 機 器 設 定 事 前 設 計 ク リ ッ ク 見 積 も り O S 設 定 環 境 構 築 試 験 利 用 開 始 試 験 開 発 試 験 運 用 利 用 開 始 … … 事 前 設 計 ク リ ッ ク 試 験 利 用 開 始 … 事 前 設 計 ク リ ッ ク 試 験 利 用 開 始 … 開 発 段 階 検 証 段 階 本 番 段 階 すべてを迅速に、一貫した環境で行いやすい← New こういった時代変遷があり…
  67. 67. 社外開発環境 本番環境ステージング環境 社内共有開発環境 個人開発環境 社内テスト環境 社外開発環境 本番環境ステージング環境 CI/CD Docker レジストリ Docker動作環境(docker machine) 別々の環境で、動く・動かないを 吸収するプラットフォームの役割
  68. 68. OpenStack CloudStack Mackerel Amazon Web Services Google Cloud Platform Windows Azure SoftLayer Niftyクラウド さくらのクラウド Salesforce Heroku DigitalOcean LinodeさくらのVPS VMware Circle CI Jenkins GitHub Slack NewRelic Datadog IaaS パブリック・クラウド 日本国内 パブリック クラウド VPS Monitoring PagerDuty Operations CI PaaS Atlas プライベート クラウド 開発環境 SaaS Cloud n Docker ( Linux Containers) クラウドを取り巻く業界俯瞰図 2年前に登場したDockerは
  69. 69. OpenStack CloudStack Mackerel Amazon Web Services Google Cloud Platform Windows Azure SoftLayer Niftyクラウド さくらのクラウド Salesforce Heroku DigitalOcean LinodeさくらのVPS VMware Circle CI Jenkins GitHub Slack NewRelic Datadog IaaS パブリック・クラウド 日本国内 パブリック クラウド VPS Monitoring PagerDuty Operations CI PaaS Atlas プライベート クラウド 開発環境 SaaS Cloud n Docker ( Linux Containers) クラウドを取り巻く業界俯瞰図 あっと言う間に巻き込みます
  70. 70. なぜ?
  71. 71. 【速さ】という価値
  72. 72. ■ore no container ga konnnani karui wake ga nai
  73. 73. docker run docker pull docker … docker hub ( public repository)
  74. 74. • Docker • コンテナにはアプリケーションに 依存するバイナリとライブラリのみ • 数百MB程度~のコンテナ • 他のコンテナ間で kernel を共有
  75. 75. 81 Dockerと基本コマンド docker run コンテナ実行 docker stop コンテナ停止 docker commit コンテナイメージ化 docker pull イメージの取得 docker build イメージの自動構築 docker attach コンテナにアタッチ docker logs 標準出力の表示 docker inspect 詳細情報の表示 docker rm イメージ削除 docker images イメージ一覧表示 diff | history 差分・履歴表示 背景画像CREDIT:スフィア / PIXTA(ピクスタ)
  76. 76. 82Introduction to Docker Basic Course ‣ コンテナ化とは、ホストOS上のKernel機能を使い 複数の root ファイルシステムを実行できる。 各々の root ファイルシステムの事を「コンテナ」( container ) と呼称する。 これ何て chroot?と言われる所以。 ‣ 各々のコンテナは各々のリソースを持つ プロセス(計算資源) メモリ デバイス ネットワーク コンテナ?
  77. 77. [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 プロセスとして手軽に実行を することができます。
  78. 78. [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を実行するコンテナを 起動しているものです。
  79. 79. # ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:00 bash 16 ? R+ 0:00 ps ax ---- root 933 0.0 0.1 66216 1176 ? Ss Jul17 0:34 /usr/sbin/sshd root 32109 0.0 0.3 99964 4032 ? Ss 19:54 0:00 ¥_ sshd: root@pts/0 root 32111 0.0 0.1 108304 1892 pts/0 Ss 19:54 0:00 | ¥_ -bash root 878 0.0 0.7 153372 7436 pts/0 Sl+ 20:03 0:00 | ¥_ docker run -t -i --name=madoka ubuntu bash コンテナのなかではPID「1」 でも、ホスト側からは別の PIDを持っています。
  80. 80. root@e1096840bb9e:/# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/docker-252:1-263708-e1096840bb9e4d4a671b913affc7f0d28d0824941d877e8738d6f5cc98a45bbe 10190136 236132 9429716 3% / tmpfs 510172 0 510172 0% /dev shm 65536 0 65536 0% /dev/shm /dev/vda1 30830588 2177572 27080256 8% /etc/hosts tmpfs 510172 0 510172 0% /proc/kcore tmpfs 510172 0 510172 0% /proc/timer_stats root@e1096840bb9e:/# /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:468 (468.0 B) TX bytes:558 (558.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ディスク領域・ネットワーク それぞれ分離されています。
  81. 81. Docker Engine kernel コンテナA PID 1 コンテナB PID 1 コンテナC PID 1 コンテナN PID 1 … こんなイメージで並んでます
  82. 82. 88Introduction to Docker Basic Course ‣ 利点 開発者にとっての効率の良さ すぐに利用できる点と、バージョン・コントロール、CI/CDの自動化。 アプリケーションのポータビリティ 開発をはじめ、テストやリリースに至るまで、コンテナを通して一環したインフラ環境を利用できる。 ‣ ポイント Dockerそのものが何かするのではない(仮想化・クラウドと同じ) – Dockerは、あくまでも、利用者の利便性を向上する道具 (プラットフォームの役割) Dockerはインフラを抽象化--developer’s efficiency and application portability
  83. 83. ベース・イメージ (CentOS) ベース・イメージ (Ubuntu) 変更内容 A 変更内容 B 変更内容 C 書き込み可能領域 書き込み可能領域 kernel あとは独特なのが、イメージ 管理という仕組みです。
  84. 84. [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 イメージはスナップショット のようなもの。
  85. 85. [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 差分を確認したり、イメージ コミットして保存もできます
  86. 86. [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 同じイメージのレポジトリで 違うタグを持つイメージ群
  87. 87. [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 コミットさえしなければ、 消えたとしても・・・ ほら、大丈夫。
  88. 88. $ 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が作 られるので、因果が… 容量を圧迫するので、たまに 綺麗に片付けましょう。
  89. 89. 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 . . . ブラウザ上で公式イメージを 含む様々な検索が可能です。
  90. 90. 物理マシン 物理マシン 物理マシン 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だけでは 足りない所があります。
  91. 91. 物理マシン 物理マシン 物理マシン 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のコンテナ管理 クラスタ管理部分が今は弱い
  92. 92. 物理マシン 物理マシン 物理マシン 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のコンテナ管理 色々な動きが進みそうです。
  93. 93. APCERA Cloud Foundry shippable Google Container Engine Amazon EC2 Container Service IBM Containers on Bluemix コンテナを取り巻く業界俯瞰図 開発環境 Build / Deploy 運用自動化 Orchestration kitematic Etcd SkyDNS Service Discovery Docker fleet flannel rkt CoreOS Tectonic Mesosphere Apache Auora Marathon Cluster Management Kubernetes 構成管理 Docker Swarm Docker Machine Docker Compose Docker特化OS PaaS Networking コンテナ管理用プラットフォーム
  94. 94. パブリック・クラウド陣営 Google Container Engine Amazon EC2 Container Service IBM Containers on Bluemix Google Kubernetes Tectonic CoreOS 商用サポート/エンタープライズ 管理・効率化 Docker ネイティブサポート 最小環境 Docker 競合 オープンソース コミュニティ
  95. 95. 101 DockerCon 2015 ‣ Docker, Inc.主催 サンフランシスコ 6月22日・23日の2日間 セッション、ハンズオン、 トレーニング、ブース出展 http://www.dockercon.com/
  96. 96. 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
  97. 97. $ wget –O scope git.io/scope $ chmod a+x ./scope $ sudo mv scope /usr/local/bin/scope ネットワーク周りや、
  98. 98. ボリューム周りで、着々と 機能改善が図られている模様
  99. 99. 105Introduction to Docker Basic Course ‣ Docker 動作環境の自動作成 仮想サーバの起動と Docker のプロビジョニングを自動的に行う ‣ コマンドラインで使うツール docker-machine –d <ドライバ> [option] マシン名 …のように、コマンドで操作 ‣ Linux, Windows, Mac OS X に対応 ‣ VirtualBox だけでなく、多くのクラウドに対応 Amazon Web Services, DigitalOcean, exoscale, Google Compute Engine, SoftLayer, Azure, Hyper-V, OpenStack, RackSpace, VMwareFusion, VMwarea vCloud Air, VMware vSphere, SSH 可能なリモートホスト Docker Machine
  100. 100. 従来はboot2dockerが必要で したが・・・
  101. 101. リモート・ローカル一括管理。
  102. 102. もちろんAmazon EC2にも対応 しています。任意のリージョ ンで、任意のホストを自動的 に起動し、作業が終われば停 止することもコマンド1つで 簡単に行えます。
  103. 103. 109Introduction to Docker Basic Course Docker Swarm ‣ Docker クラスタ管理ツール Docker ホストの集まりを作成したり、アクセスできるようにするツールで、API を持つ ‣ コマンドラインで操作 docker-machine で環境を作り、docker run swarm create ‣ クラスタ形成 ディスカバリ(マネージャへの登録に、consul や etcd にも対応) フィルタ(コンテナを配置する条件の設定は、Docker を抽象化) ストラテジ(どこのノードにコンテナを自動配置するか方針設定)
  104. 104. VM Docker Swarm Manager Dokku, Docker Compose, Krane, Jenkins, Apache Mesos … VM Docker VM Docker VM Docker … コンテナ コンテナ コンテナ コンテナ
  105. 105. 111Introduction to Docker Basic Course Docker Compose ‣ 複数コンテナのアプリケーション自動設定 Dockerfile を複数のコンテナに拡張したようなイメージ ‣ コマンドラインで操作 docker-compose docker-compose.yml ‣ Linux, Windows, Mac OS X に対応 ‣ 構成情報を YAML 形式のファイルで定義
  106. 106. docker-compose.yml web: build: . command: php -S 0.0.0.0:8000 -t /wordpress ports: - "8000:8000" links: - db volumes: - .:/wordpress db: image: orchardup/mysql environment: MYSQL_DATABASE: wordpress Dockerfile FROM orchardup/php5 ADD . /wordpress
  107. 107. TMTOWTDI There’s More Than One Way To Do It
  108. 108. VS 仮想化システム 構成管理ツール クラウド環境 比較対象ではなく、お互いの 価値を高めるもの! 競合じゃ無いんです。
  109. 109. production 365D 24H あとは、本番でも使えるよう な機能改善だったり運用が
  110. 110. 365d PRODUCTION 現状における大きな課題です。 プロダクションで使うには。
  111. 111. 続きはウェブで… Docker入門 - 基礎編 いまから始めるDocker管理 http://www.slideshare.net/zembutsu/introduction-to-docker-management-and-operations-basic
  112. 112. http://docker.jp Coming Soon このドメイン持ってまして、 個人的にドキュメントなどを 集めていく予定です。 ご興味のある方いらっしゃい ます?
  113. 113. A U T O M A T I O N M Y T H HashiCorp 3■■■□ Next Generation Datacenter
  114. 114. HashiCorpも同様です。全てを 使う必要はありません。必要 があれば使えば良い的な。
  115. 115. Hashi Colle Bridge Collection of Koto Ward in Tokyo Next Generation Tactical Bridge Investigation Game © 2015 Pocketstudio.net / Masahito Zembutsu All Rights Reserved. れ こ • Vagrant • Packer • Terraform • Serf • Consul • Vault • Atlas HashiCorpのツール群を調べて いて思いました。ハッ、これは
  116. 116. No.001 empty No.002 empty No.003 empty No.004 empty No.005 empty No.006 empty No.007 empty No.008 empty
  117. 117. No.001 empty No.002 empty No.003 empty No.004 empty No.005 empty No.006 empty No.007 empty No.008 empty
  118. 118. No. 001 永代橋(えいたいばし)は、隅田川にかかる橋で、東京 都道・千葉県道10号東京浦安線(永代通り)を通す。 西岸は中央区新川一丁目、東岸は江東区佐賀一 丁目及び同区永代一丁目。地下に東京メトロ東西 線が通る。夕刻から22時まで青白くライトアップされる。
  119. 119. 脱線しました、ゴメンナサイ
  120. 120. 127 / 130 The Tao of HashiCorp • 最も簡単にするためのワークフローを考え、そこに対応するツールが無ければ作るという設計思想 • Unix哲学と同様、全体の問題を解決するのではなく、個々の要素(コンポーネント)に分解 • システムや基盤に対するバージョン管理や自動化によって、システムにとっても人にとっても利点となる https://hashicorp.com/blog/tao-of-hashicorp.html
  121. 121. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant
  122. 122. 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/
  123. 123. $ vagrant up
  124. 124. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer
  125. 125. 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
  126. 126. $ packer build dev.json
  127. 127. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Packer
  128. 128. 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
  129. 129. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Consul クラスタの管理や 障害検出や自動的 な処理を同時実行 Serf
  130. 130. 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
  131. 131. • • • • • • • • • • • • • • •
  132. 132. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Consul クラスタの管理や 障害検出や自動的 な処理を同時実行 Terraform サービス検出機能、 DNS・HTTP・API 各インターフェース 連携する自動処理 Consul
  133. 133. 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
  134. 134. $ terraform plan $ terraform apply $ terraform destroy
  135. 135. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Consul クラスタの管理や 障害検出や自動的 な処理を同時実行 Terraform サービス検出機能、 DNS・HTTP・API 各インターフェース 連携する自動処理 Atlas 仮想マシンを含む インフラ全体環境 自動構築コード化 抽象化する仕組み VaultTerraform
  136. 136. 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
  137. 137. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Consul クラスタの管理や 障害検出や自動的 な処理を同時実行 Terraform サービス検出機能、 DNS・HTTP・API 各インターフェース 連携する自動処理 Atlas 仮想マシンを含む インフラ全体環境 自動構築コード化 抽象化する仕組み 開発から運用まで 一貫の作業手順で、 各々ツールと連携し 共有と権限管理機能 VaultAtlas
  138. 138. Vault secures, stores, and tightly controls access token, passwords, certificates, API keys, and other secrets in modern computing. Vault handles leasing, key revocation, key rolling, and auditing. Vault はアクセス・トークンやパスワードや、証明書、API 鍵等 最近のコンピューティングにおけるシークレット(秘密情報)の 安全な保管や厳密な制御をします。Vault は鍵の一時提供や、 無効化、キーローリング、監査機能を持ちます。 https://vaultproject.io
  139. 139. Vagrant Packer Serf Consul Terraform Atlas Vault HashiCorp Vagrant 開発環境の構築と 作成を簡単にする ためのツールで、 様々な環境に対応 Packer Serf 自動的にマシン イメージを生成、 様々な開発環境 クラウドも対応 Consul クラスタの管理や 障害検出や自動的 な処理を同時実行 Terraform サービス検出機能、 DNS・HTTP・API 各インターフェース 連携する自動処理 Atlas 仮想マシンを含む インフラ全体環境 自動構築コード化 抽象化する仕組み 開発から運用まで 一貫の作業手順で、 各々ツールと連携し 共有と権限管理機能 Vault パスワードやAPI 情報を暗号化し 分散保管する インターフェース Vault
  140. 140. TMTOWTDI There’s More Than One Way To Do It
  141. 141. そういえば? DockerとHashicorp 似てね?
  142. 142. 続きはウェブで… HashiCode 01 - HashiCorp道と自動化ツール群 http://www.slideshare.net/zembutsu/hashicode-01-the-tao-of-hashicorp
  143. 143. A U T O M A T I O N M Y T H まとめ;最後に残った道しるべ 4■■■■ The Only Thing We Have Left To Guide Us
  144. 144. 正しい努力 脱・刺身タンポポ 脱・写経
  145. 145. テラリアを始めたとき、今か ら思えば無駄に穴を掘ること しか考えていませんでした。 本人は努力しているつもりで したが、何の価値もなかった。 刺身タンポポ・写経に通じる ものを感じています。
  146. 146. 171 / 130 運用における自動化を進めな いといけない、あるいは運用 の仕事をなくさなくてはいけ ないと思うのは、家業の農業 の影響を受けているかもしれ ません。
  147. 147. こんな感じの稲作農家。 これは先週の写真です。
  148. 148. もはや機械化は欠かせません。 手で田植えするのは考えられ ないです。田植機を使えば、 圧倒的な「速さ」「正確さ」 で田植えが可能です。 でも、まだたりないものが、 本当に沢山あります。 ※写真は私です。
  149. 149. こういったカードを使い分け るところに何かヒントがある のではないかとも。
  150. 150. 正直、使わなくても構わない Docker,HashiCorpを無理して 使う理由は無いと思います。 ですが、使わない理由もない のではないでしょうか。自由 に使えるツールが、すでにあ るのですから。
  151. 151. 【速さ】【効率性】 【自動化】 自動化という、対抗手段。
  152. 152. ? そうしたら環境が変わっても デッキを使い分ける事により 仕事の幅もひろがるのでは。 そして、運用の仕事も変わる。 本当は運用自動化デモをした かったのですが、まだどっか の機会にて。。
  153. 153. 自分だけの最強デッキを作ろう
  154. 154. 楽しい 楽 Easy ≠ Fun
  155. 155. 楽しい 楽 Fun Easy =
  156. 156. 運用も次の段階へ
  157. 157. Let’s Try
  158. 158. "われわれが行動するばあいには、気づくことが 先決条件である。技術があれば、何でも解決 できるわけではない。技術以前に気づくというこ とが必要になる。日本にはいくらも技術屋はいる がなかなか解決出来ない。気づかないからだ。" 本田宗一郎(2008) 『ざっくばらん』 PHP 研究所 10pp. そのためには、勉強会に参加 して聞いたり、スライドを見 るだけでなく、試さないと。
  159. 159. たとえば、Uberを使う機会が 最近ありました。
  160. 160. (」・ω・)」うー!(/・ω・)/ばー!
  161. 161. 使うまではネガティブな印象 でしたけれど、体験してみな いと凄さも課題も分からない。 百聞は一見にしかずとは正に。
  162. 162. これは又、どっか別の場所で
  163. 163. ということで、次へ!
  164. 164. A U TO M AT I O N M Y T H
  165. 165. Operation Automation Project ビビッド オペレーション
  166. 166. 運用視点でも自動化や省力化 などの情報交換が出来ないか またどっかでやろうと思って います。最後までありがとう ございました。

×