第26回: Pennantで機能フラグ運用 — 新機能を「全員に一斉公開」していませんか?
新機能を本番に出した瞬間、全ユーザーに影響が広がる——問題が起きてからロールバックするには遅すぎます。
Category
新機能を本番に出した瞬間、全ユーザーに影響が広がる——問題が起きてからロールバックするには遅すぎます。
Sentry を導入したものの、通知が大量に飛んできて結局スルーしている——こういった状況になっていませんか?
本番障害の対応中、ログを grep で探し回っても欲しい情報が見つからない——そんな経験はありませんか?
開発中、意図しないクエリが走っている、ジョブがどこかで失敗している、例外が静かに飲み込まれている——こうした問題をログファイルを grep しながら追っていませんか?
ユーザーから「動作が重い」と報告を受けても、どのエンドポイントが、どのタイミングで、どれくらい遅いのか——数値で答えられない状況になっていませんか?
Octaneはworkers数やmax-requestsの設定が指数関数的に性能に影響します。「とりあえず4」で動いている場合、本来のもっと出せるスループットを見逃しているかもしれません。
人気ランキングのキャッシュが失効した瞬間、100件のリクエストが同時にDBへ走ったとしたら——あなたのアプリは耐えられますか?
「茇くて導入」のキャッシュは、数日後に「古いデータが返る」「更新したはずなのに反映されない」といった整合性問題の源になります。キャッシュは設計するものです。
リファクタリングは外部振る舞いを変えずに内部構造を改善することです。その「外部振る舞い」を保証するテストがなければ、リファクタ前後で振る舞いが変わっても気づけません。
カバレッジ指標は「コードが実行されたか」を測るだけで、「アサーションが正しいか」は別問題です。「if ($a > 0) を if ($a >= 0) に変更してもテストが逃げる」という状態は、Mutation Testingで初めて露呈できます。