Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ミニステージ: Feature Flag、その後に / After Feature Flag

ミニステージ: Feature Flag、その後に / After Feature Flag

AWS Summit 2023 のDeveloper Lounge のミニステージのセッション資料です。

kanamsasa

April 20, 2023
Tweet

More Decks by kanamsasa

Other Decks in Technology

Transcript

  1. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Feature Flag、その後に ⾦森政雄 M I N I - 1 ソリューションアーキテクト, DevAx アマゾン ウェブ サービス ジャパン 合同会社
  2. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⾃⼰紹介 Amazon Elastic Container Service AWS Step Functions AWS Fault Injection Simulator ⾦森 政雄 Ø 所属/役職 : DevAx(Developer Acceleration) チーム ソリューションアーキテクト Ø 好きなサービス
  3. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 早速ですが、CI/CD はやってますよね? Source Build Test Production
  4. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. でもデプロイはゴールではない 本番環境への デプロイ デプロイの後に起こること めっちゃ⼈気でた!! 負荷が急増した... めっちゃ不評だった… セキュリティインシデント!! アプリケーションの挙動を変えるために毎回デプロイする?? etc…
  5. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Feature Flag: コードの届け⽅を変える • コードは本番環境にデプロイするが、 フラグの後ろに隠してユーザには⾒せない • 準備ができたらコードを変更するのではなく、 フラグの値を変える • 機能リリースとコードのデプロイを分離する
  6. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS AppConfig とは フルマネージドな AWS ソリューション 資本投資を最⼩化 アマゾンでの4,000チーム以上におよぶ 利⽤のベストプラクティス Amazon Echo、プライムビデオ、Amazon.com アプリケーションのダウンタイムと 停⽌期間を最⼩化 顧客への影響を最⼩化 アプリケーションの設定を作成、管理、デプロイするサービス
  7. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo: Feature Flag カルーセル機能のローンチ
  8. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Feature Flag を導⼊してしばらく後、、、
  9. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 余計な抽象化や状態を持ったロジックによる可読性の低下 • テストの負担が⼤きくなる • 想定外の挙動の原因になることも 課題: 古い Feature Flag (※) が残っていると、、、 Knight Capital Group‘s $460 million dollar mistake serves as a cautionary tale on what can go wrong when you don't manage your feature flags correctly. https://martinfowler.com/articles/feature-toggles.html ※ 目的によって長期間使うものもあるが、ここでは短期的に利用するフラグを想定
  10. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 使い終わったフラグへの対応⽅法 チケットの起票 フラグをデプロイするときに それを削除するチケットも起票する 有効期間の設定 フラグに有効期間を 設定して管理する 同時存在数の制限 ⼀定数以上のフラグを 同時に存在させない
  11. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 使い終わったフラグへの対応⽅法 チケットの起票 フラグをデプロイするときに それを削除するチケットも起票する 有効期間の設定 フラグに有効期間を 設定して管理する 同時存在数の制限 ⼀定数以上のフラグを 同時に存在させない この仕組みも⾃動化したい!!
  12. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 設定を作成、デプロイする フローにロジックを注⼊できる • デプロイフローの中の 任意のアクションポイントに 設定する • アクションポイントは 設定の作成〜ロールバックまで 幅広くサポート AWS AppConfig extensions PRE_CREATE_HOSTED_ CONFIGURATION_VERSION PRE_START_DEPLOYMENT ON_DEPLOYMENT_START ON_DEPLOYMENT_STEP ON_DEPLOYMENT_BAKING ON_DEPLOYMENT_COMPLETE ON_DEPLOYMENT_ ROLLED_BACK 設定可能なアクションポイント
  13. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS が提供する extensions AWS AppConfig extensions で呼び出せるモノ カスタム extensions AWS Lambda Amazon Simple Notification Service (Amazon SNS) Amazon Simple Queue Service (Amazon SQS) Amazon EventBridge
  14. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Demo のアーキテクチャ AWS AppConfig 環境 Feature Flag デプロイ PRE_CREATE_HOSTED_ CONFIGURATION_VERSION ON_DEPLOYMENT_COMPLETE Lambda function (AppConfig extensions) チケット管理 システム Flag 削除 チケット チケット作成
  15. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo: チケット起票の⾃動化
  16. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ • Feature Flag を使ってリリースとデプロイを分離しましょう • 使い終わった Feature Flag を削除するフローも作りましょう • AWS AppConfig Extensions で⽚付けのフローも⾃動化できます
  17. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Thank you! © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Please complete the session survey in the mobile app