http://techtalk2.labs.gree.jp/ に参加してました。ポジション的には普段から GitHub:Enterprise を利用しているユーザーとしてかな。
tl;dr 不幸を解決するには金、世の中金ですぽよ〜♪
19:00 トラブルシューティングから見るGitHub:E運用の勘所
https://speakerdeck.com/koichiro/github-enterprise-troubleshooting
GitHub:Enterprise は 1 ユーザーあたりだいたい 1 月にコーヒー 2 杯分
- 20 USD / mo / user, 帝国ホテルのコーヒー換算 (= 1260 JPY)
「GitHub の障害・メンテに巻き込まれない、良いよねー ニヤニヤできる」
- GitHub Lover に運用を任せると\死にます/ らしい
Trouble 1. root disk full
- ここで githubber たちが万歳ライクなガッツポーズしてたのが印象的だった。グッと来た。
- 提供されるイメージが 10GB、最初は空きがあるけど徐々に埋まってくるので、可能な限り広げておかないとログとかに圧迫されて 突然の死 !!!
- 当時は SSH でシェルに入る事もできなかった、サポートに連絡してバックドアを教えてもらって頑張った
- 今の ghe-grow-root コマンドはこのおかげでは、という話だった (今は SSH で root はないもののメンテナンス用のコマンドが使えるシェルに入ることができます)
Trouble 2. Indexer overload
Trouble 3. Upgrade がたまにコケる
- Chef のログを見てどうにかする(らしい)
19:20 GitHub:Eじゃなくてもいいじゃん
http://www.slideshare.net/takafumionaka/is-there-anynecessityofusinggithubenterprise
Gitlab という GitHub クローンみたいなのがある
- 知らなかったけど結構まだ機能が劣ってるらしい。README表示機能ないとか、Merge Request (Pull Req 相当) に概要をかけないとか
金があるなら GHE 使え (結論) とのこと
- 結局結構 github のを自分たちで再実装するハメになってて大変そうだった
- GitHub:Enterprise を試したけど、そもそももともと subversion で あまり使ってくれないという状態になってダメだったらしい
- 最初にまずは git 移行から始めたらよかったのでは… もうておくれだけど… と思った。
- svn の運用がなかなかおもしろくて、cherry-pick 職人が1アプリにたいして専属等していてなかなか面白い感じだった、たいへんそう。
19:40 GHEとAWSと私 クックパッド
https://speakerdeck.com/takai/github-enterprise-integration-with-aws
- 弊社の話です
- 「くらく、つらい、GitHub:Enterprise のかんり…」
某 部長 がリポジトリ消して再作成したらなぜか作成できなくておこられ、サポートに連絡したら次のリリースに ghe-cleanup-repos コマンドが入ったという話
- 弁解しておくと実際はもっとふわっとしてました。
「アメリカにいる miyagawa さんに(日本時間で)土曜日 (西海岸時間で金曜日) につながらないと言われて出社…」
GitHub:Enterprise に push すると普通に GitHub の機能である webhook を使って、AWS にある普通の git サーバーにも同じ内容が push されるとかいう話
- GHE がなんらかのトラブルで落ちても、AWSに切り替えればとりあえずpushとかできるので開発は続行できる
- デプロイ等でもAWS側を見ることによって github が死んでも対応できる。
GitHub:Enterprise の他に helper という普通の Linux サーバーがイントラネットに居て、そいつが AWS と SSH トンネルを張って、GHE はそこ経由で AWS の SMTP, LDAP 等をつかうようにしているという話
- GitHub:Enterprise はそういう事ができないので、別のサーバーをたててそっちを見るようにしている
- ssh 接続の維持には autossh が便利! (実際普通にマシンに入れても便利です、brew install autossh〜〜)
外部からのアクセスもAWSにリバースプロキシをおいてSSHトンネル経由で……
独自のエクステンションを用意して GHE とわかりやすくしてる
- GHE なら favicon の色をオレンジに変えたりしてる http://os0x.github.com/2012/04/16/favicon-on-canvas/
- github 自体は最近メニューバー背景が黒くなって差別化されたけど(本家は白い)、gistについてはまだなのでそれもエクステンションでロゴを変更するなどして対応
- (一応さらに念を入れて、本家gistへ投稿しようとするとダイアログで念を押されます)
休憩時間
GitHub の人に軽く要望を入れた。英語とか気合いでなんとかなるのでは。
言ってみたら「やるわ」と即答されたけどどこまで期待してよいものなんだろうか。とりあえず結構期待して待ってる。
具体的には http://developer.github.com/v3/git/commits/ でコミットの author の name, email は取れるけど、githubのページ見た時みたいにどの github のユーザーなのか知りたいわー (リンク貼られてるじゃん、なんでAPIじゃ取れないのー)
という話をした。地味に不便なんだよねー。かといってメールアドレス投げたらgithubのIDが取れるAPIがあるわけでもないし。
GHE で API を使おうとして困ったので「こうやって回避してるんスよー」みたいな事いったら「あー、それしか現状ないのかぁ」的な反応をしてくれてよかったです。たのしみですね。
20:10 なだらかにGHEに移行する方法
https://speakerdeck.com/hakobe/namerakanigheniyi-xing-surufang-fa
- は社のSVN崩壊事件なつかしい…
- なんかさっき見た事例と似てるぞ!?
- codefridge という git ビューワを自作してたらしい
- hakobe氏「bookmark-xulっていう名前 に歴史を感じますね」 → ???「うわっっ dis られた!」
- なんか同じような事をどこもやってるという事が分かった
質疑応答で、「Unicorn のエラーページとか見ないんですか」という話になって
- hakobeさん「いやunicornとか、 ぼくら perler なんで 」
- takaiさん「えってことは見たこと無いの!??!? マジで?!!?」
- hakobeさん「えっ」
- 外野 (主に弊社各位だったような)「えーーーー!」
- そこにすかさず大場さんが補足に入って、「GitHub 本家でもたまにみるんですが、app server (unicorn) のレスポンスがタイムアウトすると怒った unicorn のロゴが出てくるエラーページがあります」という解説が入った
20:30 ペパボでのちょっと変わったGitHubの使い方
- paperboy&co ではもともと github 本家を使っていた
- なんと今朝 github:enterprise 導入に OK が出たらしい、おめでとうございます!!!
- エンジニア評価にpull requestを使ったとか、あんちぽプロマイドとか、その辺の話だった
- あんちぽプロマイド、スカイツリーがバックの奴は「ヒカリエにしようと思ったけどperlerが多かった事に気付いてやめた」とかいうストーリーがあった。
- github issues 良いですね、という話だった。
20:50 GitHub:e運用錬金術!?
- だいたい前述の通りの同じような障害ストーリーが語られた
- マシンスペックがなんかすごかった。
- どこもみんな一緒なんだな、と思った
ghe-export-mysql コマンドがテーブルロックを引き起こす (mysqldump を普通に叩いてるだけ) んだけど、という話をしてた。
- 無理やり書き換えて良い感じにしちゃった☆ みたいな事を語ってた気がするけど気にしない
21:10 特別講演
Githubber の @dreww 氏の招待講演。
- 「きょうはきてくれてありがとー」
- 「GREE にプレゼントをあげるョ!」 → github の名前がはいった (?) ウィスキー
- 「みんなにもTシャツとステッカーがあるョー!」
- Asia Pacific でフルタイムの GitHub:Enterprise サポートエンジニア募集中 とのこと
- 「最近ブラウザからブランチを切ったりファイルを作ったりできるようになりました、これによってあまりgitを知らない・gitの利点を理解しない人ともコラボレートできる」
次の GitHub:Enterprise リリースの話もあった
- 「新機能がこれくらい(モザイクつき) あるよ、見せられるのは… (モザイクが一部外れる)」
- GitHub 本家でだいたい動いて発表済みの機能が enterprise に入るとのこと
- 聞いた限りだと
- あの contribution グラフとか
- マージしたトピックブランチを web から消す奴とか
- たぶん Web からブランチを切ったりする機能とか
- GitHub Issues, Comment, Gist などでタスクリストを作れるやつとか
- あと long-running pull-requests も入るのかな? 見落としたかなかったかどっちか。
- Enterprise の specific な話でいえば、管理コンソールにAPI がつく (not yet documented だけど) とか、管理用SSHキーが複数登録できるとか、削除したリポジトリの復活ができるとか、らしい。
- あと、(さっき言ってたのをみて急遽タスクに入れたのであろう) ghe-export-mysql をテーブルロックしないようにするヨ! とも言ってた。動きが早い…
質疑応答 Q. どれくらいのスペックが結局あれば良いのでしょうか?
- 「えーと、お金と相談かな…」
- 結局最終的にはお金だった!!! 不幸はお金で解決できる!!!!
- RAM は最低 8GB, 可能なら 16GB 程度
- ディスク IO はとても大切、 root partition も満杯にならないように気をつけてね
- CPU はさほど重要じゃないかなー
- とのこと
まとめ
- GitHub:Enterprise、どこも同じような工夫をしているみたい?
- GitHub:Enterprise のトラブルもだいたいどこも共通してるトラブルがあった
- パフォーマンスについては金ですぽよ……… :;(∩´﹏`∩);:
- 良い話。
Organizer 各位、楽しかったです! お疲れ様でした!