chef, ansible, consul, … 自働化ツールとその組み合わせ方

43
Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方 OSSコンソーシアム クラウド部会 冨永 善視 OSC 2015 .Enterprise Tokyo

Upload: yoshimi-tominaga

Post on 18-Feb-2017

1.886 views

Category:

Engineering


9 download

TRANSCRIPT

Page 1: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Chef, Ansible, Consul, …

自働化ツールとその組み合わせ方

OSSコンソーシアム クラウド部会

冨永 善視

OSC 2015 .Enterprise Tokyo

Page 2: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

自己紹介 冨永 善視(とみなが よしみ) 所属 OSSコンソーシアム クラウド部会

TIS株式会社 戦略技術センター

業務 クラウドオーケストレータCloudConductorの開発

インフラ関連OSSの技術検証

Page 3: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

OSSコンソーシアム

クラウド部会

クラウドソリューションの情報交換

WGによるOSS検証

定期的なセミナー開催

http://www.osscons.jp/cloud/

2015.3.13 Cloud Orchestration Seminar

Page 4: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

本日お話しすること

クラウド時代の運用管理

インフラの自働化ツールひとまとめ

自働化ツールの組み合わせ方

Page 5: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

本日お話ししないこと

Page 6: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

クラウド時代の運用管理

Page 7: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

ペットと家畜

Page 8: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

ウチの子がイチバン

大切に守る

代わりなんていない

どれも同じ

悪ければ処分

足りなければ追加

Page 9: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

ペット型の問題

壊さないための冗長な構成

最大値を満たす過剰なリソース

Page 10: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

家畜型の運用

必要なだけ作って

いらなくなったら壊す

常に最適な状態にコントロール

Page 11: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

自働化 トヨタ生産方式の用語

ただ動き続けるだけでなく「不具合が起きていないこと」が保障される

Page 12: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

インフラの自働化ツール

Page 13: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

クラウド環境の インフラ構築

Page 14: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning

クラウド環境の インフラ構築

Page 15: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning Configuration

クラウド環境の インフラ構築

Page 16: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning Configuration Test

クラウド環境の インフラ構築

Page 17: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning Orchestration Configuration Test

クラウド環境の インフラ構築

Page 18: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

構築 テスト

代表的なインフラ自働化ツール

Provisioning ネットワークやVMの配置を自働化

Software Defined Infrastructure APIを通じて操作できるインフラ

Orchestration システム全体の連携や 動的な協調動作を自働化

Configuration OSの設定やミドルウェアの インストールを自働化

consul

terraform

metronome serf

Page 19: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

構築 テスト

代表的なインフラ自働化ツール

Provisioning ネットワークやVMの配置を自働化

Software Defined Infrastructure APIを通じて操作できるインフラ

Orchestration システム全体の連携や 動的な協調動作を自働化

Configuration OSの設定やミドルウェアの インストールを自働化

consul metronome serf

Provisioning ネットワークやVMの配置を自働化

terraform

Page 20: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Terraform

Hashicorp製ツール

インフラ構成をJSON拡張のDSLで記述

Provider指定で各種クラウドに対応

Provisioners指定でChef等の実行が可能

DryRun (terraform plan)

Page 21: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Terraform

構成をビジュアルで

確認可能(terraform graph)

Page 22: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

構築 テスト

代表的なインフラ自働化ツール

Provisioning ネットワークやVMの配置を自働化

Software Defined Infrastructure APIを通じて操作できるインフラ

Orchestration システム全体の連携や 動的な協調動作を自働化

consul

terraform

metronome serf

Configuration OSの設定やミドルウェアの インストールを自働化

Page 23: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Chef

Chef社が開発

OS、ミドルウェアの設定をRuby拡張のDSLで記述

erbの雛形から設定ファイルを動的に生成可能

Page 24: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Ansible

RedHatが買収

OS、ミドルウェアの設定をYAML形式で記述

SSHによる実行でエージェントレス

Page 25: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Chef vs Ansible

Chef Ansible

Ruby Python

Client - Server エージェントレス

ドキュメント・ノウハウ豊富 まとまった情報が少ない

力技で書ける シンプルに書ける

Page 26: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

構築 テスト

代表的なインフラ自働化ツール

Provisioning ネットワークやVMの配置を自働化

Software Defined Infrastructure APIを通じて操作できるインフラ

Orchestration システム全体の連携や 動的な協調動作を自働化

consul

terraform

metronome serf

Configuration OSの設定やミドルウェアの インストールを自働化

Page 27: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Serverspec

mizzyさん(@gousukenatorさん)が開発

OS、ミドルウェア設定のあるべき姿を

Rspec相当のRuby DSLで記述

SSHによる実行でエージェントレス

力技も可能

Page 28: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Serverspec

:serviceが起動しているか

:portが開いているか

:APサーバへの疎通確認

Page 29: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

構築 テスト

代表的なインフラ自働化ツール

Provisioning ネットワークやVMの配置を自働化

Software Defined Infrastructure APIを通じて操作できるインフラ

Configuration OSの設定やミドルウェアの インストールを自働化

terraform

serf

Orchestration システム全体の連携や 動的な協調動作を自働化

consul metronome

Page 30: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Consul

Hashicorp製のツール

エージェント同士でクラスタを構成

分散KVS

サービスディスカバリ

クラスタに変化が起きたとき特定の処理を実行可能 (watches)

Page 31: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Metronome

TISが開発 2015年9月公開

Consulクラスタと連携

クラスタメンバーのタスク実行順序を制御

実行順序はYAML形式で記述

https://github.com/cloudconductor/metronome/blob/master/README_ja.md

Page 32: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Metronome

Page 33: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

自働化ツールの組み合わせ方

Page 34: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Configuration Test

Configuration & Test

server

従来の自動スクリプトの

延長として

取り組みやすい所から

コード化を実践してみる

Page 35: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Configuration

Provisioning & Configuration

インフラ構築をまるっと自働化

家畜型の運用を実践してみる

Provisioning

Page 36: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning Orchestration Configuration

Provisioning & Configuration & Orchestration

サービス起動などの待ち合わせ

構成が変化したときに設定を動的

に変更する

Page 37: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

One more thing...

Page 38: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

CloudConductor

TISが開発

2015年9月にv1.1公開 2016年3月にv2.0公開予定

インフラ自働化ツール群を指揮して家畜型の運用を実現

http://cloudconductor.org

Page 39: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Provisioning Orchestration Configuration Test

CloudConductor v2.0 Orchestration Process

Page 40: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

アプリ開発メンバー インフラ担当者

設計

構築

検証

パターン更新

検証環境の展開・最新化

フィードバック

DevOpsの実現

Page 41: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

ユーザー

パターン開発者

パターンの拡充

Enterprise PaaSの提供

自動構築

クラウドB

クラウドA

DR

パターンを選択 環境を利用

自律運用

Page 42: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

クラウドの真価は家畜型の運用にあります

そのためのツールも整いつつあります

まずはできるところから

やり方を変えていきましょう

Page 43: Chef, Ansible, Consul, … 自働化ツールとその組み合わせ方

Thank You!!