SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Masahito Zembutsu @zembutsu 
Technology Evangelist; Creationline , Inc. 
Shinagawa, Tokyo, 11 Dec 2014 
Code the Clouds Mix-up Vol. 2 
Serf / Consul 入門 ~仕事を楽しくしよう~ Why I need serf and Consul?
Serf / Consul 入門 3 / 65 
今日の内容 
• 
運用だが、もう人間は限界かもしれない 
• 
Serf や Consul は何を解決しますか? 
• 
Serf 入門 
• 
Consul 入門 
Topics of today.
クラウド・コンピューティング 
Cloud Computing
計画 
発注 
納品 
設置 
設定 
監視 
運用開始
計画 
発注 
納品 
設置 
設定 
監視 
運用開始 
実際のフローでは、ここがネックになりがち・・・ 
数週~1ヶ月程度 
few weeks or a month
計画 
発注 
納品 
設置 
設定 
監視 
運用開始 
クラウド・コンピューティング基盤 
Infrastructure as a Service 
1クリック 
one click
計画 
発注納品 
監視 
運用開始 
クラウド・コンピューティング基盤 
Infrastructure as a Service 
数分~10分 
few minutes
Serf / Consul 入門 9 / 65 
開発サイドに福音 
• 
すぐにサーバーが欲しい 
➡ 
クラウド・コンフィグレーション基盤の普及 
• 
すぐにサービスを展開したい 
➡ 
構成管理ツールやデプロイツールの普及 
• 
Chef, Ansible, Puppet, Salt Stack, Capistrano … etc
計画 
発注納品 
監視 
運用開始 
クラウド・コンピューティング基盤 Infrastructure as a Service 
数分~10分 
few minutes 
発注納品 
発注納品 
継続的デリバリー 継続的デプロイ 継続的インテグレーション
ふたつの新しい課題 
Two New Issues
1. 管理の煩雑さ 
Cumbersome Management
水 金 地 火 木 土 天 冥 海 
Mercury 
Venus 
Earth 
Mars 
Jupiter 
Saturn 
Uranus 
Pluto 
Neptune 
Hyperion
2.障害対応の迅速化 
Trouble Shooting and Quick Operations
監視 
Monitoring 
状況判断 
Situation Analysis 
行動 
Action
計画 
発注納品 
監視 
運用開始 
発注納品 
発注納品 
監視 
運用 
監視 運用 
クラウドによって環境の準備が迅速になったはず。 
しかし、台数の増加やシステム構成の複雑化によって、 
クラウドの価値を相殺しているのではないのか?
Serf / Consul 入門 17 / 65 
運用サイドに残る課題 
• 
動的に変化する環境 
➡ 
ホスト名・IPアドレスとサービスをどのように管理するか 
➡ 
構成図や手順書や不定期な見直し 
• 
求められる迅速な対応 
➡ 
現実世界と密接にかかわるサービスは、速やかな復旧が必要 
➡ 
管理対象のサーバーやサービス数の増加・複雑化
導き出される結論は
運用だが、 もう人間は限界かもしれない
Serf / Consul 入門 20 / 65 
解決したい事は? 
• 
動的に変わる環境の管理を楽にしたい 
➡ 
サーバの追加・停止のタイミングで 監視や設定を連動したい 
• 
迅速に行動を起こしたい 
➡ 
一次対応レベルの作業も、すぐにこなしたい 
➡ 
複数台の環境にまたがる作業を、スムーズに対応したい
Serf 
http://serfdom.io/
Consul 
http://www.consul.io/
Serf や Consul は 何を解決してくれますか?
答え:既存の業務フローを 変更せずに省力化します。
Serf / Consul 入門 25 / 65 
Serfの役割 
• 
メンバ管理 
➡ 
serf エージェント間でクラスタを構成し、情報を保持 
• 
イベントの共有 
➡ 
クラスタ全体で、イベントを瞬時に共有 
• 
トリガ機能 
➡ 
イベント発生時に、任意のコマンドをクラスタ全体で実行
Serf / Consul 入門 26 / 65 
Consulの役割 
• 
サービス・レベルの管理とイベント同期 
➡ 
Serf と同じ事を、ウェブやデータベース等のサービスが対象 
• 
インターフェースの提供 
➡ 
HTTP ( REST API ) 
➡ 
DNS 
➡ 
Key Value Storage
Serf / Consul 入門 27 / 65 
Serf / Consul 比較 
Serf vs. Consul 
http://www.serfdom.io/intro/vs-consul.html 
Serf 
Consul 
目的 
サービス検出とオーケストレーション 
サービス検出と設定 
ヘルスチェック 
低レベル(ノード死活監視) 
サービス単位で高度な調整 
キーバリューストア 
なし 
あり 
メンバーシップ 
ノード単位 
サービス単位 
Web API 
なし 
あり 
DNS インターフェース 
なし 
あり 
アーキテクチャ 
AP 型 ( 一貫性重視、可用性を犠牲 ) 
CP 型 ( 可用性より一貫性重視 )
Serf / Consul 入門 28 / 65 
誰が作っているの? 
• 
Hashicorp 社 
➡ 
https://www.hashicorp.com/ 
• 
Vagrant 
• 
Packer 
• 
Terraform 
• 
Serf 
• 
Consul 
• 
ATLAS ← New!
Serf 超入門
Serf / Consul 入門 30 / 65 
Serf とは何ですか? 
• 
メンバ管理とイベント同期のためのツール 
➡ 
サーバを必要としないクラスタを、 相互通信するゴシップ・プロトコルによって構成 
• 
すぐに動く・使える 
➡ 
バイナリ1個を置くだけで、依存関係が無い 
➡ 
低い学習コスト(シェルスクリプト程度の知識で使える)
Serf / Consul 入門 31 / 65 
ご注意ください 
• 
Serf の機能は Consul に統合されつつあります 
• 
しかし、試すべき理由が3つあります 
➡ 
機能が少ないため、 いきなり Consul を触るよりも、Serf のほうが扱いやすいです 
➡ 
クライアント・サーバ型ではないため、 簡単にクラスタを構成できます 
➡ 
1つのツールとして完成形になりつつあります
Serf / Consul 入門 32 / 65 
Serf は何ができますか? 
• 
一斉にコマンドを実行します ( exec , query ) 
➡ 
shutdown –h now 
➡ 
service httpd restart 
➡ 
service network restart 
➡ 
iptables -A INPUT -p tcp -s XXX --dport 80 -j DROP 
• 
監視登録やアプリケーションの設定変更をします
Serf / Consul 入門 33 / 65 
動作環境は? 
• 
複数の OS やアーキテクチャに対応しています 
➡ 
Linux ( 32bit, 64bit, ARM ) 
➡ 
FreeBSD ( 32bit, 64bit,ARM ) 
➡ 
MacOS X ( 32bit, 64bit ) 
➡ 
OpenBSD ( 32bit, 64bit ) 
➡ 
Windows ( 32bit, 64bit )
Serf / Consul 入門 34 / 65 
セットアップ方法は?( Linux ) 
• 
バイナリを入手し、サーバ上に配置します 
➡ 
wget -O 0.6.3_linux_amd64.zip ¥ https://dl.bintray.com/mitchellh/serf/0.6.3_linux_amd64.zip 
➡ 
unzip ./0.6.3_linux_amd64.zip 
➡ 
mv ./serf /usr/local/bin/serf 
➡ 
serf version Serf v0.6.3 Agent Protocol: 4 (Understands back to: 2)
Serf / Consul 入門 35 / 65 
Serf をどう動かしますか? 
• 
“serf” コマンドをエージェントとして起動します 
➡ 
serf agent & 
==> Starting Serf agent... 
==> Starting Serf agent RPC... 
==> Serf agent running! 
Node name: 'sion.pocketstudio.net' 
Bind addr: '0.0.0.0:7946' 
RPC addr: '127.0.0.1:7373' 
Encrypted: false 
Snapshot: false 
Profile: lan 
==> Log data will now stream in as it occurs: 
2014/12/06 14:28:33 [INFO] agent: Serf agent starting 
2014/12/06 14:28:33 [INFO] serf: EventMemberJoin: sion.pocketstudio.net 
$ serf members 
sion.pocketstudio.net 10.0.2.15:7946 alive
Serf / Consul 入門 36 / 65 
クラスタはどうしますか? 
A 
B 
serf join 
Agent joining: [B] 
Initiating push/pull sync with: B 
initiating push/pull sync 
Responding push/pull sync 
Responding to push/pull sync with: A 
EventMemberJoin: B 
EventMemberJoin: A 
• 
serf join コマンドを使います 
➡ 
serf join <IP addr>
A 
B 
Agent joining: [A] 
Initiating push/pull sync with: B 
Responding to push/pull sync with: C 
initiating push/pull sync 
Responding push/pull sync 
C 
ノード C が仲間になりたがってこっちを見ている! 
serf join 
EventMemberJoin: B 
EventMemberJoin: A 
EventMemberJoin: C 
EventMemberJoin: C
Serf / Consul 入門 38 / 65 
どんなイベントがありますか? 
• 
メンバ管理系 
➡ 
member-join … 参加 
➡ 
member-fail … 障害 
➡ 
member-leave … 離脱 
➡ 
member-leap … 削除 
➡ 
member-update … 更新 
• 
ユーザによる任意発生 
➡ 
event … 一方的に実行するだけ 
➡ 
query … 結果も取得する
Serf / Consul 入門 39 / 65 
イベントで何かするには? 
• 
“イベント・ハンドラ”を指定します 
➡ 
serf agent –event-handler=“event.sh” 
• 
シェルスクリプト 
• 
Perl, Ruby, Python … 
• 
バイナリ 
• 
その他の構成管理ツールとの連携
Serf / Consul 入門 40 / 65 
MuninやZabbix
Serf / Consul 入門 41 / 65 
LVS 
#!/bin/sh while read line do echo ${line} HOSTNAME=`echo ${line} | cut -d ' ' -f 1` ADDRESS=`echo ${line} | cut -d ' ' -f 2` ROLE=`echo ${line} | cut -d ' ' -f 3` case ${SERF_EVENT} in "member-join") if [ "${ROLE}" = "webapp" ] ; then ipvsadm -a -t 192.168.39.1:80 -r ${ADDRESS}:80 -g fi;; "member-leave" | "member-failed") if [ "${ROLE}" = "webapp" ] ; then ipvsadm -d -t 192.168.39.1:80 -r ${ADDRESS}:80 fi;; ¥?) echo "other";; esac break done exit 0 
# ipvsadm -A -t 192.168.39.1:80 -s rr 
# ipvsadm -a -t 192.168.39.1:80 -r 192.168.39.11:80 -g 
# ipvsadm -a -t 192.168.39.1:80 -r 192.168.39.12:80 -g 
# ipvsadm -Ln 
IP Virtual Server version 1.2.1 (size=4096) 
Prot LocalAddress:Port Scheduler Flags 
-> RemoteAddress:Port Forward Weight ActiveConn InActConn 
TCP 192.168.39.1:80 rr 
-> 192.168.39.11:80 Route 1 0 0 
-> 192.168.39.12:80 Route 1 0 0
Serf / Consul 入門 42 / 65 
イベントを判別するには? 
• 
環境変数を使います。 
#!/bin/sh 
echo 
echo "$0 triggered!" 
echo 
echo "SERF_EVENT is ${SERF_EVENT}" 
echo "SERF_SELF_NAME is ${SERF_SELF_NAME}" 
echo "SERF_SELF_ROLE is ${SERF_SELF_ROLE}" 
echo "SERF_SELF_TAG is ${SERF_SELF_TAG}" 
echo "SERF_TAG_ROLE is ${SERF_TAG_ROLE}" 
echo "SERF_TAG_STATUS is ${SERF_TAG_STATUS}" 
echo "SERF_USER_EVENT is ${SERF_USER_EVENT}" 
echo "SERF_USER_LTIME is ${SERF_USER_LTIME}" 
echo "SERF_QUERY_NAME is ${SERF_QUERY_NAME}" 
echo "SERF_QUERY_LTIME is ${SERF_QUERY_LTIME}" 
echo 
echo "BEGIN event data" 
while read line; do 
echo $line 
done 
echo "END event data" 
echo "$0 finished!" 
echo 
Event Handlers - Serf by HashiCorp 
https://www.serfdom.io/docs/agent/event-handlers.html 
• 
これを使えば・・・ 
➡ 
監視の自動追加・削除 
➡ 
設定変更の自動化 
➡ 
アイディア次第で何でも!
Serf / Consul 入門 43 / 65 
詳しくは… 
• 
https://serfdom.io/ 
• 
Re: ご注文は自動化ですか?[2] http://www.slideshare.net/zembutsu/re-is-the-order-an-automation-2nd 
Software Design 
2014年9月・10月号 
“オーケストレーションツールSerf・Consul入門”
Consul 超入門
Serf / Consul 入門 45 / 65 
Consulが必要な理由 
• 
Serf は万能ではありません 
➡ 
イベント発生のトリガは2種類でした 
• 
Serf クラスタへの参加や離脱 
• 
任意のタイミングでのイベント実行 
➡ 
ウェブサーバの応答やDB サーバ障害をトリガにしたい時は? 
• 
Serf で行えますが、非常に面倒です 
• 
そんな時は Consul です
Serf / Consul 入門 46 / 65 
Consulはどう使いますか? 
• 
サーバ環境とクライアント環境を作ります 
➡ 
Consul サーバ 
• 
HTTP、DNS、WEB UI のインターフェースを持ちます 
• 
KVS を持ち、Consul クライアントの状態を保持します 
• 
状況変化をトリガとして、コマンドを実行できます 
• 
Raft プロトコルで可用性を高めています 
➡ 
Consul クライアント 
• 
consul エージェントでサービスを定義して、監視します
クライアント 
( consul node) 
サーバ 
( consul server)
クライアント 
( consul node) 
サーバ ( consul server) 
A 
B 
C 
新しいサービスが追加される 
まだサーバは何も知らない
クライアント 
( consul node) 
サーバ 
( consul server) 
A 
B 
C 
エージェントは 
サーバに情報を伝えると 
新しいサービスが追加される
クライアント 
( consul node) 
サーバ 
( consul server) 
A 
B 
C 
エージェントは サーバに情報を伝えると 
はじめて同期する 
A 
B 
C
クライアント 
( consul node) 
サーバ 
( consul server) 
A 
B 
もし、サービスが消えると 
A 
B 
C
クライアント 
( consul node) 
サーバ ( consul server) 
A 
B 
クライアントはサーバと情報を比較 サーバに“C”は不要と伝える 
A 
B 
C
クライアント 
( consul node) 
サーバ 
( consul server) 
A 
B 
クライアントはサーバと情報を比較 
サーバに“C”は不要と伝える 
A 
B 
あいよ
クライアント 
( consul node) 
サーバ ( consul server) 
A 
B 
クライアントはサーバと情報を比較 サーバに“C”は不要と伝える 
A 
B 
あいよ 
クライアントとサーバで情報が同期。この性質がアンチエントロピー
クライアント 
( consul node) 
サーバ 
( consul server) 
A 
B 
クライアントはサーバと情報を比較 サーバに“C”は不要と伝える 
A 
B 
あいよ 
クライアントとサーバで情報が同期。この性質がアンチエントロピー 
決定権を持つのは、クライアント側 
サービス状況の変更をトリガとして 
ただちに様々な動作を行える
Serf / Consul 入門 56 / 65 
どうやって使いますか? 
• 
consul にオプションを付けます 
➡ 
サーバ 
• 
$ consul agent -server -bootstrap ¥ -dc=local -node=consul1 -data-dir=/tmp/consul 
➡ 
クライアント 
• 
consul agent -dc=local -node=consul2 ¥ -data-dir=/tmp/consul2 -join=192.168.39.5
Serf / Consul 入門 57 / 65 
サービスはどう定義しますか? 
• 
JSON形式のファイルを用意します。 
{ 
"service": { 
"name": "mysql", 
"port": 3306, 
"check": { 
"script": "/usr/bin/mysqladmin -h 127.0.0.1 ping > /dev/null 2>&1", 
"interval": "10s" 
} 
} 
}
Serf / Consul 入門 58 / 65 
状態を知るには? 
• 
Web UI 
• 
HTTP API 
➡ 
JSON 
➡ 
REST API 
• 
DNS
Serf / Consul 入門 59 / 65 
DNSをどう使いますか? 
• 
正常なサービスを応答します 
➡ 
dig <サービス名>.<ノード名>.<データセンタ名>.consul 
• 
どんなシーンで使えますか? 
➡ 
DNS ラウンドロビン 
➡ 
名前解決によるマスター・スレーブの切り分け 
➡ 
などなど
Serf / Consul 入門 60 / 65 
イベントをトリガとするには? 
• 
“consul watch”を使います 
➡ 
status が変化したタイミングで任意のコマンドを実行します 
➡ 
consul watch –http-addr=127.0.0.1:8500 ¥ -type=service –service=mysql /opt/action.sh 
Watches - Consul 
http://www.consul.io/docs/agent/watches.html 
$ curl -s http://127.0.0.1:8500/v1/health/checks/mysql | jq '.[] | .Status' 
"passing"
Serf / Consul 入門 61 / 65 
設定ファイルの動的反映とは? 
• 
consul-template を使います 
➡ 
git clone https://github.com/hashicorp/consul-template.git 
➡ 
cd consul-template 
➡ 
make 
➡ 
sudo cp ./bin/consul-template /usr/local/bin/consul-template 
• 
用途 
➡ 
設定ファイルをテンプレートを元に自動生成・コマンド実行 
➡ 
例:リバースプロキシ用の設定ファイル作成後、デーモン再起動
Serf / Consul 入門 62 / 65 
詳しくは… 
• 
https://consul.io/ 
• 
Re: ご注文は自動化ですか?[2] http://www.slideshare.net/zembutsu/re-is-the-order-an-automation-2nd 
Software Design 
2014年9月・10月号 
“オーケストレーションツールSerf・Consul入門”
まとめ
Serf / Consul 入門 64 / 65 
仕事が楽になる、楽しくなる 
• 
なぜ Serf や Consul なのか? 
➡ 
複数台のサーバ管理が前提になる時代の課題を解決 
• 
開発は、構成管理ツール ( Chef, Puppet, Ansible 等 ) 
• 
運用でも、効率的に行う必要性 
➡ 
人間がボトルネックになっている現状認識 
• 
時間が掛かる 
• 
間違える 
➡ 
監視一次対応(判断不要な手順書)レベルの自動化につながる 
• 
実際には作り込みが必要だし、パーツも足りない
“すべての障害を 生まれる前に消し去りたい” この願いを叶えるには? 
To Be Continued …

Contenu connexe

Tendances

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPFShuji Yamada
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~モノビット エンジン
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 

Tendances (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 

Similaire à Serf / Consul 入門 ~仕事を楽しくしよう~

Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介cloudconductor
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwMasahito Zembutsu
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Uchio Kondo
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?Masahito Zembutsu
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Masahito Zembutsu
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry(続) はじめてのCloud Foundry
(続) はじめてのCloud FoundryTomohiro Ichimura
 
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介Automation Anywhere Japan
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web serverTomoaki Konno
 

Similaire à Serf / Consul 入門 ~仕事を楽しくしよう~ (20)

Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwww
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
Tottoruby 20110903
Tottoruby 20110903Tottoruby 20110903
Tottoruby 20110903
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry
 
Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介Automation Anywhere Enterprise A2019.16 新機能紹介
Automation Anywhere Enterprise A2019.16 新機能紹介
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web server
 
serverless
serverlessserverless
serverless
 

Plus de Masahito Zembutsu

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜Masahito Zembutsu
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GAMasahito Zembutsu
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19Masahito Zembutsu
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」Masahito Zembutsu
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話Masahito Zembutsu
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」Masahito Zembutsu
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へMasahito Zembutsu
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020Masahito Zembutsu
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編Masahito Zembutsu
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Masahito Zembutsu
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようMasahito Zembutsu
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19osMasahito Zembutsu
 
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019  Winter version and KnativeCNCF Updates 2019  Winter version and Knative
CNCF Updates 2019 Winter version and KnativeMasahito Zembutsu
 
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)Masahito Zembutsu
 

Plus de Masahito Zembutsu (20)

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へ
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしよう
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os
 
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019  Winter version and KnativeCNCF Updates 2019  Winter version and Knative
CNCF Updates 2019 Winter version and Knative
 
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Dernier (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

Serf / Consul 入門 ~仕事を楽しくしよう~

  • 1. Masahito Zembutsu @zembutsu Technology Evangelist; Creationline , Inc. Shinagawa, Tokyo, 11 Dec 2014 Code the Clouds Mix-up Vol. 2 Serf / Consul 入門 ~仕事を楽しくしよう~ Why I need serf and Consul?
  • 2. Serf / Consul 入門 3 / 65 今日の内容 • 運用だが、もう人間は限界かもしれない • Serf や Consul は何を解決しますか? • Serf 入門 • Consul 入門 Topics of today.
  • 4. 計画 発注 納品 設置 設定 監視 運用開始
  • 5. 計画 発注 納品 設置 設定 監視 運用開始 実際のフローでは、ここがネックになりがち・・・ 数週~1ヶ月程度 few weeks or a month
  • 6. 計画 発注 納品 設置 設定 監視 運用開始 クラウド・コンピューティング基盤 Infrastructure as a Service 1クリック one click
  • 7. 計画 発注納品 監視 運用開始 クラウド・コンピューティング基盤 Infrastructure as a Service 数分~10分 few minutes
  • 8. Serf / Consul 入門 9 / 65 開発サイドに福音 • すぐにサーバーが欲しい ➡ クラウド・コンフィグレーション基盤の普及 • すぐにサービスを展開したい ➡ 構成管理ツールやデプロイツールの普及 • Chef, Ansible, Puppet, Salt Stack, Capistrano … etc
  • 9. 計画 発注納品 監視 運用開始 クラウド・コンピューティング基盤 Infrastructure as a Service 数分~10分 few minutes 発注納品 発注納品 継続的デリバリー 継続的デプロイ 継続的インテグレーション
  • 12. 水 金 地 火 木 土 天 冥 海 Mercury Venus Earth Mars Jupiter Saturn Uranus Pluto Neptune Hyperion
  • 14. 監視 Monitoring 状況判断 Situation Analysis 行動 Action
  • 15. 計画 発注納品 監視 運用開始 発注納品 発注納品 監視 運用 監視 運用 クラウドによって環境の準備が迅速になったはず。 しかし、台数の増加やシステム構成の複雑化によって、 クラウドの価値を相殺しているのではないのか?
  • 16. Serf / Consul 入門 17 / 65 運用サイドに残る課題 • 動的に変化する環境 ➡ ホスト名・IPアドレスとサービスをどのように管理するか ➡ 構成図や手順書や不定期な見直し • 求められる迅速な対応 ➡ 現実世界と密接にかかわるサービスは、速やかな復旧が必要 ➡ 管理対象のサーバーやサービス数の増加・複雑化
  • 19. Serf / Consul 入門 20 / 65 解決したい事は? • 動的に変わる環境の管理を楽にしたい ➡ サーバの追加・停止のタイミングで 監視や設定を連動したい • 迅速に行動を起こしたい ➡ 一次対応レベルの作業も、すぐにこなしたい ➡ 複数台の環境にまたがる作業を、スムーズに対応したい
  • 22. Serf や Consul は 何を解決してくれますか?
  • 24. Serf / Consul 入門 25 / 65 Serfの役割 • メンバ管理 ➡ serf エージェント間でクラスタを構成し、情報を保持 • イベントの共有 ➡ クラスタ全体で、イベントを瞬時に共有 • トリガ機能 ➡ イベント発生時に、任意のコマンドをクラスタ全体で実行
  • 25. Serf / Consul 入門 26 / 65 Consulの役割 • サービス・レベルの管理とイベント同期 ➡ Serf と同じ事を、ウェブやデータベース等のサービスが対象 • インターフェースの提供 ➡ HTTP ( REST API ) ➡ DNS ➡ Key Value Storage
  • 26. Serf / Consul 入門 27 / 65 Serf / Consul 比較 Serf vs. Consul http://www.serfdom.io/intro/vs-consul.html Serf Consul 目的 サービス検出とオーケストレーション サービス検出と設定 ヘルスチェック 低レベル(ノード死活監視) サービス単位で高度な調整 キーバリューストア なし あり メンバーシップ ノード単位 サービス単位 Web API なし あり DNS インターフェース なし あり アーキテクチャ AP 型 ( 一貫性重視、可用性を犠牲 ) CP 型 ( 可用性より一貫性重視 )
  • 27. Serf / Consul 入門 28 / 65 誰が作っているの? • Hashicorp 社 ➡ https://www.hashicorp.com/ • Vagrant • Packer • Terraform • Serf • Consul • ATLAS ← New!
  • 29. Serf / Consul 入門 30 / 65 Serf とは何ですか? • メンバ管理とイベント同期のためのツール ➡ サーバを必要としないクラスタを、 相互通信するゴシップ・プロトコルによって構成 • すぐに動く・使える ➡ バイナリ1個を置くだけで、依存関係が無い ➡ 低い学習コスト(シェルスクリプト程度の知識で使える)
  • 30. Serf / Consul 入門 31 / 65 ご注意ください • Serf の機能は Consul に統合されつつあります • しかし、試すべき理由が3つあります ➡ 機能が少ないため、 いきなり Consul を触るよりも、Serf のほうが扱いやすいです ➡ クライアント・サーバ型ではないため、 簡単にクラスタを構成できます ➡ 1つのツールとして完成形になりつつあります
  • 31. Serf / Consul 入門 32 / 65 Serf は何ができますか? • 一斉にコマンドを実行します ( exec , query ) ➡ shutdown –h now ➡ service httpd restart ➡ service network restart ➡ iptables -A INPUT -p tcp -s XXX --dport 80 -j DROP • 監視登録やアプリケーションの設定変更をします
  • 32. Serf / Consul 入門 33 / 65 動作環境は? • 複数の OS やアーキテクチャに対応しています ➡ Linux ( 32bit, 64bit, ARM ) ➡ FreeBSD ( 32bit, 64bit,ARM ) ➡ MacOS X ( 32bit, 64bit ) ➡ OpenBSD ( 32bit, 64bit ) ➡ Windows ( 32bit, 64bit )
  • 33. Serf / Consul 入門 34 / 65 セットアップ方法は?( Linux ) • バイナリを入手し、サーバ上に配置します ➡ wget -O 0.6.3_linux_amd64.zip ¥ https://dl.bintray.com/mitchellh/serf/0.6.3_linux_amd64.zip ➡ unzip ./0.6.3_linux_amd64.zip ➡ mv ./serf /usr/local/bin/serf ➡ serf version Serf v0.6.3 Agent Protocol: 4 (Understands back to: 2)
  • 34. Serf / Consul 入門 35 / 65 Serf をどう動かしますか? • “serf” コマンドをエージェントとして起動します ➡ serf agent & ==> Starting Serf agent... ==> Starting Serf agent RPC... ==> Serf agent running! Node name: 'sion.pocketstudio.net' Bind addr: '0.0.0.0:7946' RPC addr: '127.0.0.1:7373' Encrypted: false Snapshot: false Profile: lan ==> Log data will now stream in as it occurs: 2014/12/06 14:28:33 [INFO] agent: Serf agent starting 2014/12/06 14:28:33 [INFO] serf: EventMemberJoin: sion.pocketstudio.net $ serf members sion.pocketstudio.net 10.0.2.15:7946 alive
  • 35. Serf / Consul 入門 36 / 65 クラスタはどうしますか? A B serf join Agent joining: [B] Initiating push/pull sync with: B initiating push/pull sync Responding push/pull sync Responding to push/pull sync with: A EventMemberJoin: B EventMemberJoin: A • serf join コマンドを使います ➡ serf join <IP addr>
  • 36. A B Agent joining: [A] Initiating push/pull sync with: B Responding to push/pull sync with: C initiating push/pull sync Responding push/pull sync C ノード C が仲間になりたがってこっちを見ている! serf join EventMemberJoin: B EventMemberJoin: A EventMemberJoin: C EventMemberJoin: C
  • 37. Serf / Consul 入門 38 / 65 どんなイベントがありますか? • メンバ管理系 ➡ member-join … 参加 ➡ member-fail … 障害 ➡ member-leave … 離脱 ➡ member-leap … 削除 ➡ member-update … 更新 • ユーザによる任意発生 ➡ event … 一方的に実行するだけ ➡ query … 結果も取得する
  • 38. Serf / Consul 入門 39 / 65 イベントで何かするには? • “イベント・ハンドラ”を指定します ➡ serf agent –event-handler=“event.sh” • シェルスクリプト • Perl, Ruby, Python … • バイナリ • その他の構成管理ツールとの連携
  • 39. Serf / Consul 入門 40 / 65 MuninやZabbix
  • 40. Serf / Consul 入門 41 / 65 LVS #!/bin/sh while read line do echo ${line} HOSTNAME=`echo ${line} | cut -d ' ' -f 1` ADDRESS=`echo ${line} | cut -d ' ' -f 2` ROLE=`echo ${line} | cut -d ' ' -f 3` case ${SERF_EVENT} in "member-join") if [ "${ROLE}" = "webapp" ] ; then ipvsadm -a -t 192.168.39.1:80 -r ${ADDRESS}:80 -g fi;; "member-leave" | "member-failed") if [ "${ROLE}" = "webapp" ] ; then ipvsadm -d -t 192.168.39.1:80 -r ${ADDRESS}:80 fi;; ¥?) echo "other";; esac break done exit 0 # ipvsadm -A -t 192.168.39.1:80 -s rr # ipvsadm -a -t 192.168.39.1:80 -r 192.168.39.11:80 -g # ipvsadm -a -t 192.168.39.1:80 -r 192.168.39.12:80 -g # ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.39.1:80 rr -> 192.168.39.11:80 Route 1 0 0 -> 192.168.39.12:80 Route 1 0 0
  • 41. Serf / Consul 入門 42 / 65 イベントを判別するには? • 環境変数を使います。 #!/bin/sh echo echo "$0 triggered!" echo echo "SERF_EVENT is ${SERF_EVENT}" echo "SERF_SELF_NAME is ${SERF_SELF_NAME}" echo "SERF_SELF_ROLE is ${SERF_SELF_ROLE}" echo "SERF_SELF_TAG is ${SERF_SELF_TAG}" echo "SERF_TAG_ROLE is ${SERF_TAG_ROLE}" echo "SERF_TAG_STATUS is ${SERF_TAG_STATUS}" echo "SERF_USER_EVENT is ${SERF_USER_EVENT}" echo "SERF_USER_LTIME is ${SERF_USER_LTIME}" echo "SERF_QUERY_NAME is ${SERF_QUERY_NAME}" echo "SERF_QUERY_LTIME is ${SERF_QUERY_LTIME}" echo echo "BEGIN event data" while read line; do echo $line done echo "END event data" echo "$0 finished!" echo Event Handlers - Serf by HashiCorp https://www.serfdom.io/docs/agent/event-handlers.html • これを使えば・・・ ➡ 監視の自動追加・削除 ➡ 設定変更の自動化 ➡ アイディア次第で何でも!
  • 42. Serf / Consul 入門 43 / 65 詳しくは… • https://serfdom.io/ • Re: ご注文は自動化ですか?[2] http://www.slideshare.net/zembutsu/re-is-the-order-an-automation-2nd Software Design 2014年9月・10月号 “オーケストレーションツールSerf・Consul入門”
  • 44. Serf / Consul 入門 45 / 65 Consulが必要な理由 • Serf は万能ではありません ➡ イベント発生のトリガは2種類でした • Serf クラスタへの参加や離脱 • 任意のタイミングでのイベント実行 ➡ ウェブサーバの応答やDB サーバ障害をトリガにしたい時は? • Serf で行えますが、非常に面倒です • そんな時は Consul です
  • 45. Serf / Consul 入門 46 / 65 Consulはどう使いますか? • サーバ環境とクライアント環境を作ります ➡ Consul サーバ • HTTP、DNS、WEB UI のインターフェースを持ちます • KVS を持ち、Consul クライアントの状態を保持します • 状況変化をトリガとして、コマンドを実行できます • Raft プロトコルで可用性を高めています ➡ Consul クライアント • consul エージェントでサービスを定義して、監視します
  • 46. クライアント ( consul node) サーバ ( consul server)
  • 47. クライアント ( consul node) サーバ ( consul server) A B C 新しいサービスが追加される まだサーバは何も知らない
  • 48. クライアント ( consul node) サーバ ( consul server) A B C エージェントは サーバに情報を伝えると 新しいサービスが追加される
  • 49. クライアント ( consul node) サーバ ( consul server) A B C エージェントは サーバに情報を伝えると はじめて同期する A B C
  • 50. クライアント ( consul node) サーバ ( consul server) A B もし、サービスが消えると A B C
  • 51. クライアント ( consul node) サーバ ( consul server) A B クライアントはサーバと情報を比較 サーバに“C”は不要と伝える A B C
  • 52. クライアント ( consul node) サーバ ( consul server) A B クライアントはサーバと情報を比較 サーバに“C”は不要と伝える A B あいよ
  • 53. クライアント ( consul node) サーバ ( consul server) A B クライアントはサーバと情報を比較 サーバに“C”は不要と伝える A B あいよ クライアントとサーバで情報が同期。この性質がアンチエントロピー
  • 54. クライアント ( consul node) サーバ ( consul server) A B クライアントはサーバと情報を比較 サーバに“C”は不要と伝える A B あいよ クライアントとサーバで情報が同期。この性質がアンチエントロピー 決定権を持つのは、クライアント側 サービス状況の変更をトリガとして ただちに様々な動作を行える
  • 55. Serf / Consul 入門 56 / 65 どうやって使いますか? • consul にオプションを付けます ➡ サーバ • $ consul agent -server -bootstrap ¥ -dc=local -node=consul1 -data-dir=/tmp/consul ➡ クライアント • consul agent -dc=local -node=consul2 ¥ -data-dir=/tmp/consul2 -join=192.168.39.5
  • 56. Serf / Consul 入門 57 / 65 サービスはどう定義しますか? • JSON形式のファイルを用意します。 { "service": { "name": "mysql", "port": 3306, "check": { "script": "/usr/bin/mysqladmin -h 127.0.0.1 ping > /dev/null 2>&1", "interval": "10s" } } }
  • 57. Serf / Consul 入門 58 / 65 状態を知るには? • Web UI • HTTP API ➡ JSON ➡ REST API • DNS
  • 58. Serf / Consul 入門 59 / 65 DNSをどう使いますか? • 正常なサービスを応答します ➡ dig <サービス名>.<ノード名>.<データセンタ名>.consul • どんなシーンで使えますか? ➡ DNS ラウンドロビン ➡ 名前解決によるマスター・スレーブの切り分け ➡ などなど
  • 59. Serf / Consul 入門 60 / 65 イベントをトリガとするには? • “consul watch”を使います ➡ status が変化したタイミングで任意のコマンドを実行します ➡ consul watch –http-addr=127.0.0.1:8500 ¥ -type=service –service=mysql /opt/action.sh Watches - Consul http://www.consul.io/docs/agent/watches.html $ curl -s http://127.0.0.1:8500/v1/health/checks/mysql | jq '.[] | .Status' "passing"
  • 60. Serf / Consul 入門 61 / 65 設定ファイルの動的反映とは? • consul-template を使います ➡ git clone https://github.com/hashicorp/consul-template.git ➡ cd consul-template ➡ make ➡ sudo cp ./bin/consul-template /usr/local/bin/consul-template • 用途 ➡ 設定ファイルをテンプレートを元に自動生成・コマンド実行 ➡ 例:リバースプロキシ用の設定ファイル作成後、デーモン再起動
  • 61. Serf / Consul 入門 62 / 65 詳しくは… • https://consul.io/ • Re: ご注文は自動化ですか?[2] http://www.slideshare.net/zembutsu/re-is-the-order-an-automation-2nd Software Design 2014年9月・10月号 “オーケストレーションツールSerf・Consul入門”
  • 63. Serf / Consul 入門 64 / 65 仕事が楽になる、楽しくなる • なぜ Serf や Consul なのか? ➡ 複数台のサーバ管理が前提になる時代の課題を解決 • 開発は、構成管理ツール ( Chef, Puppet, Ansible 等 ) • 運用でも、効率的に行う必要性 ➡ 人間がボトルネックになっている現状認識 • 時間が掛かる • 間違える ➡ 監視一次対応(判断不要な手順書)レベルの自動化につながる • 実際には作り込みが必要だし、パーツも足りない