Slide 1

Slide 1 text

1 プロダクト開発エンジニアから SREへの挑戦 Embedded SREとしてSUZURIの可用性向上に取り組む 下重博資 / GMO PEPABO inc. 2023.04.14 Pepabo Tech Conference #20 春のSREまつり

Slide 2

Slide 2 text

SUZURI事業部  プロダクトチーム シニアエンジニア 2016年 新卒入社 2 自己紹介 下重 博資 Hiroshi Shimoju 趣味はゲーム。スプラトゥーン3でウデマエSまで上 がったもののそこから苦戦中 ● Blog: https://shimoju.org/ ● Twitter: https://twitter.com/shimoju_ ● GitHub: https://github.com/shimoju ● Scrapbox: https://scrapbox.io/shimoju/

Slide 3

Slide 3 text

3 この資料にはScrapbox版があります!!! • https://bit.ly/ptc20-sh で見れます • 資料としての一覧性が高く、各種リンクにアクセスしやすくなっています • (最初はScrapboxで作っていて、せっかくなので公開)

Slide 4

Slide 4 text

4 アジェンダ 1. プロダクト開発エンジニアとしてのキャリア 2. Embedded SREとしてのキャリア 3. SUZURIのSRE実践パターン 4. まとめ

Slide 5

Slide 5 text

5 プロダクト開発エンジニアとしてのキャリア

Slide 6

Slide 6 text

6 ● 2016/04:新卒入社、EC事業部 SUZURIチーム(現SUZURI事業部)に配属 ● 2019/07:シニアエンジニアに昇格 ● 2020/01:SUZURI事業部内にSREチームが発足、そのメンバーとしてSRE活動を開始 ● 2020/10:Kaigi on Railsにて登壇 ● 2020/12:Shopifyモデルを参考にした組織体制へ変更、「SRE座」というチーム名に ● 2022/06:毎年恒例のTシャツセールにあわせ、SUZURI初のテレビCM放映 年表 プロダクト開発エンジニアとしてのキャリア

Slide 7

Slide 7 text

7 ● Ruby on Railsを用いたサーバサイド開発が中心 ● SUZURIの新アイテムの実装をはじめ、新機能の追加や、モバイルアプリの開発 ● インフラの管理、CI/CDや開発環境の整備、セキュリティ対策など ● Canvathの事業譲受 ○ 開発の引き継ぎを担当し、自社で運用できるようにした ○ AWSで運用されていたサービスを Herokuに移設し、運用コストを削減 これまでの経験 プロダクト開発エンジニアとしてのキャリア

Slide 8

Slide 8 text

8 ● 配属当初のSUZURIは小さいチームだったため、Webをはじめ、インフラからモバイルアプリまで全部 やっていた ● SUZURIではHerokuを活用しており、アプリケーションエンジニアでもインフラを管理しやすかった ● その後チームが拡大し、2018年にSUZURI事業部として独立 当時からインフラを触ることも多かった プロダクト開発エンジニアとしてのキャリア

Slide 9

Slide 9 text

9 Embedded SREとしてのキャリア

Slide 10

Slide 10 text

10 ● もともとインフラの構成管理を行ったり、開発環境やCIの高速化などに取り組んでいた ○ みんなに気持ちよく開発してもらい、組織としての生産性を上げることに興味があった ● インフラやセキュリティ対策に強みをもつ事業部メンバーが少ない ○ こちらに手を伸ばした方が自分の強みが発揮でき、組織的にもカバー範囲が広がりそう SREに挑戦した経緯 Embedded SREとしてのキャリア

Slide 11

Slide 11 text

11 ● 個人的にはキャリアチェンジではなく「キャリアの幅を広げる」イメージ ○ 状況に応じてプロダクト開発も行っている ○ アプリケーションコードを直接修正してパフォーマンスを改善したりもする キャリアの幅を広げる Embedded SREとしてのキャリア

Slide 12

Slide 12 text

12 SUZURIのSRE実践パターン

Slide 13

Slide 13 text

13 ● SUZURI事業部 SRE座 ○ SUZURIの「中の人」としてSREを実践する(Embedded SRE) ○ 7種類のSRE実践パターン https://x-tech5.co.jp/2022/02/21/204/ における、「1.中の人がSREす る、あるいは中の人として SREする」 ● 技術部(技術基盤チーム、プラットフォームグループ) ○ SUZURIの「外の人」として、SRE座と連携してSREを実践する(Platform SRE) ○ メンバーやその状況に応じて、「 2.外の人として、SREに関わるタスクや機能開発を引き受ける」「 3.外 の人として、SREに関わる助言を行う」「 7.プラットフォームを提供する」など様々 メンバー SUZURIのSRE実践パターン

Slide 14

Slide 14 text

14 ● SRE座と技術部が週1回ミーティングし、直近のSLIを確認、今後の施策などを検討する ○ Datadogでダッシュボードを作成し、 SLI/SLOを一目で確認できるようにしている ○ 大規模セールの際は負荷試験を行い、キャパシティプランニングやパフォーマンス改善について相 談する ● 各々の専門性に応じて担当を割り振って実行する ○ アプリケーションコードの調査が必要であれば SRE座 ○ Kubernetesクラスタやインフラの込み入った部分の調査が必要であれば技術部 Embedded SREとPlatform SREの協業 SUZURIのSRE実践パターン

Slide 15

Slide 15 text

15 ● SUZURI初のテレビCMを伴ったセールの実施が決まった ○ より確証を持った負荷対策が実施できるように、負荷試験に基づいたキャパシティプランニングやパ フォーマンス改善を行うことにした ● 負荷試験は技術部@takutakaが担当 ○ https://tech.pepabo.com/2022/07/07/suzuri-sale-and-load-testing/ ● パフォーマンス改善は技術部@pyamaを中心に、SRE座とプロダクト開発エンジニアで担当 ○ https://tech.pepabo.com/2022/06/29/suzuri-sale-2022-summer/ 実践例:CM放映&セール対策 SUZURIのSRE実践パターン

Slide 16

Slide 16 text

16 ● ステージング環境で負荷試験を実施するためのアプリ側の修正 ○ Rate Limitを無効化できるようにするなど ● 負荷試験のシナリオの作成 ● N+1を効率的に検知できるようにするための自動テストの修正 ● データベースのスケールアップ ● Platform SREが変更したコードのレビュー SRE座としてやったこと SUZURIのSRE実践パターン

Slide 17

Slide 17 text

17 ● 負荷試験の目標値を達成できた! ○ あるセールのN倍のトラフィックで、ログイン比率を M%としたとき、p95でO秒を切る ● パフォーマンス関連の障害はなくセールを終えられた! その結果 SUZURIのSRE実践パターン

Slide 18

Slide 18 text

18 まとめ

Slide 19

Slide 19 text

19 ● 事業ドメインの理解とバックエンドの専門性があることで、ボトルネックの特定やパフォーマンスの改善に 直接踏み込める ● 高い専門性を持つSRE組織が既にあっても、Embedded SREとして働くことで価値を作れる ○ Platform SREと連携することでより素早く、より高度なことに取り組める ● 「プロダクトチームの中でSREをやる」選択肢も考えるとキャリアの幅が広がるはず! プロダクト開発エンジニアがSREに挑戦してみて まとめ

Slide 20

Slide 20 text

Thank You!! 20