Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© 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 アマゾン ウェブ サービス ジャパン 合同会社
Slide 2
Slide 2 text
© 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) チーム ソリューションアーキテクト Ø 好きなサービス
Slide 3
Slide 3 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 早速ですが、CI/CD はやってますよね? Source Build Test Production
Slide 4
Slide 4 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. でもデプロイはゴールではない 本番環境への デプロイ デプロイの後に起こること めっちゃ⼈気でた!! 負荷が急増した... めっちゃ不評だった… セキュリティインシデント!! アプリケーションの挙動を変えるために毎回デプロイする?? etc…
Slide 5
Slide 5 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Feature Flag: コードの届け⽅を変える • コードは本番環境にデプロイするが、 フラグの後ろに隠してユーザには⾒せない • 準備ができたらコードを変更するのではなく、 フラグの値を変える • 機能リリースとコードのデプロイを分離する
Slide 6
Slide 6 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS AppConfig とは フルマネージドな AWS ソリューション 資本投資を最⼩化 アマゾンでの4,000チーム以上におよぶ 利⽤のベストプラクティス Amazon Echo、プライムビデオ、Amazon.com アプリケーションのダウンタイムと 停⽌期間を最⼩化 顧客への影響を最⼩化 アプリケーションの設定を作成、管理、デプロイするサービス
Slide 7
Slide 7 text
© 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 カルーセル機能のローンチ
Slide 8
Slide 8 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Feature Flag を導⼊してしばらく後、、、
Slide 9
Slide 9 text
© 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 ※ 目的によって長期間使うものもあるが、ここでは短期的に利用するフラグを想定
Slide 10
Slide 10 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 使い終わったフラグへの対応⽅法 チケットの起票 フラグをデプロイするときに それを削除するチケットも起票する 有効期間の設定 フラグに有効期間を 設定して管理する 同時存在数の制限 ⼀定数以上のフラグを 同時に存在させない
Slide 11
Slide 11 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 使い終わったフラグへの対応⽅法 チケットの起票 フラグをデプロイするときに それを削除するチケットも起票する 有効期間の設定 フラグに有効期間を 設定して管理する 同時存在数の制限 ⼀定数以上のフラグを 同時に存在させない この仕組みも⾃動化したい!!
Slide 12
Slide 12 text
© 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 設定可能なアクションポイント
Slide 13
Slide 13 text
© 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
Slide 14
Slide 14 text
© 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 削除 チケット チケット作成
Slide 15
Slide 15 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo: チケット起票の⾃動化
Slide 16
Slide 16 text
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. まとめ • Feature Flag を使ってリリースとデプロイを分離しましょう • 使い終わった Feature Flag を削除するフローも作りましょう • AWS AppConfig Extensions で⽚付けのフローも⾃動化できます
Slide 17
Slide 17 text
© 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