Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
信頼性とアジリティの両輪で進むスタートアップSRE
Search
Nealle
July 09, 2024
Programming
0
140
信頼性とアジリティの両輪で進むスタートアップSRE
StREの会 #1
スタートアップ企業のSREに立ちはだかる壁と乗り越え方
https://stre.connpass.com/event/322288/
Nealle
July 09, 2024
Tweet
Share
More Decks by Nealle
See All by Nealle
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.4k
Nealle Company Deck
nealle
7
110k
AllStarSaaS_BootCamp2024_nealle
nealle
1
160
AI活用したくてもできなかった不動産SaaSの今とこれから
nealle
0
2.2k
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
500
DatadogでAPI毎のSQL発行数を可視化してN+1を改善した話
nealle
2
2.3k
Autify活用による高頻度リリースの実現
nealle
0
2.2k
ニーリーエンジニア向け会社紹介資料
nealle
2
99k
Other Decks in Programming
See All in Programming
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
200
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
530
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
CSC305 Lecture 25
javiergs
PRO
0
130
第5回日本眼科AI学会総会_AIコンテスト_3位解法
neilsaw
0
170
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Italy
prof18
0
150
CSC509 Lecture 14
javiergs
PRO
0
130
Featured
See All Featured
A better future with KSS
kneath
238
17k
Writing Fast Ruby
sferik
628
61k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.3k
Being A Developer After 40
akosma
87
590k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Six Lessons from altMBA
skipperchong
27
3.5k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Optimizing for Happiness
mojombo
376
70k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Transcript
2024/07/10 StRE#1 スタートアップ企業のSREに立ちはだかる壁と乗り越え方 株式会社ニーリー プラットフォーム開発部 SREチーム 大木建人 NEALLE 信頼性とアジリティの両輪で進む スタートアップSRE
1
ことスタートアップのSREは スピード感を持って成長するプロダクトと伴走すること が多々あると思います。 そのようなプロダクトと向き合い、 どのようにして伴走するのかは 大きな課題だと思います。 その中で我々はどのように伴走してきたのか の話をしたいと思います。 1|会社概要 2
その中でテーマとして、 「信頼性とアジリティの両立」がありました。 1|会社概要 3
About Me 1|会社概要 4
5 氏名 所属 経歴 大木 建人 / Kento Ogi 株式会社ニーリー
プロダクト統括本部 プラットフォーム開発G SREチーム 趣味 夏はボルダリング🧗 冬はスノーボード🏂 2018-2020 大学で強化学習の研究 & インターンでAWSにハマる 2020-2023 新卒で合同会社DMM.comへ入社 SRE 2023- 株式会社ニーリー SRE 自己紹介 @2357gi @2357gi
6 プロダクト紹介
7 爆速成長中💪 プロダクト紹介
1|会社概要 8 最初は最速でローンチするためにオフショアで開発 AWS上にElastic Beanstalkで作成 運用でカバーする箇所は残ったが、 スピード感を持ってローンチすることができた 自社開発に移行 AWS環境の諸々を修正したり、 自社開発体制を整えたりしていた
1|会社概要 9 リリースは、隔週に一度の深夜に社員が持ち回りで行っていた。 月イチでリリース当番が回ってくる、なかなか辛い体制だった。 また、デプロイフローもscript手実行によるファイルばら撒き Elastic Beanstalkのお守りもなかなか大変!! リリース辛すぎる!!! 明確なペイン!!!!! SREingよりも先に、
インフラのブラッシュアップや最適化を優先して実施することに
10 ・Elastic Beanstalkの設定ファイルの肥大化 ・なんならEC2にRedisまで乗っている ・スケールアウトするとバッチが多重起動 ・SQLがボトルネックになりパフォーマンス問題が多発 などなど... Elastic Beanstalkのお守りが大変 を深ぼると...
11 ・Elastic Beanstalkの設定ファイルの肥大化 ・なんならEC2にRedisまで乗っている ・スケールアウトするとバッチが多重起動 ・SQLがボトルネックになりパフォーマンス問題が多発 などなど... → ドラスティックにアーキテクチャの変更を決定 ECSへとお引越し!
合わせてGithub ActionsによるCDも整備! Elastic Beanstalkのお守りが大変 を深ぼると...
1|会社概要 12 リリースタイミング ダウンタイム n年前 隔週の深夜 あり スタートアップ、ガンガンプロダクトアップデートさせたい 開発のフロー効率をあげたいという強い要望はあった CDは整備されても、リリースは隔週に一度の深夜だった
例えば、当時SEO対策のためにwebページの修正が頻繁に行われており、 その反映が隔週に一回なのはかなりしんどかった
1|会社概要 13 リリースタイミング ダウンタイム n年前 隔週の深夜 あり 新しいリリース方式 いつでも なし
デプロイフローの整備も実施 リリース内容によっては、 いつでもダウンタイムなしで リリースできるように! リリース回数グラフ 青が深夜リリース方式、赤が新しいリリース方式
14 ECS化によりscript手実行でのデプロイも Github ActionsによるCDへ進化 デプロイ作業が楽になった また、デプロイフローの信頼性も向上した 明確なペイン!!!!!の解消!!!
15 デプロイフローの信頼性も向上したし、 アーキテクチャも綺麗になったし、 フロー効率あげるぞ!アジリティの向上に繋げるぞ!!
16 デプロイフローの信頼性も向上したし、 アーキテクチャも綺麗になったし、 フロー効率あげるぞ!アジリティの向上に繋げるぞ!! 開発サイクルを早くして! フロー効率向上!アジリティ向上!!
1|会社概要 17 しかし... リリースには魔物が潜んでいる ゴゴゴゴゴ....
1|会社概要 18 リリースで障害を起こしちゃった経験がある人いますか? リリースで障害を起こしちゃった人を見たことがある人いますか? ゴゴゴゴゴ....
1|会社概要 19 リリースで障害を起こしちゃった人を 見たことがない人いますか? ゴゴゴゴゴ....
1|会社概要 20 どれだけ信頼性が高いリリースフローであれど、 どれだけテストをすれど、 リリースをする限り魔の手からは逃れられない ゴゴゴゴゴ....
1|会社概要 21 どれだけ信頼性が高いリリースフローであれど、 どれだけテストをすれど、 リリースをする限り魔の手からは逃れられない アジリティを高くすると信頼性が侵される.....? ゴゴゴゴゴ....
1|会社概要 22 Q.アジリティを高くすると信頼性が侵される.....? A. 確かにリリースによってメトリクスの悪化が引き起こされる ことがあった →信頼性の低下に繋がっている ゴゴゴゴゴ....
1|会社概要 23 信頼性 アジリティ 信頼性とアジリティは事業のフェーズによって重要度が変わる 我々の場合はまずアジリティの向上が重要だった デプロイフローのテコ入れを行い、 アジリティの向上に繋げることができた
1|会社概要 24 信頼性 アジリティ しかし、 デプロイ回数が増えたことにより、 リリースによるレイテンシの悪化などが増加した
1|会社概要 25 信頼性 アジリティ しかし、 デプロイ回数が増えたことにより、 リリースによるレイテンシの悪化などが増加した 信頼性にも向き合い、バランスを取る時が来た
1|会社概要 26 アジリティはわかりやすい ・デプロイ回数 ・リードタイムモニタリング アジリティ
1|会社概要 27 信頼性の定量的指標って何? 変更障害率? メトリクスの悪化? 選ばれたのは... 信頼性
1|会社概要 28 信頼性の定量的指標って何? 変更障害率? メトリクスの悪化? 選ばれたのは... SLI/SLO 信頼性
SLIを設定するときに 最初はCUJで策定することを考えた しかし、BtoBtoCサービスは CUJが複雑になってしまい、策定に難航した 1|会社概要 29 信頼性
そこで、一旦ALBのメトリクスでのみSLIを設定した まずはスモールスタートでのSLI運用を開始した 1|会社概要 30 信頼性 SLIを設定するときに 最初はCUJで策定することを考えた しかし、BtoBtoCサービスは CUJが複雑になってしまい、策定に難航した SLIを決める
SLI: バックエンドALBの可用性 5xx系の割合 1|会社概要 31 信頼性
SLI: バックエンドALBの可用性 5xx系の割合 SLO: 現状の値を元に策定 理想の値を設定せず、 まずは運用できるものを目指した 1|会社概要 32 信頼性
SLI/SLO、そして各種システムメトリクスが纏まったダッシュボードを作成し、 1.毎朝ダッシュボードを確認する 2.違和感があったら調査を行う といった運用を回すことができた 1|会社概要 33 SLI/SLOの運用
SLI/SLOの運用として、 SLI/SLO、そして各種システムメトリクスが纏まったダッシュボードを作成し、 1.毎朝ダッシュボードを確認する 2.違和感があったら調査を行う といった運用を回すことができた デプロイに伴うレイテンシの悪化などにも 素早く気づき対応を行うことができた 1|会社概要 34
数ヶ月後... SLI/SLOを施行し、何回かの見直しも実施した 運用もこなれてきたので、 CUJを元にしたSLIを設定することに。 1|会社概要 35
私たちがサービスを提供する相手は ・不動産管理会社さん ・借主さん ・ニーリー社員 の3方向なので、それぞれに対するCUJを設定。 1|会社概要 36
・借主さん 駐車場を探し、契約を行うことが目的 その目的を達成するUJをCUJとする ・不動産管理会社さん 駐車場と契約者を管理することが目的 その目的を達成するUJをCUJとする ・ニーリー社員 部署も幅広く、また機能も多いため悩ましい 1|会社概要 37
・ニーリー社員 部署も幅広く、また機能も多いため悩ましい 全ての機能を見ると大変、重要なものだけ絞りたい 機能一覧 x 部署一覧 のマトリクスを作成 複数の部署で使用している機能を クリティカルな機能だと判断 それを我々にとってのCUJと定義
1|会社概要 38
・不動産管理会社さん ・借主さん ・ニーリー社員 3方向に対してCUJを設定することを実現! 現在CUJベースのSLI/SLOを絶賛運用中 1|会社概要 39
1|会社概要 40 SREとして信頼性とアジリティの向上の両方が求められる バランスを取るための信頼性の定量的指標としてのSLI/SLO SLI/SLOも最初から全てCUJで設定するのではなく、 スモールスタートで運用していくのがおすすめ スタートアップは特にアジリティが求められる SREとしては信頼性、アジリティ両方に向き合いながら いい感じにやっていこうね まとめ
おしまい
1|会社概要 41 おしまい テックブログ/Noteに深ぼった話があるので 合わせてぜひ読んでみてください