Micro Service for Autonomous Infrastructure
-
Upload
yoshimi-tominaga -
Category
Engineering
-
view
896 -
download
0
Transcript of Micro Service for Autonomous Infrastructure
Consul Eventの課題
Event が届く順番は保障されない
先のEventの処理中に次のEventの処理も実行される
終わるまで待って!
Event B Event A
どっちが先?
イベントの順序制御や 実行時の待ち合わせをしたい
Metronome
Consulと連動するタスクスケジューラ
Event Queuing, Task Sequence Control, Results Sharing
https://github.com/cloudconductor/metronome
イベントごとに実行するタスクをYAML形式で記述
events: setup: description: Execute setup task: setup restart: ordered_tasks: - service: postgresql task: db_restart - service: tomcat task: ap_restart - service: httpd task: web_restart
Consulのserviceやtagで絞り込み可能
クラスタ全体のタスク実行順を制御
どのイベントでどのタスクを
実行するか指定
タスクごとに実行する処理を記述
tasks: setup: operations: - execute: file: prepare.sh - chef: run_list: - role[{{role}}_setup] db_estart: operations: - service: name: postgresql-9.4 action: restart
実行するオペレーションを記述
operations
- execute: シェルを実行
- chef: Chefを実行
- service: サービス起動/停止
- echo: 文字列を出力
- consul-event: イベント発行
- consul-kvs: KVS操作
Metronome導入でできるようになったこと
DBサーバ⇒APサーバ⇒Webサーバの順にサービス起動
マスターDBにデータを投入してからスレーブDBを起動
各サーバの公開鍵をKVSに登録してから一括共有
導入前はChefでひたすらループ…