Posted at

GREE Tech Talk #06「Practical Go」- #greetech06 -

More than 5 years have passed since last update.


Official


peco開発で踏んだ5つの罠(仮) : 牧 大輔(LINE株式会社)


  • Slide

  • wercker(CI)でgoxcが動いてWin,Linux,Macバイナリを自動生成している

  • homebrewの対応はするべき

  • 並行処理の同期は人類に難しいので、用心しすぎて越したことはない

  • モックっぽいものはinterfaceで定義して、グローバル変数に代入していく

  • 汎用ライブラリはあればいいが、コンパイルするので別に必要はない。

  • pecoはビルドプログラミング書いたけど、配布する時はコピーしてカスタマイズしたものを埋め込むという手も現実的。

  • クロスコンパイル出来るけど、cgo使わなければ出来るけど、まだ完璧じゃない。

  • go-homedirはシェルを使用するからどうだろう・・・


Goの運用周りの泥臭い話(仮) : 田沼 修平(グリー株式会社)


  • Slide

  • Goアプリのモニタリングの基礎とミドルウェア作成の話


  • InfluxDB(時系列的データの格納に向いている)

  • Goのモニタリング方法



  • Goでサーバーを書く。


    • スキップリスト(RedisのSortedSet)の作成をGoで。ソース



  • GoでMQTTサーバーを書く。


    • MQTT・・・pubsubメッセージプロトコル

    • MQTTの利点はheaderの短さと仕様の完結差

    • redisはQoS0(力の限り送る。後は知らん)



  • 1コネクションで1ゴルーチンが作成される

  • デーモン化はフォークするよりsupervisordが良い

  • チャネルはコスト高いから使わず、mutex.lockを使用した


Experiences building InfluxDB in golang(仮) : Paul Dix(InfluxDB)


  • Goで開発されたInflexDBの話

  • シンプル

  • メンテナンスしやすい。わかりやすいから。

  • Performanceも素晴らしい

  • デプロイもバイナリ配布で簡単

  • goraft

  • InfluxDBではGCは敵になった。unsafeで回避。

  • タイムアウト問題


    • GCが停止

    • 大きいリクエスト

    • ネットワークオーバー

    • サーバーが遅い



  • ライブラリの再開発をやる

  • pprof使ってみる

  • ベンチマーク取ってみる (go test -bench=)