A Deployment Is Not a Release Control Your Launches Wfeature Flags Boa305 R

Title

AWS re:Invent 2022 - A deployment is not a release: Control your launches w/feature flags (BOA305-R)

Summary

  • The talk focused on using feature flags to control the deployment and release of new features, allowing for experimentation and feedback collection before a full release.
  • The speakers, Seb and Olivier, emphasized the difference between deploying and releasing, highlighting that deployment can occur well before the actual release to customers.
  • They discussed the concept of feature flags, also known as feature toggles, and their use cases, including releases, experiments, launch control, and canary testing.
  • A demo was presented using two AWS services: Amazon CloudWatch Evidently and AWS AppConfig, to show how to implement feature flags in a web application.
  • The demo included creating a project, adding a feature, creating a launch, and monitoring the feature's use by customers.
  • The speakers also touched on the importance of testing, observability, and cleaning up the code after a feature is fully deployed.

Insights

  • Feature flags allow for a decoupled deployment and release process, enabling safer and more controlled feature rollouts.
  • AWS AppConfig is designed for safe configuration distribution and is ideal for controlled rollouts with automatic rollback capabilities.
  • Amazon CloudWatch Evidently is suitable for running experiments and A/B testing over a longer period.
  • The use of feature flags introduces additional complexity, such as increased latency, the need for more testing, and the potential for code clutter if not managed properly.
  • AWS provides multiple ways to implement feature flags, and the choice between AppConfig and Evidently depends on the specific use case and requirements.
  • The speakers highlighted the importance of planning for code cleanup post-deployment and suggested using mechanisms like automatic ticket creation to ensure this step is not overlooked.
  • The demo application was kept simple and used AWS SDK for JavaScript version 3 and TypeScript to focus on the feature flag implementation without additional libraries or frameworks.