chef, ansible, consul, … 自働化ツールとその組み合わせ方
TRANSCRIPT
Chef, Ansible, Consul, …
自働化ツールとその組み合わせ方
OSSコンソーシアム クラウド部会
冨永 善視
OSC 2015 .Enterprise Tokyo
自己紹介 冨永 善視(とみなが よしみ) 所属 OSSコンソーシアム クラウド部会
TIS株式会社 戦略技術センター
業務 クラウドオーケストレータCloudConductorの開発
インフラ関連OSSの技術検証
OSSコンソーシアム
クラウド部会
クラウドソリューションの情報交換
WGによるOSS検証
定期的なセミナー開催
http://www.osscons.jp/cloud/
2015.3.13 Cloud Orchestration Seminar
本日お話しすること
クラウド時代の運用管理
インフラの自働化ツールひとまとめ
自働化ツールの組み合わせ方
本日お話ししないこと
クラウド時代の運用管理
ペットと家畜
ウチの子がイチバン
大切に守る
代わりなんていない
どれも同じ
悪ければ処分
足りなければ追加
ペット型の問題
壊さないための冗長な構成
最大値を満たす過剰なリソース
家畜型の運用
必要なだけ作って
いらなくなったら壊す
常に最適な状態にコントロール
自働化 トヨタ生産方式の用語
ただ動き続けるだけでなく「不具合が起きていないこと」が保障される
インフラの自働化ツール
クラウド環境の インフラ構築
Provisioning
クラウド環境の インフラ構築
Provisioning Configuration
クラウド環境の インフラ構築
Provisioning Configuration Test
クラウド環境の インフラ構築
Provisioning Orchestration Configuration Test
クラウド環境の インフラ構築
構築 テスト
代表的なインフラ自働化ツール
Provisioning ネットワークやVMの配置を自働化
Software Defined Infrastructure APIを通じて操作できるインフラ
Orchestration システム全体の連携や 動的な協調動作を自働化
Configuration OSの設定やミドルウェアの インストールを自働化
consul
terraform
metronome serf
構築 テスト
代表的なインフラ自働化ツール
Provisioning ネットワークやVMの配置を自働化
Software Defined Infrastructure APIを通じて操作できるインフラ
Orchestration システム全体の連携や 動的な協調動作を自働化
Configuration OSの設定やミドルウェアの インストールを自働化
consul metronome serf
Provisioning ネットワークやVMの配置を自働化
terraform
Terraform
Hashicorp製ツール
インフラ構成をJSON拡張のDSLで記述
Provider指定で各種クラウドに対応
Provisioners指定でChef等の実行が可能
DryRun (terraform plan)
Terraform
構成をビジュアルで
確認可能(terraform graph)
構築 テスト
代表的なインフラ自働化ツール
Provisioning ネットワークやVMの配置を自働化
Software Defined Infrastructure APIを通じて操作できるインフラ
Orchestration システム全体の連携や 動的な協調動作を自働化
consul
terraform
metronome serf
Configuration OSの設定やミドルウェアの インストールを自働化
Chef
Chef社が開発
OS、ミドルウェアの設定をRuby拡張のDSLで記述
erbの雛形から設定ファイルを動的に生成可能
Ansible
RedHatが買収
OS、ミドルウェアの設定をYAML形式で記述
SSHによる実行でエージェントレス
Chef vs Ansible
Chef Ansible
Ruby Python
Client - Server エージェントレス
ドキュメント・ノウハウ豊富 まとまった情報が少ない
力技で書ける シンプルに書ける
構築 テスト
代表的なインフラ自働化ツール
Provisioning ネットワークやVMの配置を自働化
Software Defined Infrastructure APIを通じて操作できるインフラ
Orchestration システム全体の連携や 動的な協調動作を自働化
consul
terraform
metronome serf
Configuration OSの設定やミドルウェアの インストールを自働化
Serverspec
mizzyさん(@gousukenatorさん)が開発
OS、ミドルウェア設定のあるべき姿を
Rspec相当のRuby DSLで記述
SSHによる実行でエージェントレス
力技も可能
Serverspec
:serviceが起動しているか
:portが開いているか
:APサーバへの疎通確認
構築 テスト
代表的なインフラ自働化ツール
Provisioning ネットワークやVMの配置を自働化
Software Defined Infrastructure APIを通じて操作できるインフラ
Configuration OSの設定やミドルウェアの インストールを自働化
terraform
serf
Orchestration システム全体の連携や 動的な協調動作を自働化
consul metronome
Consul
Hashicorp製のツール
エージェント同士でクラスタを構成
分散KVS
サービスディスカバリ
クラスタに変化が起きたとき特定の処理を実行可能 (watches)
Metronome
TISが開発 2015年9月公開
Consulクラスタと連携
クラスタメンバーのタスク実行順序を制御
実行順序はYAML形式で記述
https://github.com/cloudconductor/metronome/blob/master/README_ja.md
Metronome
自働化ツールの組み合わせ方
Configuration Test
Configuration & Test
server
従来の自動スクリプトの
延長として
取り組みやすい所から
コード化を実践してみる
Configuration
Provisioning & Configuration
インフラ構築をまるっと自働化
家畜型の運用を実践してみる
Provisioning
Provisioning Orchestration Configuration
Provisioning & Configuration & Orchestration
サービス起動などの待ち合わせ
構成が変化したときに設定を動的
に変更する
One more thing...
CloudConductor
TISが開発
2015年9月にv1.1公開 2016年3月にv2.0公開予定
インフラ自働化ツール群を指揮して家畜型の運用を実現
http://cloudconductor.org
Provisioning Orchestration Configuration Test
CloudConductor v2.0 Orchestration Process
アプリ開発メンバー インフラ担当者
設計
構築
検証
パターン更新
検証環境の展開・最新化
フィードバック
DevOpsの実現
ユーザー
パターン開発者
パターンの拡充
Enterprise PaaSの提供
自動構築
クラウドB
クラウドA
DR
パターンを選択 環境を利用
自律運用
クラウドの真価は家畜型の運用にあります
そのためのツールも整いつつあります
まずはできるところから
やり方を変えていきましょう
Thank You!!