YAPC::Asia Tokyo 2015に行ってきた

YAPC::Asia Tokyo 2015に行ってきたのでまとめ

Perlのイベント(?)ですが,インフラの話題も多く,また最近プログラミングもやるようにしているので勉強のために行ってきました.
主に以下のテーマをチェック

  • ITインフラ構築・運用
  • Docker
  • 特定言語に限らないプログラミング全般のノウハウ
  • Golang(最近書いているため)

Managing Containers at Scale with CoreOS and Kubernetes

CoreOS, Inc.のKelsey Hightower氏による話.
寝坊して10分ほど遅刻したけど席がたくさん空いていた.会場が広いせいもあるんだろうけど.

内容はCoreOSとKubernetesのデモ.
KubernetesのWebUIはとても綺麗だった.

最後の質疑メモ

Q. DBインスタンス等を立ち上げる場合,ストレージはどのようのに扱えばよいか?
A.
DockerはStatelessであることを前提としてデザインしてある
通常ホストボリュームを使うためいつも同じホストで起動するようにする必要があるが,Kubernetesではこれを制御できないため
NFSやクラウドストレージにデータを置き,Dockerホストでそれをマウントするようにする
→ etcdを使ってホスト間でマウントポイント等を同期する

Consulと自作OSSを活用した100台規模のWebサービス運用 @fujiwara

自分はConsulを触ったことがないので初歩的なことなのかも知れないが以下の点は要注意だと思った.

  • Consulクラスタノード障害時の注意点
    Consulのクラスタを維持するには最低3ノード必要.障害によりこれを下回った場合,クラスタが崩壊しConsulのKVSのデータが失われる.
    また,クラスタのLeaderノードがダウンした場合,新しいLeader選出までは問い合わせに返答できなくなる.
    (デフォルトではクエリが一度Leaderへ転送され,Leaderが返答するようになっているから)
    それを防ぐにはConsulを"Stale"モードで動作するように変更する

Strecherのように,インフラエンジニアのお仕事を手助けするものをつくりたい.と,自分がプログラミングを勉強する目的を再確認.

PolyglotのためのDocker - 我々はどこから来てどこへ向かうのか

Docker Inc.のNathan LeClaire氏.
Polyglotとは複数のプログラミング言語を扱うエンジニアのこと.サービスインフラとしてのDockerではなく,Polyglotが扱う,開発環境としてのDockerに視点を向けた話.
あの言語を学びたい,このライブラリを試してみたいとなったときに実行環境をDockerfileで記述してあれば環境構築に煩わされることもないという趣旨.

個人的にはそれをやろうとすると,プログラムを実行するためのコマンドをどう叩けばいいかということでいつも困る.
コンテナに入ってコマンドを叩くのはやりたくないし,ローカルのコマンドを叩くのと同じように扱うにはどうやればいいんだろう.(どなたか教えてほしい)

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

Consulを使ってMySQLのFailoverを実装しようとした(失敗した)話.

どうにもDBの性能が落ちる時間帯があり,クラウド事業者に頼んでホストを移行してもらったら解消した,という話題(おそらく同じホスト上の別のVMが負荷のかかる処理を行なっていた)
クラウドやってる身の人間としては,そういうのもクラウドの性質だから我慢して使ってねと思う一方,影響をこうむる他のユーザを考えると非常に悩ましい状態.
どのVMが原因なのかは調べればすぐわかるけど,使用を控えてくれとは言えないですし.

Docker3兄弟について @toritori0318

DockerとDocker Composeの使い分け.
「Docker Composeならdocker-compose upだけで起動できるから楽」なるほどなー

Adventures in Refactoring

GitHubのBen Lavender氏.
かなり喋りが速くて同時通訳の方がとても大変そうだったが見事に最後までやりきっていた.さすが.
ちなみに今回同時通訳を行なってくださったのはケイワイトレードの方々.きちんと専門用語も翻訳できていた.

変数やメソッド名に_を入れている場合,構造的には間に新たなオブジェクトを求めていることになる.
e.g.) git.pull_valid?git.pull.valid?
今度からはこのことを意識して設計してみようと思った.

Profiling & Optimizing in Go

Brad Fitzpatrick氏.

個人的には2日間で一番アツかった講演.
GolangのProfiling機能でプログラムをより軽く,より速くしていく過程をライブで実演
同機能の充実ぷりにも驚いたが,氏がEmacsを使っているのでテンションがあがった.
Golangは使い始めたばかりでこの機能をほとんど知らないので一回では理解しきれなかった.動画でもう一度見たい.

LT

たくさん笑わせてもらった.
とくに参考になったのが@yoku0825さんの「MySQL 5.7の罠があなたを狙っている」.

非常に充実した2日間でした.スタッフの方々,スピーカーの方々,ありがとうございました.

comments powered by Disqus