LaunchDarkly: Feature Management Platform - Enterprise-CMCS/macpro-mako GitHub Wiki

LaunchDarkly is a powerful feature management platform that empowers software teams to control the entire lifecycle of their features. It utilizes feature flags to decouple code deployment from feature releases, enabling functionalities like A/B testing, controlled rollouts, and instant rollbacks. This approach allows teams to release new features with greater confidence and control.

Key Concepts

  • Feature Flags: Simple if-else statements that wrap around a new feature, allowing you to turn it on or off for specific users or user groups without deploying new code.

  • Targeted Rollouts: The ability to release features to specific segments of your user base. This can be based on attributes such as location, device, or user ID.

  • Percentage Rollouts: Gradually releasing a feature to a small percentage of users and slowly increasing the audience as you gain confidence in its stability and performance.

  • Kill Switches: A safety mechanism that allows you to instantly disable a problematic feature for all users with the flip of a switch, minimizing the impact of bugs.

Getting Started at CMS

These instructions will guide you through the process of gaining access to and using LaunchDarkly for the MACPRO_MAKO project.

Prerequisites
  • You must have completed all necessary onboarding procedures.

  • Your EUA (Enterprise User Administration) account must have the correct job codes assigned.

Access Procedure
  • Connect to the Cloud VPN: First, ensure you are connected to the cloud VPN at https://cloudvpn.cms.gov.

  • Request LaunchDarkly Access: Follow the instructions in the LaunchDarkly Guide to request access to the LaunchDarkly client. It's a good idea to bookmark this link for future reference.

  • Verify User Roles: Once you have access, verify that you have the appropriate user roles to access all three environments for MACPRO_MAKO. If you are missing any necessary permissions, please contact Keith Littlejohn, who is the designated CMS point of contact for LaunchDarkly.

Environments

The MACPRO_MAKO project in LaunchDarkly has three distinct environments that correspond to our deployment pipeline:

  • Dev: Used for our ephemeral development environments.

  • IMPL: The implementation or testing environment.

  • Production: The live environment for end-users.

Important Information

  • API Keys and SDKs: The access keys for the UI, API, and mobile SDKs are securely stored in the AWS Systems Manager Parameter Store. These were initially distributed by Keith Littlejohn. Team members do not have direct access to rotate these keys. If a key rotation is necessary, a request must be made to Keith.

  • Feature Flag Management: Once you have the proper permissions, you can toggle feature flags on and off within the LaunchDarkly dashboard to show or hide various application features.