LoginSignup
17
18

More than 5 years have passed since last update.

Go Conference 2016 Spring

Last updated at Posted at 2016-04-23

Official

キーノート

Auto-Generating builderscon server, validator, and client with JSON (Hyper)? Schema, et al - lestrrat (Daisuke Maki)

GoでGUI - Shibukawa

Elastic Beatsを導入した話 - Daichi Hirata

GRPCの実践と現状での利点欠点 - kazegusuri

  • Slide
  • メルカリでGRPC(golang)を本番導入するまで行ったことと現状で利用するメリットを紹介
  • GRPC

    • HTTP/2を使用したRPCフレームワーク
    • 2015年2月Googleが公開
    • ProtocolBufferを使用IF定義
  • 開発理由

    • StybbyろRPCを使っていたが、密結合、標準規格が出てきて、モバイルIOTクラウドに適用するために適用した
  • OSSでの採用事例

    • TenderFlow
    • containerd (Dokcer)
    • etcd (CoreOS)
    • go-kit/kit
  • 作り方

    • proto定義
    • protoからGo生成
    • インターフェイスを実装
    • GRPCサーバー起動
  • パフォーマンス

    • echoサーバーで50Kreq/s
    • 認証いれても25Kreq/s
    • DBアクセスでも10Kreq/s
  • リクエスト分散

  • grpc-gateway(sevice名/method名みたいな何も考えない設定がおすすめ)

  • 欠点

    • ミドルウェアが少ない
    • curlが使えない
    • ドキュメントが少ない
    • 言語間での完成度がマチマチ
  • 利点

    • 実装に集中できる
    • クライアントがつくりやすい 
    • 欠点の部分はなんとかなる

Go と GAE による Web サービス開発 - 鶴岡 達也

  • Slide
  • AGE/Goで現実的なwebアプリを開発、運用していく事ができるって話
  • なぜGAE?

    • スケーラビリティが高い(数req - 数十万req)
    • Googleレベルの可用性
    • メンテフリー
    • Snapchat / ingressがGAE / メルカリアッテ
    • 現実的なwebアプリ作れる
  • 課題 - 1つのリクエストを処理するのに時間がかかってしまう

    • GAE側・・・60秒でタイムアウト
    • 非同期で対応・・・TaskQueue、PushQueue
  • 課題 - 永続化

  • 課題 - ログ分析と運用

    • GAE内でも高機能なログ閲覧機能がある(リアルタイム、リクエストのトレース、分析レポート機能)

自作Webフレームワーク uconを作った話 - vvakame

  • Slide
  • 自作Webフレームワークuconを作った話
  • gb
  • Google API Discovery Exploper
    • 誰でも簡単に使える
    • 実際のAPIがたたかれる
    • 結果を共有しやすい
    • コードからUIが生成される
  • Swagger対応
  • net/httpライクに類似させた
  • net/httpにないルーティングを作った
  • ミドルウェアはJavaのServletからインスパイア
  • Buildinミドルウェア
    • RequestObjectMapper
    • ...
  • プラグイン
    • Swaggerプラグイン
  • go-endpoint
    • 簡単に既存のコードに入れ込める
  • 利用事例
  • SwaggerUIにExportまで対応している

How to Contribute to Golang - stanaka

  • Slide
  • GoのContributeされた時の体験記
  • MacharelAgentにまつわる話
    • awsディストリビューションでmodify_ldtが無効になっていたのでエージェントが落ちた
    • Goのアセンブラ直した
    • GoのアセンブラはPlan9ライクなアセンブラ
    • コミットしてマージされた(3日くらい)
  • issueの受付はGitHub
  • コントリビュートするにはコマンドが用意されている(git codereview)
  • git codereview mail
    • GithubのPRに相当するもの
  • gerritを使用している
    • コメントにDraftの機能があって、あとから見返してからコメント書けるから良い

Requirements for Go server in production - yyoshiki41

  • Slide
  • 実際にプロダクション環境で使う為に、必要な事/考えなければいけない事について。
  • リクエスト毎に1ゴルーチン
    • race conditionをさける
    • 1.6の場合、マップに書き込むとパニック
  • デーモン化
    • daemontools
    • Supervior
    • Circus
  • リバプロで動作させた(Nginx)
  • Gracegul restart
    • Blue/Green deployment
    • Hot deployment(symlink, like Capistrano)
    • like unicorn
    • Circus
    • einhorn
    • facebookgo/grace...マスタープロセスID変わってしまう
    • facebookgo/httpdown
    • Server-Starter  * facebookgo/httpdown + Einhorn
    • goji with Einhorn
    • 1.6の場合、ソケットファイルを消してしまう
  • Profile go app

Golang with Google Cloud Platform - kaneshin

  • Slide
  • pigeon ・・・ Go製CloudVisionAPIのClientライブラリの話
  • slide
  • waf
    • Ravel -> Gin
  • O/R mapper/DB
    • Xorm/Wizard(DB Shard library)
  • Vendor package manager
    • Glide
  • Cloud Vision API
    • 機械学習API
    • 画像認識のカテゴライズに利用
    • pigeon ・・・ Go製CloudVisionAPIのClientライブラリ
  • logrus

Building scalable MO game server - @methane

  • Slide
  • 「パズル・ワンダーランド」の協力プレイ用のサーバーをGoで作った話。
  • c4.xlargeで1万ルーム捌けるゲームサーバ
  • gb使ってた
  • UnBufferdChannel(Bufferedだとゴルーチンをロックしてしまうので)を使う為にコマンドパターン(GoF)を使用する
  • ベンチマーク
    • c4.8xlarge, 1room, 100client, 1000msg/clients -> 19.8sec 2倍速くなった
  • 負荷が高い場合はChunkを大きく、小さい場合はChunkも小さく。
  • バッファがFullになったら書く
  • 他の

LT

Goによる格闘ゲーム用マクロ開発記 - cero_t

  • 対戦格闘ゲーム用のマクロをGoで書いた話

Go Report Card - Shawn Smith

Goroutine on Google App Engine - sinmetal

  • GAEはシングルコア
  • 複数のAPIを呼ぶ時にGoroutineで非同期処理すると便利だよという話

Gopherに逆らうとどうなるのか - timakin

マイクロサービスのライブラリを見比べてみた - y_matsuwitter

  • Slide
  • Goでのマイクロサービスフレームワークの話
  • go-kit/kit
    • 多言語
    • Puggable
  • gizmo
    • config
    • service
    • pub/sub
  • micro
    • 多数のレポジトリに分割
    • fullstack
    • Golang以外
    • Dockerでの提供
  • Tracer
    • 分散環境でもどういった経路のアクセスがあったか形跡するもの

Goでデーモンを作る - ひろのぶ

  • slide
  • Goでforkぽいことをした一例を紹介。
  • 普通はsyscall
  • forkは無理
  • 親プロセスと子プロセスをフラグで管理

GoImagick の詳解 - よや

  • GoからImageMagickの APIを利用できるGoImagickの紹介。
  • GoImagick

Go言語の入門書を書いてみた話 - 松尾 愛賀

  • 「StartingGo」っていう本の紹介の話
17
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18