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
130
信頼性とアジリティの両輪で進むスタートアップ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 Company Deck
nealle
5
98k
AllStarSaaS_BootCamp2024_nealle
nealle
1
140
AI活用したくてもできなかった不動産SaaSの今とこれから
nealle
0
1.9k
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
480
DatadogでAPI毎のSQL発行数を可視化してN+1を改善した話
nealle
2
2.2k
Nealle_Autify_LT_Slide202403
nealle
0
810
ニーリーエンジニア向け会社紹介資料
nealle
2
89k
Other Decks in Programming
See All in Programming
CSC509 Lecture 12
javiergs
PRO
0
160
ヤプリ新卒SREの オンボーディング
masaki12
0
130
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
100
色々なIaCツールを実際に触って比較してみる
iriikeita
0
330
CSC509 Lecture 09
javiergs
PRO
0
140
Jakarta EE meets AI
ivargrimstad
0
120
RubyLSPのマルチバイト文字対応
notfounds
0
120
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
290
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
580
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
What's in a price? How to price your products and services
michaelherold
243
12k
Adopting Sorbet at Scale
ufuk
73
9.1k
GitHub's CSS Performance
jonrohan
1030
460k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Statistics for Hackers
jakevdp
796
220k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
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に深ぼった話があるので 合わせてぜひ読んでみてください