LaunchDarkly and CircleCI supercharge dev productivity
LaunchDarkly uses CircleCI to safely manage circular dependencies while deploying hundreds of times daily
The Challenge
Founded in 2014, LaunchDarkly uses a real-time streaming architecture to power its feature flag management platform, enabling enterprise engineering teams to test code in production without impacting end users. While LaunchDarkly makes testing in production possible, the team also needs to test their own code as thoroughly as possible at the integration stage.
“We strongly believe that continuous integration is a best practice for modern application development,” explains Adam Zimman, Vice President of Platform at LaunchDarkly. As makers of a software development tool, Zimman says it’s critical for the company to not only follow best practices but also be aware of how end users will interact with their product. The company wants to create a seamless developer experience both for its own team as well as end users.
Between development, testing, and production environments, LaunchDarkly deploys multiple times per day and runs hundreds of tests daily. The types of tests the team needs to run are also constantly changing; there is always new surface area being discovered that requires expanded test coverage. “It’s an absolute imperative to be able to have continuous integration testing to deliver software at the pace we do,” Zimman says. “We also have to be constantly modifying, updating, and expanding our test coverage to make sure we find corner cases when we add new code.”
The company also needs to ensure that any new code meets its internal code standards, but without overburdening the development team or spending too much time on code reviews.
Like many developer tools, the company uses its own tool to run its product. The circular dependencies this creates mean the stakes are particularly high whenever code is pushed to production.
The Solution
LaunchDarkly relies on CircleCI, and has since day one. “The ability to easily add additional tests based on new bugs we find has streamlined our process because we’re not constantly fixing the same issue,” Zimman says. “If we didn’t have the ability to rapidly iterate on our testing, we would not be able to actually practice continuous delivery and make small, incremental changes.”
One of the major advantages Zimman sees in using CircleCI is the streamlined pipeline. Individual developers can merge code confidently, knowing it’s already been tested and won’t cause any downstream problems after merging. “The reason I like working with CircleCI is that I can quickly find out my points of failure,” explains Andrew Brown, Senior Software Engineer at LaunchDarkly. “I can go in and run the same commands that the tests are running, and debug them. That is absolutely essential to my workflow.”
“LaunchDarkly was built on CircleCI,” Brown says. “It would have been very difficult to get to where we are now without its simplicity and power.”
The LaunchDarkly Orb
LaunchDarkly recently released Code References, a feature that allows users to easily locate feature flags in the code, and packaged it into a CircleCI orb to share with customers. “From a value perspective, it was awesome,” Zimman says. “There were so many of our customers who were already using CircleCI, that it gave them access to that feature without any additional work on their end.”
Why CircleCI
“The main reason for using CircleCI from the beginning was the ease of use,” Zimman says. “We needed a continuous integration tool, and the ability to set it up easily, as well as modify and expand tests, was critical.”
“Ultimately, the test of a good CI tool is the ability to build new features quickly,” Brown says. At LaunchDarkly, the test suites run in 4 or 5 minutes, allowing all developers to quickly make changes. “The faster those iteration cycles go, the faster we can release software.”
“LaunchDarkly was built on CircleCI; it would have been very difficult to get to where we are now without its simplicity and power.”
Andrew Brown | Senior Software Engineer at LaunchDarkly
About LaunchDarkly
LaunchDarkly is a feature management platform that empowers all teams to safely deliver and control software through feature flags. By separating code deployments from feature releases, LaunchDarkly enables you to deploy faster, reduce risk, and iterate continuously. Microsoft, IBM, Atlassian, and 1000+ organizations use LaunchDarkly to build, operate, and learn from their software.