YAPC::Asia Tokyo 2012 前夜祭
ブログを書くまでが YAPC、ってことで、ぼちぼち書いていきます。まずは前夜祭から。
Sqale の裏側 というタイトルで、ペパボが提供する Ruby/Rack アプリが動く PaaS Sqale の裏側のアーキテクチャについてお話してきました。
YAPC で Perl がまったく出てこない話をしたのは、これがはじめてです。こんなトークを採択してくださって、本当にありがとうございます。
内容的には、 札幌 Ruby 会議 2012 でお話しした内容とほとんど同じで、Sqale で利用している技術のうち、主に以下の3つについてお話しました。
- LXC やカーネルパッチなどの OS レイヤー
- ウェブプロキシのダイナミックルーティングを Nginx + Lua + Redis で実現
- SSH のルーティングを如何に実現しているか
スライドで紹介したリンクについて、こちらにもまとめておきます。
- Sqale で利用しているカーネルパッチ
- ひろやん が Nginx + Lua + Redis について書いている はてダエントリ
- OpenSSH Script Auth Patch
- SSH ルーティングの着想を得た GitHub CTO のブログエントリ
- @lamanotrama さんによる サーバ構築自動化(on AWS) Sqale の場合
SSH Router 実現のためにあてている OpenSSH パッチ、似たようなパッチが実は、RedHat 系ディストリビューションで入る OpenSSH にあたっているのですが、期待している挙動と微妙に異なるため、独自にパッチをあてることにしました。
また、Heroku では SSH Router と同じことを実現するために Twisted を使っている、という情報を刺身が中の人から仕入れてきたので調べてみたところ、 twisted.conch.ssh という、SSHv2 実装がありました。
独自パッチをあてる方式は、OpenSSH へのアップデートに追従するのがきついので、Twisted ベースに切り替えることも検討しており、そのために funnel というものを開発中です。(まだ API 検討中なのと、動作確認コード書いただけですが。)
funnel という名称は、GitHub 社で Git のルーティングを実現しているライブラリの名前が Chimney で、それの類義語からとっています。アニメとかからとったわけではないです。
札幌 Ruby 会議 2012 でも、YAPC::Asia Tokyo 2012 でも聞き逃したけど、やっぱり生で聞きたい、という方、ご安心ください。12/7, 8 に行われる、RubyConf.tw 2012 でも 同じ内容でプレゼン する予定です。台湾でお待ちしています。
札幌 Ruby 会議 2012 で登壇したペパボの同僚、 hsbt , kentaro , kyanny も、同様に RubyConf.tw 2012 で登壇します。