株式会社メルカリBackend Engineerの@yagi5です。
11月25日に開催されたGo Conferenceで、スポンサーセッションとして登壇しました。
レポートを書きたいと思います。
なお、当日は2トラックだったため、筆者が参加していないセッションについては、末尾でスライドのみ紹介します。
また、筆者が資料を見つけられていない発表もいくつかあり、もし資料をご存知の方は@yagi5まで教えてください!
Keynote
Speaker: Steven Buss
GoogleのSteven Buss氏による発表です。(資料)
NaCl → gVisorへの移行についてや、ptraceを用いたシステムコールのトレース、Google App Engine 2nd genについての、デモを交えながらのセッションでした。
Microservices実装ガイド in Go at Mercari
Speaker: @yagi5(株式会社メルカリ)
筆者による、株式会社メルカリのスポンサーセッションです。Microservicesを、実装レベルでどのようにGoで開発しているのか、について話しました。
よくあるJava IT企業で新規プロジェクトをGoで立ち上げてみてる話
Speaker: 武田 洋平(株式会社メディアドゥ)
株式会社メディアドゥ様によるスポンサーセッションです。
社内で主にJavaを使っていたところ、どのようにGoを導入したのか、についてののセッションでした。Goの習得しやすさの話や、Goを採用するまでのマネージャー層の説得についてなどを話されていました。
Pains and gains of architecting microservices on local dev environment
Speaker: @creasty, @izumin5210(ウォンテッドリー株式会社)
ウォンテッドリー株式会社様によるスポンサーセッションです。
ローカルでマイクロサービスをどのようにうまく動かすかについてのセッションでした。メルカリでも似たようなことをしたいケースは多くあり、非常に参考になりました。
大規模ウェブサービスにおけるコードレビュー観点
Speaker: 井本 裕(株式会社ディー・エヌ・エー)
株式会社ディー・エヌ・エー様によるスポンサーセッションです。
パフォーマンスを意識したコードレビュー手法についてのセッションでした。Google App Engineの制約をメモリ最適化の手法でテクニカルに乗り越える方法が共有されていました。
OpenCensusによるAPMの実現と、未来
Speaker: munisystem
OpenCensusをどのようにAPMに利用するか、についてのセッションでした。メルカリでも分散トレーシングにOpenCensusを採用しています。
Profiling Go Application
Speaker: orisano
画像変換サーバで発生したOOM Killerや、kubeletでのパフォーマンス問題について、どのように調査・計測して修正したかについてのセッションでした。
Reading Source code of Biscuit (GO OS)
Speaker: Yoshiki Shibukawa
「Goならわかるシステムプログラミング」著者の渋川よしきさんによる、BiscuitというGo製のOSのコードリーディングについてのセッションでした。
Consider pluggable CLI tool implementation
Speaker: izumin5210
grapiというOSSについて、プラガブルな機能追加をどのように行うか、についてのセッションでした。
フィードバック制御によるGoroutine起動数の最適化
Speaker: monochromegane
goroutineを実装する際に、最適な並行数を動的に決めるために、PID制御を使ったアプローチについてのセッションでした。goroutine数は開発者の経験と地道な計測により決定されており、それをどのように最適化するかについての知見が共有されていました。
API Testing the Hard Way
Speaker: timakin
Goで書くテストのTipsについてのセッションでした。Helper、スタブ、Fixturesなど、実践的なテストTipsの知見が共有されていました。
Introduce GAE/Go 2nd generation
Speaker: sonatard
Google App Engine 2nd genについてのセッションでした。2nd genへの移行方法や、GKEについても触れられていました。
LT 1 社内初導入のAPIサーバーサイドアーキテクチャ設計戦略
Speaker: Kazuki Higashiguchi
https://go-talks.appspot.com/github.com/higasgt/gocon-lt/architecture.slide#1
社内でGoを初めて導入された際の、サーバサイドのアーキテクチャ、パッケージ構成の変遷についてのセッションでした。誰もが一度は悩むところだと思います。
LT 2 gorealizeで始めるDocker開発環境
Speaker: Kazuki Higashiguchi
https://go-talks.appspot.com/github.com/higasgt/gocon-lt/realize.slide#1
realizeを用いたライブリローディングについてのセッションでした。
筆者が参加できなかったセッション
以下は、筆者が参加していないセッションのため、スライドのみご紹介します。
Becoming the voice of Go
Speaker: Angela Funk
※ 資料がまだ公開されていないようでした。
Write your own database like playing lego
Speaker: huydx
※ 資料がまだ公開されていないようでした。
Linting, Slicing, and Dicing OpenAPI documents
Speaker: Daisuke Maki
https://www.slideshare.net/lestrrat/slicing-dicing-and-linting-openapi
Beloved database/sql. How we go test with RDBMS.
Speaker: achiku
3カ国のクライアントを支えるAPI基盤の構築
Speaker: takochuu
Practical Go Concurrency Design Patterns
Speaker: moriyoshi
まとめ
筆者はGoCon初参加でしたが、非常に楽しめました。Goを採用している会社はどんどん増えているように感じます。
Goは様々な分野で活用されているため、セッションのジャンルが多岐に渡っており、大変勉強になります。
当日はcrash.academy様による動画の撮影も入っており、今後動画は公開予定とのことです。
筆者は参加できませんでしたが、セッションと同時進行でハンズオンも開催されており、好評だったとのことです。
次回のGo Conferenceも、ぜひ参加したいと思います。
株式会社メルカリでは、Goが大好きなソフトウェアエンジニアを募集しています。