#ISUCON13 に パカパカアルパカとして参加して22位でフィニッシュでした!(86,322点)

こんにちは!

こちらは TVer Advent Calendar 2023 の2日目の記事です。

TVerのサービスバックエンドのリードエンジニアをやっております内海です🐶!

今年も昨年同様、チーム:パカパカアルパカとして出場してきました。

isucon.net

22位 86,322 パカパカアルパカ

いえーい🎉

やったこと

担当範囲

基本、私はいつもアプリケーションレイヤーばかりみています。

toritori0318氏がインフラをメインに担当。 teraken氏がツール周りと遊撃担当。

開始直後

  • AWS上のリソース構築
  • レギュレーション、マニュアルの読み合わせ

リソース構築完了後

  • 初回ベンチ実行
  • 各リソースの負荷状況確認
  • マニュアルからトピックの抜き出し

このタイミングではまだやれることが少ないポジションなので、マニュアルから課題になりそうなトピックを抜き出してまとめていました。

また負荷状況はどうみてもMySQLボトルネックになっていることを確認。

どうせ分散していかなきゃいけないことは明白だったため、一旦1台でいけるところまでチューニングをしてから負荷状況に合わせてサーバーを割り当てる作戦でいくことにしました。

icon対応

マニュアルと読んでいると If-None-Match ヘッダーに対しての記載が丁寧だったので、まず深追いせずに

  • MySQLにデータ保持をしているiconを静的ファイル化
  • hash値をredisで保持
  • If-None-Match ヘッダーがある場合304を返すように変更

スコア下がる 🤔

PowerDNS

DNS周りの運用は経験がなかったので、問題をみた瞬間にすっぱり切り捨てていた課題だったのですがTTLが0になっていることに気づいて対応をいれました

ここでお昼前5,000弱

モデレートAPIのN+1解消

これでもかってくらいN+1だらけだったので、どこから手をつけるか悩んでましたが

配信品質が上がると視聴者数があがるというマニュアル記載があったため、ブロッカーになりそうなモデレートAPIから着手しました

themeの廃止

ユーザーのダークモード設定が別テーブルで毎回呼ばれていたためusersテーブルに移行し、UserModelで保持できるようにしました

ここでやっと6,801。どのメンバーの対応も微増ではありつつも、着実にスコアは伸びていきました。

作戦会議

そろそろいろんな箇所の課題が見えてきたので一旦ホワイトボードに現在の構成などを書きながら、それぞれの気づきと方向性の共有を行いました

一旦昼過ぎのこのタイミングでは

  • Nginxでiconをちゃんと返すようにする
  • DNSサーバーとAppサーバーはわけたい

という方針になりました

iconをNginxでキャッシュするように変更

toritori0818氏がNginxでキャッシュできるように対応してくれて 8,796 点

まだここでも1サーバーしか使ってない状況です。

そろそろ分散して課題の深掘りにフェーズ移行していこうと言う話になりました。

MySQLサーバー

2台目のサーバーをMySQL専用サーバーに変更しました

このときは

BenchTarget: Server1
Server1: PowerDNS / App(Go) / redis / Nginx
Server2: MySQL
Server3: 

という状況になりました。

ここでスコアが伸びて 18,181 🎉

ここからはN+1を潰しつつ、それぞれの負荷状況を見て、分散構成を考えていました。

結果的に

サーバー
BenchTarget: Server1
Server1: PowerDNS / App1(Go) / Nginx
Server2: MySQL
Server3: App2(Go) 

アプリケーション
App1: icon / dns系APIのみ
App2: その他

という構成でわけました。

Server1にPowerDNSが居たので、できるだけ触らなくていいようユーザー登録APIをServer1:App1で受け付けることにしましたw

また、それだけだと少しApp1が余るので、比較的CPU負荷の少ないiconAPIもApp1に同居させました。

構成を変えてスコアは 27,702 🎉

最後の追い込み

  • 出来うるN+1を解消していく
  • iconのBinaryをそのままMySQLに書き込んでいたのをやめる
  • iconAPIでApp(Go)までたどり着いた場合、原則的にicon未設定者と断定してfallbackImageを即レスするように

などなどやっていると、めきめきとスコアがあがっていきました💪

午前中にやっていた細々したものが開花してきた感があって、アドレナリンでちゃう感じでした!

感想

ISUCONに出場すると毎年思うのですが、

  • 瞬間的な取捨選択の嗅覚
  • わからない状況でも前にコケる練習
  • Webエンジニアとして足りていない部分の再確認

というなかなか普段の業務では獲得し辛いスキルが磨かれるなぁ。と感じています。

日々の業務でもきっと活きてくるスキルだと思いますので、是非ISUCONに参加してみてはいかがでしょう。

来年(まだあるかわからないですが)、対戦出来ること楽しみにしております 😘

運営のみなさん、参加者のみなさん本当にありがとうございました。今年も最高でした!!!!

ISUCON13の問題や、ベンチマーカーの実装は

github.com

こちらで公開してくださっています

後日談

再起動テスト終わって、提出スコア出すためのベンチしてたんですが…

なぁんかベストスコアでないんだよなぁ。と思ってました。

終わってからリポジトリみてみると、マージされてないPullRequestが残ってました😇(ログの出力消したりするくらいのやつ

みなさんも、ちゃんとPRがMergeされてるかは確認しましょう😇

「TVer Advent Calendar 2023」開催のお知らせ

こんにちは、TVerの加我です。

昨年に引き続き今年もTVer Advent Calendarを開催します!
こちらはTVer Advent Calendar 2023 の1日目の記事となります。

qiita.com

昨年のはこちら。

qiita.com

今年のアドベントカレンダーに向けて

現在のTVerは下記のような組織体制となっております。

全体の組織図

speakerdeck.com

その中でサービスの開発に携わっている部門 ≒ 開発組織は主に下記が挙げられます。

  • TVerの開発・運用を担っているサービスプロダクト本部
  • TVer広告プラットフォームの開発・運用を担っている広告事業本部

昨年は現サービスプロダクト本部のエンジニアがメインでアドベントカレンダーの執筆に取り組んでいたのですが、なにしろTVerの開発組織が発足し動き出した年だったので執筆者が少なく、どのような記事を出そうかみんなで頭をひねったりもしました。

しかし今年の開発組織は昨年に比べて約2倍の人数になり、TVer広告プラットフォームの開発・運用に関わる広告事業本部にもエンジニアが増えてきているのでバラエティ豊かな記事が出てきそうな気配があります。

ということで

初日は私がアドベントカレンダー開会の儀を執り行わせていただきました。

明日はバックエンドエンジニアである内海が先日開催されたISUCON13について話してくれますのでお楽しみに!

JAWS Festa 2023参加レポート #jawsug #jawsfesta #jawsfesta2023

こんにちは、TVerの加我です。
先日10/7に福岡で開催されたJAWS Festa 2023 in Kyushuに企業サポーター兼当日スタッフとして参加してきました。コミュニティというキーワードに着目しつつ写真多めでレポートしていきます。

アンバサダーである広告事業本部の安部がJAWS Festa 2023の応援ブログと現地参加レポートを投稿してくれていますので先にご紹介します。

techblog.tver.co.jp

techblog.tver.co.jp

JAWS Festaについて

JAWS-UGには大きな年次イベントが2つありまして、それがJAWS DAYSとJAWS Festaです。JAWS DAYSは都内近郊で行われるイベントに対してJAWS Festaは地方開催かつ毎年別の都市で開催されるという特徴があります。

今年のJAWS Festaは4月のAWS Summit Tokyoの時点で九州での開催が決まり、具体的には福岡にある福岡工業大学での開催となりました。会場は非常に綺麗で学食も利用することができ、学生気分を少し取り戻しつつ気持ちよくイベントに参加することが出来ました。改めて会場を提供して頂いた福岡工業大学の皆さま、そしてイベントを成功に導いた運営スタッフの皆さまお疲れ様でした。

jft2023.jaws-ug.jp

前夜祭

JAWS Festaは前日から始まっていると言っても過言ではありません。
いつもお世話になっているNew Relic様や、JAWS-UGの知人と一緒にコミュニティについて話しつつ福岡名物の料理で前夜祭を楽しみました。炊き餃子も呼子イカの姿造りも美味しかったです。

福岡は新鮮なイカが美味しいんですよね

当日

会場の受付にて企業サポーターと個人サポーターの受付をしてイベントがスタートです。今回久しぶりに会う方も多くおり「いよいよJAWS Festa 2023が始まるぞ!」という気持ちの高まりを感じました。当日は撮影スタッフをするかとても迷ったのですが、せっかくの地方開催のイベントなのでイベントを楽しみたいと考え、一般参加かつ野良カメラマンとして参加させていただきました。

サポーターブース付近でのスタッフ打ち合わせの様子

サポーターブースでは新しいTVerのラバーコースターを配布しました

オープニング

オープニングはC棟地下ホールで開催されたのですが、どこに座っても前が見やすい階段教室形式でした。どうやら2018年にリニューアルされたようです。

www.kotobuki-seating.co.jp

C棟地下ホール

私はフロアの中段ど真ん中に位置取りつつオープニングを待機している一方、ステージでは運営スタッフである清家さんと北川さんが会場の諸注意をしつつ笑いを交えて会場を温めてくれていました。

オープニングアクトで会場を温めてくれるお二人

会場でのアンケートによるとJAWS-UGやJAWS Festaへの参加が初めてという方が多かったため、そういう人たちがイベントに参加しやすいように会場を温めるといった細かな気配り・気遣いを感じられました。ホスピタリティですね。特に初めて参加する人にとっては「JAWS-UG / JAWS Festaってどんな雰囲気なんだろう。学会やセミナーみたいなお硬い感じなのかな?」と思う人は多少なりともいるはずです。それに対して「JAWS Festaは硬い雰囲気じゃなくてみんなで盛り上げていく・盛り上がっていくイベントだから楽しんでいってね!」という運営からのメッセージがあると参加者がリラックスできるので良いですね。

ということでオープニングでは実行委員長の阿部さんの挨拶から始まります。JAWS Festa 2023にかける思いや今回の協賛(企業サポーター、個人サポーター、アプリケーション提供、会場提供)の紹介がありました。

実行委員長の阿部さん

JAWS Festa 2023には多くの企業が協賛しています

JAWS Festa 2023には多くの個人サポーターも協賛しています

ここから私が参加した一部のセッションの振り返りをしていきます。

地方コミュニティの存在意義とは?

オープニングが終わり、同じ会場ですぐにパネルディスカッションが始まります。パネルディスカッションは大体イベントの最後に配置されることが経験上多かったため、パネルディスカッションから始まるイベントはなかなか斬新です。

「地方コミュニティの存在意義とは?」をテーマとして、AWS Users Group – Japan (JAWS-UG) の立花さん、Japan Azure User Group (JAZUG) の松村さん、Japan Google Cloud User Group for Enterprise (Jagu'e'r) の家壽田さんがそれぞれのコミュニティのあり方や地方でコミュニティをやる意味などについてディスカッションしていました。モデレーターはAWS Community Builderの鈴木さんが担当していました。

異なるコミュニティに所属する3名によるパネルディスカッション

私としてはJAWS-UGのコミュニティイベントの最初のセッションで競合関係ともいえるJAZUGやJagu'e'rの方とパネルディスカッションを行うというのに驚きました。てっきりJAWS-UGに参加している地元の著名なエンジニアの方が基調講演を担当するものだと思っていたのですが、別のセッションではPHPコミュニティ・Javaコミュニティ・Swiftコミュニティなどの方も登壇しており「今年のJAWS FestaはJAWS-UGだけじゃない、九州全体のコミュニティを巻き込んで盛り上げていく」という強い意志と熱量を感じました。

JAWS FESTA版!グループ対抗 AWS ウルトラクイズ

今回の個人的目玉セッションであるAWSウルトラクイズです。私は回答者ではなく賑やかし(一般参加者)として参加しました。

過去に開催されたAWS Summit Tokyoではメインセッション終了後にJAWS-UGのイベントが開催されていました。そのイベント内で行われていたAWSに関するクイズ大会がAWSウルトラクイズです。出題者はAWSに関するディープな問題を出題し、正解者だけが残り、最終的に勝ち残った人が豪華景品 (re:Inventのカンファレンスパスなど) をゲットできるというアツいイベントとなっております。

dev.classmethod.jp

今回は個人戦ではなく、4組に分けられたチームがメンバーをローテしつつクイズに回答するという団体戦です。メンバーによってはフロントエンドが得意・バックエンドが得意・ネットワークレイヤーが得意など個人差があるため、結果が読めないところも盛り上がりポイントです。

ルール説明

印象に残った問題がこちらです。

2014年に発表されたAWSのサービスは下記のどれか
1. AWS Lambda
2. Amazon Aurora
3. AWS Config
4. 上記全て

私としてはAWS LambdaとAmazon Auroraは同じ時期、AWS Configはもう少し後だった印象があったのですが、正解は「4. 上記全て」でした。無念。

www.publickey1.jp

www.publickey1.jp

aws.amazon.com

また、利用者が多いと思われる「ELB」の正式名称についてのクイズがありましたが、なんと公式ドキュメントも混乱しているという話があり、後日正式名称で修正・更新されていました。

みなさまおわかりでしょうか

福岡のコミュニティから世界への挑戦までの軌跡 〜ある学生だったエンジニアの話〜

HAKATA.swiftというiOS関連のコミュニティに所属している秋 勇紀さんによるセッションです。福岡のコミュニティに所属している秋さんがコミュニティを通じたつながりや経験、学びを活かしてどのようにしてグローバルな登壇や技術書の執筆に至ったのかを話してくれました。

秋さんは「コミュニティに参加して人とのつながりができたおかげで色々な挑戦を行うことができた」と話しており、自分もJAWS-UGというコミュニティのおかげで人生が変わったうちの一人なので、コミュニティの価値にまだ気づけていない人たちに気づきを与えてあげられるよう精力的に活動していきたいと決意を新たにすることができました。

コミュニティによるつながり

クロージング

すべてのセッションが終わり、オープニングが行われたC棟地下ホールに戻りクロージングと集合写真の撮影が行われました。

コールアンドレスポンスを行う実行委員長

撮影スタッフのみなさま。お疲れ様です。

そして来年2024年の3月2日(土)にJAWS DAYS 2024がオフライン会場にて開催されることを実行委員長である早川さんのビデオレターにて発表されました!
TVerもスポンサーや登壇などでイベントの盛り上げを手伝いたいと思っており情報のアップデートを楽しみにしております。

実行委員長によるJAWS DAYS 2024開催のお知らせ

代理としてSecurity-JAWS運営の吉江さんから説明がありました

まとめ

今年のJAWS FestaはJAWS-UGだけではなく複数のコミュニティを集めたイベントとなり、まさにFestaの名前に相応しい盛り上がりでした。コミュニティ同士のディスカッションがあったり、コミュニティの歴史を振り返ってみたり、地方におけるコミュニティの存在意義やあり方を考えたりと、コミュニティ運営に携わる者の1人として多くの学びを得ることができました。

私はMedia-JAWSの運営に携わっており、イベントの開催や登壇のために色々な地域に行くことが増えました。その地域でイベントを開催するためにはどういった登壇者を集めたらよいのか、継続して開催するにはどうしたらよいのか、コミュニティを支援するにはどういう仕組みが必要なのかといった悩みがあったのですが、コミュニティの活動が活発な福岡に着目することで多くの気づきを得ることができました。

改めて実行委員長の阿部さん、運営スタッフのみなさま、サポーターのみなさま、参加者のみなさま、本当にお疲れ様でした。企業サポーターとして支援できたことを嬉しく思います。

JAWS Festa 2023 に参加しました!

こんにちは。
アドテク領域のエンジニアをしています安部です。

10月7日に開催されたJAWS Festa 2023に参加してきました。

 

jft2023.jaws-ug.jp

 

JAWS Festa 2023には企業サポーターとして参加しました。

参加の意気込みについてはこちらを御覧ください。

techblog.tver.co.jp

 

当日の会場の様子

会場の福岡工業大学。駅直結でアクセスがとてもよかったです。

企業サポーターブースではラバーコースターを置いていました。

他の企業のアンバサダーさんたちとたくさんお話できて楽しかったです!

ノベルティも個性があって見ているだけでも楽しかったです。

 

オープニングでは実行委員長の熱い開会宣言がありました。

その後に続いたディスカッショントークでも地方のコミュニティのあり方、コミュニティへのかかわり方について熱いディスカッションが行われていました。

スタートの時の大喝采でホールが揺れました。

参加したセッション

福岡市のスタートアップ支援について

福岡市の成長戦略、DXの推進、政令市の強みを生かしたスタートアップ支援についてのお話でした。
fgn.(Fukuoka growth Next)という創業前→成長期→事業拡大期を一気通貫でサポートする仕組みとEngineer Cafeの紹介がありました。
Engineer Cafeにはコワーキングスペースもあるようなので、今度行ってみようと思います。

ECSの CI/CD改善と標準化の取り組み

speakerdeck.com

はてなブログのEC2からECSの移行時に発覚したCI/CDの問題を改善、社内で標準化するプロセスについてのお話でした。
最近よくCI/CDを触っているのでとても勉強になり、業務に反映できそうなお話でした。

 

クロージング

2024/3/2 に池袋サンシャインシティにてJAWS DAYS 2024が行われることが発表されました!

さいごに

たくさんの方と交流できてとても楽しかったです。

行きの電車で隣に座っていた方が実は企業サポーターの方だったり、地元企業の方と福岡トークできたり、懇親会でエンジニアカフェについて色々聞けたり、とても充実した1日を過ごすことができました。

お話した方によく聞かれたことが「広告事業本部ってどんなことしているのですか?」ということでした。

これからもっと広告事業本部についても広めていくことが大事だなと改めて思いました。

アドテク領域についてはこちらでお話しているので、ぜひ見てください!

note.com

おまけ

昼食に学食を利用させていただきました。

がっつり系でとても美味しくて安くてこれを毎日食べられる学生さんは羨ましいです。

学生に戻った気分を味わえました。

おすすめのチキン南蛮ライス。最高でした!

 

TVerはJAWS Festa 2023に企業サポーターとして協賛します! #jawsfesta #jawsfesta2023 #jawsug

こんにちは、TVerの加我です。

遂にJAWS Festa 2023が今週末の10/7(土)に開催となります👏
TVerでは企業サポーターとして協賛しておりまして、自社のノベルティを持参・配布する予定です。ぜひお手にとっていただけると私たちが喜びます。前回作成したものから微妙にリファインしておりますので、お気づきの方はこっそり教えてください。

企業サポーターの一覧ページはこちら。 jft2023.jaws-ug.jp

現地には広告事業本部でアドテク周りの開発を行っているアンバサダーの安部と、サービスプロダクト本部でSREとしてTVerを幅広く見ている私の2名が参加予定ですので、気軽にお声がけください。ぜひAWSJAWSの話題で盛り上がりましょう!

広告事業本部 安部

サービスプロダクト本部 加我

また、アンバサダーである安部が先日投稿したJAWS Festa 2023への応援ブログも併せてご覧ください。 techblog.tver.co.jp

それでは当日現地でお会いできることを楽しみにしております!

DatastreamによるTVer ID会員情報の分析環境改善

TVerでデータシステムなど担当しております黒瀬です。

この記事では、弊社のサービスとして運用しているTVer ID の会員情報を保持するDB(以下、会員DB)のデータの集計にかかる時間を短縮した施策についてご紹介します。

サマリ

DatastreamとPolicy Tagを利用することで、プライバシー保護を考慮しつつBigQueryで会員DBを高速で集計できるようにしました。

背景

TVerでは、GKEでセルフホストしているRedashを利用してデータ集計や分析を行っています。

また、弊社では分析用のデータはBigQueryに集約する方針のため、基本的にはRedashでの集計はBigQueryのSQL構文でクエリを作成しています。

このRedashでクエリを実行するタスクの一つとして、弊社が提供しているTVer IDの会員の動向を集計・分析するというものがあります。

TVer IDの会員DBは、Amazon RDSで構築したMySQLでホストしており、RedashからはEC2で作成した踏み台経由でアクセスしていました。

また、Redashからは個人情報を含むフィールドをマスクするためのviewにクエリを実行することで、プライバシーも考慮した仕組みとしていました。

従来の構成

課題

この従来の構成では下記の課題がありました。

  • Redashで作成するクエリは大部分がBigQueryのSQLであるにも関わらず、会員DBはMySQLSQL構文でクエリを作成する必要があり、仕様の差異に留意する必要があったり突合しにくいといったことから、運用がしにくい問題がありました。
  • これは会員DBのスペック上の制約でもありますが、従来の構成では会員DBに対して実行したクエリのレスポンスに数時間かかっていました。結果、集計担当者がRedashで実行したクエリの様子を見に行く必要があったりRedashのワーカーを長時間占有するなど、分析が滞る原因となっていました。
  • 稀に調査などでフィールドをマスクしていないデータを見る必要がある際は、Redash経由ではなく踏み台などから直接クエリを実行しなければなりませんでした。

そこで、これまで利用していたRedashの上で、高速かつセキュアにデータを集計するための仕組みについて検討しました。

方針

上記の課題を解決するため、次のような方針で進めることにしました。

  • BigQueryにデータを同期することで、MySQLでクエリを書かなくていいようにしつつ、サーバレスのクエリ実行環境であるBigQueryによるレスポンス改善を目指しました。
  • フィールドをBigQuery側で隠蔽することで、分析の要件に合わせてフィールドへのアクセス権やマスキングをBigQueryで制御できることを目指しました。

ここからは、これらを実現するための詳細についてご紹介いたします。

アプローチと効果

DatastreamでMySQLからBigQueryにデータを同期する

DatastreamはGoogle Cloudで手軽にデータ変更キャプチャ(CDC; Change Data Capture)によるデータ同期ができるサービスです。今回はこのサービスを利用してMySQLのデータを都度BigQueryに同期することで、BigQueryで会員DBのデータを分析できるようにしました。

cloud.google.com

導入も非常に簡単で、今回はMySQLでbinlogを設定し、踏み台の認証情報をDatastreamで指定するだけでBigQueryにデータを同期できるようになりました。

この施策により、BigQueryのSQLで会員DBのデータを分析できるようになり、またこれまで数時間かかっていたクエリも、MySQLクラスタのスペックによらず、十数秒で結果が返ってくるようになりました。

新しい構成

BigQueryに同期したテーブルのフィールドにPolicy Tagを付与する

Policy TagはBigQueryのフィールド単位で権限やマスキング方法の制御ができる機能です。

cloud.google.com

このPolicy Tagが関係するロールとしてはMasked ReaderとFine-Grained Readerの2つがあります。Policy Tagが付与されているフィールドを含むテーブルへのクエリは、クエリを実行したアカウントがどのロールが付与されているかによって次のように結果が変わります。

  • Masked Readerが付与されているアカウントが実行した場合: Policy Tagが付与されているフィールドがマスキングされて結果が返ってくる
  • Fine-Grained Readerが付与されているアカウントが実行した場合: Policy Tagが付与されているフィールドがマスキングされずに結果が返ってくる
  • いずれのロールも付与されていないアカウントが実行した場合: クエリは権限エラーになる

今回は、氏名やメールアドレスといった会員DBに記録されている個人情報ごとに、マスク方法を適切に設定したPolicy Tagを作成し、該当するフィールドへ付与しました。

そして、Redashでクエリを実行するためのサービスアカウントとしては想定する用途によって2つを用意しました。

  • 通常の分析ではマスキングされたデータを利用するため、Masked Readerが付与されているアカウントを利用
  • 調査などでマスキングされていないデータを利用する場合は、Fine-Grained Readerが付与されているアカウントを利用

この施策により、BigQueryに閉じた設定でプライバシーを考慮したアクセス権限の制御ができるようになりました。

まとめ

今回、Datastreamの導入によって会員DBのデータの分析にかかる時間を効率化することができました。また、Policy Tagによってプライバシー保護もロールによる制御へ簡潔化することができました。

一方で、Datastreamによるデータ同期ではコストも相応にかかってくるため、今後はこのコストを抑える施策について検討していきたいと思います。

TVerではエンジニアを募集しています

今回ご紹介したデータシステム以外にもバックエンドやフロントエンドなど多彩なフィールドでエンジニアを募集しています!ご興味ある方はぜひ以下の採用サイトからご連絡ください!

recruit.tver.co.jp

iOSDC Japan 2023にてTVerのモバイルアプリの品質改善をテーマに登壇してきました #iosdc

こんにちは、TVerの加我です。最近ではフロントエンド周りのモニタリング強化やオブザーバビリティを推進しております。

先日の9/1 - 9/3に開催されましたiOSDC Japan 2023にて登壇してまいりました。

fortee.jp

ちなみにTVerはシルバースポンサーとして協賛いたしました。

techblog.tver.co.jp

© 2023 iOSDC Japan 2023 実行委員会

iOSDC Japanとは

以下、公式サイトからの引用です。

iOSDC Japan 2023はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンスです。今年もリアル会場とオンライン配信のハイブリッド開催です。
日本中、世界中から公募した知的好奇心を刺激するトークの他にも、パンフレットに掲載された技術記事、参加者であれば誰でも作れる即興のトーク・アンカンファレンスなど、初心者から上級者まで楽しめるコンテンツがみなさんを待っています。 9月1日(金) 〜 9月3日(日)はお祭りです!お楽しみに!!
開催に関連するニュースは公式Twitterアカウントからお知らせします。 是非フォローしておいてください。

iosdc.jp

© 2023 iOSDC Japan 2023 実行委員会

iOSDC Japanと私

初回のiOSDC Japanは2016年に練馬のココネリホールにて開催されました。私はiOSエンジニアではないのですが、主催者と知り合いであり、かつカメラを持っているという理由から撮影スタッフとしてお誘いいただきました。それから毎年撮影スタッフを担当しております。

iosdc.jp

普段は撮影スタッフをしている私もいつかはiOSDC Japanで登壇したいという思いが少しずつ大きくなり、今年はフロントエンド・モバイルアプリの改善に携わっていたのでチャンスだと思いまして、プロポーザルを提出してみたところ登壇に至りました。

撮影スタッフとしての私

朝はスタッフ集合写真の撮影から始まり、スピーカーやスポンサー、参加者の写真などを撮ってます。

© 2023 iOSDC Japan 2023 実行委員会

スピーカーとしての私

念願のiOSDC Japanでの登壇ということもあり若干緊張しました。

© 2023 iOSDC Japan 2023 実行委員会

トークのテーマ

iOSの内製エンジニア不在という状況でどのようにしてアプリの品質を可視化し改善しているのか」という話をしてまいりました。

昨年4月にTVerはサービスのリニューアルを行い、機能の追加と同時にバックエンド (サーバーサイド, インフラ) の内製化を行いました。しかし、フロントエンド (Web, モバイル, テレビアプリ) に関しては引き続き協力会社との共同開発であるため、アプリの品質の計測・可視化については事業者である私たちが責任を持ってやる必要があり、New Relic Mobileを活用してどのようにモバイルアプリの品質を改善しているかという取り組みについてお話してきました。

トークへのフィードバック

iOSアプリ開発における設計や新機能の具体的な活用といったトークではなく、どちらかというと組織的な取り組みといった側面が強かったため、iOSDC Japanに来場される参加者の需要があるのか正直心配でした。来場者0人のトーク会場で喋る悪夢を何度か見ましたが、当日は多くの方に足を運んでいただき、ありがたいことに温かいフィードバックを沢山頂戴しました。当日は別のセッションを見ていたが動画で私のトークを見てフィードバックしてくれたという方もいまして、本当に感謝しております。

現地のiOSエンジニアの方々と話してみたところ、モバイルアプリ開発だとやはりFirebaseを利用しているケースが多く、Firebase CrashlyticsやPerformance Monitoringは使ったことがあるけどNew Relic Mobileは使ったことがないという意見が多かったです。New Relic Mobileの採用については「小規模な技術組織である私達がツールのサイロ化を避けつつフロントエンドからバックエンドまで横断的にサービスの可視化をする」という弊社の事情に理解を示してくれる方もいました。

将来的にTVerのモバイルチームが発足するのであれば、ツールのサイロ化を恐れずにFirebaseとNew Relic Mobileを使い分けるという可能性もあるかと思います。こちらについては今後進展がありましたら何かしらの場にて発表したいと思います。

まとめ

iOSDC Japan 2023でTVerのモバイルアプリの品質計測と改善について登壇してまいりました。直近ではさらに踏み込んだ視聴体験の可視化・改善を少しずつ進めています。

私のトークを聞いてくれた方、トーク後のask the speakerに来てくれた方、トークへのフィードバックをくれた方、SNSにて言及してくれた方、ありがとうございました!!

トークの最後の方でもお話しましたが、TVerではiOSアプリの品質の可視化と改善を一緒に進めてくれるエンジニアを募集しています。もしTVerの技術組織について興味を持った方がいましたら弊社の採用サイトにぜひアクセスしてみてください。一緒に視聴体験の可視化と改善をやっていきましょう!

recruit.tver.co.jp

ということで、iOSDC Japanの次回の開催も楽しみにしております!それではまた来年お会いしましょう!

© 2023 iOSDC Japan 2023 実行委員会