よしかわーるど

プログラミングで世界を変える

大規模サービス構築インターン Sunriseに参加してきた

はじめに

2019年の2月27日, 28日にVOYAGE GROUPのSunriseに参加したので, 忘れないうちにメモっていく.

動機としては, 現在大学の研究室で作っているサービスが大規模なリクエストを受けることを想定しているサービスだから.

8 request/sec程度だった気がする. 現状は秒間8リクエスト程度だが, いつ大規模なリクエストになり得るかは分からない.

前から大量のリクエストをプロがどう捌いてるか気になっていたので, どうしても体験したかった.

自分について少しだけ書いていくと, サーバサイドのことを良くやるエンジニアだと思っている.

NGINX, LDAPの設定など実サーバでやったこともある. サークルに4台くらいラックサーバがある良い環境で育っている.

Treasureの体験談は以下に記してる.

Treasure2018という最高のインターン

ミッション

1秒間に数万リクエストを捌くアドテクエンジニア陣からのミッション。

『大規模リクエストを捌きつつ安定して価値を出し続ける広告プラットフォームを構築せよ!』

広告配信システムの安定運用に携わるエンジニアから、大規模リクエストを捌くために必要な設計・構築について学べます。

手を動かしながらWebサービスを作りはじめ、スケールしながら安定して価値を出せるシステムを設計していきましょう!

引用元 Sunrise 大規模サービス構築プログラム

1日目

SLO(Service Level Objective)は, 提供するサービスやサービスを構成するシステムや機材などに関して, 性能や可用性などを目標水準や目標値を設定し、利用者に提示する.

つまり, 信頼性を定義していくもの.

レポート反映時間は1ヶ月とかデータを反映するまで時間がかかると萎える.

かといって, 反映時間はリアルタイムで提示する必要のないものもあるので, 見極める.

負荷をかけていく💪

負荷テストのために使ったのは, tsung

Terraformすごいってなった.

Packerすごいってなった.

PackerでAMIを作成して, S3にバイナリを配置してインスタンス内に引っ張ってくる.

auto scaling groupで自動でインスタンスが起動したりするの本当にすごい.

cloud watchでログを見て, 何が原因なのかを推測して解決策を考えた.

2日目

初日で気にしてたbulk insertの導入をした.

pprofの導入をして, プロファイル取得をした.

プロファイルからデータベースへのinsertが重いことが分かった.

fasthttpの導入をした.

ファイルディスクリプタ上限数を開放した.

ユーザーデータの中にshellを少し書き加え, serviceにも少し手を付けたくらい.

sunrise ボード

総括

パフォーマンスチューニングをするのは楽しい.

アプリケーションのログやcloud watch, tsungのレポートの結果を元に改善案をしっかり考えた.

改善案をやってみるところまで出来たので, 改善案が良かったのか駄目だったのかログから明確に確認できた.

DBのコネクションプール数を増やすの忘れてた.

fluentd, lambdaを触ってみたかったけど, 研究室で触ってみることにした.

ISUCONに興味が湧くインターンだった.

打ち上げ

AJITOで打ち上げをした. やっぱり居心地は最高だ.

sunrise 集合写真

3時のおやつ

このプリンとても美味しかった.

関連記事

Sunriseに参加しました。| Voyage Groupエンジニア向けインターン

大規模サービス構築インターン Sunriseのサポーターをしました