YAPC::Asia 2015に参加してきた(2日目編)

参加レポートYAPC::Asia 2015に参加してきた(前夜祭編)の続きです。

2日目

Google Cloud Platformの謎テクノロジーを掘り下げる

togetterにまとめられていました → http://togetter.com/li/863802

記事もあがっていました。内容は以下を見ると良いかと思います。
http://qiita.com/kazunori279/items/3ce0ba40e83c8cc6e580

個人的な感想としては、、真新しい話はそんなになかった気がします(-_-;)
また、「UDFが出る」と言われて続けていて、本当かな?と思っていたのですが、今度こそ本当にリリースされましたね!(^o^)
弊社で早速使ってみて、記事があるのでこちらも見ていただけると嬉しいです。
http://tech.feedforce.jp/introduce-udf.html
Googleのインフラは全て共用で、GCPがすごいのはそういうところなんだなと感動しました。

我々はどのように冗長化に失敗したのか

http://blog.kenjiskywalker.org/blog/2015/08/22/yapcasia2015/

ざっくりまとめると、

  • Webサービスは絶対に動き続けてほしいと、Webサービスは絶対にどこかで壊れる
  • 経常時でもアクティブとスタンバイを常に切り替える
  • Consulとは、いい感じにDNSレコードを返すもの。これを使ってRedisを遷移して、アプリケーションに教えたい
  • $ mysql failover を使って、障害時にMasterを遷移させる
  • Consulに頼りきりになってしまうので、hostsにDNSレコードを直接書いちゃう(consul-template)
  • あとは失敗例(資料の96ページから)
    • VPNがおかしかった → 日本中をかけまわっていたw
    • 同じクエリでも遅いクエリがあった → サーバはIOの負荷がかからないところに置くべきなのでadminとかに置いてはいけない

個人的な感想としては、発表全体が笑えない内容なのに面白かったです笑
最後の、「期待するな、計測しよう」という言葉はよく聞きますがホントに大事だなと、意識しようと思いました。
あと、「手に馴染んだ道具を使おう」というのも、エンジニアだと新しいものを使いたくなりますが、やはり枯れた技術の安定感は大事ですよね。
この辺り技術の選定の際に「新しいの使わせてくれない。この老害め」みたいな葛藤、難しさはありそうだなぁと思いました。

MySQLで2億件のシリアルデータと格闘した話

togetterにまとめられていました → http://togetter.com/li/863802

記事もあがっていました。合わせて見てもと良いかと思います。
http://saiken3110.hatenablog.com/entry/2015/08/23/194458

ざっくりまとめると、

  • 主にDBのチューニングの話
  • DBのスペックが厳しい状態でサービスをリリースしなければならなかった
  • テストは本番に近い環境でやることが大事
  • 登録件数が増えるとINSERTが遅延し始める
  • 主キーをシリアル番号にしていたが、ランダムなのでシーケンスに変えてスピードアップ
    • INSERT、UPDATEは連番だと速い。ランダムだと、indexの再作成が発生する

個人的な感想としては、DBのチューニング(正規化とでも言うのかな…?)はホントに大事なんだなと思いました。
自分自身、まだそれほど大きなアプリケーションを構築したことがないので、遭遇したら今回の話を思い出して設計したいと思いました。
お客さんの前でデモしたら1時間かかったという件が面白かったです笑(笑えない話なんですが…)

3分でサービスのOSを入れ替える技術

Rubyコミッタ柴田さんの2回目の発表です。

内容とかは私のまとめよりも以下の記事の方がよくまとまっていると思います(^_^;)
http://qiita.com/ariarijp/items/c0e161ca31c6a5da4b2e#3%E5%88%86%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AEos%E3%82%92%E5%85%A5%E3%82%8C%E6%9B%BF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93

あと、発表者の記事にも捕捉が書いてあったので合わせて見てもと良いかと思います。
http://www.hsbt.org/diary/20150822.html#p01

ざっくりまとめると、

  • ゴールデンイメージをもとに手順書ベースでサーバを増やしていた。でも数が多くなると時間がかかるので、Puppetを使った
  • 自動化するにあたって、SSHを禁止した。自動化したい時に、無駄が起こりうるような要素を禁止することでイノベーションが生まれる
  • OSの起動時にいろいろ初期設定をしてくれるCloud initを使った。ドキュメントがなかったので、コードを読んで理解した
  • アプリケーション側で、スケールアウトする際にホスト名とかIPで依存したくない
    • IPアドレスを固定とかしたくないので、IaaSが提供しているAPIとか、自分自身のホスト名を返すようなコードにした
  • 50台以上になると、Nagiosだと対応しきれない、Consulでプロセス監視するようにした
    • Mackerelもスケールされたサーバの監視が得意なので使った
  • オートスケールで大事なこと
    • 人間がどれくらいサーバが増えるかを予測できなくてもいいようにする
    • 大丈夫なの?というアーキテクチャでもある程度試して良さそうなら突っ込んじゃって良い
    • 手作業は絶対やらないようにする
  • Packerを使って、処理が重いフェーズごとにイメージを作成するようにした
  • Blue-Green Deploymentは、これまでのことをやっていれば簡単にできる

個人的な感想としては、インフラの話が満載で自分にはちょっと難しい話でした(^_^;)
発表の始めにあんちぽさんが出てきたんですが、CMといいインパクト充分な面白さがありますよね(スゴイお方なんですが)
もはや最近はスケールアウトするにも、コードによる構成管理が大事なんだなと思いました。
あと、アプリケーション側の設定で、ホスト名とかに依存しないようにするというのはスケールアウトとかが必要になった際には意識しようと思いました。

YAPCあるある

togetterにまとめられていました → http://togetter.com/li/863907
内容の記事とかはあんまりなかったので、私の感想だけ書きたいと思います。

まず、メンツが超豪華でした

  • Tech系Podcast、Rebuild.fmの @miyagawa さん
  • SECCONの @takesako さん
  • LINEの @941 さん
  • このYAPCの主催者である、まき(@lestrrat)さん
  • Tech系Podcast、wada.fmの @yusukebe さん

内容は、過去のYAPCについて振り返るセッションでした。
過去のロゴについてとか、場所について、様々な人数の推移、トークボードについてなど話されていました。

私、今年初参加だったので、結構初参加の人がいて、「循環してますね」という言葉を聞いて、いいイベントなんだなと思いました。
あと、 @miyagawa さんが話し始めると急に Rebuild.fm っぽくなってすごく興奮しました笑

今年で最後ということで非常に残念ですが、それは運営者がやらないというだけで、来年誰かやるぞ!って人が出てきて開催されそうな気がしますね〜。
とはいえ、運営の方々、お疲れ様でしたm( )m

辛いことをやめる!から端まえる業務改善とInfrastructure as Code

ざっくりまとめると、

  • 組織改善の話だった
  • 日々に忙殺されて新しいことができなくなる負のサイクル
  • 短い時間でも繰り返し作業がある場合は自動化する
  • 長い時間を取られてしまう場合は、情報共有がうまくいってない
  • 実際に改善していくには仲間を作る、なるべく影響力のある人
    • 絶対にケンカしてはダメ
    • 理由をちゃんと説明する
  • CTOを説得すれば良い
    • 「それはあなたの独断ですよね?」とか、「組織として全体の意見なんですか?」と聞かれるのが辛い
  • 布教して、ハンズオンは絶対やる。
    • ドキュメンテーションは必須
    • フォローは必須。動かなくなったツールとかはすぐに諦めちゃう

個人的な感想として、質問の中で「ボトムアップとトップダウン、組織改善していくならどっちが良いですか?」という質問があって、回答としては「トップダウン」と回答されていて、大勢の方が誤解したのではないのかなと思った。
発表者が言いたかったのはきっと、ボトムアップで改善提案をするのはもちろん(当たり前的な)のことで、ちゃんと権限を持った人とかを絶対に巻き込むべき的な意味で言っていたんだと思う。
今私がいる環境ではありがたいことにボトムアップでガンガン意見を言える環境にあると思う(むしろ上下じゃなくてフラットな)
でも、それに甘んじて言わなくなってくるとまた負のサイクルになっていくので、自分がちょっとでも辛いなと思った現象には解決できそうな提案をバンバンしていきたいです。

LT

LT一覧はこちらです。
下記は資料一覧です(一部)

ざっくり感想をまとめると、

  • MySQL5.7の話、パスワードのライフタイムは知っていたけど、他は知らなかった。スライドにキレイにまとまっていたし、面白かったし、有用だった
  • 命名の話、よくひとつのメソッドで複数の機能を持たせちゃうことがあって、反省しています。ユニットテストしにくいよねってのも経験アリ
  • botになる話、面白かった。本人に相談できないことをbotに相談する辺りとか(本人がいるチャンネルで笑)
  • CSSのメトリクスを出せるツールの紹介だった。良さそうだった。
  • 本当のロック、電話の話でマジでロックだった笑
  • モールス信号の話。シュールだったけど初対面の人にはモールス信号でコミュニケーション取ろうと思いました(違)
  • CONBUさんのWi-Fi提供すごかった!本当にありがとうございました & お疲れ様でした。圧倒的感謝!!
  • VimScript難しそうだった。私はSublimeで良いです笑

YAPC全体の雑感

  • @miyagawa さんが作ったこのスケジュールがすごく便利でした!!
  • conbuさんのWi-Fi提供とても感謝しています!ありがとうございました!
  • Perlは触ったことがなかったのですが、それはあまり関係なく、Tech系のお祭りという感じがあってとても良かったです。