$30 off During Our Annual Pro Sale. View Details »

プロダクト開発エンジニアからSREへの挑戦 / backend-engineer-and-sre

プロダクト開発エンジニアからSREへの挑戦 / backend-engineer-and-sre

Hiroshi Shimoju

April 14, 2023
Tweet

More Decks by Hiroshi Shimoju

Other Decks in Technology

Transcript

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

    View Slide

  2. 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/

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 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放映
    年表
    プロダクト開発エンジニアとしてのキャリア

    View Slide

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

    View Slide

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

    View Slide

  9. 9
    Embedded SREとしてのキャリア

    View Slide

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

    View Slide

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

    View Slide

  12. 12
    SUZURIのSRE実践パターン

    View Slide

  13. 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実践パターン

    View Slide

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

    View Slide

  15. 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実践パターン

    View Slide

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

    View Slide

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

    View Slide

  18. 18
    まとめ

    View Slide

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

    View Slide

  20. Thank You!!
    20

    View Slide