SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 Summer レポート(AD)

大規模サービスTVerのリニューアルを少人数でアップデートに成功したNew Relic活用術【デブサミ2022夏】

【B-2】少数組織で開発する大規模サービス

  • このエントリーをはてなブックマークに追加

役割分担とデータの把握で、個人が自律的に共通のゴールを目指す状態に

 加我氏の説明のあと、バックエンドのリードエンジニアである株式会社TVer サービス事業本部 技術開発部の内海 恵介氏が登壇し、少人数でも開発を失敗しにくくするためにNew Relicを活用した手法について説明した。

 TVerでは、大規模なリニューアルを前に、開発段階からNew Relicを使い、リリース後の運用監視などへスムーズに移行することに成功した。リリースの2カ月前には、エラーハンドリングや例外処理などたくさんの想定外のバグが出ていた。そこでAPMのErrors InBoxなどを使ってAPI単位でのバグの洗い出し、リクエスト情報の精査を行った。

 「NRQL(New Relicクエリ言語)を利用して、モバイルイベントのリクエストエラーなどの情報を合わせると、バグ報告者の端末を特定し、そのときのリクエストやユーザーデータの状態を詳細に確認することができ、再現するための情報がすぐ手に入る状態だったことは、バグ潰しにとても役立ちました」(内海氏)

 バグ潰しが一段落したリリース1カ月前には、負荷試験によるボトルネック調査を入念に行った。New Relicでは、平均や最大値だけでなく、パーセンタイルの指標をとらえることができ、全体を俯瞰してボトルネックの要因を探ることができた。

 リリースの2週間前には、全体的なバグボトルネックを解消し、あとは要求性能を満たすためのパフォーマンスチューニングの段階となった。応答に10ミリ秒以上かかる遅いAPIを洗い出すなど、分析とチューニングによって全体的なパフォーマンスを劇的に改善することに成功した。

開発フェーズに応じ、New Relicを有効活用した
開発フェーズに応じ、New Relicを有効活用した

 New Relic以外で工夫したことについて内海氏は、アフリカのことわざである「早く行きたければ1人で行け、遠くまで行きたければみんなで行け」を挙げ、スピード感を落とさずにリリースを迎えるためにあえてチームでなく、個々のメンバーが自律的にゴールを目指すことを選択したと説明した。

 「バックエンド、インフラ、SREとそれぞれが1名のチームだったので、それぞれがそれぞれの最速で目的地に向かって早く行くための土壌はできていました。それらを阻害しないために責務を明確化して分解することはとても重要でした。最終的なゴールやミッションを明確に共有することを意識し、それぞれがゴールに対して最適な判断をその場でできる環境を維持することも努力してきました」(内海氏)

 内海氏は続いて、TVerのサービスにおけるパフォーマンスチューニングや負荷対策を紹介した。24時間365日常に大量のアクセスがある同サービスでは、たびたびアクセススパイクが生じる。テレビでの野球中継を地上波で行っていたが、延長のためTVerで続きを放映する、番組が終了した直後にほかの番組を探す行動が見られるなど、10倍以上のトラフィックが訪れる。内海氏は、このような瞬間はバックエンドエンジニアの腕の見せ所だという。

あるスポーツ番組におけるロードバランサーの値。200k程だったアクセスが一瞬で3M近くまでスパイクしている
あるスポーツ番組におけるロードバランサーの値。200k程だったアクセスが一瞬で3M近くまでスパイクしている

 SREである加我氏がダッシュボードを整備したおかげで、負荷試験やシミュレーションテストなどで各種指標がどんな動きをするかをパターンごとに認識できたため、その後の運用のイメージがつかめた。内海氏は負荷試験やそこで挙がった課題の対処に対策に集中することができた。

メトリクスを日々常に確認して話し合うことで、プロダクト改善やトラブル対応につなげる

 リリース後は、運用してみて初めてわかることの連続で、ここでも横断的に可視化したメトリクスの恩恵を得られた。内海氏は「安定して稼働している状態や、ユーザーが殺到している状態、外部要因でアクセスが増えている状態、また、一部サーバーリソースなどの不安定な状態など、さまざまなシミュレーションを事前に実施し、ダッシュボードを見ていたので、リリース後も安心を得られる状態になっていました」と説明した。

 フロントエンドからバックエンドまで横断的なダッシュボードであるため、サーバーだけではなく、アプリデバイスごとの挙動差分にもすぐ気づくことができた。例えば、iOSアプリだけ特定のページ内で止まるAPIの呼び出し回数が非常に多いなどをすぐに捉え、非常に早いサイクルで改善することができた。また、サービス開始当初は多めのリソースを用意していたが、これも1カ月ほどでリソースを縮退しても安定稼働できるよう調整できた。

 TVerのチームでは、リリース後からすぐにダッシュボードを眺める会を行っていました。前日の番組表やイベントと照らし合わせて、話し合い、新たなメトリクスをSREに依頼するような動きも見られ、常に改善に努める体制が出来上がっている。内海氏は「普段のメトリクスを感覚として持っておく訓練にもなります。そして、ちょっとしたトラブルや障害時にどういう挙動になるかの知見の集積などができるので、ぜひこれらは皆さんのチームでもやってみてください」とアドバイスした。

 また内海氏は、責務を明快に分離することによって、正しく任す/任されることが自然できるようになり、本来の事象と乖離したレポーティングなどの問題を解消できるとし、チームにスピード感を出す場合には非常に重要だと述べた。

 少人数だからこそ、コミュニケーションのロスを最小限に抑え、無事にリリースを迎えることができた。その後TVerには優秀なメンバーが続々と入社しているとし、内海氏は最後に「次はみんなで速く、遠くに行ける技術組織にしていきたいと考えています。TVerの技術組織は、やっと今から始まります。これからどんどん大きくして、そしてみんなが正しく頼り合える組織にしたいと思っています。興味がある人はお声がけください。TVerでテレビの未来を一緒に作っていきましょう」と呼びかけた。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2022 Summer レポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16291 2022/10/12 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング