There's an echo in my head

日々のメモ。

Immutable Infrastructure Conference #1に行ってきた

メモ程度。

@naoya_ito

開発プロセスのはなし https://speakerdeck.com/naoya/immutable-infrastructuregakai-fa-purosesuniyu-eruying-xiang-jia-number-immutableinfra

(DBも2つのインスタンスにクエリを投げ続けて、片系ずつマイグレートしていくってできる?)

http://chadfowler.com/blog/2013/06/23/immutable-deployments/ http://martinfowler.com/bliki/BlueGreenDeployment.html

http://12factor.net http://twelve-factor-ja.herokuapp.com/

shared nothing 環境とアプリケーションを完全に独立させる必要がある、コードではなく設定で紐付ける その結果移植性・再現性が高まる、testabilityも高まる

quipperのステージングを自動で立てていくやつ、コミュニケーションが非同期にできるのでよい

コンテナベース = 上書きじゃない、モノ(gitのコミットとか)ごとにハコができる感じのやつ モノの移植性が高まるのが便利

@gosukenator

コンテナ上のデメリット(躓くところ)

コンテナはVMじゃない、OSの領域を区切って使うだけ コンテナ上からじゃ見えない領域があったりするのでコンテナならではの分岐が必要になる → 本来VMで動かすもののテスト環境としてコンテナを使うのはオススメしない (ntpdとかinitとか)

コンテナはアプリケーションに集中して、それ以外はホストOS側にまかせる コンテナーOS間が疎になる アプリケーション側のtestabilityが高まる

状態のテストよりも振る舞いのテストが重要

@sonots

Orchestrationのはなし http://www.slideshare.net/sonots/serf-iiconf-20140325

http://blog.livedoor.jp/sonots/archives/29646713.html

Serf: サーバのクラスタリング

複数種類のサーバ群をクラスタリングすることができる たとえばWebとLoadBalancerでクラスタリングしておいて、Webが追加されたら Load Balancerのイベントハンドラではそのサーバをバランシング対象に追加する

agent型では立ち上がったクラスタの要素が勝手にデータを送ってくれるので、中央の誰かがいなくても済む serfは立ち上がったことを中央に自分から通知する仕組みだけを提供するので、中央集権型のものを agent型のように使うことができる

nagiosは中央集権型、sensuはagent型 http://sensuapp.org/ http://blog.glidenote.com/blog/2013/11/26/sensu/

https://twitter.com/naoya_ito/status/448413552097775616 https://twitter.com/bash0C7/status/448413542073389056 https://twitter.com/bash0C7/status/448414408826302464

最初に誰にjoinするか → DNSラウンドロビンでいいんじゃね?

serfの伝搬スピード。30ノードで1.25s、100ノードでも2s

監視を外すタイミング member-leaveのみ、member-downはサーバが本当に死んだ可能性があるので要注意

@tatsuru

https://speakerdeck.com/tatsuru/mesoswoshi-tutaimmutable-infra-guan-li-sisutemuwozuo-tutemita

コンテナごとに役割をもたせると取り回しがいいかも。 app用、fluentd用、sensu用

@mirakui

Synapseをつかってみたはなし

http://www.publickey1.jp/blog/14/110jaws_day_2014_1.html https://speakerdeck.com/mirakui/cookpads-deployment-and-auto-scaling

airbnb/synapse 任意のサービスディスカバリをhaproxyに反映するやつ http://haproxy.1wt.eu/

docker-watcherを使ってみた 動くけど、コンテナの立ちあげのたびにポートマッピングが必要だったりちょっと微妙

ちなみにcookpadではhaproxy.cfgをERBで書いて、cronで定期的に再生成してる

http://wazanova.jp/post/65476446536/airbnb-smartstack

@stanaka

https://speakerdeck.com/stanaka/immutable-infrastructureshi-dai-falsesabaguan-li-number-immutableinfra

Roleベースの管理 ロールによる一括デプロイとか一括sshログインとか 集合を対象としたパフォーマンス管理

@katzchang

https://gist.github.com/katzchang/7925728

note

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。