yyh-gl's icon

yyh-gl's Tech Blog

技術系ネタ中心のブログです。サーバサイドをメインとしたフルスタックエンジニアを目指しています。

yyh-gl

1 分ほどで読める記事

画像がどこかへ逝ってしまったようだ…



DeNA.go #3


初参加です!
ビールとお弁当もらいました。

そしてなんとなんと
k8sの技術書をいただいちゃいました!!!
もちろんステッカーもありましたよ👍



1. [Go活用事例]安全運転支援サービスを支える運用サイト


登壇者:@suhirotaka さん
オートモーティブ事業本部スマートドライビング部システム開発グループ

スライド


以下メモ


主題

管理画面を Golang で作成


Railsで作ってるものをGolangで作る理由

  • 実証実験時はスピード重視でRails
  • 本サービスはパフォーマンス重視でGolang

順次Golangに書き換えていく


Golangのフレームワーク

GolangのWAF(Web Application Framework)には

  • フルスタック・MVC
  • ミニマル・高速

の2種類がある

この辺の話は、僕の旧ブログにもいろいろ書いているのでどうぞー

DeNAではフルスタック・MVCを選択


GolangにおけるフルスタックなWAF

  • Beego:採用!
  • Revel:開発が止まってきている
  • Iris:プロジェクトの運用がうまくいっていないようだった


Beego

  • フルスタックのMVCフレームワーク
  • ORMまでついてる
  • セッション管理、ロガー、キャッシュなどのライブラリがいろいろついてるけど、全てモジュール化されていて、部分的に他のライブラリを使うことができる
  • Railsライクなフレームワーク
    • Railsのbefore/after_actionに相当するものもある(Prepare(), Finish())


ライブラリ

使用ライブラリはこちら

こういうの教えてくれるのめっちゃ嬉しい

  • ORM:GORM
  • ロガー:logrus
  • PDF生成:gopdf → 日本語もきれいにでるので最高にクール
  • 画像生成:gg
  • バーコード生成:Barcode



2. WebシステムのパフォーマンスとGo


(写真撮り忘れた…)

登壇者:(@karupanerura) ゲーム・エンターテインメント事業本部ゲーム事業部Publish統括部共通基盤部アライアンスシステムグループ

スライド


Webシステムにおけるパフォーマンスとは

たくさんリクエスト処理できる かつ リソース消費が少ないのが
システム全体で見たときの理想的なパフォーマンス


パフォーマンスチューニングのいろいろ

詳しいチューニング方法はこちら

この中で初めて知ったものをピックアップ↓


◎ Server Sent Events

  • HTTPコネクションを持続させる
  • WebSocketより扱いが簡単らしい


バファリングの諸注意

結局リソースを消費していることに違わないので、メモリ管理はちゃんとしないといけない


Q&A

Q. sync.Pool でメモリ効率は良いがメモリは消費していくとは?(該当スライドページ

A. Poolが居続けるからメモリ消費するよって話


Q. SetMaxOpenConnsの数ってどうやって決めるのがいい?

A. DBへのコネクションがどれくらいかとかを可視化して、そのデータに基づいて大きすぎず、小さすぎずの数を探していく(最終的には手探り)


Q. バッファリングの使い所

A. バッファリングよりシャーディングで対応できることが多い
シャーディングで対応した場合、アプリケーション(実装)がシンプルになる

Recent posts

See more

Categories

About

フルスタック目指すエンジニア