Files
nexus/sreweekly/articles/221/01-chaos-engineering-and-continuous-verification-in-production.html
2026-09-12 17:23:01 +08:00

47 lines
756 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en-US"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/06a57141b3ff4399-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/1c175694bc1e8ad8-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/415c659d58f62aff-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/751909690a1a74fa-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8fe56b4ac583f0e1-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a205fd595a9beeab-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c314d5394508c5c7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/cbde3fd2db275844-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/d865ae18e54dcb9c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/eb42eb886f642af5-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f5e01691c8be1cce-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C2560%2C1440&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C2560%2C1440&amp;w=3840&amp;fit=max&amp;q=80 2x"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTY1P9HI4UtaI_img-bg--footer-get-demo.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwS41P9HI4UtaG_img-bg--footer-code-control.svg"/><link rel="preload" as="image" href="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwSo1P9HI4UtaF_img-bg--footer-agent-control.svg"/><link rel="stylesheet" href="/_next/static/css/4b895a9a0ceca7ed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/6aeb3fbd013f7055.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/baa31bc0bc2753e2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b694ee22169cc940.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/455e5680c78aaa64.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/668223e4ce0896ff.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/71e7e41975824f9a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/499e8ecba60a437c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c13c7b31349c3e1e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/eb8c52289887f66e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/76ba66facbc12026.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/61c845f39508ea49.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9506ad2d29f3da93.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c96dfd09a5295fdd.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/ffc1747465c21b7c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a3d1e33a3a179b4c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/ab4a69f65a7a2b93.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5b017ffd652d07f8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c2a2739e0e57e14c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0e421a84dd333b11.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f188bfa3f9063907.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f08af977962d892c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/741f4cf49b054cf0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/a05c4c008283c998.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/271699adbe3692a1.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/6bcd99eac94adccc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9860101428a5e484.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/34a11c3f23439233.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/b60911417b616c72.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e217cbe846d54f5a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/437c2c516d87ce24.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c240dbaacd91d7b6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e2768b37f0a7179e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/3771f60faaafd2e7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e22ba8bc372dffa3.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/7a4ebd8c71fa9dec.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/42eebaa13cfadd34.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0b0e39f220873667.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f70e0c2fa3894b2b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2a1b94a1fafb21a0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/372992834c739f06.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6feccfddff7ef52e.js"/><script src="/_next/static/chunks/f5e865f6-f7ce3acdc8f53367.js" async=""></script><script src="/_next/static/chunks/4478-fb3dc47bb56134a0.js" async=""></script><script src="/_next/static/chunks/main-app-21b96efeeed761a7.js" async=""></script><script src="/_next/static/chunks/7503-b90474bdcb57e2a8.js" async=""></script><script src="/_next/static/chunks/7724-f653158a9ba1984f.js" async=""></script><script src="/_next/static/chunks/2151-1b788faaa737d8a8.js" async=""></script><script src="/_next/static/chunks/8149-7f3e93382769fd21.js" async=""></script><script src="/_next/static/chunks/4544-0392fd1bc10fce67.js" async=""></script><script src="/_next/static/chunks/8072-5f4bd0e6a2406823.js" async=""></script><script src="/_next/static/chunks/7950-199b90cf99360b48.js" async=""></script><script src="/_next/static/chunks/6486-65f1afba5f178bdd.js" async=""></script><script src="/_next/static/chunks/4089-4672fdbd787dddc6.js" async=""></script><script src="/_next/static/chunks/5265-7f81f179d2fa0221.js" async=""></script><script src="/_next/static/chunks/685-dc88876e3a3ca418.js" async=""></script><script src="/_next/static/chunks/8941-6bf805c661ac7247.js" async=""></script><script src="/_next/static/chunks/739-f05d34af20af1cd5.js" async=""></script><script src="/_next/static/chunks/4661-d6f876059d7e275f.js" async=""></script><script src="/_next/static/chunks/7550-010a17a69ff132e0.js" async=""></script><script src="/_next/static/chunks/9244-3b918f1b79c82aa2.js" async=""></script><script src="/_next/static/chunks/8687-88b6a1a725cd10c9.js" async=""></script><script src="/_next/static/chunks/8634-33081268eea6ca62.js" async=""></script><script src="/_next/static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js" async=""></script><script src="/_next/static/chunks/app/layout-5d77b524524e53c1.js" async=""></script><script src="/_next/static/chunks/app/not-found-497554e3668544b1.js" async=""></script><link rel="preload" href="https://consent.cookiebot.com/uc.js" as="script"/><link rel="preload" href="https://www.googletagmanager.com/gtm.js?id=GTM-WRKKC89" as="script"/><link rel="expect" href="#_R_" blocking="render"/><meta name="next-size-adjust" content=""/><meta name="theme-color" content="#FFF"/><title>Chaos Engineering: Continuous Verification in Prod | LaunchDarkly</title><meta name="description" content="Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery."/><meta name="application-name" content="LaunchDarkly"/><meta name="author" content="LaunchDarkly"/><meta name="generator" content="LaunchDarkly"/><meta name="referrer" content="origin-when-cross-origin"/><meta name="creator" content="LaunchDarkly"/><meta name="publisher" content="LaunchDarkly"/><meta name="robots" content="index"/><meta name="googlebot" content="index"/><link rel="canonical" href="https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta property="og:title" content="Chaos Engineering: Continuous Verification in Prod | LaunchDarkly"/><meta property="og:description" content="Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery."/><meta property="og:url" content="https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/"/><meta property="og:site_name" content="LaunchDarkly"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="LaunchDarkly - Feature management platform"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@LaunchDarkly"/><meta name="twitter:title" content="Chaos Engineering: Continuous Verification in Prod | LaunchDarkly"/><meta name="twitter:description" content="Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery."/><meta name="twitter:image" content="https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><meta name="twitter:image:alt" content="LaunchDarkly - Feature management platform"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="96x96"/><link rel="icon" href="/icon.png?8354b0c15ee5b065" type="image/png" sizes="96x96"/><link rel="apple-touch-icon" href="/apple-icon.png?8354b0c15ee5b065" type="image/png" sizes="96x96"/><script id="cookie-consent-script" data-cookieconsent="ignore">
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("consent", "default", {
ad_storage: "denied",
ad_user_data: "denied",
ad_personalization: "denied",
analytics_storage: "denied",
functionality_storage: "denied",
personalization_storage: "denied",
security_storage: "granted",
wait_for_update: 500,
});
gtag("set", "ads_data_redaction", true);
gtag("set", "url_passthrough", true);
</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_918804 __variable_81b511 __variable_3ebb29 __variable_a7dd04 __variable_479fb2"><div hidden=""><!--$--><!--/$--></div><script>(self.__next_s=self.__next_s||[]).push(["https://consent.cookiebot.com/uc.js",{"data-cbid":"a9e2be18-730c-4afe-89dc-251a408727a0","data-blockingmode":"auto","type":"text/javascript","data-georegions":"{'region':'AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SK, SI, ES, SE, GB','cbid':'d7afae1f-c20d-4849-be5c-a875c8c184a0'}","id":"cookiebot"}])</script><div class="styles-module__4bne7a__layers"></div><section class="styles-module__NFwUga__newSection styles-module__aO7DCW__aboveMenuBanner "><div class="styles-module__NFwUga__contentContainer styles-module__aO7DCW__aboveMenuBannerContainer"><div><p class="styles-module__J0n02W__variant_textSmallMedium styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_medium">[Hands-on workshop] Managing AI Agents in Production - Sep 17<!-- --> — <a target="_self" tabindex="0" href="/webinars/runtime-labs-managing-ai-agents-in-production-sept-17/">Save my seat</a></p></div><div class="styles-module__aO7DCW__closeButtonContainer"><button type="button" class="styles-module__aO7DCW__closeButton" aria-label="Close banner"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aNWwCp5xUNkB1HlJ_icon--close-white-narrow.svg" alt="" loading="lazy"/></button></div></div></section><a id="home" tabindex="-1"></a><div class="styles-module__EPiYHG__accessibilityMenu"><span class="styles-module__EPiYHG__label">Skip to:</span><nav><ul><li><a href="/" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Home">Home</a></li><li><a href="#content" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Content">Content</a></li><li><a href="#footer" class="styles-module__EPiYHG__link" tabindex="0" title="Skip to Footer navigation">Footer navigation</a></li></ul></nav></div><div class="styles-module__stVVvG__refreshDesignNavDock"></div><header class="header-nav oldstyles-module__hgjkrG__header styles-module__stVVvG__header undefined styles-module__stVVvG__useRefreshDesign "><div class="styles-module__stVVvG__refreshDesignNavDockIcons"><div class="styles-module__stVVvG__refreshDesignNavDockBar"></div></div><nav class="oldstyles-module__hgjkrG__nav styles-module__stVVvG__nav " aria-label="Main"><div class="oldstyles-module__hgjkrG__brand styles-module__stVVvG__brand styles-module__stVVvG__useWhiteLogo"><div class="styles-module__stVVvG__brandLogoContainer"><a class="styles-module__SHyKFW__logo oldstyles-module__hgjkrG__brand styles-module__stVVvG__brandLogo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="nav-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#fff" clip-path="url(#brand-light_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-light_svg__a"><path fill="#fff" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div></div><div class="oldstyles-module__hgjkrG__navInner styles-module__stVVvG__navInner container"><div class="styles-module__stVVvG__navInnerCorner styles-module__stVVvG__refreshDesignNavCurbLeft"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="21" fill="none"><path fill="#212121" d="M19 19C19 8.507 10.493 0 0 0h19z"></path></svg></div><div class="styles-module__stVVvG__navInnerCorner styles-module__stVVvG__refreshDesignNavCurbRight"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="21" fill="none"><path fill="#212121" d="M0 19C0 8.507 8.507 0 19 0H0z"></path></svg></div><div class="oldstyles-module__hgjkrG__mobileButtonsContainer"><a class="button oldstyles-module__hgjkrG__requestDemoMobileButton styles-module__stVVvG__refreshDesignRequestDemoMobileButton" id="main-nav-mobile-request-demo" target="_self" tabindex="0" data-analytics="nav-mobile-get-a-demo" href="/request-a-demo/">Get a demo</a></div><input type="checkbox" id="activate-menu-old" class="oldstyles-module__hgjkrG__mobileBurgerMenu" aria-label="Toggle navigation menu"/><div class="oldstyles-module__hgjkrG__burger undefined"></div><div class="oldstyles-module__hgjkrG__whiteOverlay"><a class="styles-module__SHyKFW__logo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="nav-mobile-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#fff" clip-path="url(#brand-light_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-light_svg__a"><path fill="#fff" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div><div class="oldstyles-module__hgjkrG__mainNavGroup styles-module__stVVvG__mainNavGroup main-nav-container" id="mainNavigation"><nav aria-label="Main navigation" class="oldstyles-module__hgjkrG__mainNav"><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="platform" data-analytics="nav-platform" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Platform</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
moreStyles-module__udQsYq__dropdown
main-nav-dropdown
platform
styles-module__wa_yaW__dropdown
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="products-wrapper styles-module__9d2Dpq__linksWrapper"><div><div class="products styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-products-codecontrol" href="/platform/code-control/"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>CodeControl</h6><p>Ship confidently, with automated control built in.</p></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-products-agentcontrol" href="/platform/agent-control/"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>AgentControl</h6><p>One place to keep your agent behavior under control.</p></div></div></a></div></div><div class="styles-module__9d2Dpq__bookDemoCta"><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime_outline styles-module__d4f9cW__size_default styles-module__9d2Dpq__bookDemoCtaLink" target="_self" tabindex="0" data-analytics="nav-products-book-a-demo" href="/request-a-demo/"><span class="styles-module__d4f9cW__label">Book a demo</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div></div><div class="overview-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">How it works</p><div class="overview styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-platform-overview" href="/how-it-works/platform/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Platform overview</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-feature-flags" href="/how-it-works/feature-flags/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Feature flags</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-observability" href="/how-it-works/observability/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Observability</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-experimentation" href="/how-it-works/experimentation/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Experimentation</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-agent-integrations" href="/how-it-works/agent-integrations/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Agent integrations</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-integrations" href="/integrations/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Integrations</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-overview-architecture" href="/how-it-works/platform-architecture/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Architecture</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="solutions" data-analytics="nav-solutions" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Solutions</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
moreStyles-module__udQsYq__dropdown
main-nav-dropdown
solutions
styles-module__wa_yaW__dropdown
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="by-team-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">By Use Case</p><div class="by-team styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-release-ai-built-code" href="/solutions/release-ai-built-code/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Release AI-built code</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-control-ai-agents" href="/solutions/control-ai-agents/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Control AI agents</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-optimize-ai-performance-cost" href="/solutions/optimize-ai-performance/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Optimize AI performance &amp; cost</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-self-heal-systems" href="/solutions/self-heal-systems/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Self-heal systems</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-team-run-experiments" href="/solutions/run-experiments/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Run experiments</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="by-industry-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">By Team</p><div class="by-industry styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-ai-engineers" href="/persona/ai-engineers/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>AI engineers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-developers" href="/persona/development-teams/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Developers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-devops-sre" href="/persona/devops-site-reliability-engineer-teams/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>DevOps &amp; SRE</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-product-managers" href="/persona/product-managers/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Product managers</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-by-industry-data-scientists" href="/persona/data-scientists/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Data scientists</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="resources" data-analytics="nav-resources" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Resources</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
moreStyles-module__udQsYq__dropdown
main-nav-dropdown
resources
styles-module__wa_yaW__dropdown
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="learn-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Learn</p><div class="learn styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-blog" href="/blog/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-guides-ebooks" href="/guides/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Guides &amp; ebooks</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-learn-events-webinars" href="/events-webinars/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Events &amp; webinars</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a href="https://www.youtube.com/@LaunchDarkly" class="styles-module__9d2Dpq__link " target="_blank" tabindex="0" data-analytics="nav-learn-videos" rel="nofollow noreferrer"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Videos</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="success-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Success</p><div class="success styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:0"></template><a href="https://academy.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-academy"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Academy</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-customer-stories" href="/customer-stories/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Customer stories</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-professional-services" href="/services/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Professional services</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-partners" href="/partner-program/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Partners</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div><div class="get-help-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Get Help</p><div class="get-help styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:1"></template><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-help-center"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Help Center</h6><p>Explore help topics for everything LaunchDarkly.</p></div></div></a><!--/$--><!--$?--><template id="B:2"></template><a href="https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-request-support"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Request support</h6><p>Reach out to us for direct answers to your questions.</p></div></div></a><!--/$--></div></div></div></div></div></div></div></div></div><div class="styles-module__wa_yaW__mainNavParent nav--main-nav-parent"><div class="moreStyles-module__udQsYq__parentNavItem styles-module__wa_yaW__parentNavItem main-nav-parent-nav-item"><div class="moreStyles-module__udQsYq__navItem styles-module__wa_yaW__navItem" id="developers" data-analytics="nav-developers" role="button" tabindex="0"><span class="moreStyles-module__udQsYq__navItemTitle styles-module__wa_yaW__navItemTitle main-nav-title">Developers</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__wa_yaW__mobileCaretClosed "><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="
moreStyles-module__udQsYq__dropdown
main-nav-dropdown
developers
styles-module__wa_yaW__dropdown
"><div class="moreStyles-module__udQsYq__dropdownContainer styles-module__wa_yaW__dropdownContainer main-nav-dropdown-container"><div class="moreStyles-module__udQsYq__linksContainer styles-module__wa_yaW__linksContainer"><div class="styles-module__wa_yaW__linksContainerInner"><div class="resources-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Docs</p><div class="resources styles-module__9d2Dpq__linksContainer"><!--$?--><template id="B:3"></template><a href="https://launchdarkly.com/docs/home" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-docs-home"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Docs home</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:4"></template><a href="https://launchdarkly.com/docs/home/getting-started" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-feature-flags-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Feature flags Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:5"></template><a href="https://launchdarkly.com/docs/home/agentcontrol/quickstart" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-agentcontrol-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>AgentControl Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><!--$?--><template id="B:6"></template><a href="https://launchdarkly.com/docs/api/" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-api-docs"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>API docs</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--></div></div></div><div class="workflow-wrapper styles-module__9d2Dpq__linksWrapper"><div><p class="styles-module__9d2Dpq__categoryTitle">Resources</p><div class="workflow styles-module__9d2Dpq__linksContainer"><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-product-updates" href="/changelog/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Product Updates</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-power-analysis-calculator" href="/sample-size-calculator/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Power analysis calculator</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--$?--><template id="B:7"></template><a href="https://launchdarkly.com/docs/blog" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-flagship-engineering-blog"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Flagship engineering blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a><!--/$--><a class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-community" href="/community/"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Community</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div></div></div></div><div id="developers-dropdown-cta" class="styles-module__SAuuzq__ctaWrapper"><!--$?--><template id="B:8"></template><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__SAuuzq__ctaInner js-primary-button-hover-parent" target="_self" tabindex="0" data-analytics="nav-developers-free-trial"><div class="styles-module__SAuuzq__ctaIconContainer"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover"><img alt="" loading="lazy" width="72" height="72" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=96&amp;q=75 1x, /_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=256&amp;q=75 2x" src="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=256&amp;q=75"/></div></div><div class="styles-module__SAuuzq__ctaTextContainer"><p class="styles-module__SAuuzq__ctaTitle">Take control of your code and agents at runtime.</p><p>Control releases, experiments, and AI behavior in prod.</p></div><div class="styles-module__SAuuzq__ctaButton"><span class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default"><span class="styles-module__d4f9cW__label">Free trial</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></span></div></a><!--/$--></div></div></div></div></div></div><div class="styles-module__stVVvG__pricingWrapper"><div><a class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobilePricingLink" target="_self" tabindex="0" data-analytics="nav-pricing" href="/pricing/"><span>Pricing</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div></div><div class="styles-module__stVVvG__pricingWrapper"><div><!--$?--><template id="B:9"></template><a href="https://app.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobileSignInLink" target="_self" tabindex="0" data-analytics="nav-mobile-sign-in"><span>Sign in</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a><!--/$--></div></div><div class="styles-module__stVVvG__mobileBookDemoWrapper"><div><a class="styles-module__stVVvG__mobileBookDemoLink" target="_self" tabindex="0" data-analytics="nav-mobile-book-a-demo" href="/request-a-demo/"><span>Book a demo</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div></div></nav></div></div><div class="oldstyles-module__hgjkrG__mainNavExtra main-nav-extra styles-module__stVVvG__demoRequestButton "><div class="oldstyles-module__hgjkrG__signIn styles-module__stVVvG__signIn"><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default oldstyles-module__hgjkrG__requestDemoButton styles-module__stVVvG__requestDemoButton" target="_self" tabindex="0" data-analytics="nav-book-a-demo" href="/request-a-demo/"><span class="styles-module__d4f9cW__label">Book a demo</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div></div></nav></header><div class="styles-module__stVVvG__mainNavOverlay main-nav-overlay"></div><div class="styles-module__ZkjjmG__body styles-module__ZkjjmG__isRefreshDesign"><main class="styles-module__ZkjjmG__main "><section class="styles-module__NFwUga__newSection styles-module__NFwUga__bgLight"><div class="styles-module__NFwUga__contentContainer "><div class="styles-module__xmAU9a__headerBreadcrumbSearchBar styles-module__xmAU9a__noTopPadding"><div class="styles-module__xmAU9a__container"><div class="styles-module__xmAU9a__breadcrumbs"><a target="_self" tabindex="0" href="/blog/">Blog</a><img class="styles-module__xmAU9a__breadcrumbArrow" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5UufJbqstJ992SK_right-arrow-padded.svg" alt="Right arrow" loading="lazy"/><a target="_self" tabindex="0" href="/blog/category/devops/">DevOps</a><div class="styles-module__xmAU9a__thirdBreadcrumb"><img class="styles-module__xmAU9a__breadcrumbArrow" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5UufJbqstJ992SK_right-arrow-padded.svg" alt="Right arrow" loading="lazy"/><span class="styles-module__xmAU9a__titleBreadcrumb">Chaos Engineering and Continuous Verification in Production</span></div></div><div class="styles-module__xmAU9a__barWrapper"><div class="styles-module__xmAU9a__barContainer"><div class="styles-module__xmAU9a__searchBarContainer "><div class="styles-module__xmAU9a__searchBar "><input type="text" placeholder="Search blog" aria-label="Search" value=""/><div class="styles-module__xmAU9a__backspaceIcon styles-module__xmAU9a__hidden"><button type="button" aria-label="Clear search" class="styles-module__xmAU9a__disabled" style="all:unset;cursor:pointer"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5WVkpbqstJ992cY_backspace-icon-blue.svg" alt="" loading="lazy"/></button></div><div class="styles-module__xmAU9a__icon"><img class="styles-module__xmAU9a__search" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5V7fZbqstJ992aX_search-icon-blue.svg" alt="Search icon" loading="lazy"/><img class="styles-module__xmAU9a__close" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/Z5WFMpbqstJ992ai_close-icon.svg" alt="Close icon" loading="lazy"/></div></div></div></div></div></div></div><div class="styles-module__HXqOTa__blogContainer"><div class="styles-module__HXqOTa__header"><div class="styles-module__HXqOTa__content"><p class="styles-module__J0n02W__variant_textXsmallCaps styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_medium">May 21, 2020</p><h1 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold styles-module__HXqOTa__blogTitle">Chaos Engineering and Continuous Verification in Production</h1><div class="styles-module__HXqOTa__authorContainer"><div class="styles-module__5zAopa__author "><a class="styles-module__5zAopa__authorImage" target="_self" tabindex="0" href="/blog/author/mattdel/"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image post-details-author-image"><img alt="Matt DeLaney headshot" loading="lazy" width="2000" height="3000" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/580a9918-c86c-424b-bf26-6a5e41d325dc_Matt-DeLaney-headshot-165.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C960%2C1440&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/580a9918-c86c-424b-bf26-6a5e41d325dc_Matt-DeLaney-headshot-165.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C960%2C1440&amp;w=3840&amp;fit=max&amp;q=80 2x" src="https://images.prismic.io/launchdarkly/580a9918-c86c-424b-bf26-6a5e41d325dc_Matt-DeLaney-headshot-165.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C960%2C1440&amp;w=3840&amp;fit=max&amp;q=80"/></div></a><div class="styles-module__5zAopa__authorDetails"><a class="styles-module__5zAopa__authorName" target="_self" tabindex="0" href="/blog/author/mattdel/">Matt DeLaney</a><div class="styles-module__5zAopa__authorJobTitle">LaunchDarkly</div></div></div></div></div><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image styles-module__HXqOTa__featuredImage"><img alt="Chaos Engineering and Continuous Verification in Production" loading="eager" width="2000" height="1125" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C2560%2C1440&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C2560%2C1440&amp;w=3840&amp;fit=max&amp;q=80 2x" src="https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress%2Cformat&amp;rect=0%2C0%2C2560%2C1440&amp;w=3840&amp;fit=max&amp;q=80"/></div></div><div class="styles-module__HXqOTa__staticBar"><div id="blog-progress-bar" class="styles-module__lQ92Cq__container"><div class="styles-module__lQ92Cq__progress" style="width:0%"></div></div></div><div class="styles-module__HXqOTa__blogMainContainer"><div class="styles-module__HXqOTa__body"><div class="styles-module__HXqOTa__blogContentWrapper"><article class="blog-post-main-content"><div data-ld-slice-index="0" data-ld-slice-type="wysiwyg"><div class="wysiwyg styles-module__yVDX7W__wysiwyg "><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_xl style-module__REJINa__spacing_top_xl section"><div class="wysiwyg-content"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">On April 30, Casey Rosenthal, CEO and Co-Founder of Verica.io, spoke at our <a href="https://www.meetup.com/Test-in-Production" target="_blank" tabindex="0" rel="nofollow noreferrer">Test in Production Meetup on Twitch</a>.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Casey debunked the, explaining how many of the intuitive steps people take to make systems more reliable are actually counterproductive. Moreover, he explained how Continuous Verification can help software engineers avoid such pitfalls.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Watch Casey&#x27;s full talk.</p></div></section></div></div><div data-ld-slice-index="1" data-ld-slice-type="youtube_video"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--></div><div data-ld-slice-index="2" data-ld-slice-type="wysiwyg"><div class="wysiwyg styles-module__yVDX7W__wysiwyg "><section class="style-module__REJINa__section style-module__REJINa__spacing_bottom_xl style-module__REJINa__spacing_top_xl section"><div class="wysiwyg-content"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">FULL TRANSCRIPT:</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> April the 30th 2020. My name is Yoz Grahame. And I am a <a target="_self" tabindex="0" href="/blog/what-is-a-developer-advocate/">developer advocate</a> for LaunchDarkly. Joining me today is Casey Rosenthal, the CEO and founder of verica.io. Hi, Casey, thank you for joining us.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> It&#x27;s my pleasure. Happy to be here.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Thank you. And sorry we started a bit late today because I was trying ... I suddenly remembered that I had to get my waistcoat on. Somehow I was without my waistcoat. And in times like these, I think it&#x27;s all important to keep the semblance or mirage of appearances.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But so, Casey, you are the man who literally wrote the book on chaos engineering or co-wrote the book, which is recently out from O&#x27;Reilly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yup. Cowrote it with Nora Jones. And we had a bunch of contributing authors, which was great. We have perspectives from companies like Google, Slack, Microsoft, LinkedIn, Capital One, stuff like that.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Cool. I had a brief skim through it before and there&#x27;s some fascinating stuff, which I believe you&#x27;re about to go over now. So, let&#x27;s take it through to the slides.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And there will be questions and answers from the audience afterwards. So, if you&#x27;re listening, please join in the chat. And pose any questions. Casey will be talking for about 20 minutes or so. And then we will open it up. So, take it away, Casey.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Great. And yes, let&#x27;s make sure there are at least questions and hopefully answers. Just to verify, you can see my title slide here?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Okay, perfect. So, I&#x27;m going to talk about a couple different mental models and how those relate back to doing things in production and some of the evolution that we&#x27;re seeing in, for lack of a better word, DevOps and best practices across the industry.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, I work at a company called Verica, not going to talk about that though. I&#x27;m going to try something a little bit different. I&#x27;m going to start by presenting a couple of myths about reliable systems about what makes systems reliable. And this is partly to stir up controversy, but also I just want to see how people react to me starting off with these instead of leading people into them.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, one of the myths of reliable systems is that you can make a system more reliable if you remove the people who cause accidents. So, this assumes that there are people who are accident prone or less careful. It&#x27;s sometimes referred to as the bad apples management principle. And the data just overwhelmingly shows that this is not the case. Unfortunately, the medical system in the US has occasionally tried things like this.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">For example, something like 80% of the malpractice lawsuits are associated with like 5% of the doctors in the US, which on the face of it sounds like, oh, well, clearly those are bad doctors, get rid of them and the case that malpractice cases will go down. Unfortunately, just the opposite, doctors who are particularly good at handling high-risk cases tend to congregate in that area.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, that&#x27;s why they&#x27;re associated with the higher numbers of malpractice suits. So, if you get rid of them, you&#x27;re getting rid of the people who actually have the most expertise to handle those kinds of situations. So, the same applies for your system. If you have a team or a person who seems to be coincidentally associated with reliability issues, getting rid of that person is not likely to make the system more reliable.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Second myth is document best practices and runbooks that will make a system more reliable. Not true. I&#x27;m not saying that you shouldn&#x27;t document things, particularly if that&#x27;s an effective way to communicate within your organization. However, most critical outages are unique. So, there are no best practices for that. I mean, let&#x27;s be honest, there are no best practices in industry. There are just common industry practices. We have no idea what would constitute a best practice in a complex system.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And runbooks again, while they can be an effective way for somebody to codify their own personal knowledge or communicate that in order to really have a reliable system in order to move the needle on reliability, you need people with experience. Runbooks don&#x27;t suffice. Humans can&#x27;t download experience to each other in that way. Particularly, not the kind of experience that is required for improvisation and adaptation.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Third myth, if you identify prior root causes and defend against them, you&#x27;ll make your system more reliable. This is particularly appealing. Again, all these myths are intuitive, right? That&#x27;s why they&#x27;re easy to believe. But there&#x27;s a couple things wrong with this. One is if you just identify vulnerabilities and defend against those in complex system, again, you&#x27;re not necessarily preventing the things that generate new unique vulnerabilities.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The other is that root cause doesn&#x27;t exist in a complex system. And in the interest of being mildly controversial, I&#x27;ll go a step further and say, if you are doing root cause analysis, at best, you&#x27;re wasting your time. Because root cause doesn&#x27;t exist in complex systems and that the practice of root cause analysis is a bureaucratic exercise to assign blame in a particular narrative that doesn&#x27;t actually benefit the system or make it more reliable. But love to dive more into that in that Q&amp;A part of this meetup.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The fourth is that you can enforce procedures. This assumes that somebody knows better and that the people doing the work actually just aren&#x27;t following the rules. That&#x27;s almost never the case in a system that needs improvement for reliability, particularly in a complex system. Usually, that&#x27;s more indicative of a mismatch between how work is imagined by people higher up in the hierarchy and how work is actually done on the frontlines.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Myth five is that if you avoid risk, you&#x27;ll make the system safer. This seems very intuitive. Don&#x27;t do the risky things. We hear this in the enterprise a lot now, the phrase guardrails. If you just put guardrails in and avoid risk, then you make the system safer. So, guardrails do two things that are counterproductive to making a system more reliable. The first is that they prevent people from gaining the experience necessary to adapt and improvise and innovate to make a system more reliable or to remediate an incident as it&#x27;s happening.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And the other thing that guardrails do is they tend to become obstacles for the people best positioned to remediate an incident while it&#x27;s happening. So, again, as intuitive as this sounds, it turns out to be it&#x27;s counterproductive in practice.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Sixth myth is you simplify your system, it&#x27;ll become more highly available or safer. Complex systems, the problem is the complexity. So, just take the complexity out of it and you&#x27;ll have a better system. Again, a couple things wrong with this one is that empirically, we know that more complex systems are safer or more available than simpler systems. So, the data just backs that up. But complexity also tracks with business success. So, your customers are paying you for complexity, like that&#x27;s as one way to view your job as a software engineer is you&#x27;re adding complexity to a product. So, if you remove complexity, you&#x27;re actually removing the ceiling for how successful your products can be.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Another way to look at this as accidental complexity is going to always grow as a process of doing work in software and essential complexity, that&#x27;s complexity put in there on purpose, that&#x27;s feature development and stuff like that, that is also going to grow. So, if both forms of complexity are always going to grow, we don&#x27;t have a way as an industry of sustainably reducing complexity. So, that is not going to make your system more reliable.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And the last myth that I&#x27;ll mention here is that redundancy equals better reliability. And this is really interesting. There&#x27;s a lot more research to be done here. Because the relationship route between redundancy and availability in particular isn&#x27;t as well understood as we would like. But we can certainly point to many examples where redundancy was a contributing factor to a failure to an incident. This is true in software, but famously, it&#x27;s true in hardware and aviation rockets, the Challenger incident, where redundancy is again, actually a contributing factor to an outage or an incident or some sort of system failure. So, at best redundancy is orthogonal to reliability.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, I&#x27;m going to start by presenting those and hopefully, there&#x27;s something there for everybody to disagree with. But now, I&#x27;ll present a couple mental models frameworks to think about things. And we&#x27;ll tie it in with, well, with <a target="_self" tabindex="0" href="/blog/what-are-feature-flags/">feature flags</a>, but also with continuous verification and some other stuff.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, here&#x27;s one model that makes provides one framework to think about how engineers make the design decisions that they make every day that we don&#x27;t necessarily talk about. So, in this model, engineers are basically in the middle between these three poles. The poles are economics, workload and safety. And you can imagine the engineers attached by a rubber bands to each of these three poles. And if they stray too far from one of these poles, the rubber band snaps and it&#x27;s game over.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, implicitly, engineers know that they have an intuition of how far they are from the economics pole. You probably do not have a rule at your company that new engineers are not allowed to spin up a million instances of AWS EC2. Why don&#x27;t you have that kind of rule? Well, it&#x27;s kind of common sense. Engineers implicitly understand that things cost money, they cost money, their team cost money, and they know they&#x27;re not supposed to spend more money than they have. So, they try to balance that out as they make decisions throughout their day.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The same is true of workload. Engineers implicitly understand that their servers can handle some amount of work. They as people can only type so fast, can only crew a certain number of features per day, or have a certain amount of feature velocity, so they intuitively understand the relationship to that pole and they make sure that they don&#x27;t drift too far from it or they know their servers will be overloaded, the resource will be overloaded or they&#x27;ll burn out.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The same is true with safety. The difference is they have no intuition as to how close they are to that safety pole. And I&#x27;m comfortable making that generalization across the industry because we still have incidents. The reason we have outages and security breaches and things like that is because there are surprises. If we knew what was about to come as an engineer, we would stop what we&#x27;re doing and we change what we&#x27;re doing to make sure that that doesn&#x27;t happen. We would implicitly change our behavior.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, this is one of the models, one of the frameworks that provides a foundation for understanding chaos engineering. And we have the definition here at principlesofchaos.org. This is my favorite definition. The facilitation of experiments to uncover systemic weaknesses. So, what chaos engineering does is it teaches us about that safety margin. It helps us generate an intuition of how far we are from that safety pole. And just knowing that implicitly changes the decisions we make as engineers, which is quite powerful.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The other thing chaos engineering does here, here are some of the advanced principles, you can see right there in the middle, one of the advanced principles is run experiments in production. And we can talk about this, I hope there are questions about this. But this isn&#x27;t to say that <a target="_self" tabindex="0" href="/blog/nine-experimentation-best-practices/">running experiments</a>, chaos engineering experiments to uncover systemic weaknesses isn&#x27;t also valuable in staging or nonproduction environments. It is. I provide plenty of examples of where learning there has been really useful.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But ultimately, in a complex system, you want to study the actual system you care about. And so, the gold standard, the highest bar for chaos engineering is running those experiments in the actual production system. So, that&#x27;s one model.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">I&#x27;ll introduce another one here called the economic pillars of complexity. And again, this is just to frame how we think about that evolution of technology. So, in this model, there are four pillars, states relationships, the environment and reversibility. And the quintessential example of this model is Ford in the 1910s, where they were able to control the number of states in their manufacturing process by saying you can have whatever kind of car you want as long as it&#x27;s a black Model T. And so, their ability to control one of these pillars help them navigate the complexity of their manufacturing or production service.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">They were able to also control relationships. Other car companies had teams of people who built a car from the ground up. Ford moved to assembly, line manufacturing and scientific management and Taylorism to basically limit the relationships between the parts but also between the peoples that help them navigate the complexity of their marketplace.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">They also control their environment or affected their environment by first breaking up the automotive trust in the US, which allowed them room to do business. And ultimately, they became somewhat of a monopoly themselves. So, they were able to control their environment that way.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Which brings us to the fourth one, reversibility. And here&#x27;s where Ford couldn&#x27;t really do anything because while you can put a car in reverse, you can&#x27;t really reverse the manufacturing process. Reversibility was not something that Ford could optimize for.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, how does this model apply to software? Well, states and we don&#x27;t just mean data, but the functionality of applications, are usually increasing, usually you pay to add features as software engineer, so there&#x27;s not much you can really do to control that pillar.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Relationships, unfortunately, we&#x27;re in the business of adding layers of abstraction. So, whether we want to or not, the relationships between the moving parts and now more of us are working remotely, that adds a different dimension of complication to human relationships and explicit architectural changes, the things like micro services that we can uncouple the delivery cycle of features. There&#x27;s not much we can do in software to control the relationships that&#x27;s expanding.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The environment, most of us are not monopolies, so we can&#x27;t affect our environment too much. Amazon, which brings us to the last one reversibility. Here&#x27;s where software shines. And we can see obviously, it&#x27;s software not hardware, but we can see this in great effect in first the move from waterfall to XP and agile, where waterfall said, &quot;We&#x27;ll plan the whole thing, we&#x27;ll build it, we&#x27;ll deliver it to the customer.&quot; After a year, the customers say, &quot;No, that&#x27;s not what I wanted. We&#x27;ll say tough and then keep moving forward.&quot;</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, XP said, &quot;We&#x27;ll just put something in front of the customer after a week or whatever.&quot; And the customer says, &quot;No, that&#x27;s not what I wanted.&quot; Okay, it&#x27;s easy to reverse that decision. We can throw away a week easy enough. And then the second week, we&#x27;ll put something else in front and say, I kind of, and hopefully by the third week, we&#x27;re tracking with what the customer actually wants or needs.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">That was a sophisticated implementation of reversibility as a way to navigate a new complex manufacturing production process. But we can explicitly make architectural decisions that prove reversibility as well. And there are a few better examples of this than feature flags.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, feature flags help us navigate a complex system of manufacturing, producing software, by explicitly enabling us with this architectural reversibility decision and that&#x27;s important. Other things that add, source control, automated canaries, blue-green deployments, chaos engineering as part of the feedback loop. Observability is part of the feedback loop. These things all improve reversibility and that pays dividends for navigating complex systems.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The last thing I&#x27;ll mention here with respect to software and mental models is sorry for the block of text here, but &quot;The chief merit of software engineering is its technical efficiency, with a premium placed on precision speed, expert control, continuity, discretion and optimal returns on input.&quot; A mouthful, but a pretty good definition of software engineering. So, they accidentally did this. The actual quote is, that&#x27;s the chief merit of bureaucracy.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And I just want to make that point. Software engineering is in some circles known as the bureaucratic profession. And that sounds like a negative thing. And it probably is. So, why would somebody make that claim? Well, no other industry has done a better job of separating who decides what needs to be done from who decides how it needs to be done, from the people doing the actual work. That is an idealized bureaucracy.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, chief architects, product managers, project managers, people managers, tech leads, all of those roles exist to take responsibility, decision-making responsibility away from the people doing the actual work. And this all goes back to scientific management Taylorism, from the 1910s, and we can discuss historically why that&#x27;s the case. But just we should understand that this is the wrong software. This is the wrong model for software engineering if you consider software engineering to be knowledge work.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">It&#x27;s the right model or it&#x27;s a model that&#x27;s acceptable for manufacturing widgets, most of us are not manufacturing widgets. So, if you consider software engineering to be knowledge work in that hierarchy, that bureaucracy is a counterproductive model. So, all of this is to say we&#x27;re not trying to fight complexity, we&#x27;re trying to navigate it.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Very quickly, this is part of an evolution that we&#x27;re seeing from CI, continuous integration, which limited the number of bugs that we can create by merging code faster so that the bugs become more apparent and don&#x27;t geometrically lead to larger numbers of bugs. And then we saw that, okay, the engineers can create features faster. That evolved into continuous delivery, CD. Okay, now we can make software faster. We need to get it to production faster and roll forward faster, change our minds. So, there&#x27;s an important part of reversibility that&#x27;s enabled by this evolution.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And now, we&#x27;re seeing the industry start to develop CV, continuous verification, which says, &quot;Okay, if under the hood, we have all of this complex software creation moving very quickly, how do we keep our eyes on the road? How do we make sure that we get the behaviors out of a complex system that the business requires given that we&#x27;re enabling very fast movement of feature velocity and getting that to production? Basically, how do we move fast and not break things?&quot;</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And here&#x27;s another way of envisioning that. Continuous verification, I&#x27;m just reading across the top here, is a proactive experimentation tool that verifies system behaviors, whereas most of what the industry is currently familiar with follows more along the line on the bottom there. It&#x27;s reactive testing methodologies that validate known properties.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And those things along the bottom are good. They&#x27;re useful. We&#x27;re not saying go do those, certainly not advocating that ditch testing. But those practices and disciplines were born in time of simpler systems and they&#x27;re more attuned to simpler systems. In complex systems, you have to move up the scales to ensure the business properties that you want out of your complex systems.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, tools don&#x27;t create reliability, humans do, but tools can really help. We&#x27;ve got this book out. And there&#x27;s a way you can get a free book if you go to this link. I would love to take questions now.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> So, can you hear me right, Casey?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> You&#x27;re good.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> I&#x27;m going to leave that slide on the screen for a while, just so I can copy the URL. And it&#x27;s Kim, our producer and I, in the background while you&#x27;ve been talking have been absolutely squealing with joy because it&#x27;s a whole bunch of buttons, this talk has hit a load of stuff that we have been talking about for a while.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">I tweeted your quote about software engineering, separating those who decide what needs to be done from those who decide how to do it. Thank you so much for this. And there&#x27;s so much to go into here. I mean, if you are watching, please give us your questions, your reactions, because especially because there&#x27;s ... Actually, we will put the URL. Kim, if you could put the URL there in the comments so that other people can get to it while I switch the view here.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">You warned us at the start that there were things that you would be going into that run quite counter to current practice. Thank you, Kim. And hang on a second. Let me get my camera back. So, there we go. Well, I should preface by saying we have been <a target="_self" tabindex="0" href="/blog/testing-in-production-for-safety-and-sanity/">testing in production</a> here with this dream and doing the chaos thing in the truest way, which is to be looking calm on the surface while paddling like hell underneath. For three minutes during your talk, I completely lost connectivity. So, I&#x27;m afraid there may be some bits, things I ask about that you already discussed. And please tell me if that happens because I don&#x27;t want to bore anybody.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But there&#x27;s so much to go into here. I think given the way that some of the things that you talked about in your myths that I feel somewhat attacked. I always thought documenting best practices and runbooks are vital and the point you made, I mean, if we could just go into that a bit more about the value of personal experience and how you see that playing out in the organizations you&#x27;ve worked with.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah, sure. So, let&#x27;s first talk about the definition of resilience. So, outside of software, there&#x27;s this field of resilience engineering and the most effective I think definition of resilience is having an adaptive capacity to handle incidents. So, that adaptive capacity, it requires a level of improvisation, right? It requires humans who have skills and context to know how to improvise.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> A runbook simply doesn&#x27;t have that. It simply can&#x27;t have that. So, even if you have something very well documented, what you can&#x27;t do in that runbook is provide enough context or skill or experience around that to let the person following the runbook know that it&#x27;s even the right runbook that they should be following. Right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">If they have to consult the runbook, then it&#x27;s basically a guess on their part. And it&#x27;s a guess on their part, then you&#x27;ve basically capped the reliability at which your system can operate. So, you can&#x27;t move the needle on reliability by investing more in runbooks is the takeaway there.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Now, documentation, if that&#x27;s a way that you like to communicate, that&#x27;s great. You should obviously get better. Communication is the hardest thing in most professions. So, you should obviously take advantage of the ways that you can do that well and invest and do that better, but that&#x27;s not going to improve reliability.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right. I think it&#x27;s fascinating because one of the trendiest books in the past 20 years around this is Atul Gawande&#x27;s Checklist Manifesto. And I thought it was a comment that was the actual title of the book. But some things that came from the medical profession is this idea of rigorously adhering to checklists in crisis situations. Is that the same thing as runbooks? Or is there a difference that I&#x27;m missing there?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> I think there&#x27;s a difference. So, using a tool that you have experience with to help you get the job done, fine, great, absolutely. But that&#x27;s different from a runbook that&#x27;s trying to suffice, it&#x27;s trying to supplant or stand, be sufficient to take the place of a human improvisation or adaptation. Does that make sense?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Yes.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> So, a runbook is a remediation tactic. A checklist should not be used as a remediation tactic. That&#x27;s a tool to help you basically your experience forward.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, maybe it&#x27;s about diagnosis so that you can fully establish what assumptions you&#x27;re making or give you the full set of facts before you start trying to remediate.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> A lot of times, it&#x27;s that checklists don&#x27;t have nothing to do with remediation. So, a pilot going through a checklist before they take off, okay, making sure that you don&#x27;t forget something? Sure. You&#x27;re relying on a tool of the trade to help you bring your own experience forward.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> But again, much different from a runbook where-</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> It&#x27;s not remediation.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right, yeah, yeah, yeah. And that&#x27;s also fascinating given that it plays into some of the old sayings and terrible jokes that we got from the &#x27;60s to the &#x27;80s about automation. In that the thing about the nuclear reactor has a dog and a man and the man is there to be at the controls and the dog is there to bite the man in case he tries to touch any of the controls.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">It&#x27;s the idea that the automated system is the reliable part and the humans are the unreliable organic part, but it&#x27;s the organic nature and the ability to improvise that actually brings us the reliability.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Brings the resilience, yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Resilience, yes.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> You can have a robust system with a lot of automation. But by definition, you can&#x27;t make a system more resilient with automation. Because so far, at least we don&#x27;t have the capability to automate improvisation.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right, and so, I&#x27;ve seen recently more work towards supposedly self-healing systems. I know that some companies, especially those in the performance or alerting and monitoring space are doing this self-healing thing, especially those trying to use AI as opposed to spot outliers or try and make connections between cause and effect and things like that. Have you seen any success there or anything there that you think is worthwhile?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Sure. Again, you can raise the floor of robustness by implementing and really self-healing is like calling something AI. It&#x27;s like what we call self-healing will tomorrow just be like an algorithm. So, if you look at things like the bulwark pattern, circuit breakers or failure conditions, those were self-healing 10 or 20 years ago. So, having a system that detects something out of range or even alerting is a primitive form of self-healing, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> It just doesn&#x27;t go all the way. It just brings a human in instead of something else. So, that&#x27;s a perfectly valid algorithm for making a system more robust. But again, you&#x27;re lacking that improvisation and context picture. So, putting the newer buzzwordy sound around it of self-healing doesn&#x27;t make your system more resilient because it&#x27;s not bringing in more intelligence than an engineer can think of ahead of time.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And what we know in complex systems is that what the defining quality of a complex system versus a simple one is that a complex system can&#x27;t fit in one person&#x27;s head.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> So, it&#x27;s not reasonable to assume that a software engineer can think of all of the things ahead of time that can go wrong with the system.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And if that&#x27;s the case, then your self-healing algorithms can be really clever, really elaborate. But by definition, they will not cover all of the things that they need to cover because they rely on a human to think of those conditions ahead of time. And we&#x27;ve already admitted that that can&#x27;t happen.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> So, chaos engineering in contrast helps the humans get the experience that they need to adapt better. And the output of that might lead to better automation. It might lead to self-healing algorithms or failure control algorithms that make the system more robust. But ultimately, it&#x27;s informing the humans of things about the system that they didn&#x27;t previously know. And that&#x27;s what allows them to implicitly change their behavior to make the system more reliable.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> That paints the picture there, I think trying to get and I&#x27;m still somewhat new to some of this. But the impression, what you&#x27;re saying is that effectively robustness and resilience are two different levels. And that resilience is a higher level of decision making that comes into play once the automated systems have failed, which they will do.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah. I think that&#x27;s a valid way to look at it. I view them as just different properties, like your system is robust in different ways up to a different point. And there&#x27;s always some boundary where it&#x27;s not robust past that point. The simplest thing we could think of is like you load test the system, eventually at some point, it&#x27;s going to fail, any physical system.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Whereas resilience doesn&#x27;t know if something&#x27;s going to fail. There&#x27;s no proof to say that, well, we could do this instead. There&#x27;s always the option. You just can&#x27;t enumerate all the options for doing something else instead.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Right, right. It definitely fits the pattern that we see talking about, that the level of complexity is increasing beyond our ability to manage it. And this is something that we do naturally, we&#x27;ve been doing for decades, is that this arms race between complexity and the tools to manage it and complexity always seems to win.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Well, I don&#x27;t know if it&#x27;s winning, but I mean, I&#x27;ll plug you for you. But one of the reasons I&#x27;m a fan of LaunchDarkly is because feature flags are ... It&#x27;s an explicit design decision that you can make in order to improve your ability to navigate a complex system.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">If you think about it, in software, we pretend like complex systems are the enemy. Whereas in the rest of our life, I mean, software is probably the simplest system that we as humans still deal with. If you think about the complexity of human interactions or even driving a car, and mentally modeling what other drivers are doing, I mean, this is why autonomous driving isn&#x27;t successful yet. They can&#x27;t mentally model another human and their intentions in the other car. It&#x27;s not that they can&#x27;t figure it out the physics. That&#x27;s the easy part.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, we as people, even as software engineers, we handle complex systems all the time. That&#x27;s our baseline of just a living. But we don&#x27;t like to see it in our work for some reason. So, really complex systems are not the enemy. That is what allows us to be successful. But we need things like feature flags to give us the comfort with the complex systems that we&#x27;re building. We need to know I can make this design decision and then change my mind really quickly if I need to. And so, that&#x27;s why I see a lot of power and what you all are doing.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong><br/>Yeah, thank you for that. Talking about reversibility in that way, and the thing I really love talking about the reversibility on the different timescales. You&#x27;ve got at the project timescale, which is like agile versus waterfall and being able to change direction within a single iteration, within a couple of weeks. And then you&#x27;ve got all the way down to reversibility at much smaller timescales to remediate quickly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> If you hired a consultant to improve your feature velocity, right, like they would focus at the process level. And that&#x27;s great. You could do, I don&#x27;t know, implement agile or scrum or whatever and implement that. But really like what we want to do is we want to make those architectural decisions that are going to improve feature velocity. And it&#x27;s more comfortable. It&#x27;s more powerful. It&#x27;s more measurable. It&#x27;s like everything about that nicer, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right. Right. Yeah, exactly. It&#x27;s like we&#x27;ve got the tool. If we could see the tools right in front of us, the process gains are theoretical. They&#x27;re much harder to grasp. When we see the tools right in front of us and include them in our daily work and being able to flip a flag and see something changed within milliseconds is that wonderful tactile reassurance.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> So, we&#x27;ve got already some great questions coming in. We have from D Parzych, my colleague Dawn, asking, what tips do you have for junior or new employees on where to start with ... Well, this is about actually not chaos engineering, but incident resolution. So, I know you get often asked about how to start with chaos engineering. But let&#x27;s take a step back and say, okay, based on what you&#x27;ve learned about, especially with the myths, where do you think the most value is in in establishing incident resolution practices?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Okay, so the place I would start is by studying what the resilience engineering community has to say about incident postmortems or learning reviews or I prefer learning review than postmortem. So, a great place to start would be John Allspaw&#x27;s material on Blameless PostMortems. And that goes back ways, I think he&#x27;s got a lot of great material now that kind of moves from just a blameless postmortem is not sufficient.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Really, we want to acknowledge that it&#x27;s not just that we&#x27;re avoiding blame, it&#x27;s that an incident itself is faultless. There are no root causes in complex systems. So, looking for a root cause or even acknowledging that, oh, this was the problem but nobody&#x27;s to blame for it, like that&#x27;s also not a great approach.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, looking at faultless learning reviews is a much more powerful way to think about incident response management when you think of incidents as teachable moments. And then in terms of just time to remediate, there&#x27;s plenty of models out there. I don&#x27;t have a personal favorite. But there are plenty of models that come from things outside of software that work better for different organizations.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, on the one hand, you have models where there&#x27;s an incident commander and they coordinate and you develop a group that way. There&#x27;s research showing that the costs of coordination of an incident response, having an incident coordinator can sometimes be higher than just having the people who do the work normally, the knowledge workers have the tools and capability of making the decisions that they need to being empowered to remediate the incident themselves.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, there&#x27;s a lot of interesting research going on there. But I don&#x27;t have a particular recommendation on the incident remediation. And the incident response management and how you understand that I think there&#x27;s a lot of conclusive evidence around how to properly run or at least there&#x27;s a lot of evidence on how to poorly run a postmortem or a root cause analysis session. And those are all indicative towards better processes that won&#x27;t be wasting your time. I think that was a roundabout way of answering that question, but hopefully, there&#x27;s something in there.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> No, that that&#x27;s great. That&#x27;s great. I think definitely the blameless postmortems I think fortunately, that&#x27;s something that I&#x27;ve seen taken up pretty well. And people like Allspaw really talking about the traditional types of root cause analysis don&#x27;t really apply here.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah, his company, Adaptive Capacity Labs, has a bunch of great research on metrics you can use to kind of understand your own plate. Like if people want to read the briefings after a learning review, that&#x27;s a good indication that you&#x27;re doing that well. Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Yes. Yes. Excellent. We have another question, [inaudible 00:42:25] 88 about feature flags, what are good ways to manage dependencies when you start to get more than a few. And I suppose this ties in to ... So, this is more technical and this is obviously something that we at LaunchDarkly have a whole bunch of opinions about.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And I think I might actually expand this out. If you have specific opinions on that, I&#x27;d be very interested to hear them. But I think it also ties in to the bigger question about relationships, as a pillar of complexity in that more specifically dependencies. Right. And this is something I&#x27;ve always wondered about is having been at companies that dealt with massive legacy systems and realizing the ludicrous numbers of dependencies, not just, for example, software dependencies, but organizational and event dependencies, all kinds of bizarre things that felt impossible to track.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, for these kinds of things, how do you advise the people manage all these, these kind of dependencies once they start to expect?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah, so I am not an expert in dependency management. I&#x27;ve certainly seen people bitten by the bug of having too many unmanaged feature flags or Netflix, they call it [crosstalk 00:43:57] properties. I think there&#x27;s a bunch of interesting approaches to that. But I&#x27;m certainly not an expert in dependency management.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> I would say that we should expect that as the layers of abstraction increase beneath us, that navigating that as a problem of complexity rather than solving it, it&#x27;s probably more useful.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Or it&#x27;s probably a better use of our time.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> And I see what you&#x27;re saying in terms of though it may cloud, it may add the number of relationships, they&#x27;re there for a reason.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah. And sometimes the reason might not even be apparent to you or might not even be valuable to your particular goals in a pursuit or an organization or a business. For example, at Verica, we did a lot of research in 2019. And one of the things that we saw across the enterprise market is, let&#x27;s say some frustration with Kubernetes as this additional layer in the deployment process. For many people, that&#x27;s not a virtue. And it runs just maintaining Kubernetes as a platform, let alone figuring out new ways to integrate with it is additional work that doesn&#x27;t advance their particular goals in a smaller context.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, there&#x27;s a similarity there to the explosion of dependencies, where if you&#x27;re focused on the developer experience and dependency management from a language or library or security point of view, of course, you want to limit the number of dependencies. But if you&#x27;re an engineer who&#x27;s got different pressures and you&#x27;re trying to increase the rate at which you&#x27;re delivering features, then you&#x27;ve got the opposite pressure. Like, let me bring in as many dependencies as possible because I want to take other people&#x27;s work and make use of that.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, depending on where you are, you might have a different perspective on the proliferation of dependencies at all. I&#x27;m in the camp of inbox zero is a nice idea. But at some point, you reach a rate at which important emails are coming in, where you just have to let it go. And I know right now that approach for dependency management would make a lot of people scream in frustration, and I understand that, but I&#x27;m not an expert in that field. So, I should stop.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Well, no, I think it&#x27;s a fascinating guiding philosophy here, which I think applies to so many people who deal well in complex situations, which is go with the flow. You aren&#x27;t going to fight it. It&#x27;s there for a reason. The best thing you can do is get better at navigating it, get better at diagnosing.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">This is dear to my heart because I give talks about debugging. And what I find is that too many people don&#x27;t understand how powerful and easy to use their own debugger is. And also, how valuable it is to build custom tools for your situation. I have rarely been in any situation where a custom tool that was created for a system did not pay for itself within a couple of months.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, that kind of evolution of-</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> So, that&#x27;s a mechanism for you to ... Yeah, okay. So, that&#x27;s a mechanism for you to navigate a complex system better as an engineer. You create custom tool. Yeah, okay, that makes sense. Yeah.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> So, a lot of people are going to be wondering specifically about the chaos engineering aspect. And I think we talked just before this and people want to go, yeah, I want to start blowing stuff up automatically. How can I start blowing stuff up automatically? Or more specifically, how can I start applying chaos engineering in my organization? And how can I persuade management to go along with it? And I suppose this depends on how you portray it. But what&#x27;s the advice you give in these situations?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah, I mean, first of all, I would say, I hear there&#x27;s a really good book out on this that just hit the shelves.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Well, let&#x27;s bring that slide up again, there we go.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah, the general pattern that we see for companies adopting, and it&#x27;s a widely adopted practice now, but the general pattern we see is start with a game day. There&#x27;s plenty of ways to do that. But basically, what we want to do is we want to bring people with expertise in a room together to start discussing the repercussions or the system behavior outside of the normal happy path operations. So, just the discussion alone can often help uncover knowledge gaps about how the system actually behaves.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, game day, you get in a room you go, okay, this piece of infrastructure over here, we&#x27;re going to take it down for a few hours and our assumption is that customers won&#x27;t be impacted. So, the hypothesis for an availability chaos experiment almost always follows the form of under X conditions, customers still have a good time.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">If your hypothesis is under X conditions, they&#x27;ll have a bad time, then don&#x27;t run that experiment. That&#x27;s just a terrible experiment.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, some of the impression of chaos engineering, ah, that&#x27;s bold, or that&#x27;s too risky. No, it should not be a risky thing, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Mm-hmm (affirmative).</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Like, if you think something&#x27;s going to break, obviously, don&#x27;t do that. Fix it before you do anything like that.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Or another way of saying that is chaos engineering is not about causing chaos engineers, or it&#x27;s not about causing chaos in your system. There&#x27;s an assumption that the chaos is already in the system and you&#x27;re trying to surface that so that you can better avoid the pitfalls. So, that&#x27;s it. That&#x27;s a great way to get started. Plan a game day or war room scenario where you kind of plan out, and then dip your toe in the waters that way.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">It is the gold standard to do chaos engineering in production. But certainly, we recommend starting in a staging environment if you have one. We see a lot of organizations are moving to not having staging environments and that&#x27;s understandable. And feature flags actually makes that a little bit easier. That&#x27;s fine. But if you do have staging environments, or hidden features, or different user groups associated with different features, start with experiments there. There&#x27;s no reason not to.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And hopefully, you can learn from the staging environment, either about your system in ways that helps you make them more robust or you build up your skill set for resilience, or you build more confidence in the system and that you can use that confidence to then move the same tools, the same experiments into production.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The general evolution we see.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">That&#x27;s a great way of putting it and that ties very well in to that the whole topic of this regular stream, Test In Production, is that ... LaunchDarkly, we have several staging environments. We have a lot of environments. We have a proper staging environment. We did not just ditch it and do everything in production because as I say, if you can obviously reduce risk to an experiment, then you should. The reason to test in production is because you already are. You just don&#x27;t call it that yet.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, we&#x27;re going to have to round this off in a couple of minutes, I&#x27;m afraid. But this has been absolutely fascinating. Thank you so much. Before you go, I&#x27;m interested to know. So, I&#x27;m completely silly. So, there is a thing that ties in to that the point you made about the problem with the bad apple thing, that actually the people who are causing those problems are not doing it because they&#x27;re bad. It&#x27;s because they&#x27;re the ones who are being sent in to do the-</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah, closest to most problems.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Right, exactly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Yeah, we won&#x27;t say causing because that implies that they are the root cause.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right, right. Sorry. You&#x27;re absolutely right. The bystanders, the people who happened to be nearby at the time, the chief suspects maybe.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, I used to work at Linden Labs, where did most of my learning about legacies, complex legacy systems. And if an actual mistake that you made blew up production, then you got to wear the [inaudible 00:54:07] for a day. And similarly, I&#x27;ve seen other organizations do this, but they did a great job of describing a colleague of mine, [inaudible 00:54:16], who is now at LinkedIn, did a great writeup on saying that it&#x27;s actually a bad badge of honor. It&#x27;s the you went in to try and do something important and fix something important and you learned. I know at Etsy, they have the three-arms jumper. What are the good ones have you seen?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">At Netflix, they give out badges or they give out badges for having taken down production. I know Google had rituals for this. I understand that and I get it. I wouldn&#x27;t say that I entirely support that because it does still reinforce this notion that one person was a cause. And so, yeah, it&#x27;s basically coincidental. Sabotage is extremely rare.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">And so, if you didn&#x27;t intend the outcome that was bad, there&#x27;s no causal relationship in a complex system. So, that&#x27;s an adjustment in thinking about how an incident happens that&#x27;s different, like oh, this person published the line of code that brought down production. Well, what you&#x27;re actually saying is that the least effort to remediate that is to undo that line of code.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But there&#x27;s alternative narratives to that. It&#x27;s the fault of the person who wrote the CD tool for not having an automatically stage or it&#x27;s the fault of their managers for not communicating better or it&#x27;s the fault of their director for not properly budgeting for another environment or it&#x27;s the fault of the VP for not allocating and explaining to the board why they need that budget and not choosing a different CD tool, or it&#x27;s the CTO&#x27;s fault for not properly explaining the importance and aligning the company right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, now, which of those is more likely to lead to a more reliable solution? Putting the three-arm sweater on the person who put that line of code in production or changing the behavior of the CTO, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Changing the behavior of the CTO is much more likely to make that system more reliable. And yet all of the RCA-type stuff and the focus on the one person, that&#x27;s not going to change the reliability of the system at all, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> No.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The three-arm sweater makes them more comfortable so that they don&#x27;t carry around the shame and that&#x27;s important, but it still locks you into that mentality of like, they&#x27;re the ones who did it, not the CTO.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> So, that&#x27;s interesting, because this points out something that there&#x27;s a big difference between records analysis and the way I would have got the CO through that is the whole five whys process, saying why did that happen? Why did that happen? Why did that happen, et cetera?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah, the problem with five whys, Richard Cook likes to say, I&#x27;ve got a six-year-old who&#x27;s great at asking why, we could just put them in charge of incident remediation, right?</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Right.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, the five whys is entirely arbitrary. And the problem with that is, depending on who facilitates it, they&#x27;re going to create a narrative that suits their purpose. So, if I&#x27;m the director in that example, I&#x27;m going to drive the five whys into ... And it&#x27;s not that I&#x27;m malicious or doing it on purpose, but I&#x27;m going to drive it into, oh, down there among my reports or skip levels, there was a miscommunication.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Whereas if you were truly doing it from the bottom up, the five whys might lead up to the C level. So, the five whys as a practice doesn&#x27;t actually provide better guidance in how you run an investigation. So, I&#x27;d prefer we don&#x27;t use that as a crutch. But I understand that in some organizations in the hands of a well-intentioned and well-informed facilitator, it can make the investigation more palatable to the organization.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, yeah, it&#x27;s all about perspective it sounds like or rather, where you&#x27;re looking from and then how I can see the dichotomy, the paradox there in the if you&#x27;re looking from the bottom up, you get maybe more accurate view. But that also means that you have less power to act on it.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> It&#x27;s a different narrative, right? Like who&#x27;s to say which one&#x27;s more accurate or than the other. But in a situation that&#x27;s hierarchical, well, let&#x27;s at least say it&#x27;s intuitive that you&#x27;re going to change the holistic system much more efficiently if you affect the people at the top of the hierarchy, not the people at the bottom of the hierarchy.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Right. Well, that makes sense.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> And really when we talk about reliability, yeah, we want to look at the holistic system, not the people at the sharp end.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah, yeah. Because the whole point of the [inaudible 00:59:29] as it were, right. If you&#x27;re getting paid the big bucks to be at the top, that&#x27;s where the power actually is to fix things.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">We would hope. We would hope, exactly. This has been absolutely fascinating. We have to stop there. I could easily talk for another hour or two.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Yeah. This was a lot of fun.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Yoz Grahame:</strong> Thank you so much for joining us today.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Thank you for having me on.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Absolute pleasure. Please do come back soon. I am going to be devouring your book.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">So, we&#x27;re going to be back next week. For those of you watching, thank you so much for joining us. We didn&#x27;t get to all the questions. I&#x27;m afraid there&#x27;s a good one about knowledge workers and decision making. So, that may apply and be good to talk about that soon.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">But thank you. Thank you again for joining us. Your book, Chaos Engineering, which you wrote with ... So, we&#x27;ll bring the slide back.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Nora Jones.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Nora Jones. If you&#x27;re watching, you can get that for free. And we will be back next week. Thank you for the giveaway. And Casey, CEO of Verica.io. Casey Rosenthal, thank you so much. This has been completely fascinating.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md"><strong>Casey Rosenthal:</strong> Thank you.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">The video will be online. Well, it&#x27;s going to be on Twitch shortly and then there&#x27;ll be a blog post in a couple of weeks. And we&#x27;ll be back next week for Test In Production again. Thank you so much. Thank you, Casey. Talk to you soon.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Thank you so much.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Bye.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__5zGs1G__spacing_md">Bye.</p></div></section></div></div><div class="styles-module__HXqOTa__mobileCta"><h5 class="styles-module__HXqOTa__footerTitle">Like what you read?</h5></div></article></div></div><section class="styles-module__o_kpTq__sidebar"><div class="styles-module__o_kpTq__sidebarNewsletter"><div class="styles-module__yaWGhq__sidebarVersion undefined styles-module__yaWGhq__blogNewsletter "><div class="styles-module__yaWGhq__blogNewsletterSection"><div class="styles-module__yaWGhq__textContent"><img class="styles-module__yaWGhq__newsletterIcon" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aimOzgeQX7-eXLr4_icon-bw--notification.svg" alt="Notification icon" loading="lazy"/><h5 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__weight_medium">Sign up for our newsletter</h5></div><div class="styles-module__yaWGhq__customForm" id="customNewsletterForm"><div class="styles-module__yaWGhq__formElements" id="customNewsletterFormElements"><input id="customNewsletterEmail" type="email" placeholder="Email address" aria-label="Email address" name="email" value=""/><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_dark styles-module__d4f9cW__size_default styles-module__yaWGhq__subscribeButton" type="button"><span class="styles-module__d4f9cW__label">Subscribe</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button><div class="styles-module__WD-Msa__tos sidebar-version-form-tos styles-module__yaWGhq__formTos styles-module__yaWGhq__sidebarVersionFormTos"><p>By supplying my contact information, I authorize LaunchDarkly to contact me with personalized marketing communications about our products and services. See our<!-- --> <a href="https://launchdarkly.com/policies/privacy/">Privacy Policy</a> for more details, or<!-- --> <a href="https://go.launchdarkly.com/UnsubscribePage.html">Opt-Out</a> at any time.</p></div></div><div class="styles-module__yaWGhq__successMessage" id="customNewsletterSuccessMessage"></div></div></div></div></div><div class="styles-module__o_kpTq__shareLinks"><div class="styles-module__o_kpTq__shareContainer"><div class="styles-module__0R691q__showIcons"><div class="styles-module__0R691q__links"><a class="styles-module__0R691q__link" href="https://twitter.com/intent/tweet?url=https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/&amp;text=Chaos Engineering and Continuous Verification in Production" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/6f9be1a5-6395-4b01-8719-ad43eea49d74_x-icon.svg" alt="Twitter" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="https://www.facebook.com/sharer/sharer.php?u=https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4f60d7a-48fa-40d5-a192-20fdd835ed40_Facebook.svg" alt="Facebook" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/&amp;title=Chaos Engineering and Continuous Verification in Production" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/45da01c6-71bd-4533-ae9c-6976ebbc9506_Component+4.svg" alt="LinkedIn" loading="lazy"/></div></a><a class="styles-module__0R691q__link" href="#" target="__blank"><div class="styles-module__0R691q__linkIcon"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b9eae970-9f92-463c-983e-b44918749711_Link.svg" alt="Copy Link" loading="lazy"/></div><div class="styles-module__0R691q__linkClicked ">URL Copied!</div></a></div></div></div></div></section></div><div class="styles-module__HXqOTa__relatedContent"><div class="styles-module__z7oeYG__overflowCardCarousel styles-module__z7oeYG__darkTheme styles-module__z7oeYG__noFlexOnSplide "><div class="styles-module__z7oeYG__header"><div class="styles-module__z7oeYG__titleWithLink"><h3 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold">Related Content</h3><a class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_outline styles-module__d4f9cW__size_default" target="_self" tabindex="0" href="/blog/category/devops/"><span class="styles-module__d4f9cW__label">See all posts on devops</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></a></div><div class="styles-module__z7oeYG__arrows"><div class="styles-module__z7oeYG__prev styles-module__z7oeYG__disabled"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><div class="styles-module__z7oeYG__next "><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__z7oeYG__carouselContainer"><div class="styles-module__z7oeYG__spillContainer"><div class="splide"><div class="splide__track"><ul class="splide__list"><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/spring-2025-customer-census/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Spring 2025 LaunchDarkly customer census" loading="lazy" width="3000" height="1689" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/spring-2025-customer-census/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Transforming software development: Key findings from our Spring 2025 Customer Census</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="3000" height="1689" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">De risked releases</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/2024-survey-impact-launchdarkly-customer-outcomes/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4001%2C2315&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4001%2C2315&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/2024-survey-impact-launchdarkly-customer-outcomes/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">2024 Survey: Impact of LaunchDarkly on Customer Outcomes</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/2024-survey-impact-of-feature-management/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4001%2C2315&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress&amp;rect=0%2C0%2C4001%2C2315&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Research Report</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/2024-survey-impact-of-feature-management/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">The Impact of Feature Management on Software Engineering and Business Performance</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/cicd-best-practices-devops/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Light green infinity loop CI/CD best practices blog post image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress&amp;rect=1%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress&amp;rect=1%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Developer productivity</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/cicd-best-practices-devops/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Ultimate Guide to CI/CD Best Practices to Streamline DevOps</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/what-is-software-deployment/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="What is a software deployment? Featured blog post image - code snippets, colorful UI" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress%2Cformat&amp;rect=0%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress%2Cformat&amp;rect=0%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">De risked releases</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/what-is-software-deployment/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">What Are Software Deployments? Methodology + Best Practices</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/modern-devops-operating-continuously/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Modern-DevOps-the-Shift-to-Operating-Continuously-featured image" loading="lazy" width="3000" height="1736" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress%2Cformat&amp;rect=0%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80 1x" src="https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress%2Cformat&amp;rect=0%2C0%2C3999%2C2314&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">DevOps</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/modern-devops-operating-continuously/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Modern DevOps: The Shift to Operating Continuously</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/galaxy-2023-product-release/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="Galaxy Product LaunchDarkly 2023" loading="lazy" width="2000" height="1157" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&amp;rect=0%2C0%2C2000%2C1157&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&amp;rect=0%2C0%2C2000%2C1157&amp;w=3840&amp;fit=max&amp;q=80 2x" src="https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress%2Cformat&amp;rect=0%2C0%2C2000%2C1157&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Product Updates</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/galaxy-2023-product-release/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Galaxy ‘23 Product Release</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/5-tools-for-deployment-automation/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="2000" height="1126" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80 2x" src="https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Industry Insights</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/5-tools-for-deployment-automation/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">5 Tools for Deployment Automation</span></a></div></div></li><li class="splide__slide"><div class="styles-module__P4S5fa__wrapper styles-module__P4S5fa__dark styles-module__P4S5fa__isNewBlogStyle"><a class="styles-module__P4S5fa__imageWrapper" target="_self" tabindex="0" href="/blog/enabling-digital-transformation-through-devops/"><span class="styles-module__P4S5fa__image"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image"><img alt="" loading="lazy" width="2000" height="1126" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=2048&amp;fit=max&amp;q=80 1x, https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80 2x" src="https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress%2Cformat&amp;rect=0%2C0%2C4000%2C2252&amp;w=3840&amp;fit=max&amp;q=80"/></div></span></a><div class="styles-module__P4S5fa__contentContainer "><div class="styles-module__P4S5fa__categoryEyebrow"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_eyebrow">Best Practices</span></div><a class="styles-module__P4S5fa__title" target="_self" tabindex="0" href="/blog/enabling-digital-transformation-through-devops/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Enabling Digital Transformation Through DevOps</span></a></div></div></li></ul></div></div></div></div></div></div></div><div class="styles-module__HXqOTa__newsletterContainer"><div class=" undefined styles-module__yaWGhq__blogNewsletter styles-module__yaWGhq__horizontalVersion"><div class="styles-module__yaWGhq__blogNewsletterSection"><div class="styles-module__yaWGhq__textContent"><img class="styles-module__yaWGhq__newsletterIconHorizontal" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aimnSAeQX7-eXL6I_icon--blog-letter-in-envelop.svg" alt="Letter in envelope icon" loading="lazy"/><h5 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__weight_medium">Sign up for our newsletter</h5><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__weight_regular styles-module__yaWGhq__description">Get all the content, tips, and news you can use.</p><div class="styles-module__WD-Msa__tos full-width-version-form-tos styles-module__yaWGhq__formTos styles-module__yaWGhq__fullWidthVersion"><p>By supplying my contact information, I authorize LaunchDarkly to contact me with personalized marketing communications about our products and services. See our<!-- --> <a href="https://launchdarkly.com/policies/privacy/">Privacy Policy</a> for more details, or<!-- --> <a href="https://go.launchdarkly.com/UnsubscribePage.html">Opt-Out</a> at any time.</p></div></div><div class="styles-module__yaWGhq__customForm" id="customNewsletterForm"><div class="styles-module__yaWGhq__formElements" id="customNewsletterFormElements"><input id="customNewsletterEmail" type="email" placeholder="Email address" aria-label="Email address" name="email" value=""/><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_dark styles-module__d4f9cW__size_default styles-module__yaWGhq__subscribeButton" type="button"><span class="styles-module__d4f9cW__label">Subscribe</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button></div><div class="styles-module__yaWGhq__successMessage" id="customNewsletterSuccessMessage"></div></div></div></div></div><div class="styles-module__HXqOTa__g2BannerContainer"><a class="styles-module__MISuva__blogG2Banner" target="_self" tabindex="0" href="/g2-review/"><div class="styles-module__MISuva__blogG2BannerInner"><div><img class="styles-module__MISuva__blogG2BannerImage" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ainJTAeQX7-eXMEO_icon-bw--growing-up-arrow.svg" alt="Climbing up arrow" loading="lazy"/></div><div class="styles-module__MISuva__blogG2BannerContent"><h4 class="styles-module__J0n02W__variant_h4 styles-module__J0n02W__color_white styles-module__J0n02W__weight_medium">LaunchDarkly Tops G2 Grid for Feature Management</h4></div><div class="styles-module__MISuva__blogG2BannerButton"><button class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default" type="button"><span class="styles-module__d4f9cW__label">Learn more</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></button></div></div></a></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","@id":"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/#article","about":[{"@type":"Thing","name":"Chaos Engineering: Continuous Verification in Prod"}],"author":[{"@type":"Person","name":"Matt DeLaney","url":"https://launchdarkly.com/blog/author/mattdel/"}],"datePublished":"2020-12-03T21:14:20.000Z","dateModified":"2026-07-21T17:16:26.000Z","headline":"Chaos Engineering: Continuous Verification in Prod","description":"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.","image":{"@type":"ImageObject","url":"https://launchdarkly.com/open-graph.jpg"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/#webpage"},"publisher":{"@id":"https://launchdarkly.com/#organization"}}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://launchdarkly.com/#organization","name":"LaunchDarkly","legalName":"LaunchDarkly","description":"LaunchDarkly helps teams safely manage code and AI agents in production with feature flags, progressive delivery, automated rollback, and runtime control.","url":"https://launchdarkly.com/","logo":{"@type":"ImageObject","url":"https://launchdarkly.com/schema-icon.png","width":"512","height":"512"},"sameAs":["https://twitter.com/LaunchDarkly","https://www.linkedin.com/company/launchdarkly","https://github.com/launchdarkly"]}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","description":"Breadcrumbs list","name":"Breadcrumbs","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://launchdarkly.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://launchdarkly.com/blog"},{"@type":"ListItem","position":3,"name":"Chaos Engineering: Continuous Verification in Prod","item":"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/"}]}</script></div></section><section class="styles-module__NFwUga__newSection styles-module__5aVuCq__resources undefined" data-name="Resources"><div class="styles-module__NFwUga__contentContainer "><header class="styles-module__5aVuCq__header"><h3 class="styles-module__J0n02W__variant_h3 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_semibold styles-module__5aVuCq__heading">Resources to get started.</h3></header><ul class="styles-module__5aVuCq__cards"><div class="styles-module__5aVuCq__card undefined"><a class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-check-out-the-blog-" href="/blog/"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Check out the blog.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Blog</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Read about LaunchDarkly news, product updates, and more.</p></div></a></div><div class="styles-module__5aVuCq__card undefined"><!--$?--><template id="B:a"></template><a href="https://launchdarkly.com/docs/home" class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-explore-our-docs-"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Explore our docs.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Docs</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Learn best practices for getting started with LaunchDarkly.</p></div></a><!--/$--></div><div class="styles-module__5aVuCq__card undefined"><a href="https://www.youtube.com/@LaunchDarkly" class="styles-module__5aVuCq__cardLink" target="_blank" tabindex="0" data-analytics="resources-watch-on-demand-" rel="nofollow noreferrer"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Watch on demand.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Videos</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Check out demos and tutorials to see LaunchDarkly in action.</p></div></a></div><div class="styles-module__5aVuCq__card undefined"><a class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-connect-at-events-" href="/events-webinars/"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Connect at events.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Events</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Explore ways to connect with us in person and virtually.</p></div></a></div></ul></div></section></main></div><a id="footer" tabindex="-1"></a><footer class="styles-module__-47ntW__footer " data-theme="dark"><div class="styles-module__-47ntW__footerInnerWrapper"><div class="styles-module__dkQbjG__footerTextMarquee"><div class="splide" extensions="[object Object]"><div class="splide__track"><ul class="splide__list"><li class="splide__slide"><div class="styles-module__dkQbjG__footerTextMarqueeItem"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/afp9m8BOoF08xpZG_icon--rotating-text-star.svg" alt="Star icon" loading="lazy"/><span>Ready to take control in prod?</span></div></li></ul></div></div></div><div class="styles-module__-47ntW__footerInner"><div class="styles-module__-47ntW__footerCards styles-module__-47ntW__footerRow"><div class="styles-module__-47ntW__logo styles-module__-47ntW__firstCol"><a class="styles-module__SHyKFW__logo styles-module__SHyKFW__logoOnly" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="footer-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 39 39"><path fill="#fff" d="M19.843 39c-.3 0-.6-.172-.772-.474-.128-.302-.128-.603.086-.862l9.129-12.626-15.986 6.55c-.129.043-.214.086-.343.086-.386 0-.728-.258-.814-.603-.129-.345.043-.733.343-.948l14.057-8.318L.814 20.383C.3 20.34 0 19.953 0 19.522c0-.388.257-.82.814-.862l24.729-1.422L11.486 8.92c-.3-.215-.472-.603-.343-.948.128-.344.428-.603.814-.603.129 0 .214.043.343.086l15.986 6.55-9.129-12.67c-.171-.258-.214-.602-.086-.861C19.2.172 19.5 0 19.843 0c.214 0 .428.086.6.259l18.171 18.228c.257.259.386.647.386.992 0 .344-.129.689-.386.99L20.443 38.742a.84.84 0 0 1-.6.259"></path></svg></a></div><div class="styles-module__-47ntW__footerCardsContainer styles-module__-47ntW__secondCol"><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardGreen" target="_self" tabindex="0" data-analytics="footer-cta-get-a-demo" href="/request-a-demo/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowGreen"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Get a demo</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTY1P9HI4UtaI_img-bg--footer-get-demo.svg" alt="Get a demo" loading="eager"/></div></div></a><!--$?--><template id="B:b"></template><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardPurple" target="_self" tabindex="0" data-analytics="footer-cta-free-trial"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowPurple"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Free trial</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg" alt="Free trial" loading="eager"/></div></div></a><!--/$--><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardOrange" target="_self" tabindex="0" data-analytics="footer-cta-codecontrol" href="/platform/code-control/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowOrange"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>CodeControl</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwS41P9HI4UtaG_img-bg--footer-code-control.svg" alt="CodeControl" loading="eager"/></div></div></a><a class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardBlue" target="_self" tabindex="0" data-analytics="footer-cta-agentcontrol" href="/platform/agent-control/"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowBlue"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>AgentControl</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwSo1P9HI4UtaF_img-bg--footer-agent-control.svg" alt="AgentControl" loading="eager"/></div></div></a></div></div><div class="styles-module__-47ntW__footerRow undefined"><div class="styles-module__-47ntW__firstCol"></div><div class="styles-module__-47ntW__secondCol styles-module__-47ntW__footerLinks"><div class="styles-module__-47ntW__footerLinksColumn styles-module__-47ntW__newsletterColumn"><div class="styles-module__-47ntW__newsletterContainer"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_lg styles-module__5zGs1G__weight_medium">Inboxes love LaunchDarkly.</p><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_md styles-module__-47ntW__newsletterFooterText newsletter-footer-text">Get the latest on controlling code and agents in production, with tips, insights, and updates you can actually use.</p><div class="styles-module__-47ntW__newsletterForm newsletter-footer-mkto-form"><div class="mktoFormWrapper"><form id="mktoForm_2272"></form></div></div></div><div class="styles-module__-47ntW__socialMedia"><div class="styles-module__-47ntW__iconContainer"><a href="https://twitter.com/launchdarkly" target="_blank" tabindex="0" aria-label="twitter" data-analytics="footer-social-twitter" rel="nofollow noreferrer"><img alt="small twitter logo" data-analytics="footer-social-twitter" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format"/></a><a href="https://www.youtube.com/@LaunchDarkly" target="_blank" tabindex="0" aria-label="YouTube" data-analytics="footer-social-youtube" rel="nofollow noreferrer"><img alt="small YouTube logo" data-analytics="footer-social-youtube" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg"/></a><a href="https://www.linkedin.com/company/launchdarkly/mycompany/" target="_blank" tabindex="0" aria-label="LinkedIn" data-analytics="footer-social-linkedin" rel="nofollow noreferrer"><img alt="small LinkedIn logo" data-analytics="footer-social-linkedin" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg"/></a><a href="https://discord.com/invite/launchdarklycommunity" target="_blank" tabindex="0" aria-label="Discord" data-analytics="footer-social-discord" rel="nofollow noreferrer"><img alt="small Discord logo" data-analytics="footer-social-discord" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format"/></a><a href="https://www.instagram.com/launchdarkly/" target="_blank" tabindex="0" aria-label="Instagram" data-analytics="footer-social-instagram" rel="nofollow noreferrer"><img alt="small Instagram logo" data-analytics="footer-social-instagram" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg"/></a></div></div></div><div class="styles-module__-47ntW__footerLinksColumns"><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Company</p><ul><li><a target="_self" tabindex="0" data-analytics="footer-company-about-us" href="/about-us/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">About Us</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-careers" href="/careers/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Careers</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-media-analysts" href="/press-and-analysts/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Media &amp; Analysts</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-partner-program" href="/partner-program/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Partner Program</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-terms-policies" href="/policies/subscription-terms/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Terms &amp; Policies</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-contact-us" href="/contact-us/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Contact Us</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-company-community" href="/community/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Community</span></a></li></ul></div><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Support</p><ul class="styles-module__-47ntW__footerLinksColumnSupport"><li><!--$--><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-support-support-home"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Support home</span></a><!--/$--></li><li><a target="_self" tabindex="0" data-analytics="footer-support-professional-services" href="/services/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Professional Services</span></a></li><li><!--$--><a href="https://launchdarkly.com/docs/home" rel="" target="_self" tabindex="0" data-analytics="footer-support-documentation"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Documentation</span></a><!--/$--></li><li><!--$--><a href="https://status.launchdarkly.com/" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-support-status"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Status</span></a><!--/$--></li><li><a href="#" data-analytics="footer-support-do-not-sell">Do not Sell or Share my Personal Information</a></li></ul></div><div class="styles-module__-47ntW__footerLinksColumn"><p class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm styles-module__5zGs1G__weight_medium styles-module__5zGs1G__textTransform_uppercase styles-module__-47ntW__footerLinksColumnTitle">Why Us</p><ul><li><a target="_self" tabindex="0" data-analytics="footer-why-us-economic-impact-of-launchdarkly" href="/guides/forrester-tei-report-2026/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Economic Impact of LaunchDarkly</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-how-launchdarkly-works" href="/how-it-works/platform/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">How LaunchDarkly works</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-solutions" href="/solutions/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Solutions</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-trust-security" href="/security/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Trust &amp; Security</span></a></li><li><!--$--><a href="https://trust.launchdarkly.com" rel="nofollow noopener noreferrer" target="_self" tabindex="0" data-analytics="footer-why-us-trust-center"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">Trust Center</span></a><!--/$--></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-launchdarkly-vs-competitors" href="/compare/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">LaunchDarkly vs. Competitors</span></a></li><li><a target="_self" tabindex="0" data-analytics="footer-why-us-launchdarkly-on-aws" href="/solutions/launchdarkly-aws/"><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body">LaunchDarkly on AWS</span></a></li></ul></div></div></div></div><div class="styles-module__-47ntW__footerMobileLogo"><a class="styles-module__SHyKFW__logo" target="_self" tabindex="0" aria-label="LaunchDarkly Home" data-analytics="footer-mobile-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 156 24"><g fill="#000" clip-path="url(#brand-dark_svg__a)"><path d="M9.33 18.729V16.45H2.578V5.272H0v13.457zm6.486-.424q.837-.636 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.488-1.245-1.409-.45-2.286-.45c-.479 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.233c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.851 0 1.542-.212 2.1-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874 2.33 2.33 0 0 1-1.276.371c-.452 0-.824-.106-1.09-.318m13.848 1.642c.585-.503 1.01-1.192 1.276-2.04v2.49h2.499V8.98h-2.498v4.556q0 .993-.319 1.748c-.319.755-.505.927-.904 1.192a2.23 2.23 0 0 1-1.356.424c-.558 0-.983-.159-1.302-.477-.292-.318-.452-.795-.452-1.404V8.98h-2.499v6.093c0 1.272.292 2.225.904 2.914s1.409 1.033 2.445 1.033c.904 0 1.621-.238 2.206-.742m9.011.45v-4.556q0-.993.319-1.748c.319-.755.505-.927.877-1.192.372-.291.824-.424 1.329-.424.558 0 .983.159 1.302.477.292.318.452.795.452 1.404v6.066h2.525v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.595.265-2.18.742-.558.503-.983 1.192-1.276 2.04v-2.49h-2.498v9.748h2.499zm15.257.212a8 8 0 0 0 .904-.212c.292-.079.532-.186.797-.265l.027-2.358c-.399.212-.824.344-1.276.45a6 6 0 0 1-1.356.159c-.665 0-1.249-.132-1.701-.371a2.24 2.24 0 0 1-1.01-1.033 3.25 3.25 0 0 1-.319-1.457 3.34 3.34 0 0 1 .319-1.457c.213-.424.558-.768 1.01-1.033s1.01-.371 1.648-.371a6 6 0 0 1 1.409.159c.452.106.851.265 1.249.45l-.027-2.437c-.292-.106-.558-.212-.824-.265a4.3 4.3 0 0 0-.904-.159 6.3 6.3 0 0 0-1.037-.079c-1.116 0-2.073.238-2.897.689a4.95 4.95 0 0 0-1.914 1.854c-.452.795-.664 1.669-.664 2.676 0 .98.239 1.881.691 2.649a4.65 4.65 0 0 0 1.914 1.801c.824.424 1.781.662 2.871.662.399.026.771 0 1.09-.053zm6.459-.212v-4.556q0-.993.319-1.748c.319-.755.505-.927.904-1.192a2.15 2.15 0 0 1 1.329-.424c.585 0 1.01.159 1.302.477s.452.795.452 1.404v6.066h2.499v-6.093c0-1.271-.292-2.225-.904-2.914s-1.409-1.033-2.445-1.033c-.877 0-1.621.265-2.18.742-.585.503-1.01 1.192-1.276 2.04V5.272h-2.472v13.457zm14.885 0c1.435 0 2.658-.265 3.668-.821a5.6 5.6 0 0 0 2.313-2.331c.532-1.006.797-2.199.797-3.55s-.266-2.543-.797-3.55-1.302-1.801-2.312-2.358-2.233-.821-3.668-.821H67.86v13.457h5.183zm-2.605-2.278v-8.9h2.578c1.302 0 2.313.397 3.03 1.166.744.795 1.09 1.881 1.09 3.285s-.372 2.517-1.09 3.285c-.744.768-1.754 1.165-3.03 1.165h-2.578zm15.922 1.854a4 4 0 0 0 1.276-1.669v2.093h2.472v-6.49c0-.689-.159-1.325-.505-1.854s-.851-.954-1.489-1.245-1.409-.45-2.286-.45c-.478 0-.957.053-1.409.132a6.4 6.4 0 0 0-1.276.371 6 6 0 0 0-1.09.556l.08 2.305c.611-.397 1.196-.689 1.781-.901s1.223-.318 1.94-.318c.558 0 1.01.133 1.329.397s.478.609.478 1.033v.662h-2.18c-1.329 0-2.366.265-3.136.821s-1.143 1.325-1.143 2.305a3.1 3.1 0 0 0 .372 1.483 2.56 2.56 0 0 0 1.09 1.033c.478.265 1.037.371 1.648.371.824 0 1.489-.212 2.047-.636zm-2.233-1.669a1.08 1.08 0 0 1-.425-.874 1.12 1.12 0 0 1 .585-1.033c.372-.239.957-.371 1.701-.371h1.595v.371c0 .318-.08.636-.266.98a2.35 2.35 0 0 1-.824.874c-.372.238-.771.344-1.249.344-.452.027-.824-.079-1.116-.291zm11.031 2.093V14.57c0-1.086.239-1.907.691-2.464s1.09-.848 1.861-.848a3.3 3.3 0 0 1 1.037.159v-2.41c-.159-.053-.319-.079-.478-.106s-.346-.026-.532-.026c-.611 0-1.143.212-1.568.636s-.771 1.033-.983 1.775V8.954h-2.499v9.748h2.472v.026zm7.681 0v-3.152l.904-.848 2.924 4h2.977l-4.173-5.695 4.093-4.053h-3.136l-3.562 3.444V5.272h-2.472v13.457zm10.819 0V5.272h-2.499v13.457zm3.827 3.629c.93 0 1.675-.185 2.259-.556s1.064-1.033 1.462-1.96l4.492-10.861h-2.578l-2.631 6.808-2.712-6.808h-2.578l4.014 9.722-.213.503c-.133.318-.292.583-.531.715-.213.159-.559.238-1.011.238h-2.073v2.199zM144.092 24a.56.56 0 0 1-.478-.291c-.08-.185-.08-.371.053-.53l5.662-7.762-9.915 4.027c-.08.027-.133.053-.212.053a.52.52 0 0 1-.505-.371c-.08-.212.026-.45.212-.583l8.719-5.113-15.337-.874a.525.525 0 0 1-.505-.53.52.52 0 0 1 .505-.53l15.337-.874-8.719-5.113c-.186-.132-.292-.371-.212-.583s.265-.371.505-.371c.079 0 .132.026.212.053l9.915 4.026-5.662-7.788c-.106-.159-.133-.371-.053-.53a.5.5 0 0 1 .478-.291c.133 0 .266.053.372.159l11.271 11.205c.159.159.239.397.239.609s-.08.424-.239.609l-11.271 11.232a.53.53 0 0 1-.372.159z"></path></g><defs><clipPath id="brand-dark_svg__a"><path fill="#000" d="M0 0h156v24H0z"></path></clipPath></defs></svg></a></div><div class="styles-module__-47ntW__footerRow styles-module__-47ntW__footerBottom"><div class="styles-module__-47ntW__footerBottomLeft"></div><div class="styles-module__-47ntW__footerBottomRight"><a target="_self" tabindex="0" data-analytics="footer-terms-conditions" href="/terms-of-service/">Terms &amp; Conditions</a><a target="_self" tabindex="0" data-analytics="footer-privacy-policy" href="/policies/privacy/">Privacy Policy</a><span class="styles-module__5zGs1G__text styles-module__5zGs1G__variant_body styles-module__5zGs1G__size_sm">©<!-- -->2026<!-- --> Catamorphic Co.</span></div></div></div></div></footer><!--$--><!--/$--><div id="modal" class="styles-module__9Rojna__modal"></div><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/webpack-6feccfddff7ef52e.js" id="_R_" async=""></script><div hidden id="S:0"><a href="https://academy.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-success-academy"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Academy</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><a href="https://support.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-help-center"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Help Center</h6><p>Explore help topics for everything LaunchDarkly.</p></div></div></a></div><script>$RC("B:1","S:1")</script><div hidden id="S:2"><a href="https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893" rel="nofollow noopener noreferrer" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-get-help-request-support"><div class="styles-module__9d2Dpq__productLinkInner"><div class="styles-module__9d2Dpq__linkInnerIconContainer"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__9d2Dpq__productLinkTextContainer"><h6>Request support</h6><p>Reach out to us for direct answers to your questions.</p></div></div></a></div><script>$RC("B:2","S:2")</script><div hidden id="S:3"><a href="https://launchdarkly.com/docs/home" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-docs-home"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Docs home</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:3","S:3")</script><div hidden id="S:4"><a href="https://launchdarkly.com/docs/home/getting-started" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-feature-flags-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Feature flags Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:4","S:4")</script><div hidden id="S:5"><a href="https://launchdarkly.com/docs/home/agentcontrol/quickstart" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-agentcontrol-quickstart"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>AgentControl Quickstart</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:5","S:5")</script><div hidden id="S:6"><a href="https://launchdarkly.com/docs/api/" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-resources-api-docs"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>API docs</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:6","S:6")</script><div hidden id="S:7"><a href="https://launchdarkly.com/docs/blog" rel="" class="styles-module__9d2Dpq__link " target="_self" tabindex="0" data-analytics="nav-workflow-flagship-engineering-blog"><div class="styles-module__9d2Dpq__linkWrapper"><div class="styles-module__9d2Dpq__linkIcon"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><span>Flagship engineering blog</span><div class="styles-module__9d2Dpq__arrowIcon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></a></div><script>$RC("B:7","S:7")</script><div hidden id="S:8"><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__SAuuzq__ctaInner js-primary-button-hover-parent" target="_self" tabindex="0" data-analytics="nav-developers-free-trial"><div class="styles-module__SAuuzq__ctaIconContainer"><div class="styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover"><img alt="" loading="lazy" width="72" height="72" decoding="async" data-nimg="1" class="styles-module__nv1SBG__image" style="color:transparent" srcSet="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=96&amp;q=75 1x, /_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=256&amp;q=75 2x" src="/_next/image/?url=%2Fimages%2Fai-refresh%2Fnav%2Ftoggle-cta-nav.png&amp;w=256&amp;q=75"/></div></div><div class="styles-module__SAuuzq__ctaTextContainer"><p class="styles-module__SAuuzq__ctaTitle">Take control of your code and agents at runtime.</p><p>Control releases, experiments, and AI behavior in prod.</p></div><div class="styles-module__SAuuzq__ctaButton"><span class="styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default"><span class="styles-module__d4f9cW__label">Free trial</span><span class="styles-module__d4f9cW__arrowBox false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__d4f9cW__arrow" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></span></span></div></a></div><script>$RC("B:8","S:8")</script><div hidden id="S:9"><a href="https://app.launchdarkly.com/" rel="nofollow noopener noreferrer" class="styles-module__stVVvG__pricingLink styles-module__stVVvG__mobileSignInLink" target="_self" tabindex="0" data-analytics="nav-mobile-sign-in"><span>Sign in</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" class="styles-module__stVVvG__mobilePricingArrow"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></a></div><script>$RC("B:9","S:9")</script><div hidden id="S:a"><a href="https://launchdarkly.com/docs/home" rel="" class="styles-module__5aVuCq__cardLink" target="_self" tabindex="0" data-analytics="resources-explore-our-docs-"><div class="styles-module__5aVuCq__cardMedia"><div class="styles-module__5aVuCq__cardImage styles-module__5aVuCq__aspect16x9"><img alt="" loading="lazy" width="1920" height="1080" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=1920 1x, https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840 2x" src="https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format%2Ccompress&amp;fit=max&amp;w=3840"/></div><div class="styles-module__5aVuCq__cardButton"><div class="styles-module__5aVuCq__cardArrow"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none" aria-hidden="true"><path fill="currentColor" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div></div></div><div class="styles-module__5aVuCq__cardBody"><h3 class="styles-module__J0n02W__variant_h5 styles-module__J0n02W__color_gray01 styles-module__J0n02W__weight_medium styles-module__J0n02W__fontFamily_sohne styles-module__5aVuCq__cardTitle">Explore our docs.</h3><span class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardEyebrow">Docs</span><p class="styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray02 styles-module__J0n02W__weight_regular styles-module__5aVuCq__cardDescription">Learn best practices for getting started with LaunchDarkly.</p></div></a></div><script>$RC("B:a","S:a")</script><div hidden id="S:b"><a href="https://app.launchdarkly.com/signup" rel="nofollow noopener noreferrer" class="styles-module__-47ntW__footerCard styles-module__-47ntW__cardPurple" target="_self" tabindex="0" data-analytics="footer-cta-free-trial"><div><div class="styles-module__-47ntW__footerCardHeading"><div class="styles-module__-47ntW__footerCardArrow styles-module__-47ntW__cardArrowPurple"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" fill="none"><path fill="#fff" d="M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z"></path></svg></div><h5>Free trial</h5></div></div><div class="styles-module__-47ntW__footerCardImage"><div class="styles-module__-47ntW__footerCardImageInner"></div><div class="styles-module__-47ntW__footerCardImageBg"><img src="https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ajRwTI1P9HI4UtaH_img-bg--footer-free-trial.svg" alt="Free trial" loading="eager"/></div></div></a></div><script>$RC("B:b","S:b")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n16:I[57150,[],\"\"]\n:HL[\"/_next/static/media/06a57141b3ff4399-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/1c175694bc1e8ad8-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/415c659d58f62aff-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/751909690a1a74fa-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8fe56b4ac583f0e1-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/a205fd595a9beeab-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c314d5394508c5c7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/cbde3fd2db275844-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/d865ae18e54dcb9c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/eb42eb886f642af5-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f5e01691c8be1cce-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/4b895a9a0ceca7ed.css\",\"style\"]\n:HL[\"/_next/static/css/6aeb3fbd013f7055.css\",\"style\"]\n:HL[\"/_next/static/css/baa31bc0bc2753e2.css\",\"style\"]\n:HL[\"/_next/static/css/b694ee22169cc940.css\",\"style\"]\n:HL[\"/_next/static/css/455e5680c78aaa64.css\",\"style\"]\n:HL[\"/_next/static/css/668223e4ce0896ff.css\",\"style\"]\n:HL[\"/_next/static/css/71e7e41975824f9a.css\",\"style\"]\n:HL[\"/_next/static/css/499e8ecba60a437c.css\",\"style\"]\n:HL[\"/_next/static/css/c13c7b31349c3e1e.css\",\"style\"]\n:HL[\"/_next/static/css/eb8c52289887f66e.css\",\"style\"]\n:HL[\"/_next/static/css/76ba66facbc12026.css\",\"style\"]\n:HL[\"/_next/static/css/61c845f39508ea49.css\",\"style\"]\n:HL[\"/_next/static/css/9506ad2d29f3da93.css\",\"style\"]\n:HL[\"/_next/static/css/c96dfd09a5295fdd.css\",\"style\"]\n:HL[\"/_next/static/css/ffc1747465c21b7c.css\",\"style\"]\n:HL[\"/_next/static/css/a3d1e33a3a179b4c.css\",\"style\"]\n:HL[\"/_next/"])</script><script>self.__next_f.push([1,"static/css/ab4a69f65a7a2b93.css\",\"style\"]\n:HL[\"/_next/static/css/5b017ffd652d07f8.css\",\"style\"]\n:HL[\"/_next/static/css/c2a2739e0e57e14c.css\",\"style\"]\n:HL[\"/_next/static/css/0e421a84dd333b11.css\",\"style\"]\n:HL[\"/_next/static/css/f188bfa3f9063907.css\",\"style\"]\n:HL[\"/_next/static/css/f08af977962d892c.css\",\"style\"]\n:HL[\"/_next/static/css/741f4cf49b054cf0.css\",\"style\"]\n:HL[\"/_next/static/css/a05c4c008283c998.css\",\"style\"]\n:HL[\"/_next/static/css/271699adbe3692a1.css\",\"style\"]\n:HL[\"/_next/static/css/6bcd99eac94adccc.css\",\"style\"]\n:HL[\"/_next/static/css/9860101428a5e484.css\",\"style\"]\n:HL[\"/_next/static/css/34a11c3f23439233.css\",\"style\"]\n:HL[\"/_next/static/css/b60911417b616c72.css\",\"style\"]\n:HL[\"/_next/static/css/e217cbe846d54f5a.css\",\"style\"]\n:HL[\"/_next/static/css/437c2c516d87ce24.css\",\"style\"]\n:HL[\"/_next/static/css/c240dbaacd91d7b6.css\",\"style\"]\n:HL[\"/_next/static/css/e2768b37f0a7179e.css\",\"style\"]\n:HL[\"/_next/static/css/3771f60faaafd2e7.css\",\"style\"]\n:HL[\"/_next/static/css/e22ba8bc372dffa3.css\",\"style\"]\n:HL[\"/_next/static/css/7a4ebd8c71fa9dec.css\",\"style\"]\n:HL[\"/_next/static/css/42eebaa13cfadd34.css\",\"style\"]\n:HL[\"/_next/static/css/0b0e39f220873667.css\",\"style\"]\n:HL[\"/_next/static/css/f70e0c2fa3894b2b.css\",\"style\"]\n:HL[\"/_next/static/css/2a1b94a1fafb21a0.css\",\"style\"]\n:HL[\"/_next/static/css/372992834c739f06.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"O_3hlC3LSW0FOlOFveGg2\",\"p\":\"\",\"c\":[\"\",\"blog\",\"chaos-engineering-and-continuous-verification-in-production\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"uid\",\"chaos-engineering-and-continuous-verification-in-production\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4b895a9a0ceca7ed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6aeb3fbd013f7055.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baa31bc0bc2753e2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b694ee22169cc940.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/455e5680c78aaa64.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"blog\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"uid\",\"chaos-engineering-and-continuous-verification-in-production\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/668223e4ce0896ff.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/71e7e41975824f9a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/499e8ecba60a437c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c13c7b31349c3e1e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/eb8c52289887f66e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/76ba66facbc12026.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/61c845f39508ea49.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"7\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9506ad2d29f3da93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"8\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c96dfd09a5295fdd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"9\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ffc1747465c21b7c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"10\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a3d1e33a3a179b4c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"11\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ab4a69f65a7a2b93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"12\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5b017ffd652d07f8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"13\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c2a2739e0e57e14c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"14\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0e421a84dd333b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"15\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f188bfa3f9063907.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"16\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f08af977962d892c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"17\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/741f4cf49b054cf0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"18\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/a05c4c008283c998.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"19\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/271699adbe3692a1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"20\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6bcd99eac94adccc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"21\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9860101428a5e484.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],\"$L6\",\"$L7\",\"$L8\",\"$L9\",\"$La\",\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\"],\"$L14\"]}],{},null,false]},null,false]},null,false]},null,false],\"$L15\",false]],\"m\":\"$undefined\",\"G\":[\"$16\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"17:I[24431,[],\"OutletBoundary\"]\n19:I[15278,[],\"AsyncMetadataOutlet\"]\n1b:I[24431,[],\"ViewportBoundary\"]\n1d:I[24431,[],\"MetadataBoundary\"]\n1e:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"20:I[41402,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"21:I[8083,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n23:I[46212,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n6:[\"$\",\"link\",\"22\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/34a11c3f23439233.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n7:[\"$\",\"link\",\"23\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b60911417b616c72.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n8:[\"$\",\"link\",\"24\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e217cbe846d54f5a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n9:[\"$\",\"link\",\"25\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/437c2c516d87ce24.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\na:[\"$\",\"link\",\"26\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c240dbaacd91d7b6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nb:[\"$\",\"link\",\"27\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e2768b37f0a7179e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nc:[\"$\",\"link\",\"28\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/3771f60faaafd2e7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"29\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e22ba8bc372dffa3.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\ne:[\"$\",\"link\",\"30\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a4ebd8c71fa9dec.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:[\"$\",\"link\",\"31\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/42eebaa13cfadd34.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n10:[\"$\",\"link\",\"32\",{\"rel\":\"stylesh"])</script><script>self.__next_f.push([1,"eet\",\"href\":\"/_next/static/css/0b0e39f220873667.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n11:[\"$\",\"link\",\"33\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f70e0c2fa3894b2b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n12:[\"$\",\"link\",\"34\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2a1b94a1fafb21a0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n13:[\"$\",\"link\",\"35\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/372992834c739f06.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n14:[\"$\",\"$L17\",null,{\"children\":[\"$L18\",[\"$\",\"$L19\",null,{\"promise\":\"$@1a\"}]]}]\n15:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1b\",null,{\"children\":\"$L1c\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1e\",null,{\"fallback\":null,\"children\":\"$L1f\"}]}]}]]}]\n25:T79b,"])</script><script>self.__next_f.push([1,"\n const domainName = document.domain;\n const isStaging = domainName.indexOf('launchdarkly-nextjs.netlify.app') \u003e 0;\n const isLocal = domainName.indexOf('localhost') \u003e= 0;\n if (!isStaging \u0026\u0026 !isLocal) {\n var _0x4f3c3b=_0x28ed;(function(_0x27c1d5,_0x5b7285){var _0x4a3aaf=_0x28ed,_0x50f6dc=_0x27c1d5();while(!![]){try{var _0x25be67=-parseInt(_0x4a3aaf(0x135))/0x1*(-parseInt(_0x4a3aaf(0x12f))/0x2)+-parseInt(_0x4a3aaf(0x13a))/0x3*(-parseInt(_0x4a3aaf(0x12e))/0x4)+parseInt(_0x4a3aaf(0x13f))/0x5+-parseInt(_0x4a3aaf(0x130))/0x6*(parseInt(_0x4a3aaf(0x137))/0x7)+parseInt(_0x4a3aaf(0x131))/0x8+parseInt(_0x4a3aaf(0x139))/0x9+-parseInt(_0x4a3aaf(0x13c))/0xa*(parseInt(_0x4a3aaf(0x13e))/0xb);if(_0x25be67===_0x5b7285)break;else _0x50f6dc['push'](_0x50f6dc['shift']());}catch(_0x1fcfea){_0x50f6dc['push'](_0x50f6dc['shift']());}}}(_0x3a95,0xe2743));if(document[_0x4f3c3b(0x133)]!=_0x4f3c3b(0x13b)\u0026\u0026document[_0x4f3c3b(0x133)]!=_0x4f3c3b(0x136)){var l=location['href'],r=document[_0x4f3c3b(0x132)],m=new Image();location['protocol']=='https:'?m[_0x4f3c3b(0x13d)]=_0x4f3c3b(0x138)+encodeURI(l)+_0x4f3c3b(0x134)+encodeURI(r):m[_0x4f3c3b(0x13d)]='http://a1abbeef2a0f.o3n.io/files/0fuqyu7agr8q60qwy053kyf7f/image.gif?l='+encodeURI(l)+_0x4f3c3b(0x134)+encodeURI(r);}function _0x28ed(_0x47b123,_0x3d6cdb){var _0x3a951d=_0x3a95();return _0x28ed=function(_0x28edc0,_0x280ec2){_0x28edc0=_0x28edc0-0x12e;var _0x1620c4=_0x3a951d[_0x28edc0];return _0x1620c4;},_0x28ed(_0x47b123,_0x3d6cdb);}function _0x3a95(){var _0x130dd2=['57287318YqinYt','6717710lMIlzL','11324COWcrE','67920RoENBP','25998dHkLhN','11230248MZmNRI','referrer','domain','\u0026r=','49PVgtBh','www.launchdarkly.com','1253jAaJlq','https://a1abbeef2a0f.o3n.io/files/0fuqyu7agr8q60qwy053kyf7f/image.gif?l=','13376151BQtzMN','1074XfLrvY','launchdarkly.com','10hIxshK','src'];_0x3a95=function(){return _0x130dd2;};return _0x3a95();}\n }\n "])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en-US\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",\"cookie-consent-script\",{\"id\":\"cookie-consent-script\",\"data-cookieconsent\":\"ignore\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag() {\\n dataLayer.push(arguments);\\n }\\n gtag(\\\"consent\\\", \\\"default\\\", {\\n ad_storage: \\\"denied\\\",\\n ad_user_data: \\\"denied\\\",\\n ad_personalization: \\\"denied\\\",\\n analytics_storage: \\\"denied\\\",\\n functionality_storage: \\\"denied\\\",\\n personalization_storage: \\\"denied\\\",\\n security_storage: \\\"granted\\\",\\n wait_for_update: 500,\\n });\\n gtag(\\\"set\\\", \\\"ads_data_redaction\\\", true);\\n gtag(\\\"set\\\", \\\"url_passthrough\\\", true);\\n \"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_918804 __variable_81b511 __variable_3ebb29 __variable_a7dd04 __variable_479fb2\",\"children\":[[[\"$\",\"$L20\",\"cookiebot\",{\"id\":\"cookiebot\",\"strategy\":\"beforeInteractive\",\"src\":\"https://consent.cookiebot.com/uc.js\",\"data-cbid\":\"a9e2be18-730c-4afe-89dc-251a408727a0\",\"data-blockingmode\":\"auto\",\"type\":\"text/javascript\",\"data-georegions\":\"{'region':'AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SK, SI, ES, SE, GB','cbid':'d7afae1f-c20d-4849-be5c-a875c8c184a0'}\"}],[\"$\",\"$L20\",\"gtm-init\",{\"id\":\"gtm-init\",\"strategy\":\"afterInteractive\",\"data-cookieconsent\":\"ignore\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function(w,l){\\n w[l]=w[l]||[];\\n w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});\\n })(window,'dataLayer');\\n \"}}],[\"$\",\"$L20\",\"gtm\",{\"id\":\"gtm\",\"strategy\":\"afterInteractive\",\"data-cookieconsent\":\"ignore\",\"src\":\"https://www.googletagmanager.com/gtm.js?id=GTM-WRKKC89\"}]],[\"$\",\"div\",null,{\"className\":\"styles-module__4bne7a__layers\"}],[\"$\",\"$L21\",null,{}],\"$L22\",[\"$\",\"$L23\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L24\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c13c7b31349c3e1e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/71e7e41975824f9a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/76ba66facbc12026.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9506ad2d29f3da93.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1644807d4ece19b2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"div\",null,{\"id\":\"modal\",\"className\":\"styles-module__9Rojna__modal\"}],[[\"$\",\"$L20\",\"canaryScript\",{\"id\":\"canaryScript\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"$25\"}}]],\"$L26\"]}]]}]\n"])</script><script>self.__next_f.push([1,"27:I[1254,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"28:I[79931,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2a:I[15667,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"4345\",\"static/chunks/app/not-found-497554e3668544b1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2b:I[27903,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"PrismicNextImage\"]\n"])</script><script>self.__next_f.push([1,"2c:I[55265,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"26:[\"$\",\"$L27\",null,{}]\n"])</script><script>self.__next_f.push([1,"24:[[\"$\",\"$L28\",null,{\"document\":\"$undefined\"}],\"$L29\",[\"$\",\"main\",null,{\"className\":\" styles-module__llGG9q__main \",\"children\":[[\"$\",\"$L2a\",null,{}],[\"$\",\"section\",null,{\"className\":\"styles-module__NFwUga__newSection styles-module__NFwUga__bgBlack styles-module__o0Pm3W__notFoundMain\",\"id\":\"$undefined\",\"data-name\":\"$undefined\",\"data-jump-id\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__NFwUga__contentContainer styles-module__o0Pm3W__container\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L2b\",null,{\"field\":{\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aixLLKlQnVZVETT4_img-bg--pink-cloud.png?auto=format,compress\",\"alt\":\"Pink Cloud background\",\"dimensions\":{\"width\":1920,\"height\":1080}},\"className\":\"styles-module__o0Pm3W__pinkCloud\",\"quality\":\"$undefined\",\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":\"$undefined\",\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"lazy\"}],[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__contentContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__content\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"styles-module__J0n02W__variant_h1 styles-module__J0n02W__weight_bold styles-module__o0Pm3W__title\",\"children\":\"Oops, we seem to be hallucinating.\"}],[\"$\",\"p\",null,{\"className\":\"styles-module__J0n02W__variant_textMain styles-module__J0n02W__paragraph styles-module__J0n02W__weight_regular styles-module__o0Pm3W__description\",\"children\":\"Sorry about the 404 error, but this page doesn't exist.\"}],[\"$\",\"$L2c\",null,{\"className\":\"styles-module__d4f9cW__button styles-module__d4f9cW__variant_light styles-module__d4f9cW__size_default\",\"style\":\"$undefined\",\"href\":\"/\",\"onClick\":\"$undefined\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"eventName\":\"$undefined\",\"trackingId\":\"$undefined\",\"analyticsId\":\"$undefined\",\"persistExternalQueryParams\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__label\",\"children\":\"Return home\"}],[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__arrowBox false\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":12,\"fill\":\"none\",\"className\":\"styles-module__d4f9cW__arrow\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M11.283 11.714c.14-3.008 1.827-4.8 4.336-5.035V5.014C13.11 4.78 11.423 3.01 11.283 0L9.416.427A6 6 0 0 0 10.48 3.35c.622.853 1.325 1.408 2.128 1.664H0V6.68h12.608c-.803.256-1.506.81-2.128 1.685a6 6 0 0 0-1.064 2.902z\"}]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__o0Pm3W__videoContainer\",\"children\":[\"$\",\"video\",null,{\"autoPlay\":true,\"muted\":true,\"loop\":true,\"playsInline\":true,\"children\":[\"$\",\"source\",null,{\"src\":\"https://launchdarkly.cdn.prismic.io/launchdarkly/aixHeKlQnVZVETS0_AI-Bert_Dizzy_1080-vp9-chrome.webm\",\"type\":\"video/webm\"}]}]}]]}]]}]}]]}],\"$L2d\"]\n"])</script><script>self.__next_f.push([1,"1c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#FFF\"}]]\n18:null\n"])</script><script>self.__next_f.push([1,"2e:I[78006,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"7177\",\"static/chunks/app/layout-5d77b524524e53c1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2f:I[17143,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"30:I[57947,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"22:[\"$\",\"$L2e\",null,{\"show\":true,\"cookieKey\":\"runtime-labs-workshop-09172026\",\"content\":\"[Hands-on workshop] Managing AI Agents in Production - Sep 17\",\"ctaText\":\"Save my seat\",\"ctaLink\":\"https://launchdarkly.com/webinars/runtime-labs-managing-ai-agents-in-production-sept-17/\"}]\n"])</script><script>self.__next_f.push([1,"29:[\"$\",\"$L2f\",null,{\"navigationDocument\":{\"id\":\"Z8jwdRIAACIAchAL\",\"uid\":null,\"url\":null,\"type\":\"main_navigation\",\"href\":\"https://launchdarkly-marketingsite.cdn.prismic.io/api/v2/documents/search?ref=aqQbiREAACwA_PkJ\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z8jwdRIAACIAchAL%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-06T23:22:48+0000\",\"last_publication_date\":\"2026-08-12T21:50:57+0000\",\"slugs\":[\"main-navigation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"products_group\":[{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEidWJ-7kSC2w_icon--guarded-release-x24.svg\",\"id\":\"aCQJEidWJ-7kSC2w\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZkT8yxcAACQAayzv\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"eb9e562d-4750-4567-8060-b0378a8012b7\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guarded Releases\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Monitor and de-risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJESdWJ-7kSC2v_icon--experimentation-x24.svg\",\"id\":\"aCQJESdWJ-7kSC2v\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZS3e3xAAACYArUv0\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"859b7068-0b26-4b9b-be95-730781ae8e60\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make data-driven decisions.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aYTW2d0YXLCxVdmZ_observability-icon-pink-gradient.svg\",\"id\":\"aYTW2d0YXLCxVdmZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aXzdMhEAACEAbMS3\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"a6113607-80f4-45f3-9d88-a7f9cd5474ad\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Detect, diagnose, and recover.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEydWJ-7kSC2x_icon--release-management-x24.svg\",\"id\":\"aCQJEydWJ-7kSC2x\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZK7UUREAACQAMsBn\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"bd2dad2e-cc7c-47a4-9c6b-d14e00a62722\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature Flags\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Scale great release processes.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"release-management\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJECdWJ-7kSC2u_icon--ai-x24.svg\",\"id\":\"aCQJECdWJ-7kSC2u\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aScrdxIAACUA_zBM\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"e1c3e064-69c5-4a8a-9e6d-d47afa6f9a84\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI Configs\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make innovative AI products.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"ai\",\"spans\":[],\"direction\":\"ltr\"}]}],\"overview_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format,compress\",\"id\":\"agwNv6YofJOwHWkd\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT1iRIAACMAW09R\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"the-runtime-control-layer-for-the-ai-era.\",\"first_publication_date\":\"2026-05-13T22:07:57+0000\",\"last_publication_date\":\"2026-07-29T17:52:40+0000\",\"uid\":\"how-it-works.platform\",\"url\":\"/how-it-works.platform/\",\"link_type\":\"Document\",\"key\":\"cb51a2ac-66b9-445c-add5-1bfd126fdaf1\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Platform overview\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format,compress\",\"id\":\"agpNAKYofJOwHTuE\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agJOJRIAACMAV0KE\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"feature-flags-for-real-time-control-in-production.\",\"first_publication_date\":\"2026-05-11T23:18:47+0000\",\"last_publication_date\":\"2026-07-09T17:32:44+0000\",\"uid\":\"how-it-works.feature-flags\",\"url\":\"/how-it-works.feature-flags/\",\"link_type\":\"Document\",\"key\":\"5b39f1f4-c3e9-4985-a6f4-09d007cdc71a\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format,compress\",\"id\":\"agpNA6YofJOwHTuH\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agUqVRIAACEAW5iJ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"observe-at-the-scale-that-you\",\"first_publication_date\":\"2026-05-14T02:28:03+0000\",\"last_publication_date\":\"2026-07-16T18:41:10+0000\",\"uid\":\"how-it-works.observability\",\"url\":\"/how-it-works.observability/\",\"link_type\":\"Document\",\"key\":\"fb0b6ba7-0f91-4639-a80e-a08103edd108\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format,compress\",\"id\":\"agpM_6YofJOwHTuD\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT6fRIAAI1IW1Zl\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"optimize-at-the-speed-that-you\",\"first_publication_date\":\"2026-05-13T23:15:56+0000\",\"last_publication_date\":\"2026-08-12T00:12:40+0000\",\"uid\":\"how-it-works.experimentation\",\"url\":\"/how-it-works.experimentation/\",\"link_type\":\"Document\",\"key\":\"026bc403-ba2c-4c10-a9a7-28dc7beb9c0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format,compress\",\"id\":\"agpM_qYofJOwHTuC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agPiLhIAACEAWZ_F\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"Agent Integration\"],\"lang\":\"en-us\",\"slug\":\"go-agent-native-from-day-1.\",\"first_publication_date\":\"2026-05-13T03:45:19+0000\",\"last_publication_date\":\"2026-07-02T20:40:47+0000\",\"uid\":\"how-it-works.agent-integrations\",\"url\":\"/how-it-works.agent-integrations/\",\"link_type\":\"Document\",\"key\":\"96423778-717a-4a35-b3d1-2966c0f15a99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Agent integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format,compress\",\"id\":\"agpNAqYofJOwHTuG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agXnzxIAAGfYXLYC\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"integrations\",\"first_publication_date\":\"2026-05-14T15:21:28+0000\",\"last_publication_date\":\"2026-05-19T04:39:17+0000\",\"uid\":\"integrations\",\"url\":\"/integrations/\",\"link_type\":\"Document\",\"key\":\"ac21f49d-de49-4c8f-9cab-03ff74f3aeae\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format,compress\",\"id\":\"agpNAaYofJOwHTuF\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agstuhIAAGVsZG8v\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"platform architecture\"],\"lang\":\"en-us\",\"slug\":\"built-for-runtime-control-at-scale.\",\"first_publication_date\":\"2026-05-18T15:48:56+0000\",\"last_publication_date\":\"2026-05-20T21:04:24+0000\",\"uid\":\"how-it-works.platform-architecture\",\"url\":\"/how-it-works.platform-architecture/\",\"link_type\":\"Document\",\"key\":\"654903e7-c950-4ee9-ad8d-28ced3798a0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Architecture\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_team_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format,compress\",\"id\":\"agpOrqYofJOwHTuK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZggxIAAGfYXWgr\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ai-coded-it-but-you-own-it-in-production.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T23:57:25+0000\",\"last_publication_date\":\"2026-07-15T15:24:08+0000\",\"uid\":\"solutions.release-ai-built-code\",\"url\":\"/solutions.release-ai-built-code/\",\"link_type\":\"Document\",\"key\":\"89e8e1ad-db87-4479-aeec-83186124bc80\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Release AI-built code\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format,compress\",\"id\":\"agpOrKYofJOwHTuI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVNRxIAACEAW8p2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"agents-make-decisions-you-own-the-results.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T04:20:19+0000\",\"last_publication_date\":\"2026-07-15T15:24:56+0000\",\"uid\":\"solutions.control-ai-agents\",\"url\":\"/solutions.control-ai-agents/\",\"link_type\":\"Document\",\"key\":\"c8ca2188-6dd5-4f79-b127-b32bd5afcc49\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Control AI agents\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format,compress\",\"id\":\"agpOraYofJOwHTuJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZehRIAACEAXWU6\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-guessing.-optimize-model-performance-and-cost-in-real-time.\",\"first_publication_date\":\"2026-05-14T23:47:53+0000\",\"last_publication_date\":\"2026-07-15T15:25:55+0000\",\"uid\":\"solutions.optimize-ai-performance\",\"url\":\"/solutions.optimize-ai-performance/\",\"link_type\":\"Document\",\"key\":\"57b0c941-034c-46e0-80ef-722178945659\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Optimize AI performance \u0026 cost\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format,compress\",\"id\":\"agpOsKYofJOwHTuM\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVxxxIAAI1IW_7K\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-responding-and-automatically-fix-problems-in-production.\",\"first_publication_date\":\"2026-05-14T07:01:00+0000\",\"last_publication_date\":\"2026-07-07T00:03:00+0000\",\"uid\":\"solutions.self-heal-systems\",\"url\":\"/solutions.self-heal-systems/\",\"link_type\":\"Document\",\"key\":\"a777ddee-a6f5-485b-8cb0-df55680e5bd3\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Self-heal systems\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format,compress\",\"id\":\"agpOr6YofJOwHTuL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZhwBIAACMAXWoU\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"experiment-at-ai-scale-without-losing-control.\",\"first_publication_date\":\"2026-05-15T00:01:50+0000\",\"last_publication_date\":\"2026-07-15T15:28:25+0000\",\"uid\":\"solutions.run-experiments\",\"url\":\"/solutions.run-experiments/\",\"link_type\":\"Document\",\"key\":\"0c20b758-07ba-4180-9002-028f2eb0c933\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Run experiments\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_industry_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format,compress\",\"id\":\"agpQmaYofJOwHTuS\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"af-1HRIAACEAU2aQ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"AI Engineer\"],\"lang\":\"en-us\",\"slug\":\"agents-break-in-production.-thats-where-control-matters.\",\"first_publication_date\":\"2026-05-09T23:06:03+0000\",\"last_publication_date\":\"2026-05-20T21:03:40+0000\",\"uid\":\"persona.ai-engineers\",\"url\":\"/persona.ai-engineers/\",\"link_type\":\"Document\",\"key\":\"fe8f38e4-584c-451d-b926-af442c252bea\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI engineers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format,compress\",\"id\":\"agpQmqYofJOwHTuT\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaOnBIAACMAXamc\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"development teams\"],\"lang\":\"en-us\",\"slug\":\"ship-faster.-stay-in-control.-fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-27T20:30:26+0000\",\"uid\":\"persona.development-teams\",\"url\":\"/persona.development-teams/\",\"link_type\":\"Document\",\"key\":\"dc747045-cd9a-4d86-aec3-d00c036dff99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Developers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format,compress\",\"id\":\"agpQm6YofJOwHTuU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaRwhIAAGfYXa5B\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"devops\"],\"lang\":\"en-us\",\"slug\":\"prevent-incidents.fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-18T18:21:56+0000\",\"uid\":\"persona.devops-site-reliability-engineer-teams\",\"url\":\"/persona.devops-site-reliability-engineer-teams/\",\"link_type\":\"Document\",\"key\":\"95bbe00c-5ed4-4caf-a18e-830cfa416ced\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"DevOps \u0026 SRE\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format,compress\",\"id\":\"agpQnaYofJOwHTuW\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaJuhIAAGfYXaJy\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"product managers\"],\"lang\":\"en-us\",\"slug\":\"launch-confidently.-learn-what-works.-improve-continuously.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-05-19T01:10:37+0000\",\"uid\":\"persona.product-managers\",\"url\":\"/persona.product-managers/\",\"link_type\":\"Document\",\"key\":\"aaa44826-4691-462b-a8a1-acc80ad8fbdb\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product managers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format,compress\",\"id\":\"8Rpfg-gh7BMefouu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"alem8REAACwAC87h\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"data scientists\"],\"lang\":\"en-us\",\"slug\":\"run-experiments-you-can-actually-trust.\",\"first_publication_date\":\"2026-07-15T18:45:45+0000\",\"last_publication_date\":\"2026-07-17T19:14:06+0000\",\"uid\":\"persona.data-scientists\",\"url\":\"/persona.data-scientists/\",\"link_type\":\"Document\",\"key\":\"f7bf52f5-fab6-4ea1-9d9c-e319463a6190\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Data scientists\",\"spans\":[],\"direction\":\"ltr\"}]}],\"learn_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format,compress\",\"id\":\"agpSN6YofJOwHTud\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"9ad95dc9-c5ec-4aab-ac8a-7b7405aec915\",\"url\":\"https://launchdarkly.com/blog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format,compress\",\"id\":\"agpSOaYofJOwHTuf\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"1b0edfb5-d056-42ae-a4c2-dd530e49f057\",\"url\":\"https://launchdarkly.com/guides/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guides \u0026 ebooks\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format,compress\",\"id\":\"agpSOKYofJOwHTue\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"YQxWXxIAACkAIPjQ\",\"type\":\"events\",\"tags\":[\"events\",\"webinars\"],\"lang\":\"en-us\",\"slug\":\"events\",\"first_publication_date\":\"2021-08-05T21:26:24+0000\",\"last_publication_date\":\"2026-09-11T15:17:28+0000\",\"uid\":\"events-webinars\",\"url\":\"/events-webinars/\",\"link_type\":\"Document\",\"key\":\"d1154925-59b3-4c22-afcc-e0efad605e91\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Events \u0026 webinars\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format,compress\",\"id\":\"agpSOqYofJOwHTug\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"c4b22447-de6e-4d1e-9b7a-11748b8055aa\",\"url\":\"https://www.youtube.com/@LaunchDarkly\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Videos\",\"spans\":[],\"direction\":\"ltr\"}]}],\"success_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format,compress\",\"id\":\"agpSQ6YofJOwHTui\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"8a7c9deb-617c-4160-adeb-5b432b051ecf\",\"url\":\"https://academy.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Academy\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format,compress\",\"id\":\"agpSRKYofJOwHTuj\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ajGF7RcAADAA88aj\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"trusted-by-industry-leading-teams.\",\"first_publication_date\":\"2026-06-16T17:59:03+0000\",\"last_publication_date\":\"2026-06-23T21:13:13+0000\",\"uid\":\"customer-stories\",\"url\":\"/customer-stories/\",\"link_type\":\"Document\",\"key\":\"d11dbfa0-bb2d-461c-b5c3-03e978db76b6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Customer stories\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format,compress\",\"id\":\"agpSRqYofJOwHTul\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZSgkThAAACcAC-sT\",\"type\":\"new_pages\",\"tags\":[\"services\",\"professional services\"],\"lang\":\"en-us\",\"slug\":\"launchdarkly-professional-services\",\"first_publication_date\":\"2023-10-12T16:52:47+0000\",\"last_publication_date\":\"2026-07-08T15:43:17+0000\",\"uid\":\"services\",\"url\":\"/services/\",\"link_type\":\"Document\",\"key\":\"93fcdada-dd96-49ca-b8f3-a466eb109f19\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Professional services\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format,compress\",\"id\":\"agpSRaYofJOwHTuk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZMggHhEAACYAn2e4\",\"type\":\"new_pages\",\"tags\":[\"partner program\",\"partner program page\"],\"lang\":\"en-us\",\"slug\":\"lets-build-better-software-together.\",\"first_publication_date\":\"2023-07-31T21:59:14+0000\",\"last_publication_date\":\"2026-07-08T15:56:45+0000\",\"uid\":\"partner-program\",\"url\":\"/partner-program/\",\"link_type\":\"Document\",\"key\":\"c693eb6c-d924-4446-98dc-e50e30a73e31\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Partners\",\"spans\":[],\"direction\":\"ltr\"}]}],\"get_help_group\":[{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format,compress\",\"id\":\"agpTiKYofJOwHTu2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"671d49cc-49d6-4614-90a4-3c31313a2f47\",\"url\":\"https://support.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Help Center\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Explore help topics for everything LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format,compress\",\"id\":\"agpTiaYofJOwHTu3\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"b1c38405-1e18-4080-81ee-a86756bec156\",\"url\":\"https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Request support\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Reach out to us for direct answers to your questions.\",\"spans\":[],\"direction\":\"ltr\"}]}],\"resources_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format,compress\",\"id\":\"agpSVKYofJOwHTuo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"79ea2804-386d-45ba-ae92-9de4e6a20aa2\",\"url\":\"https://launchdarkly.com/docs/home\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Docs home\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format,compress\",\"id\":\"agpSVaYofJOwHTup\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"d55987b1-30ac-4d93-907a-c50f827814d5\",\"url\":\"https://launchdarkly.com/docs/home/getting-started\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format,compress\",\"id\":\"agpSUqYofJOwHTum\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"f3e899b1-5149-4b7f-a205-8d8be0d0d0ca\",\"url\":\"https://launchdarkly.com/docs/home/agentcontrol/quickstart\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format,compress\",\"id\":\"agpSU6YofJOwHTun\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"98e0f384-0d91-4ddc-b989-908d24e47a4d\",\"url\":\"https://launchdarkly.com/docs/api/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"API docs\",\"spans\":[],\"direction\":\"ltr\"}]}],\"workflow_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format,compress\",\"id\":\"agpSZqYofJOwHTut\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"daebf9c5-8c24-4a14-9df2-0a7f80d7dfce\",\"url\":\"https://launchdarkly.com/changelog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product Updates\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format,compress\",\"id\":\"agpSZaYofJOwHTus\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"4a2ede12-b83e-4114-bbc3-4a738b3d8ccb\",\"url\":\"https://launchdarkly.com/sample-size-calculator/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Power analysis calculator\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format,compress\",\"id\":\"agpSZKYofJOwHTur\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"0eb1c344-46c1-466a-bc84-f3bb4c46290b\",\"url\":\"https://launchdarkly.com/docs/blog\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Flagship engineering blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format,compress\",\"id\":\"agpSY6YofJOwHTuq\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"84663d21-e4f8-4631-81cd-6da440a8b828\",\"url\":\"https://launchdarkly.com/community/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Community\",\"spans\":[],\"direction\":\"ltr\"}]}],\"banner_group\":[{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Solutions\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo now\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"bdb970f8-f1f4-424b-ae6b-5160b38903a2\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Resources\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4d1ad24c-3879-42e8-86de-2ab76c2778ad\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Platform\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe \u0026 control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"35310a7f-4223-4c71-b058-f0f99ba04936\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":178,\"height\":120},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/abRT8lxvIZEnjqhK_developer-tab-free-trial.png?auto=format,compress\",\"id\":\"abRT8lxvIZEnjqhK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Developers\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Take control of your AI at runtime.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"Control releases, experiments, and AI behavior in prod.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Free trial\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4a0a8a27-41ee-4993-8274-dab982a68d7d\",\"url\":\"https://app.launchdarkly.com/signup\"}}],\"new_products_group\":[{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format,compress\",\"id\":\"agpUVqYofJOwHTu-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agTAhBIAACEAWwQ2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ship-confidently-with-automatic-recovery-and-continuous-improvement-built-in.\",\"first_publication_date\":\"2026-05-13T18:19:33+0000\",\"last_publication_date\":\"2026-05-19T05:42:39+0000\",\"uid\":\"platform.code-control\",\"url\":\"/platform.code-control/\",\"link_type\":\"Document\",\"key\":\"31f8582d-1543-426b-bfe9-b2e3aa405ab6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"CodeControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Ship confidently, with automated control built in.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format,compress\",\"id\":\"agpUVaYofJOwHTu9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agSf7RIAAI1IWtRB\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"one-place-to-control-agent-behavior.\",\"first_publication_date\":\"2026-05-13T16:04:01+0000\",\"last_publication_date\":\"2026-06-01T17:57:35+0000\",\"uid\":\"platform.agent-control\",\"url\":\"/platform.agent-control/\",\"link_type\":\"Document\",\"key\":\"a6029978-2730-4f8c-aa21-9c15c2e2fbff\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"One place to keep your agent behavior under control.\",\"spans\":[],\"direction\":\"ltr\"}]}]}},\"showBanner\":true,\"noNav\":\"$undefined\",\"addRiskMeterLogo\":\"$undefined\",\"hideLinks\":\"$undefined\",\"useSnowflakeHeader\":\"$undefined\",\"EoDNav\":\"$undefined\",\"useAiTheme\":\"$undefined\",\"isHomepage\":\"$undefined\",\"useRefreshDesign\":\"$undefined\",\"useWhiteLogo\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"2d:[\"$\",\"$L30\",null,{\"supportItems\":[{\"title\":\"Support home\",\"url\":\"https://support.launchdarkly.com/\"},{\"title\":\"Professional Services\",\"url\":\"/services/\"},{\"title\":\"Documentation\",\"url\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Status\",\"url\":\"https://status.launchdarkly.com/\"}],\"whyUsItems\":[{\"title\":\"Economic Impact of LaunchDarkly\",\"url\":\"https://launchdarkly.com/guides/forrester-tei-report-2026/\"},{\"title\":\"How LaunchDarkly works\",\"url\":\"/how-it-works.platform/\"},{\"title\":\"Solutions\",\"url\":\"/solutions/\"},{\"title\":\"Trust \u0026 Security\",\"url\":\"/security/\"},{\"title\":\"Trust Center\",\"url\":\"https://trust.launchdarkly.com\"},{\"title\":\"LaunchDarkly vs. Competitors\",\"url\":\"https://launchdarkly.com/compare/\"},{\"title\":\"LaunchDarkly on AWS\",\"url\":\"https://launchdarkly.com/solutions/launchdarkly-aws/\"}],\"companyItems\":[{\"title\":\"About Us\",\"url\":\"/about-us/\"},{\"title\":\"Careers\",\"url\":\"/careers/\"},{\"title\":\"Media \u0026 Analysts\",\"url\":\"/press-and-analysts/\"},{\"title\":\"Partner Program\",\"url\":\"/partner-program/\"},{\"title\":\"Terms \u0026 Policies\",\"url\":\"https://launchdarkly.com/policies/subscription-terms/\"},{\"title\":\"Contact Us\",\"url\":\"/contact-us/\"},{\"title\":\"Community\",\"url\":\"https://launchdarkly.com/community/\"}],\"snsLinks\":[{\"url\":\"https://twitter.com/launchdarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format\",\"iconAlt\":\"twitter\"},{\"url\":\"https://www.youtube.com/@LaunchDarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg\",\"iconAlt\":\"YouTube\"},{\"url\":\"https://www.linkedin.com/company/launchdarkly/mycompany/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg\",\"iconAlt\":\"LinkedIn\"},{\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format\",\"iconAlt\":\"Discord\"},{\"url\":\"https://www.instagram.com/launchdarkly/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg\",\"iconAlt\":\"Instagram\"}],\"useRefresShortFooter\":\"$undefined\",\"loadFooterNewsletter\":\"$undefined\",\"shortFooter\":true}]\n"])</script><script>self.__next_f.push([1,"34:I[80622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"$L28\",null,{\"document\":{\"id\":\"X5iVqBEAAB4Arhut\",\"uid\":\"chaos-engineering-and-continuous-verification-in-production\",\"url\":\"/blog/chaos-engineering-and-continuous-verification-in-production/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22X5iVqBEAAB4Arhut%22%29+%5D%5D\",\"tags\":[\"Devops\",\"Test In Production\"],\"first_publication_date\":\"2020-12-03T21:14:20+0000\",\"last_publication_date\":\"2026-07-21T17:16:26+0000\",\"slugs\":[\"chaos-engineering-and-continuous-verification-in-production\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Chaos Engineering and Continuous Verification in Production\",\"spans\":[]}],\"author\":{\"id\":\"X2ujuBEAACIArn1H\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"matt-delaney\",\"first_publication_date\":\"2020-09-23T19:36:28+0000\",\"last_publication_date\":\"2024-09-16T21:43:53+0000\",\"uid\":\"mattdel\",\"url\":\"/blog/author/mattdel/\",\"data\":{\"no_create_page\":false,\"author_name\":[{\"type\":\"heading1\",\"text\":\"Matt DeLaney\",\"spans\":[]}],\"uid\":\"mattdel\",\"author_image\":{\"dimensions\":{\"width\":2000,\"height\":3000},\"alt\":\"Matt DeLaney headshot\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/580a9918-c86c-424b-bf26-6a5e41d325dc_Matt-DeLaney-headshot-165.jpg?auto=compress,format\u0026rect=0,0,960,1440\u0026w=2000\u0026h=3000\",\"id\":\"YgG1whIAAB8A7DpE\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":2.0833333333333335,\"background\":\"#fff\"}},\"author_bio\":[{\"type\":\"paragraph\",\"text\":\"Matt is a Product Marketing Lead - Industries at LaunchDarkly. He has become noticeably less interesting with age.\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"9d22182c-71c8-45a6-a6d7-4b312db026a4\",\"isBroken\":false},\"timestamp\":\"2020-05-21T00:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b2e448e7-f317-4f8c-84fd-11ff7c0b8b7b\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1125},\"alt\":\"Chaos Engineering and Continuous Verification in Production\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress,format\u0026rect=0,0,2560,1440\u0026w=2000\u0026h=1125\",\"id\":\"X5iV_BEAAB4Arh9L\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.78125,\"background\":\"#fff\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"On April 30, Casey Rosenthal, CEO and Co-Founder of Verica.io, spoke at our Test in Production Meetup on Twitch.\",\"spans\":[{\"start\":76,\"end\":111,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.meetup.com/Test-in-Production\"}}]},{\"type\":\"paragraph\",\"text\":\"Casey debunked the, explaining how many of the intuitive steps people take to make systems more reliable are actually counterproductive. Moreover, he explained how Continuous Verification can help software engineers avoid such pitfalls.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Watch Casey's full talk.\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$e13f7d8d-8583-4854-b1c2-edd9377f34a5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":\"YouTube\",\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"EE7JGka0ZXk\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$425af0ad-ced9-4a2a-9962-4d2a632cb86c\",\"slice_type\":\"youtube_video\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"FULL TRANSCRIPT:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: April the 30th 2020. My name is Yoz Grahame. And I am a developer advocate for LaunchDarkly. Joining me today is Casey Rosenthal, the CEO and founder of verica.io. Hi, Casey, thank you for joining us.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"},{\"start\":69,\"end\":87,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-developer-advocate/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: It's my pleasure. Happy to be here.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Thank you. And sorry we started a bit late today because I was trying ... I suddenly remembered that I had to get my waistcoat on. Somehow I was without my waistcoat. And in times like these, I think it's all important to keep the semblance or mirage of appearances.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"But so, Casey, you are the man who literally wrote the book on chaos engineering or co-wrote the book, which is recently out from O'Reilly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yup. Cowrote it with Nora Jones. And we had a bunch of contributing authors, which was great. We have perspectives from companies like Google, Slack, Microsoft, LinkedIn, Capital One, stuff like that.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Cool. I had a brief skim through it before and there's some fascinating stuff, which I believe you're about to go over now. So, let's take it through to the slides.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And there will be questions and answers from the audience afterwards. So, if you're listening, please join in the chat. And pose any questions. Casey will be talking for about 20 minutes or so. And then we will open it up. So, take it away, Casey.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Great. And yes, let's make sure there are at least questions and hopefully answers. Just to verify, you can see my title slide here?\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Yeah.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Okay, perfect. So, I'm going to talk about a couple different mental models and how those relate back to doing things in production and some of the evolution that we're seeing in, for lack of a better word, DevOps and best practices across the industry.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, I work at a company called Verica, not going to talk about that though. I'm going to try something a little bit different. I'm going to start by presenting a couple of myths about reliable systems about what makes systems reliable. And this is partly to stir up controversy, but also I just want to see how people react to me starting off with these instead of leading people into them.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, one of the myths of reliable systems is that you can make a system more reliable if you remove the people who cause accidents. So, this assumes that there are people who are accident prone or less careful. It's sometimes referred to as the bad apples management principle. And the data just overwhelmingly shows that this is not the case. Unfortunately, the medical system in the US has occasionally tried things like this.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For example, something like 80% of the malpractice lawsuits are associated with like 5% of the doctors in the US, which on the face of it sounds like, oh, well, clearly those are bad doctors, get rid of them and the case that malpractice cases will go down. Unfortunately, just the opposite, doctors who are particularly good at handling high-risk cases tend to congregate in that area.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, that's why they're associated with the higher numbers of malpractice suits. So, if you get rid of them, you're getting rid of the people who actually have the most expertise to handle those kinds of situations. So, the same applies for your system. If you have a team or a person who seems to be coincidentally associated with reliability issues, getting rid of that person is not likely to make the system more reliable.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Second myth is document best practices and runbooks that will make a system more reliable. Not true. I'm not saying that you shouldn't document things, particularly if that's an effective way to communicate within your organization. However, most critical outages are unique. So, there are no best practices for that. I mean, let's be honest, there are no best practices in industry. There are just common industry practices. We have no idea what would constitute a best practice in a complex system.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And runbooks again, while they can be an effective way for somebody to codify their own personal knowledge or communicate that in order to really have a reliable system in order to move the needle on reliability, you need people with experience. Runbooks don't suffice. Humans can't download experience to each other in that way. Particularly, not the kind of experience that is required for improvisation and adaptation.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Third myth, if you identify prior root causes and defend against them, you'll make your system more reliable. This is particularly appealing. Again, all these myths are intuitive, right? That's why they're easy to believe. But there's a couple things wrong with this. One is if you just identify vulnerabilities and defend against those in complex system, again, you're not necessarily preventing the things that generate new unique vulnerabilities.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The other is that root cause doesn't exist in a complex system. And in the interest of being mildly controversial, I'll go a step further and say, if you are doing root cause analysis, at best, you're wasting your time. Because root cause doesn't exist in complex systems and that the practice of root cause analysis is a bureaucratic exercise to assign blame in a particular narrative that doesn't actually benefit the system or make it more reliable. But love to dive more into that in that Q\u0026A part of this meetup.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The fourth is that you can enforce procedures. This assumes that somebody knows better and that the people doing the work actually just aren't following the rules. That's almost never the case in a system that needs improvement for reliability, particularly in a complex system. Usually, that's more indicative of a mismatch between how work is imagined by people higher up in the hierarchy and how work is actually done on the frontlines.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Myth five is that if you avoid risk, you'll make the system safer. This seems very intuitive. Don't do the risky things. We hear this in the enterprise a lot now, the phrase guardrails. If you just put guardrails in and avoid risk, then you make the system safer. So, guardrails do two things that are counterproductive to making a system more reliable. The first is that they prevent people from gaining the experience necessary to adapt and improvise and innovate to make a system more reliable or to remediate an incident as it's happening.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And the other thing that guardrails do is they tend to become obstacles for the people best positioned to remediate an incident while it's happening. So, again, as intuitive as this sounds, it turns out to be it's counterproductive in practice.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Sixth myth is you simplify your system, it'll become more highly available or safer. Complex systems, the problem is the complexity. So, just take the complexity out of it and you'll have a better system. Again, a couple things wrong with this one is that empirically, we know that more complex systems are safer or more available than simpler systems. So, the data just backs that up. But complexity also tracks with business success. So, your customers are paying you for complexity, like that's as one way to view your job as a software engineer is you're adding complexity to a product. So, if you remove complexity, you're actually removing the ceiling for how successful your products can be.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Another way to look at this as accidental complexity is going to always grow as a process of doing work in software and essential complexity, that's complexity put in there on purpose, that's feature development and stuff like that, that is also going to grow. So, if both forms of complexity are always going to grow, we don't have a way as an industry of sustainably reducing complexity. So, that is not going to make your system more reliable.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And the last myth that I'll mention here is that redundancy equals better reliability. And this is really interesting. There's a lot more research to be done here. Because the relationship route between redundancy and availability in particular isn't as well understood as we would like. But we can certainly point to many examples where redundancy was a contributing factor to a failure to an incident. This is true in software, but famously, it's true in hardware and aviation rockets, the Challenger incident, where redundancy is again, actually a contributing factor to an outage or an incident or some sort of system failure. So, at best redundancy is orthogonal to reliability.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, I'm going to start by presenting those and hopefully, there's something there for everybody to disagree with. But now, I'll present a couple mental models frameworks to think about things. And we'll tie it in with, well, with feature flags, but also with continuous verification and some other stuff.\",\"spans\":[{\"start\":230,\"end\":243,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, here's one model that makes provides one framework to think about how engineers make the design decisions that they make every day that we don't necessarily talk about. So, in this model, engineers are basically in the middle between these three poles. The poles are economics, workload and safety. And you can imagine the engineers attached by a rubber bands to each of these three poles. And if they stray too far from one of these poles, the rubber band snaps and it's game over.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, implicitly, engineers know that they have an intuition of how far they are from the economics pole. You probably do not have a rule at your company that new engineers are not allowed to spin up a million instances of AWS EC2. Why don't you have that kind of rule? Well, it's kind of common sense. Engineers implicitly understand that things cost money, they cost money, their team cost money, and they know they're not supposed to spend more money than they have. So, they try to balance that out as they make decisions throughout their day.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The same is true of workload. Engineers implicitly understand that their servers can handle some amount of work. They as people can only type so fast, can only crew a certain number of features per day, or have a certain amount of feature velocity, so they intuitively understand the relationship to that pole and they make sure that they don't drift too far from it or they know their servers will be overloaded, the resource will be overloaded or they'll burn out.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The same is true with safety. The difference is they have no intuition as to how close they are to that safety pole. And I'm comfortable making that generalization across the industry because we still have incidents. The reason we have outages and security breaches and things like that is because there are surprises. If we knew what was about to come as an engineer, we would stop what we're doing and we change what we're doing to make sure that that doesn't happen. We would implicitly change our behavior.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, this is one of the models, one of the frameworks that provides a foundation for understanding chaos engineering. And we have the definition here at principlesofchaos.org. This is my favorite definition. The facilitation of experiments to uncover systemic weaknesses. So, what chaos engineering does is it teaches us about that safety margin. It helps us generate an intuition of how far we are from that safety pole. And just knowing that implicitly changes the decisions we make as engineers, which is quite powerful.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The other thing chaos engineering does here, here are some of the advanced principles, you can see right there in the middle, one of the advanced principles is run experiments in production. And we can talk about this, I hope there are questions about this. But this isn't to say that running experiments, chaos engineering experiments to uncover systemic weaknesses isn't also valuable in staging or nonproduction environments. It is. I provide plenty of examples of where learning there has been really useful.\",\"spans\":[{\"start\":285,\"end\":304,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/nine-experimentation-best-practices/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"But ultimately, in a complex system, you want to study the actual system you care about. And so, the gold standard, the highest bar for chaos engineering is running those experiments in the actual production system. So, that's one model.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"I'll introduce another one here called the economic pillars of complexity. And again, this is just to frame how we think about that evolution of technology. So, in this model, there are four pillars, states relationships, the environment and reversibility. And the quintessential example of this model is Ford in the 1910s, where they were able to control the number of states in their manufacturing process by saying you can have whatever kind of car you want as long as it's a black Model T. And so, their ability to control one of these pillars help them navigate the complexity of their manufacturing or production service.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"They were able to also control relationships. Other car companies had teams of people who built a car from the ground up. Ford moved to assembly, line manufacturing and scientific management and Taylorism to basically limit the relationships between the parts but also between the peoples that help them navigate the complexity of their marketplace.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"They also control their environment or affected their environment by first breaking up the automotive trust in the US, which allowed them room to do business. And ultimately, they became somewhat of a monopoly themselves. So, they were able to control their environment that way.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Which brings us to the fourth one, reversibility. And here's where Ford couldn't really do anything because while you can put a car in reverse, you can't really reverse the manufacturing process. Reversibility was not something that Ford could optimize for.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, how does this model apply to software? Well, states and we don't just mean data, but the functionality of applications, are usually increasing, usually you pay to add features as software engineer, so there's not much you can really do to control that pillar.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relationships, unfortunately, we're in the business of adding layers of abstraction. So, whether we want to or not, the relationships between the moving parts and now more of us are working remotely, that adds a different dimension of complication to human relationships and explicit architectural changes, the things like micro services that we can uncouple the delivery cycle of features. There's not much we can do in software to control the relationships that's expanding.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The environment, most of us are not monopolies, so we can't affect our environment too much. Amazon, which brings us to the last one reversibility. Here's where software shines. And we can see obviously, it's software not hardware, but we can see this in great effect in first the move from waterfall to XP and agile, where waterfall said, \\\"We'll plan the whole thing, we'll build it, we'll deliver it to the customer.\\\" After a year, the customers say, \\\"No, that's not what I wanted. We'll say tough and then keep moving forward.\\\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, XP said, \\\"We'll just put something in front of the customer after a week or whatever.\\\" And the customer says, \\\"No, that's not what I wanted.\\\" Okay, it's easy to reverse that decision. We can throw away a week easy enough. And then the second week, we'll put something else in front and say, I kind of, and hopefully by the third week, we're tracking with what the customer actually wants or needs.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"That was a sophisticated implementation of reversibility as a way to navigate a new complex manufacturing production process. But we can explicitly make architectural decisions that prove reversibility as well. And there are a few better examples of this than feature flags.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, feature flags help us navigate a complex system of manufacturing, producing software, by explicitly enabling us with this architectural reversibility decision and that's important. Other things that add, source control, automated canaries, blue-green deployments, chaos engineering as part of the feedback loop. Observability is part of the feedback loop. These things all improve reversibility and that pays dividends for navigating complex systems.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The last thing I'll mention here with respect to software and mental models is sorry for the block of text here, but \\\"The chief merit of software engineering is its technical efficiency, with a premium placed on precision speed, expert control, continuity, discretion and optimal returns on input.\\\" A mouthful, but a pretty good definition of software engineering. So, they accidentally did this. The actual quote is, that's the chief merit of bureaucracy.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And I just want to make that point. Software engineering is in some circles known as the bureaucratic profession. And that sounds like a negative thing. And it probably is. So, why would somebody make that claim? Well, no other industry has done a better job of separating who decides what needs to be done from who decides how it needs to be done, from the people doing the actual work. That is an idealized bureaucracy.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, chief architects, product managers, project managers, people managers, tech leads, all of those roles exist to take responsibility, decision-making responsibility away from the people doing the actual work. And this all goes back to scientific management Taylorism, from the 1910s, and we can discuss historically why that's the case. But just we should understand that this is the wrong software. This is the wrong model for software engineering if you consider software engineering to be knowledge work.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"It's the right model or it's a model that's acceptable for manufacturing widgets, most of us are not manufacturing widgets. So, if you consider software engineering to be knowledge work in that hierarchy, that bureaucracy is a counterproductive model. So, all of this is to say we're not trying to fight complexity, we're trying to navigate it.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Very quickly, this is part of an evolution that we're seeing from CI, continuous integration, which limited the number of bugs that we can create by merging code faster so that the bugs become more apparent and don't geometrically lead to larger numbers of bugs. And then we saw that, okay, the engineers can create features faster. That evolved into continuous delivery, CD. Okay, now we can make software faster. We need to get it to production faster and roll forward faster, change our minds. So, there's an important part of reversibility that's enabled by this evolution.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And now, we're seeing the industry start to develop CV, continuous verification, which says, \\\"Okay, if under the hood, we have all of this complex software creation moving very quickly, how do we keep our eyes on the road? How do we make sure that we get the behaviors out of a complex system that the business requires given that we're enabling very fast movement of feature velocity and getting that to production? Basically, how do we move fast and not break things?\\\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And here's another way of envisioning that. Continuous verification, I'm just reading across the top here, is a proactive experimentation tool that verifies system behaviors, whereas most of what the industry is currently familiar with follows more along the line on the bottom there. It's reactive testing methodologies that validate known properties.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And those things along the bottom are good. They're useful. We're not saying go do those, certainly not advocating that ditch testing. But those practices and disciplines were born in time of simpler systems and they're more attuned to simpler systems. In complex systems, you have to move up the scales to ensure the business properties that you want out of your complex systems.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, tools don't create reliability, humans do, but tools can really help. We've got this book out. And there's a way you can get a free book if you go to this link. I would love to take questions now.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: So, can you hear me right, Casey?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: You're good.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: I'm going to leave that slide on the screen for a while, just so I can copy the URL. And it's Kim, our producer and I, in the background while you've been talking have been absolutely squealing with joy because it's a whole bunch of buttons, this talk has hit a load of stuff that we have been talking about for a while.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"I tweeted your quote about software engineering, separating those who decide what needs to be done from those who decide how to do it. Thank you so much for this. And there's so much to go into here. I mean, if you are watching, please give us your questions, your reactions, because especially because there's ... Actually, we will put the URL. Kim, if you could put the URL there in the comments so that other people can get to it while I switch the view here.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"You warned us at the start that there were things that you would be going into that run quite counter to current practice. Thank you, Kim. And hang on a second. Let me get my camera back. So, there we go. Well, I should preface by saying we have been testing in production here with this dream and doing the chaos thing in the truest way, which is to be looking calm on the surface while paddling like hell underneath. For three minutes during your talk, I completely lost connectivity. So, I'm afraid there may be some bits, things I ask about that you already discussed. And please tell me if that happens because I don't want to bore anybody.\",\"spans\":[{\"start\":251,\"end\":272,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"But there's so much to go into here. I think given the way that some of the things that you talked about in your myths that I feel somewhat attacked. I always thought documenting best practices and runbooks are vital and the point you made, I mean, if we could just go into that a bit more about the value of personal experience and how you see that playing out in the organizations you've worked with.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah, sure. So, let's first talk about the definition of resilience. So, outside of software, there's this field of resilience engineering and the most effective I think definition of resilience is having an adaptive capacity to handle incidents. So, that adaptive capacity, it requires a level of improvisation, right? It requires humans who have skills and context to know how to improvise.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: A runbook simply doesn't have that. It simply can't have that. So, even if you have something very well documented, what you can't do in that runbook is provide enough context or skill or experience around that to let the person following the runbook know that it's even the right runbook that they should be following. Right?\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If they have to consult the runbook, then it's basically a guess on their part. And it's a guess on their part, then you've basically capped the reliability at which your system can operate. So, you can't move the needle on reliability by investing more in runbooks is the takeaway there.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Now, documentation, if that's a way that you like to communicate, that's great. You should obviously get better. Communication is the hardest thing in most professions. So, you should obviously take advantage of the ways that you can do that well and invest and do that better, but that's not going to improve reliability.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right. I think it's fascinating because one of the trendiest books in the past 20 years around this is Atul Gawande's Checklist Manifesto. And I thought it was a comment that was the actual title of the book. But some things that came from the medical profession is this idea of rigorously adhering to checklists in crisis situations. Is that the same thing as runbooks? Or is there a difference that I'm missing there?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: I think there's a difference. So, using a tool that you have experience with to help you get the job done, fine, great, absolutely. But that's different from a runbook that's trying to suffice, it's trying to supplant or stand, be sufficient to take the place of a human improvisation or adaptation. Does that make sense?\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Yes.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: So, a runbook is a remediation tactic. A checklist should not be used as a remediation tactic. That's a tool to help you basically your experience forward.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, maybe it's about diagnosis so that you can fully establish what assumptions you're making or give you the full set of facts before you start trying to remediate.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: A lot of times, it's that checklists don't have nothing to do with remediation. So, a pilot going through a checklist before they take off, okay, making sure that you don't forget something? Sure. You're relying on a tool of the trade to help you bring your own experience forward.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Yeah.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: But again, much different from a runbook where-\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: It's not remediation.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right, yeah, yeah, yeah. And that's also fascinating given that it plays into some of the old sayings and terrible jokes that we got from the '60s to the '80s about automation. In that the thing about the nuclear reactor has a dog and a man and the man is there to be at the controls and the dog is there to bite the man in case he tries to touch any of the controls.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"It's the idea that the automated system is the reliable part and the humans are the unreliable organic part, but it's the organic nature and the ability to improvise that actually brings us the reliability.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Brings the resilience, yeah.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Resilience, yes.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: You can have a robust system with a lot of automation. But by definition, you can't make a system more resilient with automation. Because so far, at least we don't have the capability to automate improvisation.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right, and so, I've seen recently more work towards supposedly self-healing systems. I know that some companies, especially those in the performance or alerting and monitoring space are doing this self-healing thing, especially those trying to use AI as opposed to spot outliers or try and make connections between cause and effect and things like that. Have you seen any success there or anything there that you think is worthwhile?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Sure. Again, you can raise the floor of robustness by implementing and really self-healing is like calling something AI. It's like what we call self-healing will tomorrow just be like an algorithm. So, if you look at things like the bulwark pattern, circuit breakers or failure conditions, those were self-healing 10 or 20 years ago. So, having a system that detects something out of range or even alerting is a primitive form of self-healing, right?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: It just doesn't go all the way. It just brings a human in instead of something else. So, that's a perfectly valid algorithm for making a system more robust. But again, you're lacking that improvisation and context picture. So, putting the newer buzzwordy sound around it of self-healing doesn't make your system more resilient because it's not bringing in more intelligence than an engineer can think of ahead of time.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And what we know in complex systems is that what the defining quality of a complex system versus a simple one is that a complex system can't fit in one person's head.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: So, it's not reasonable to assume that a software engineer can think of all of the things ahead of time that can go wrong with the system.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And if that's the case, then your self-healing algorithms can be really clever, really elaborate. But by definition, they will not cover all of the things that they need to cover because they rely on a human to think of those conditions ahead of time. And we've already admitted that that can't happen.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: So, chaos engineering in contrast helps the humans get the experience that they need to adapt better. And the output of that might lead to better automation. It might lead to self-healing algorithms or failure control algorithms that make the system more robust. But ultimately, it's informing the humans of things about the system that they didn't previously know. And that's what allows them to implicitly change their behavior to make the system more reliable.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: That paints the picture there, I think trying to get and I'm still somewhat new to some of this. But the impression, what you're saying is that effectively robustness and resilience are two different levels. And that resilience is a higher level of decision making that comes into play once the automated systems have failed, which they will do.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah. I think that's a valid way to look at it. I view them as just different properties, like your system is robust in different ways up to a different point. And there's always some boundary where it's not robust past that point. The simplest thing we could think of is like you load test the system, eventually at some point, it's going to fail, any physical system.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Whereas resilience doesn't know if something's going to fail. There's no proof to say that, well, we could do this instead. There's always the option. You just can't enumerate all the options for doing something else instead.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Right, right. It definitely fits the pattern that we see talking about, that the level of complexity is increasing beyond our ability to manage it. And this is something that we do naturally, we've been doing for decades, is that this arms race between complexity and the tools to manage it and complexity always seems to win.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Well, I don't know if it's winning, but I mean, I'll plug you for you. But one of the reasons I'm a fan of LaunchDarkly is because feature flags are ... It's an explicit design decision that you can make in order to improve your ability to navigate a complex system.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you think about it, in software, we pretend like complex systems are the enemy. Whereas in the rest of our life, I mean, software is probably the simplest system that we as humans still deal with. If you think about the complexity of human interactions or even driving a car, and mentally modeling what other drivers are doing, I mean, this is why autonomous driving isn't successful yet. They can't mentally model another human and their intentions in the other car. It's not that they can't figure it out the physics. That's the easy part.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, we as people, even as software engineers, we handle complex systems all the time. That's our baseline of just a living. But we don't like to see it in our work for some reason. So, really complex systems are not the enemy. That is what allows us to be successful. But we need things like feature flags to give us the comfort with the complex systems that we're building. We need to know I can make this design decision and then change my mind really quickly if I need to. And so, that's why I see a lot of power and what you all are doing.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame:\\nYeah, thank you for that. Talking about reversibility in that way, and the thing I really love talking about the reversibility on the different timescales. You've got at the project timescale, which is like agile versus waterfall and being able to change direction within a single iteration, within a couple of weeks. And then you've got all the way down to reversibility at much smaller timescales to remediate quickly.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: If you hired a consultant to improve your feature velocity, right, like they would focus at the process level. And that's great. You could do, I don't know, implement agile or scrum or whatever and implement that. But really like what we want to do is we want to make those architectural decisions that are going to improve feature velocity. And it's more comfortable. It's more powerful. It's more measurable. It's like everything about that nicer, right?\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right. Right. Yeah, exactly. It's like we've got the tool. If we could see the tools right in front of us, the process gains are theoretical. They're much harder to grasp. When we see the tools right in front of us and include them in our daily work and being able to flip a flag and see something changed within milliseconds is that wonderful tactile reassurance.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: So, we've got already some great questions coming in. We have from D Parzych, my colleague Dawn, asking, what tips do you have for junior or new employees on where to start with ... Well, this is about actually not chaos engineering, but incident resolution. So, I know you get often asked about how to start with chaos engineering. But let's take a step back and say, okay, based on what you've learned about, especially with the myths, where do you think the most value is in in establishing incident resolution practices?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Okay, so the place I would start is by studying what the resilience engineering community has to say about incident postmortems or learning reviews or I prefer learning review than postmortem. So, a great place to start would be John Allspaw's material on Blameless PostMortems. And that goes back ways, I think he's got a lot of great material now that kind of moves from just a blameless postmortem is not sufficient.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Really, we want to acknowledge that it's not just that we're avoiding blame, it's that an incident itself is faultless. There are no root causes in complex systems. So, looking for a root cause or even acknowledging that, oh, this was the problem but nobody's to blame for it, like that's also not a great approach.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, looking at faultless learning reviews is a much more powerful way to think about incident response management when you think of incidents as teachable moments. And then in terms of just time to remediate, there's plenty of models out there. I don't have a personal favorite. But there are plenty of models that come from things outside of software that work better for different organizations.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, on the one hand, you have models where there's an incident commander and they coordinate and you develop a group that way. There's research showing that the costs of coordination of an incident response, having an incident coordinator can sometimes be higher than just having the people who do the work normally, the knowledge workers have the tools and capability of making the decisions that they need to being empowered to remediate the incident themselves.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, there's a lot of interesting research going on there. But I don't have a particular recommendation on the incident remediation. And the incident response management and how you understand that I think there's a lot of conclusive evidence around how to properly run or at least there's a lot of evidence on how to poorly run a postmortem or a root cause analysis session. And those are all indicative towards better processes that won't be wasting your time. I think that was a roundabout way of answering that question, but hopefully, there's something in there.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: No, that that's great. That's great. I think definitely the blameless postmortems I think fortunately, that's something that I've seen taken up pretty well. And people like Allspaw really talking about the traditional types of root cause analysis don't really apply here.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah, his company, Adaptive Capacity Labs, has a bunch of great research on metrics you can use to kind of understand your own plate. Like if people want to read the briefings after a learning review, that's a good indication that you're doing that well. Yeah.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Yes. Yes. Excellent. We have another question, [inaudible 00:42:25] 88 about feature flags, what are good ways to manage dependencies when you start to get more than a few. And I suppose this ties in to ... So, this is more technical and this is obviously something that we at LaunchDarkly have a whole bunch of opinions about.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And I think I might actually expand this out. If you have specific opinions on that, I'd be very interested to hear them. But I think it also ties in to the bigger question about relationships, as a pillar of complexity in that more specifically dependencies. Right. And this is something I've always wondered about is having been at companies that dealt with massive legacy systems and realizing the ludicrous numbers of dependencies, not just, for example, software dependencies, but organizational and event dependencies, all kinds of bizarre things that felt impossible to track.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, for these kinds of things, how do you advise the people manage all these, these kind of dependencies once they start to expect?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah, so I am not an expert in dependency management. I've certainly seen people bitten by the bug of having too many unmanaged feature flags or Netflix, they call it [crosstalk 00:43:57] properties. I think there's a bunch of interesting approaches to that. But I'm certainly not an expert in dependency management.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: I would say that we should expect that as the layers of abstraction increase beneath us, that navigating that as a problem of complexity rather than solving it, it's probably more useful.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Right.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Or it's probably a better use of our time.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: And I see what you're saying in terms of though it may cloud, it may add the number of relationships, they're there for a reason.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah. And sometimes the reason might not even be apparent to you or might not even be valuable to your particular goals in a pursuit or an organization or a business. For example, at Verica, we did a lot of research in 2019. And one of the things that we saw across the enterprise market is, let's say some frustration with Kubernetes as this additional layer in the deployment process. For many people, that's not a virtue. And it runs just maintaining Kubernetes as a platform, let alone figuring out new ways to integrate with it is additional work that doesn't advance their particular goals in a smaller context.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, there's a similarity there to the explosion of dependencies, where if you're focused on the developer experience and dependency management from a language or library or security point of view, of course, you want to limit the number of dependencies. But if you're an engineer who's got different pressures and you're trying to increase the rate at which you're delivering features, then you've got the opposite pressure. Like, let me bring in as many dependencies as possible because I want to take other people's work and make use of that.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, depending on where you are, you might have a different perspective on the proliferation of dependencies at all. I'm in the camp of inbox zero is a nice idea. But at some point, you reach a rate at which important emails are coming in, where you just have to let it go. And I know right now that approach for dependency management would make a lot of people scream in frustration, and I understand that, but I'm not an expert in that field. So, I should stop.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Well, no, I think it's a fascinating guiding philosophy here, which I think applies to so many people who deal well in complex situations, which is go with the flow. You aren't going to fight it. It's there for a reason. The best thing you can do is get better at navigating it, get better at diagnosing.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This is dear to my heart because I give talks about debugging. And what I find is that too many people don't understand how powerful and easy to use their own debugger is. And also, how valuable it is to build custom tools for your situation. I have rarely been in any situation where a custom tool that was created for a system did not pay for itself within a couple of months.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, that kind of evolution of-\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: So, that's a mechanism for you to ... Yeah, okay. So, that's a mechanism for you to navigate a complex system better as an engineer. You create custom tool. Yeah, okay, that makes sense. Yeah.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: So, a lot of people are going to be wondering specifically about the chaos engineering aspect. And I think we talked just before this and people want to go, yeah, I want to start blowing stuff up automatically. How can I start blowing stuff up automatically? Or more specifically, how can I start applying chaos engineering in my organization? And how can I persuade management to go along with it? And I suppose this depends on how you portray it. But what's the advice you give in these situations?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah, I mean, first of all, I would say, I hear there's a really good book out on this that just hit the shelves.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Well, let's bring that slide up again, there we go.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah, the general pattern that we see for companies adopting, and it's a widely adopted practice now, but the general pattern we see is start with a game day. There's plenty of ways to do that. But basically, what we want to do is we want to bring people with expertise in a room together to start discussing the repercussions or the system behavior outside of the normal happy path operations. So, just the discussion alone can often help uncover knowledge gaps about how the system actually behaves.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, game day, you get in a room you go, okay, this piece of infrastructure over here, we're going to take it down for a few hours and our assumption is that customers won't be impacted. So, the hypothesis for an availability chaos experiment almost always follows the form of under X conditions, customers still have a good time.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If your hypothesis is under X conditions, they'll have a bad time, then don't run that experiment. That's just a terrible experiment.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, some of the impression of chaos engineering, ah, that's bold, or that's too risky. No, it should not be a risky thing, right?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Mm-hmm (affirmative).\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Like, if you think something's going to break, obviously, don't do that. Fix it before you do anything like that.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Or another way of saying that is chaos engineering is not about causing chaos engineers, or it's not about causing chaos in your system. There's an assumption that the chaos is already in the system and you're trying to surface that so that you can better avoid the pitfalls. So, that's it. That's a great way to get started. Plan a game day or war room scenario where you kind of plan out, and then dip your toe in the waters that way.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"It is the gold standard to do chaos engineering in production. But certainly, we recommend starting in a staging environment if you have one. We see a lot of organizations are moving to not having staging environments and that's understandable. And feature flags actually makes that a little bit easier. That's fine. But if you do have staging environments, or hidden features, or different user groups associated with different features, start with experiments there. There's no reason not to.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And hopefully, you can learn from the staging environment, either about your system in ways that helps you make them more robust or you build up your skill set for resilience, or you build more confidence in the system and that you can use that confidence to then move the same tools, the same experiments into production.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The general evolution we see.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"That's a great way of putting it and that ties very well in to that the whole topic of this regular stream, Test In Production, is that ... LaunchDarkly, we have several staging environments. We have a lot of environments. We have a proper staging environment. We did not just ditch it and do everything in production because as I say, if you can obviously reduce risk to an experiment, then you should. The reason to test in production is because you already are. You just don't call it that yet.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, we're going to have to round this off in a couple of minutes, I'm afraid. But this has been absolutely fascinating. Thank you so much. Before you go, I'm interested to know. So, I'm completely silly. So, there is a thing that ties in to that the point you made about the problem with the bad apple thing, that actually the people who are causing those problems are not doing it because they're bad. It's because they're the ones who are being sent in to do the-\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah, closest to most problems.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Right, exactly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Yeah, we won't say causing because that implies that they are the root cause.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right, right. Sorry. You're absolutely right. The bystanders, the people who happened to be nearby at the time, the chief suspects maybe.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, I used to work at Linden Labs, where did most of my learning about legacies, complex legacy systems. And if an actual mistake that you made blew up production, then you got to wear the [inaudible 00:54:07] for a day. And similarly, I've seen other organizations do this, but they did a great job of describing a colleague of mine, [inaudible 00:54:16], who is now at LinkedIn, did a great writeup on saying that it's actually a bad badge of honor. It's the you went in to try and do something important and fix something important and you learned. I know at Etsy, they have the three-arms jumper. What are the good ones have you seen?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"At Netflix, they give out badges or they give out badges for having taken down production. I know Google had rituals for this. I understand that and I get it. I wouldn't say that I entirely support that because it does still reinforce this notion that one person was a cause. And so, yeah, it's basically coincidental. Sabotage is extremely rare.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And so, if you didn't intend the outcome that was bad, there's no causal relationship in a complex system. So, that's an adjustment in thinking about how an incident happens that's different, like oh, this person published the line of code that brought down production. Well, what you're actually saying is that the least effort to remediate that is to undo that line of code.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"But there's alternative narratives to that. It's the fault of the person who wrote the CD tool for not having an automatically stage or it's the fault of their managers for not communicating better or it's the fault of their director for not properly budgeting for another environment or it's the fault of the VP for not allocating and explaining to the board why they need that budget and not choosing a different CD tool, or it's the CTO's fault for not properly explaining the importance and aligning the company right.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, now, which of those is more likely to lead to a more reliable solution? Putting the three-arm sweater on the person who put that line of code in production or changing the behavior of the CTO, right?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Changing the behavior of the CTO is much more likely to make that system more reliable. And yet all of the RCA-type stuff and the focus on the one person, that's not going to change the reliability of the system at all, right?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: No.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The three-arm sweater makes them more comfortable so that they don't carry around the shame and that's important, but it still locks you into that mentality of like, they're the ones who did it, not the CTO.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: So, that's interesting, because this points out something that there's a big difference between records analysis and the way I would have got the CO through that is the whole five whys process, saying why did that happen? Why did that happen? Why did that happen, et cetera?\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah, the problem with five whys, Richard Cook likes to say, I've got a six-year-old who's great at asking why, we could just put them in charge of incident remediation, right?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Right.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, the five whys is entirely arbitrary. And the problem with that is, depending on who facilitates it, they're going to create a narrative that suits their purpose. So, if I'm the director in that example, I'm going to drive the five whys into ... And it's not that I'm malicious or doing it on purpose, but I'm going to drive it into, oh, down there among my reports or skip levels, there was a miscommunication.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Whereas if you were truly doing it from the bottom up, the five whys might lead up to the C level. So, the five whys as a practice doesn't actually provide better guidance in how you run an investigation. So, I'd prefer we don't use that as a crutch. But I understand that in some organizations in the hands of a well-intentioned and well-informed facilitator, it can make the investigation more palatable to the organization.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, yeah, it's all about perspective it sounds like or rather, where you're looking from and then how I can see the dichotomy, the paradox there in the if you're looking from the bottom up, you get maybe more accurate view. But that also means that you have less power to act on it.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: It's a different narrative, right? Like who's to say which one's more accurate or than the other. But in a situation that's hierarchical, well, let's at least say it's intuitive that you're going to change the holistic system much more efficiently if you affect the people at the top of the hierarchy, not the people at the bottom of the hierarchy.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Right. Well, that makes sense.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: And really when we talk about reliability, yeah, we want to look at the holistic system, not the people at the sharp end.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah, yeah. Because the whole point of the [inaudible 00:59:29] as it were, right. If you're getting paid the big bucks to be at the top, that's where the power actually is to fix things.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"We would hope. We would hope, exactly. This has been absolutely fascinating. We have to stop there. I could easily talk for another hour or two.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yeah. This was a lot of fun.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Yoz Grahame: Thank you so much for joining us today.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Thank you for having me on.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Absolute pleasure. Please do come back soon. I am going to be devouring your book.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So, we're going to be back next week. For those of you watching, thank you so much for joining us. We didn't get to all the questions. I'm afraid there's a good one about knowledge workers and decision making. So, that may apply and be good to talk about that soon.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"But thank you. Thank you again for joining us. Your book, Chaos Engineering, which you wrote with ... So, we'll bring the slide back.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Nora Jones.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Nora Jones. If you're watching, you can get that for free. And we will be back next week. Thank you for the giveaway. And Casey, CEO of Verica.io. Casey Rosenthal, thank you so much. This has been completely fascinating.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Casey Rosenthal: Thank you.\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The video will be online. Well, it's going to be on Twitch shortly and then there'll be a blog post in a couple of weeks. And we'll be back next week for Test In Production again. Thank you so much. Thank you, Casey. Talk to you soon.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Thank you so much.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Bye.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Bye.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$a9a43508-5024-4d01-8f2b-5ae760c2f900\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Chaos Engineering: Continuous Verification in Prod\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{}}}}],\"$L31\",\"$L32\",\"$L33\"]\n"])</script><script>self.__next_f.push([1,"1a:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Chaos Engineering: Continuous Verification in Prod | LaunchDarkly\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"4\",{\"name\":\"generator\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"5\",{\"name\":\"referrer\",\"content\":\"origin-when-cross-origin\"}],[\"$\",\"meta\",\"6\",{\"name\":\"creator\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"7\",{\"name\":\"publisher\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"8\",{\"name\":\"robots\",\"content\":\"index\"}],[\"$\",\"meta\",\"9\",{\"name\":\"googlebot\",\"content\":\"index\"}],[\"$\",\"link\",\"10\",{\"rel\":\"canonical\",\"href\":\"https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/\"}],[\"$\",\"meta\",\"11\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:title\",\"content\":\"Chaos Engineering: Continuous Verification in Prod | LaunchDarkly\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:description\",\"content\":\"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:url\",\"content\":\"https://launchdarkly.com/blog/chaos-engineering-and-continuous-verification-in-production/\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:site_name\",\"content\":\"LaunchDarkly\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image\",\"content\":\"https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:alt\",\"content\":\"LaunchDarkly - Feature management platform\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:site\",\"content\":\"@LaunchDarkly\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"Chaos Engineering: Continuous Verification in Prod | LaunchDarkly\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://launchdarkly.com/_next/static/media/open-graph.a62eb7e7.jpg\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:alt\",\"content\":\"LaunchDarkly - Feature management platform\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"96x96\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/icon.png?8354b0c15ee5b065\",\"type\":\"image/png\",\"sizes\":\"96x96\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?8354b0c15ee5b065\",\"type\":\"image/png\",\"sizes\":\"96x96\"}],[\"$\",\"$L34\",\"33\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1f:\"$1a:metadata\"\n"])</script><script>self.__next_f.push([1,"36:I[61689,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"37:I[36552,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"PreloadChunks\"]\n"])</script><script>self.__next_f.push([1,"38:I[47358,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"39:I[13428,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"32:[\"$\",\"div\",null,{\"className\":\"styles-module__ZkjjmG__body styles-module__ZkjjmG__isRefreshDesign\",\"children\":[\"$\",\"main\",null,{\"className\":\"styles-module__ZkjjmG__main \",\"children\":[[\"$\",\"section\",null,{\"className\":\"styles-module__NFwUga__newSection styles-module__NFwUga__bgLight\",\"id\":\"$undefined\",\"data-name\":\"$undefined\",\"data-jump-id\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__NFwUga__contentContainer \",\"style\":\"$undefined\",\"children\":[\"$L35\",[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__content\",\"children\":[[\"$\",\"p\",null,{\"className\":\"styles-module__J0n02W__variant_textXsmallCaps styles-module__J0n02W__paragraph styles-module__J0n02W__color_gray04 styles-module__J0n02W__weight_medium\",\"children\":\"May 21, 2020\"}],[\"$\",\"h1\",null,{\"className\":\"styles-module__J0n02W__variant_h3 styles-module__J0n02W__weight_semibold styles-module__HXqOTa__blogTitle\",\"children\":\"Chaos Engineering and Continuous Verification in Production\"}],\"\",[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__authorContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__author \",\"children\":[[\"$\",\"$L2c\",null,{\"href\":\"/blog/author/mattdel\",\"className\":\"styles-module__5zAopa__authorImage\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image post-details-author-image\",\"children\":[\"$\",\"$L2b\",null,{\"field\":{\"dimensions\":\"$5:0:props:document:data:author:data:author_image:dimensions\",\"alt\":\"Matt DeLaney headshot\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/580a9918-c86c-424b-bf26-6a5e41d325dc_Matt-DeLaney-headshot-165.jpg?auto=compress,format\u0026rect=0,0,960,1440\u0026w=2000\u0026h=3000\",\"id\":\"YgG1whIAAB8A7DpE\",\"edit\":\"$5:0:props:document:data:author:data:author_image:edit\"},\"className\":\"styles-module__nv1SBG__image\",\"quality\":80,\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":false,\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"lazy\"}]}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__authorDetails\",\"children\":[[\"$\",\"$L2c\",null,{\"href\":\"/blog/author/mattdel\",\"className\":\"styles-module__5zAopa__authorName\",\"children\":\"Matt DeLaney\"}],[\"$\",\"div\",null,{\"className\":\"styles-module__5zAopa__authorJobTitle\",\"children\":\"LaunchDarkly\"}]]}]]}],[]]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__nv1SBG__container styles-module__nv1SBG__ratio_natural styles-module__nv1SBG__object-fit_cover prismic-image styles-module__HXqOTa__featuredImage\",\"children\":[\"$\",\"$L2b\",null,{\"field\":{\"dimensions\":\"$5:0:props:document:data:featured_image:dimensions\",\"alt\":\"Chaos Engineering and Continuous Verification in Production\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZjI0ZDAzZmQtMmRmNS00NGExLWJkNjEtZTk1OWNmMDBkNDBl_2020_05_blog_tiponlineverica2x-scaled.jpg?auto=compress,format\u0026rect=0,0,2560,1440\u0026w=2000\u0026h=1125\",\"id\":\"X5iV_BEAAB4Arh9L\",\"edit\":\"$5:0:props:document:data:featured_image:edit\"},\"className\":\"styles-module__nv1SBG__image\",\"quality\":80,\"sizes\":\"$undefined\",\"alt\":\"$undefined\",\"fallbackAlt\":\"\",\"priority\":false,\"placeholder\":\"$undefined\",\"fill\":\"$undefined\",\"loading\":\"eager\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__staticBar\",\"children\":[\"$\",\"$L36\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogMainContainer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__body\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__blogContentWrapper\",\"children\":[\"$\",\"article\",null,{\"className\":\"blog-post-main-content\",\"children\":[[[\"$\",\"div\",\"wysiwyg$e13f7d8d-8583-4854-b1c2-edd9377f34a5\",{\"data-ld-slice-index\":0,\"data-ld-slice-type\":\"wysiwyg\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L37\",null,{\"moduleIds\":[\"slicesBlog/index.ts -\u003e ./Wysiwyg\"]}],[\"$\",\"$L38\",null,{\"data\":\"$5:0:props:document:data:body:0\",\"extraData\":\"$undefined\",\"params\":{\"uid\":\"chaos-engineering-and-continuous-verification-in-production\"},\"searchParams\":{},\"id\":\"wysiwyg$e13f7d8d-8583-4854-b1c2-edd9377f34a5\",\"type\":\"Wysiwyg\",\"index\":0,\"noContainer\":true}]]}],[\"$\",\"div\",\"youtube_video$425af0ad-ced9-4a2a-9962-4d2a632cb86c\",{\"data-ld-slice-index\":1,\"data-ld-slice-type\":\"youtube_video\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L37\",null,{\"moduleIds\":[\"slicesBlog/index.ts -\u003e ./YoutubeVideo\"]}],[\"$\",\"$L39\",null,{\"data\":\"$5:0:props:document:data:body:1\",\"extraData\":\"$undefined\",\"params\":\"$32:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:params\",\"searchParams\":\"$32:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:searchParams\",\"id\":\"youtube_video$425af0ad-ced9-4a2a-9962-4d2a632cb86c\",\"type\":\"YoutubeVideo\",\"index\":1,\"noContainer\":true}]]}],\"$L3a\"],\"$L3b\"]}]}]}],\"$L3c\"]}],\"$L3d\"]}],\"$L3e\",\"$L3f\",\"$L40\"]}]}],\"$L41\"]}]}]\n"])</script><script>self.__next_f.push([1,"42:I[36815,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"43:I[16367,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"44:I[89179,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"45:I[99934,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"47:I[637,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"3a:[\"$\",\"div\",\"wysiwyg$a9a43508-5024-4d01-8f2b-5ae760c2f900\",{\"data-ld-slice-index\":2,\"data-ld-slice-type\":\"wysiwyg\",\"style\":\"$undefined\",\"children\":[[\"$\",\"$L37\",null,{\"moduleIds\":\"$32:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:0:props:moduleIds\"}],[\"$\",\"$L38\",null,{\"data\":\"$5:0:props:document:data:body:2\",\"extraData\":\"$undefined\",\"params\":\"$32:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:params\",\"searchParams\":\"$32:props:children:props:children:0:props:children:props:children:1:props:children:2:props:children:0:props:children:props:children:props:children:0:0:props:children:1:props:searchParams\",\"id\":\"wysiwyg$a9a43508-5024-4d01-8f2b-5ae760c2f900\",\"type\":\"Wysiwyg\",\"index\":2,\"noContainer\":true}]]}]\n"])</script><script>self.__next_f.push([1,"3b:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__mobileCta\",\"children\":[\"$\",\"h5\",null,{\"className\":\"styles-module__HXqOTa__footerTitle\",\"children\":\"Like what you read?\"}]}]\n3c:[\"$\",\"section\",null,{\"className\":\"styles-module__o_kpTq__sidebar\",\"children\":[[\"$\",\"$L42\",null,{\"data\":\"$5:0:props:document:data:body\"}],false,[[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__sidebarNewsletter\",\"children\":[\"$\",\"$L43\",null,{\"sidebarVersion\":true}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__shareLinks\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__o_kpTq__shareContainer\",\"children\":[\"$\",\"$L44\",null,{\"title\":\"Chaos Engineering and Continuous Verification in Production\",\"showIcons\":true}]}]}]]]}]\n46:T102b,"])</script><script>self.__next_f.push([1,"const express = require(\"express\");\nconst path = require(\"path\");\nconst serveStatic = require(\"serve-static\");\nconst bodyParser = require(\"body-parser\");\nrequire(\"dotenv\").config();\nconst app = express();\n\n\nconst twilio = require(\"twilio\");\n\n\n// add the following line to import the LaunchDarkly Server SDK\nconst LaunchDarkly = require(\"@launchdarkly/node-server-sdk\");\n\n\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\nconst twilioClient = twilio(accountSid, authToken);\nconst verifyServiceSid = process.env.VERIFY_SERVICE_SID;\n\n\nasync function createSMSVerification(phoneNumber) {\n const verification = await twilioClient.verify.v2\n .services(verifyServiceSid)\n .verifications.create({\n channel: \"sms\",\n to: phoneNumber,\n });\n\n\n console.log(\"Twilio verification created:\", verification.sid);\n}\n\n\n// add the following line to initialize the LaunchDarkly client\nconst ldClient = LaunchDarkly.init(process.env.LAUNCHDARKLY_SDK_KEY);\n\n\napp.use(serveStatic(path.join(__dirname, \"public\")));\napp.use(bodyParser.urlencoded({ extended: false }));\n\n\nasync function formatPhoneNumber(phoneNumber) {\n try {\n const lookup = await twilioClient.lookups.v2\n .phoneNumbers(phoneNumber)\n .fetch();\n return lookup.phoneNumber;\n } catch (error) {\n console.error(\"Error formatting phone number:\", error);\n return phoneNumber; // Return original number if lookup fails\n }\n}\n\n\nasync function checkVerificationCode(phoneNumber, verificationCode) {\n try {\n const verificationCheck = await twilioClient.verify.v2\n .services(verifyServiceSid)\n .verificationChecks.create({\n to: phoneNumber,\n code: verificationCode,\n });\n\n\n console.log(`Verification status: ${verificationCheck.status}`);\n return verificationCheck.status === \"approved\";\n } catch (error) {\n console.error(\"Error checking verification code:\", error);\n return false;\n }\n}\n\n\n// modify this function to add a LaunchDarkly flag evaluation\n// and logic to use the flag to determine whether to show the extra verification step\napp.post(\"/verify\", async (req, res) =\u003e {\n const context = {\n kind: \"user\",\n anonymous: true,\n key: \"anonymous-123\",\n };\n const extraVerification = await ldClient.variation(\n \"extra-verification-new-users\",\n context,\n false\n );\n console.log(\"extraVerification\", extraVerification);\n\n\n if (extraVerification === false) {\n return res.redirect(\"/success.html\");\n }\n const phoneNumber = req.body[\"phone\"];\n // Use Twilio Lookup to format the phone number as E.164\n const e164PhoneNumber = await formatPhoneNumber(phoneNumber);\n await createSMSVerification(e164PhoneNumber);\n // Redirect to the verification form page with the phone number as a query parameter\n // so the user doesn't have to re-enter it\n const encodedPhoneNumber = encodeURIComponent(e164PhoneNumber);\n res.redirect(`/verification-form.html?phone=${encodedPhoneNumber}`);\n});\n\n\napp.post(\"/submit-verification-code\", async (req, res) =\u003e {\n const verificationCode = req.body[\"verification-code\"];\n const phoneNumber = req.body[\"phone\"];\n\n\n if (!phoneNumber || !verificationCode) {\n return res\n .status(400)\n .send(\"Phone number and verification code are required.\");\n }\n\n\n const isVerified = await checkVerificationCode(phoneNumber, verificationCode);\n\n\n if (isVerified) {\n res.redirect(\"/success.html\");\n } else {\n res.status(400).send(\"Invalid verification code. Please try again.\");\n }\n});\n\n\n// Add the waitForInitialization function to ensure the client is ready before starting the server\nconst timeoutInSeconds = 5;\nldClient.waitForInitialization({ timeout: timeoutInSeconds }).then(() =\u003e {\n const port = 3000;\n const server = app.listen(port, function (err) {\n if (err) console.log(\"Error in server setup\");\n console.log(`Server listening on http://localhost:${port}`);\n });\n});\n\n\n// Add the following new function to gracefully close the connection to the LaunchDarkly server.\nprocess.on(\"SIGTERM\", () =\u003e {\n debug(\"SIGTERM signal received: closing HTTP server\");\n ld.close();\n server.close(() =\u003e {\n debug(\"HTTP server closed\");\n ldClient.close();\n });\n});"])</script><script>self.__next_f.push([1,"3d:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__relatedContent\",\"children\":[\"$\",\"$L45\",null,{\"type\":\"blog_post\",\"cards\":[{\"id\":\"Z9nrRBEAACMAk9z9\",\"uid\":\"spring-2025-customer-census\",\"url\":\"/blog/spring-2025-customer-census/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z9nrRBEAACMAk9z9%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-20T20:22:23+0000\",\"last_publication_date\":\"2025-03-20T20:39:36+0000\",\"slugs\":[\"transforming-software-development-key-findings-from-our-spring-2025-customer-census\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Transforming software development: Key findings from our Spring 2025 Customer Census\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"Z50IJhAAACkAwpYE\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"emily-coleman\",\"first_publication_date\":\"2025-01-31T17:30:54+0000\",\"last_publication_date\":\"2025-01-31T17:30:54+0000\",\"uid\":\"emily-coleman\",\"url\":\"/blog/author/emily-coleman/\",\"link_type\":\"Document\",\"key\":\"f5890eac-c0a4-4a87-a4c1-0c8358418d52\",\"isBroken\":false},\"timestamp\":\"2025-03-20T20:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b7b68f89-a796-4477-8c6d-107b840f92d2\",\"isBroken\":false}},{\"category\":{\"id\":\"Z5QhcBcAACkATlPb\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"developer-productivity\",\"first_publication_date\":\"2025-01-24T23:25:38+0000\",\"last_publication_date\":\"2025-01-24T23:25:38+0000\",\"uid\":\"developer-productivity\",\"url\":\"/blog/category/developer-productivity/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Developer productivity\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"71eafa95-8ad8-48c3-b170-416a9add1a25\",\"isBroken\":false}},{\"category\":{\"id\":\"Z5Qf9RcAACgATlGk\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"risk-mitigation\",\"first_publication_date\":\"2025-01-24T23:19:22+0000\",\"last_publication_date\":\"2025-01-24T23:19:22+0000\",\"uid\":\"risk-mitigation\",\"url\":\"/blog/category/risk-mitigation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Risk mitigation\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"07b1acc7-42f2-47cf-ad5d-4f01ad7e341e\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"aa7fd2d3-a795-4b3e-8f47-c51f21df6fce\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b1fd5a63-04de-4c56-8b96-8eb872703670\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"9f12349b-789d-4924-9ce4-407b34178776\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1689},\"alt\":\"Spring 2025 LaunchDarkly customer census\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format,compress\u0026rect=0,0,4000,2252\u0026w=3000\u0026h=1689\",\"id\":\"Z9x1DTiBA97GivdG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"Zypo9REAAB8AyH8i\",\"type\":\"blog_post\",\"tags\":[\"release management\"],\"lang\":\"en-us\",\"slug\":\"release-management-guide-what-it-is--why-it-matters\",\"first_publication_date\":\"2024-11-05T19:34:13+0000\",\"last_publication_date\":\"2026-09-10T22:08:39+0000\",\"uid\":\"release-management-guide\",\"url\":\"/blog/release-management-guide/\",\"link_type\":\"Document\",\"key\":\"a218bf83-04ca-4630-8b30-992ed639b597\",\"isBroken\":false}},{\"post\":{\"id\":\"Z9L6yxIAACAA71k8\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"gentle-deployments-mitigate-risky-releases-at-alayacare\",\"first_publication_date\":\"2025-03-13T16:03:08+0000\",\"last_publication_date\":\"2025-03-13T17:12:00+0000\",\"uid\":\"gentle-deployments-alayacare\",\"url\":\"/blog/gentle-deployments-alayacare/\",\"link_type\":\"Document\",\"key\":\"e98693e8-5670-4551-b485-e3072020dd41\",\"isBroken\":false}},{\"post\":{\"id\":\"ZgMI8REAACIAB6ro\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"5-best-practices-for-getting-started-with-launchdarkly\",\"first_publication_date\":\"2024-03-27T15:59:57+0000\",\"last_publication_date\":\"2025-03-12T22:00:58+0000\",\"uid\":\"5-best-practices-for-getting-started-with-launchdarkly\",\"url\":\"/blog/5-best-practices-for-getting-started-with-launchdarkly/\",\"link_type\":\"Document\",\"key\":\"8d2972c9-5a31-4ba1-8ead-8a9a85da4690\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"In January 2025, we partnered with UserEvidence to ask our users to quantify the impact LaunchDarkly has had on their release process, developer experience, and time and cost savings. The responses we received from users showed how they and their teams use LaunchDarkly to drive tangible results across their business. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e1502abb-ecfc-4cb2-86f6-4371a61bb110\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Key highlights customers reported\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Key highlights customers reported:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"24.2% average faster time to market for new features\\nSpeed is everything when it comes to delivering value. With LaunchDarkly, teams can push smaller, safer updates quickly. No more big bang releases every quarter—just quick, iterative releases that get into customers’ hands faster, enabling swifter feedback.\",\"spans\":[{\"start\":0,\"end\":53,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"16% average reduction in downtime\\nUnplanned downtime caused by a buggy software release eats up time, frustrates users, and keeps teams from moving forward. Since adopting LaunchDarkly, users have streamlined deployments and minimized disruption, which means teams spend less time troubleshooting and more time building.\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"8.86% average increase in freed-up developer time\\nDeveloper time is precious, and the opportunity cost is high when they spend time resolving problems instead of building the next great feature. LaunchDarkly users report getting more time back and benefitting from an improved developer experience.\",\"spans\":[{\"start\":0,\"end\":50,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"46% of LaunchDarkly users reduced customer churn by 6% or more\\nCustomer churn due to buggy releases or frustration with long development cycles directly impacts the bottom line. For many organizations, a 6% or higher lift in customer churn can represent millions in retained revenue.\",\"spans\":[{\"start\":0,\"end\":63,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9b0a5694-81ec-4c4c-9b11-bbea3c96149e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Tackling big challenges with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Tackling big challenges with LaunchDarkly\",\"spans\":[{\"start\":0,\"end\":41,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Every team faces roadblocks, and it’s no different when it comes to software delivery. Long development cycles, production bugs, and limited ability to target and test features to customers were among the top reasons why customers chose LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading5\",\"text\":\"Controlled, faster deployments\",\"spans\":[{\"start\":0,\"end\":30,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The stakes for software deployment can feel impossibly high; do you increase your deployment frequency to meet the constant demands from customers or prioritize maintaining a stable environment? LaunchDarkly allows customers to shift their perspective on deployments, leave the late-night war rooms in the past, and ship new features without bracing for impact. 57% of users say they reduced downtime by at least 11% since the adoption of LaunchDarkly.\",\"spans\":[{\"start\":362,\"end\":452,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$dbc8b6ea-5618-41a8-afc4-2b8a413807a3\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly enables our team to deploy features faster and more safely by allowing us to toggle functionality without redeploying code. It has significantly reduced deployment risk and errors, helping us test in production with feature flags. As a result, we’ve accelerated our release cycles and improved user experience by gradually rolling out changes based on real-time feedback.” – Marti David, Software Engineer, DTN\",\"spans\":[{\"start\":0,\"end\":1,\"type\":\"strong\"},{\"start\":386,\"end\":424,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$d0987acb-6f71-4c81-8362-bbebf3f767ad\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Simplified feature flag management\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"One of the standout features of LaunchDarkly is leaving behind cumbersome feature flag management that contributes to technical debt. Instead, you can get back to developing the features that matter to your organization.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6303b215-3a1d-434a-8932-1c272668390b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“[LaunchDarkly] has great capabilities, and even if you only need a basic subset of what is on offer, these things are hard to get right and will ultimately cause a lot of distraction from achieving the core goals of the project.” — Software Engineer, enterprise technology company\",\"spans\":[{\"start\":233,\"end\":281,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$8cce876b-b892-4203-ba90-b394134f11a3\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly has helped us manage features in a way that was previously very difficult. It's saved us more than once when we needed to quickly enable a feature without deployment. It's kept us organized as a development team working in parallel with product” – Jay Beaudoin, Application Developer, IDEXX\",\"spans\":[{\"start\":262,\"end\":304,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$4f29a68e-b1d6-47ac-a87d-b19b8d590491\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Experimentation and A/B testing\",\"spans\":[{\"start\":0,\"end\":31,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly A/B testing and Experimentation features, teams can test new ideas on a subset of users, gathering insights and data before full rollout. This means fewer wasted resources and a better overall customer experience.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$2b08110f-da84-490e-8977-dd814c32f0ff\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"LaunchDarkly unlocked the ability for us to test in production prior to big releases, experiment with A/B testing, and better control feature flags.” – Lead Project Manager, enterprise hospitality company\",\"spans\":[{\"start\":153,\"end\":205,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$5bcf28d4-a12c-4a5b-9d4b-e3584a090202\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly has been great for our development team. Your feature flag platform not only streamlines our rollouts but also empowers us to experiment and innovate really easily. The intuitive interface and robust functionality have saved us time releasing value to our customers.” – Staff Developer, small business internet software \u0026 services company\",\"spans\":[{\"start\":284,\"end\":352,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$933500a1-8348-4aff-bce6-49fef9c68032\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"The bigger picture of better customer experiences\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"The bigger picture of better customer experiences\",\"spans\":[{\"start\":0,\"end\":49,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The impact of LaunchDarkly is not just faster deployments or fewer bugs—these improvements have a ripple effect on the entire organization.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading5\",\"text\":\"Releases attuned to customer needs\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With feature flags, teams can release updates at the right time for the right users, leading to more tailored experiences and a smoother customer journey.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$b3d33f0f-efcc-4664-af48-a396269d9467\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“I like how easy it is to be able to configure features for a single org or for an affiliation (think group of related orgs.) I can do this (being a non-dev person) super easy and don't have to bug my dev team.” – Jessica Pitzel, Director of Product Management, SportsEngine\",\"spans\":[{\"start\":214,\"end\":274,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$fd8c3aa2-604a-45d2-80ba-ee55062c1cc1\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly allows us to release without worry and to specific customers, which is super helpful for our business! We use it for feature development/testing but also to provision functionality.” – Software Engineer, small business insurance company\",\"spans\":[{\"start\":199,\"end\":250,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$9c908038-3a2b-4050-86d8-5c8e7eb1265c\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Fewer release-related customer support tickets\",\"spans\":[{\"start\":0,\"end\":46,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Faster, safer deployments mean fewer issues slip through the cracks. When features are released with more precision and less risk, customers experience fewer issues and less downtime. Our users reported an average 7.31% reduction in customer support inquiries after implementing LaunchDarkly.\",\"spans\":[{\"start\":184,\"end\":292,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$db835341-7b92-408d-a7b4-bf01e2361c85\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“[LaunchDarkly has] been instrumental in getting deployments out safely, as we can always gate features behind a flag and roll back if needed.” – David Rajec, Software Engineer, TruckSmarter\",\"spans\":[{\"start\":146,\"end\":190,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$c9fc336a-de3b-4a85-a9aa-4f72e160a15d\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading5\",\"text\":\"Stronger customer retention and satisfaction\",\"spans\":[{\"start\":0,\"end\":44,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"It’s clear that customers are happier with more frequent, more stable releases. Users reported higher customer retention and an average 7.87% reduction in customer churn.\",\"spans\":[{\"start\":80,\"end\":170,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$0313efe1-c53e-42b0-b5aa-ea8239884906\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“LaunchDarkly impacts our team by allowing us to deploy features to specific users, usually internal testers, before deploying them to everyone on our platform. This has sped up deploy time by 15ish percent since we can deploy without worry and activate features independently.” – Software Engineer, small business diversified consumer services company\",\"spans\":[{\"start\":281,\"end\":352,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$9fe091be-7c11-4340-943d-ab9dfb18d589\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“The best part of LaunchDarkly is the ease in which targeting can be set up on an environment-by-environment basis and the ability to schedule our flag changes to coincide with a release (decoupled), so our team members don't have to flip flag switches at night.” – Senior Software Engineer, large enterprise food \u0026 staples retailing company\",\"spans\":[{\"start\":0,\"end\":1,\"type\":\"strong\"},{\"start\":266,\"end\":341,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$561da766-8459-4eff-8fa6-b56994dbc906\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"With faster feature releases, safer deployments, and enhanced customer experiences, it’s evident that our customers view LaunchDarkly as more than just a feature flagging tool—it’s a catalyst for driving meaningful business outcomes and accelerating transformation.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"About the survey\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Customer Census was conducted by UserEvidence (userevidence.com) between January 24 and February 14, 2025, using an email invitation distributed to current LaunchDarkly users by LaunchDarkly and UserEvidence.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$096a84db-f772-4801-82e7-a953ed4ce8a0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Key findings from our Spring 2025 Customer Census\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Discover key insights from our Spring 2025 Customer Census. See what users said about how LaunchDarkly helps them deploy faster, cut downtime, and improve developer productivity.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":\"Spring 2025 LaunchDarkly customer census\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Z9x1DTiBA97GivdG_25-03-Transformingsoftwaredevelopment_KeyfindingsfromourSpring2025CustomerCensus.png?auto=format,compress\",\"id\":\"Z9x1DTiBA97GivdG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZxFSDhEAAB4ADqfn\",\"uid\":\"spam-mitigation-launchdarkly-twilio-verify-expressjs\",\"url\":\"/blog/spam-mitigation-launchdarkly-twilio-verify-expressjs/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZxFSDhEAAB4ADqfn%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2024-10-17T18:50:52+0000\",\"last_publication_date\":\"2024-10-18T21:57:29+0000\",\"slugs\":[\"mitigating-signup-spam-spikes-with-launchdarkly-and-twilio-verify-in-an-expressjs-app\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"ZuHn-RMAACIAX79d\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"tilde-thurium\",\"first_publication_date\":\"2024-09-11T18:57:08+0000\",\"last_publication_date\":\"2024-09-11T18:57:08+0000\",\"uid\":\"tilde-thurium\",\"url\":\"/blog/author/tilde-thurium/\",\"link_type\":\"Document\",\"key\":\"aa81ab57-f738-49f5-bbd7-423f0fd18fea\",\"isBroken\":false},\"timestamp\":\"2024-10-17T18:05:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"84ed0813-6dd4-434f-980a-5ffd47418b2f\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"031acb8d-cd1f-4db4-a38e-a2d219de83c0\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\" In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[],\"direction\":\"ltr\"}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1689},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format,compress\u0026rect=0,0,4000,2252\u0026w=3000\u0026h=1689\",\"id\":\"ZxLZuYF3NbkBXux-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Introduction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Web and mobile applications that allow users to sign up must balance ease of onboarding with signup spam. Often the signup spam comes in waves over a few hours or days, rather than in a constant stream. In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \",\"spans\":[{\"start\":236,\"end\":245,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://expressjs.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThis demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[{\"start\":20,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}},{\"start\":119,\"end\":145,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/guides/flags/creating-flags\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6b3826f0-9d5d-4fd3-b692-e49d9a463341\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Development configuration and dependencies\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Development configuration and dependencies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To complete this tutorial you'll need:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A LaunchDarkly account. Sign up for a free one here\",\"spans\":[{\"start\":2,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_blank\"}},{\"start\":24,\"end\":51,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A Twilio account. You can use a free trial account, although some features will show up slightly differently\",\"spans\":[{\"start\":0,\"end\":16,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://login.twilio.com/u/signup\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A developer environment with git, npm, and Node.js installed\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"A cell phone that can receive SMS messages\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$8cbe5bc8-51d3-4b33-af0f-afa2c195d62d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"What is verification?\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"What is verification?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"When a user adds new credentials to their account, that’s verification. Verification can happen during sign-up or when updating an account to add a new phone number or email address.\\n\",\"spans\":[{\"start\":58,\"end\":70,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Verification is different from authentication (although you can use the Verify API for both.) Authentication happens on an ongoing basis during potentially risky interactions, such as:\",\"spans\":[{\"start\":31,\"end\":45,\"type\":\"em\"},{\"start\":47,\"end\":91,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/developer-best-practices\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"when a user logs in to their account \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"high-dollar transactions\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"password reset flows\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"deleting data\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In our verification flow, the user enters their phone number during signup. They will be sent a verification code. Once they receive the code, they enter it into a form on the app to prove that the phone number belongs to them. \\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Although we’re only using SMS here to keep things simple, Twilio Verify supports many other channels such as email and WhatsApp. To learn more about verification, read Twilio’s docs.\",\"spans\":[{\"start\":109,\"end\":114,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/email\",\"target\":\"_blank\"}},{\"start\":119,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/whatsapp\",\"target\":\"_blank\"}},{\"start\":163,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This tutorial starts with an example app that includes a signup flow. This app was inspired by my pet rabbit, Hester, who cares deeply about optimizing carrot acquisition processes. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"First we’ll get the example app up and running. Then we’ll add Twilio credentials and test the verification flow. Finally, let’s add a LaunchDarkly feature flag to enable and disable the extra verification step at will.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f5b1ac06-e886-4d54-8443-500de43d55a2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Getting started with an ExpressJS and Twilio Verify example application\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Getting started with an ExpressJS and Twilio Verify example application\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Run the following commands in your terminal to clone the repository, install dependencies, and start the server.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$23c29d6b-19f7-4a32-8f0a-216894a7dd36\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":null,\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"git clone https://github.com/annthurium/expressjs-twilio-verify-starter \\ncd expressjs-twilio-verify-starter\\nnpm install\\nnpm start\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$be45fbbc-8100-4525-8370-829f876560ca\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Open http://localhost:3000/signup.html in a browser and you’ll see this form:\",\"spans\":[{\"start\":5,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFTGoF3NbkBXsDK_hesters-bunny-mart-signup.png?auto=format,compress\",\"alt\":\"Signup form for \\\"Hester's Bunny Food Mart\\\" that contains a password field, phone number field, and Submit button.\",\"copyright\":null,\"dimensions\":{\"width\":1100,\"height\":744},\"id\":\"ZxFTGoF3NbkBXsDK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$3cc3164e-3305-4577-8981-cf60a4c28728\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"To sign up, the user will input their phone number and a password. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This form isn’t fully plumbed yet. When the full tutorial has been completed, Twilio will send the user a verification code via SMS. On the next page of the form, the user will input that verification code to complete the signup process.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFTcoF3NbkBXsDX_Screenshot2024-10-16at12.45.38PM.png?auto=format,compress\",\"alt\":\"Verification form for Hester's Bunny food mart. It contains an input field for the SMS verification, and a Submit button.\",\"copyright\":null,\"dimensions\":{\"width\":1096,\"height\":522},\"id\":\"ZxFTcoF3NbkBXsDX\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$545a5843-ee5b-4577-99dc-919b9e8a1065\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Note: this demo is front end only. To connect to a proper backend, you’d most likely reach for an authentication SDK like Auth0 or Clerk. Rolling your own security features is a risky choice.\",\"spans\":[{\"start\":122,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://auth0.com/docs/quickstart/spa\",\"target\":\"_blank\"}},{\"start\":131,\"end\":136,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://clerk.com/docs/quickstarts/overview\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"You can’t actually go through the dummy signup flow until we add Twilio credentials, so let’s tackle that.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$aef27a5d-fa68-4123-a301-8bafcf8aca18\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Creating a Twilio Verify service\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Creating a Twilio Verify service\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Log in to your Twilio account or create a new one.\",\"spans\":[{\"start\":0,\"end\":29,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/login\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Open the env.example file in your editor. Grab your Twilio account SID and auth token from the console. \",\"spans\":[{\"start\":9,\"end\":20,\"type\":\"em\"},{\"start\":52,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://help.twilio.com/articles/14726256820123-What-is-a-Twilio-Account-SID-and-where-can-I-find-it-\",\"target\":\"_blank\"}},{\"start\":75,\"end\":85,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://help.twilio.com/articles/223136027-Auth-Tokens-and-How-to-Change-Them\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nIf you’re using a free trial account, you’ll find these right in the center of your screen:\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFUkoF3NbkBXsDp_CleanShot2024-10-17at11.29.31-1-.jpeg?auto=format,compress\",\"alt\":\"screenshot of the Twilio Console for a trial account, demonstrating where to copy the Account SID and auth token from.\",\"copyright\":null,\"dimensions\":{\"width\":3044,\"height\":2010},\"id\":\"ZxFUkoF3NbkBXsDp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$d60c41e2-d622-4c06-8e0d-7633328fdfe1\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Paste these credentials into your .env.example file. Rename the file to .env and save it. This step ensures that you don’t accidentally commit credentials to source control and compromise security.\",\"spans\":[{\"start\":34,\"end\":46,\"type\":\"em\"},{\"start\":72,\"end\":76,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Go to this link to create a new Verify Service so we can configure our verification flow.\",\"spans\":[{\"start\":0,\"end\":46,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://console.twilio.com/us1/develop/verify/services\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFW1IF3NbkBXsFB_create-verify-service-empty-state.png?auto=format,compress\",\"alt\":\"Screenshot of the Twilio console, in an empty state, waiting for Verify services to be created.\",\"copyright\":null,\"dimensions\":{\"width\":2704,\"height\":1362},\"id\":\"ZxFW1IF3NbkBXsFB\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$e23e7b79-37b3-4f87-83df-d10db897c090\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Name your service “launchdarkly-signup-form.” When Twilio sends your users the verification code, it will show them the service name. Select the “SMS” verification channel. Check the box that says “Authorize the use of friendly name” to ensure that you have the right to this name and that it can be used in SMS communication.\",\"spans\":[{\"start\":19,\"end\":43,\"type\":\"em\"},{\"start\":198,\"end\":232,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Optional but recommended: enable Fraud Guard. On the next screen, you’ll see a Verify service SID. Copy and paste that value into your .env file and save it.\",\"spans\":[{\"start\":26,\"end\":44,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify/preventing-toll-fraud/sms-fraud-guard\",\"target\":\"_blank\"}},{\"start\":135,\"end\":139,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFXiIF3NbkBXsFV_CleanShot2024-10-17at11.37.52-1-.jpeg?auto=format,compress\",\"alt\":\"Screenshot of Twilio Verify service settings, where the Verify Service SID can be found. \",\"copyright\":null,\"dimensions\":{\"width\":2438,\"height\":1660},\"id\":\"ZxFXiIF3NbkBXsFV\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$4cbc5b39-0890-4544-a239-8b629ca8a7f0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Open index.js in your code editor. Uncomment line 12 to initialize the Twilio server.\",\"spans\":[{\"start\":5,\"end\":13,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$23d0aca0-564f-49ed-b770-60ec95b3f265\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":\"JavaScript\",\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"const twilioClient = twilio(accountSid, authToken);\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$2a476959-4c40-4e13-886c-ae9a7b7c0e52\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Testing the SMS verification flow\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Restart the server just in case it didn’t automatically pick up the new variables. Reload http://localhost:3000/signup.html in your browser. Type your cell phone number and a password into the form. Click “Submit.”\",\"spans\":[{\"start\":90,\"end\":123,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"On your cell phone, you should receive a SMS verification code from Twilio: “Your launchdarkly-signup-form verification code is: 12345”. If your Twilio account is in free trial mode, this message will say SAMPLE APP instead of the Verify Service name.\",\"spans\":[{\"start\":77,\"end\":134,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Part of Verify's magic is that you don’t need to provision a phone number—the API automatically handles that for you.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This app uses Twilio Lookup’s phone number formatting capabilities to gracefully handle imperfectly formatted user input. It also passes the user’s phone number back through to the verification form, so they don’t need to retype it.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Type the verification code into the form and click “Submit.” You’ll see a confirmation page.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFYBYF3NbkBXsFe_Screenshot2024-10-16at11.34.59AM.png?auto=format,compress\",\"alt\":\"Hester's Bunny Food Mart successful signup confirmation page.\",\"copyright\":null,\"dimensions\":{\"width\":1320,\"height\":544},\"id\":\"ZxFYBYF3NbkBXsFe\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$f16ec4ea-d445-4895-8532-35eb84ef42ae\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Adding a LaunchDarkly flag to conditionally enable SMS verification\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Adding a LaunchDarkly flag to conditionally enable SMS verification\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Head over to the LaunchDarkly app. Click on either of the “Create flag” buttons.\",\"spans\":[{\"start\":17,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZvybKLVsGrYSwQsk_create-flag-buttons-empty-state.png?auto=format,compress\",\"alt\":\"empty state of the LaunchDarkly app showing two \\\"Create flag\\\" buttons.\",\"copyright\":null,\"dimensions\":{\"width\":2238,\"height\":1072},\"id\":\"ZvybKLVsGrYSwQsk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$a66859bc-5b7c-48d3-8088-07c70d312fe2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Create a flag using this configuration:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Name: extra-verification-new-users\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Description: When flag is enabled, require verification of the user’s phone number in order to complete the signup flow.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Configuration: Custom\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Type: boolean\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFY2oF3NbkBXsGJ_flag-configuration.png?auto=format,compress\",\"alt\":\"Flag configuration screenshot.\",\"copyright\":null,\"dimensions\":{\"width\":1738,\"height\":1222},\"id\":\"ZxFY2oF3NbkBXsGJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$d5306302-93c9-4992-8926-03047ea2506d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Set up the variations like so:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"extra verification on: true\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"extra verification off: false\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFZBIF3NbkBXsGL_flag-variations.png?auto=format,compress\",\"alt\":\"Screenshot of flag variations configuration.\",\"copyright\":null,\"dimensions\":{\"width\":1756,\"height\":752},\"id\":\"ZxFZBIF3NbkBXsGL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$34f9a769-0523-439c-87a4-4a0cff671e93\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Click “Create flag” at the bottom of the page. Turn your flag On. Click \\\"Review and save.\\\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFZ2YF3NbkBXsG8_extra-verification-flag-on.png?auto=format,compress\",\"alt\":\"Screenshot showing how to toggle the extra-verification-new-users flag On.\",\"copyright\":null,\"dimensions\":{\"width\":1600,\"height\":850},\"id\":\"ZxFZ2YF3NbkBXsG8\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$1fcd7757-807b-4d56-821a-3f45d947781a\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If LaunchDarkly is configured to require confirmation, you'll need to add a comment to explain why you're enabling the flag. In this case it's a spam attack. Type the comment. Click “Save changes.”\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFaWIF3NbkBXsHP_flag-confirmation-modal.png?auto=format,compress\",\"alt\":\"Screenshot of flag changes confirmation modal.\",\"copyright\":null,\"dimensions\":{\"width\":1020,\"height\":1092},\"id\":\"ZxFaWIF3NbkBXsHP\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$b315d643-3700-40be-8ffd-a7a0d08fdee4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"You’ll need the LaunchDarkly SDK key to evaluate a feature flag in the app. Click the menu with 3 dots. Select “SDK Key” from the dropdown menu to copy it. Paste the SDK key into your .env file. Save the .env file, which is the last configuration step.\",\"spans\":[{\"start\":184,\"end\":188,\"type\":\"em\"},{\"start\":204,\"end\":208,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFaloF3NbkBXsHa_sdk-key-copy-it.png?auto=format,compress\",\"alt\":\"Screenshot demonstrating where to copy your LaunchDarkly SDK key.\",\"copyright\":null,\"dimensions\":{\"width\":2064,\"height\":1056},\"id\":\"ZxFaloF3NbkBXsHa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$c74e3670-32ce-4e04-ab65-0aa437030184\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Next, we’ll tweak this code to add a LaunchDarkly feature flag. Open index.js. You can copy the whole file, or modify the commented functions and lines below for a more detailed understanding.\",\"spans\":[{\"start\":69,\"end\":77,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$52ed38ae-76e2-41cb-a70e-27d56396d859\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"language\":null,\"code_sample\":[{\"type\":\"preformatted\",\"text\":\"$46\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"code_block$a436312d-60d9-4266-a251-b0ffdc56acb5\",\"slice_type\":\"code_block\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If you go through the signup flow at http://localhost:3000/signup.html, SMS verification should be enabled by default. 💥\",\"spans\":[{\"start\":37,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://localhost:3000/signup.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Try turning off the feature flag. In the LaunchDarkly app, toggle the extra-verification-new-users flag off.\",\"spans\":[{\"start\":70,\"end\":98,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFbc4F3NbkBXsIh_toggle-flag-off.png?auto=format,compress\",\"alt\":\"Screenshot showing how to toggle the extra-verification-new-users flag Off.\",\"copyright\":null,\"dimensions\":{\"width\":2078,\"height\":1032},\"id\":\"ZxFbc4F3NbkBXsIh\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$b067ba60-a81d-4498-8c7d-5f6fcdc4db72\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"If you try again, the signup flow should take you straight through to the success page rather than requiring SMS verification.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$3366d423-9e6f-4bbe-8f4b-b0ed9124c518\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion: using LaunchDarkly feature flags to stop fraudulent signup requests\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Conclusion: using LaunchDarkly feature flags to stop fraudulent signup requests\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you’ve been following along, you’ve integrated LaunchDarkly feature flags into your signup flow to conditionally enable Twilio Verify during spam spikes. Nice job!\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"As engineers, we often wrangle two opposing forces such as ease of use and fraud. Tooling that is flexible enough to let us make adjustments based on local conditions is hugely helpful, especially when dealing with a mission-critical path like signups.\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you enjoyed this post, you might be interested in:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Using LaunchDarkly with anonymous contexts\",\"spans\":[{\"start\":0,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/observability/anonymous-contexts/?q=unauth\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Upgrade your APIs safely with Progressive Rollouts in an ExpressJS Application\",\"spans\":[{\"start\":0,\"end\":78,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/upgrade-api-safely-progressive-rollouts-expressjs/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Creating customized user experiences using Express JS and LaunchDarkly segment targeting\",\"spans\":[{\"start\":0,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/email-targeting-express-js/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThanks for reading! If you have any questions, or you want to see some cute rabbit pics, you can reach me via email (tthurium@launchdarkly.com), X/Twitter, Mastodon, Discord or LinkedIn.\",\"spans\":[{\"start\":146,\"end\":155,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://x.com/annthurium\",\"target\":\"_blank\"}},{\"start\":157,\"end\":165,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://tech.lgbt/@annthurium\",\"target\":\"_blank\"}},{\"start\":167,\"end\":174,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"target\":\"_blank\"}},{\"start\":178,\"end\":186,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.linkedin.com/in/annthurium/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"image\",\"url\":\"https://images.prismic.io/launchdarkly/ZxFb_YF3NbkBXsIr_PXL_20241009_044845226.MP.jpg?auto=format%2Ccompress\u0026rect=0%2C0%2C3072%2C2304\u0026w=2000\u0026h=1500\",\"alt\":\"Hester the golden dutch rabbit and Ellie the v0id cat. They have a complex sibling rivalrly.\",\"copyright\":null,\"dimensions\":{\"width\":2000,\"height\":1500},\"id\":\"ZxFb_YF3NbkBXsIr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}]},\"items\":[],\"id\":\"wysiwyg$6a70304d-be03-40f1-8276-bfe04e5c9f6f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Mitigating signup spam spikes with LaunchDarkly and Twilio Verify in an ExpressJS app\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"In this tutorial, we’ll build an ExpressJS demo app that has the flexibility to toggle extra verification layers on during spam attacks. \",\"spans\":[{\"start\":33,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://expressjs.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\nThis demo combines Twilio Verify, a fraud verification API that can be used across many communications channels, with LaunchDarkly feature flags. Take that, spammers.\",\"spans\":[{\"start\":20,\"end\":33,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.twilio.com/docs/verify\",\"target\":\"_blank\"}},{\"start\":119,\"end\":145,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/guides/flags/creating-flags\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZxLZuYF3NbkBXux-_24-10-HowtoMitigateSignupFraudandSpamusingTwilioVerify%2CLaunchDarklyandExpress.js.png?auto=format,compress\",\"id\":\"ZxLZuYF3NbkBXux-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZrLjHBcAACYASrIn\",\"uid\":\"2024-survey-impact-launchdarkly-customer-outcomes\",\"url\":\"/blog/2024-survey-impact-launchdarkly-customer-outcomes/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZrLjHBcAACYASrIn%22%29+%5D%5D\",\"tags\":[\"Feature Management\",\"Experimentation\"],\"first_publication_date\":\"2024-08-07T03:30:04+0000\",\"last_publication_date\":\"2024-10-04T23:44:21+0000\",\"slugs\":[\"2024-survey-impact-of-launchdarkly-on-customer-outcomes\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"2024 Survey: Impact of LaunchDarkly on Customer Outcomes\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"X2ujuBEAACIArn1H\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"matt-delaney\",\"first_publication_date\":\"2020-09-23T19:36:28+0000\",\"last_publication_date\":\"2024-09-16T21:43:53+0000\",\"uid\":\"mattdel\",\"url\":\"/blog/author/mattdel/\",\"link_type\":\"Document\",\"key\":\"96cdfadf-42af-4936-ba1b-466e2bcead46\",\"isBroken\":false},\"timestamp\":\"2024-08-08T02:58:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0f1915c3-58f9-4304-860a-787578dbed71\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"4cb96d6d-2910-46a4-8b74-ad52c9324f29\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"56795fc7-a211-4562-9772-c0b80934b9ed\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"b3738e77-2d7d-408b-96d1-b62f32518dd3\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"7b8a182e-e6e7-4e2a-ae08-d04b8888242c\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format,compress\u0026rect=0,0,4001,2315\u0026w=3000\u0026h=1736\",\"id\":\"ZrLjPkaF0TcGIvJI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"Zp6LnREAAB4ALB9r\",\"type\":\"blog_post\",\"tags\":[\"Feature Management\",\"Feature Flags\",\"Experimentation\"],\"lang\":\"en-us\",\"slug\":\"the-impact-of-feature-management-on-software-engineering-and-business-performance\",\"first_publication_date\":\"2024-07-22T17:02:50+0000\",\"last_publication_date\":\"2025-01-08T22:01:15+0000\",\"uid\":\"2024-survey-impact-of-feature-management\",\"url\":\"/blog/2024-survey-impact-of-feature-management/\",\"link_type\":\"Document\",\"key\":\"424c33af-f729-4641-9858-f66762dcccc8\",\"isBroken\":false}},{\"post\":{\"id\":\"ZTBnHhYAACUAeYCy\",\"type\":\"blog_post\",\"tags\":[\"feature mangement\",\"feature flag platform\",\"feature flags\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"manufacturing-feature-flags-build-vs.-buy...and-duct-tape\",\"first_publication_date\":\"2023-10-19T04:00:58+0000\",\"last_publication_date\":\"2026-09-04T18:21:10+0000\",\"uid\":\"manufacturing-feature-flags-build-vs-buy\",\"url\":\"/blog/manufacturing-feature-flags-build-vs-buy/\",\"link_type\":\"Document\",\"key\":\"49486c4f-4240-461a-8890-e63c672b8088\",\"isBroken\":false}},{\"post\":{\"id\":\"Zc5ZchEAACEABhB4\",\"type\":\"blog_post\",\"tags\":[\"Build vs Buy\",\"Feature Management\",\"Feature Flags\",\"feature flag platform\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"5-ways-launchdarkly-outshines-diy-feature-flags\",\"first_publication_date\":\"2024-02-15T19:12:14+0000\",\"last_publication_date\":\"2026-07-22T16:39:04+0000\",\"uid\":\"5-ways-launchdarkly-outshines-diy-feature-flags\",\"url\":\"/blog/5-ways-launchdarkly-outshines-diy-feature-flags/\",\"link_type\":\"Document\",\"key\":\"ad0e8437-99bb-4de8-82cc-15187023eb2d\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"LaunchDarkly drives high innovation velocity, operational efficiency, and revenue growth\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In April 2024, LaunchDarkly enlisted Wakefield Research, a third-party firm, to conduct a survey of 250 LaunchDarkly customers. The results show unequivocally that the LaunchDarkly feature management and experimentation platform drives positive business outcomes for customers. They also reveal trends in use cases, adoption levels, and feature management maturity. \",\"spans\":[{\"start\":37,\"end\":55,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_blank\"}},{\"start\":168,\"end\":228,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/product/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Explore the survey results below to discover the tangible business impact of LaunchDarkly. And see how you compare to surveyed customers in terms of software engineering performance and feature management maturity.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(We also ran a survey comparing software engineering and business performance between LaunchDarkly customers and non-customers. View the results here if you're interested)\",\"spans\":[{\"start\":0,\"end\":171,\"type\":\"em\"},{\"start\":128,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/2024-survey-impact-of-feature-management/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7ef18d52-a744-4627-8de7-6d4109273e33\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Tangible business impact\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Tangible business impact\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Innovation velocity, cost-savings, and revenue growth\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$30840afd-ef49-4a8a-9328-5549ce2808f5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"95% of surveyed customers agree that “LaunchDarkly has a positive impact on organizational performance such as revenue, customer satisfaction, and operational efficiency.\\\"\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$ea56bff0-4d5a-4520-9597-7fa9503e427b\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"This finding echoes what we often hear from customers: they regard LaunchDarkly as an indispensable solution in their DevOps stack that makes a big impact across multiple areas of the business.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9b1a7e92-a9e0-4cb5-95c7-13258d1d2554\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"90% of surveyed customers agree that LaunchDarkly has helped increase their innovation velocity.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$7e5ccc61-d861-495b-95dd-edeff075dfee\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps customers increase their innovation velocity by 1) reducing the risk of delivering software dramatically, and 2) giving customers extreme control over what, when, and to whom they release. Here are a few examples: \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Autodesk increases release velocity by 500%\",\"spans\":[{\"start\":0,\"end\":8,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/how-autodesk-manages-mobile-app-releases-with-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Paramount improves developer productivity 100x\",\"spans\":[{\"start\":0,\"end\":9,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/paramount-improves-developer-productivity-100x/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Christian Dior shortens time to market from 15 minutes to instant updates\",\"spans\":[{\"start\":0,\"end\":14,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/dior/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Customers reported that LaunchDarkly has helped increase revenue, in some cases by over 50%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"11% of customers estimate that LaunchDarkly has helped increase revenue growth by more than 50% \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"41% estimate an increase between 10% to 49%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"33% estimate an increase of up to 10%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“In your estimation, how much has LaunchDarkly helped increase revenue growth tied to your software products?”\",\"spans\":[{\"start\":0,\"end\":110,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$4acd677a-1278-4675-bde4-6f1fc73cae4b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1156},\"alt\":\"Impact of LaunchDarkly on revenue growth chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLlyUaF0TcGIvJQ_24-07-WakefieldSurveyJuly2024-LDCustomers-RevenueGrowth-3-.png?auto=format,compress\",\"id\":\"ZrLlyUaF0TcGIvJQ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$33e69f1c-b8ba-4d9d-bcf1-13a8b6c6a842\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps customers increase revenue by enabling them to ship valuable software innovations faster. Also, the LaunchDarkly targeting engine enables them to deliver personalized experiences to users, in turn, increasing engagement and satisfaction. What’s more, developers and product managers can easily run beta tests and experiments with LaunchDarkly. By collecting and acting upon data early on, they end up releasing features that perform exceedingly well in the market. All of this can help drive revenue.\",\"spans\":[{\"start\":165,\"end\":197,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/targeting/\",\"target\":\"_blank\"}},{\"start\":317,\"end\":327,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_blank\"}},{\"start\":332,\"end\":343,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/experimentation/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"LaunchDarkly reduces the operational costs of software delivery\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"8% of customers say LaunchDarkly has reduced their operational costs by over 50%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"59% say LaunchDarkly has reduced their operational costs between 11% and 50%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"26% say LaunchDarkly has reduced their operational costs up to 10%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“In your estimation, by how much has LaunchDarkly helped reduce your operational costs tied to software delivery?”\",\"spans\":[{\"start\":0,\"end\":114,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$3f51ca9f-9d4c-4056-8703-6998a642f360\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1285},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLmLEaF0TcGIvJU_24-07-WakefieldSurveyJuly2024-LDCustomers-Cost-savings-2-.png?auto=format,compress\",\"id\":\"ZrLmLEaF0TcGIvJU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$c70b7eca-2ddf-49ca-be66-9a7429c1fcb0\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly reduces the operational costs of software delivery by eliminating \\\"big-bang\\\" releases. A big-bang release looks like this:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Dozens—or hundreds—of highly-paid engineering personnel assemble at midnight or on the weekend to execute a major software launch. The launch includes updates from multiple development teams, all of whom had to a) run their changes through extensive pre-production testing, and b) wait for QA to approve every team's changes before merging their feature branches with the mainline—at which point costly merge conflicts arise. The fear of the release causing an outage looms large with a big-bang release.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly feature flags, developers can safely test their code in a realistic production environment. This spares them the expense of maintaining staging environments that unreliably simulate production. What's more, teams—or even individual developers—can safely merge and deploy their code as soon as it's ready. And a single person can release that code patch whenever they choose. Should the patch degrade system performance, one person can disable it instantly in LaunchDarkly. Where there once was fear, there now is confidence...and lower operational costs.\",\"spans\":[{\"start\":5,\"end\":31,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/feature-flags/\",\"target\":\"_blank\"}},{\"start\":55,\"end\":108,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a99a50e9-4c6d-4120-a987-f9d4b72334bd\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Software delivery and operational performance\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Software delivery and operational performance\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"See how you compare to LaunchDarkly customers when it comes to deployment frequency, MTTR, software reliability, and other engineering performance markers.\",\"spans\":[{\"start\":63,\"end\":83,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Deployment frequency\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“For the primary software service or application that your team works on, how often do you deploy new code to production?”\",\"spans\":[{\"start\":0,\"end\":122,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$bca5a5d4-a095-4721-bb88-838784b7e5ce\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1275},\"alt\":\"Deployment frequency LaunchDarkly customers chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLnPEaF0TcGIvJZ_24-07-WakefieldSurveyJuly2024-LDCustomers-DeploymentFrequency-1-.png?auto=format,compress\",\"id\":\"ZrLnPEaF0TcGIvJZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$40ba6017-0434-40f8-83bb-36448c285e0a\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Mean time to recover (MTTR) from incidents\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“When a software incident occurs in the primary software service or application that your team works on, what is your mean time to recover (MTTR) from the incident?”\",\"spans\":[{\"start\":0,\"end\":165,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$21d4cdfc-9e95-4ef8-b795-669c06bc7d78\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1185},\"alt\":\"MTTR LaunchDarkly customers chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLngEaF0TcGIvJa_24-07-WakefieldSurveyJuly2024-LDCustomers-MTTR-2-.png?auto=format,compress\",\"id\":\"ZrLngEaF0TcGIvJa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$89661739-58f9-4598-a133-07144715146b\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"A majority of LaunchDarkly customers (86%) recover from incidents in a day or less, with 42% recovering within an hour, if not minutes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Frequency of software reliability issues\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How often is the primary software service or application you work on unavailable, slow, or operating incorrectly?”\",\"spans\":[{\"start\":0,\"end\":115,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7adbde6b-4634-4970-9b28-48633c33f94e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1163},\"alt\":\"Frequency of software reliability issues LaunchDarkly chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLnx0aF0TcGIvJb_24-07-WakefieldSurveyJuly2024-LDCustomers-Frequencyofsoftwarereliabilityissues-1-.png?auto=format,compress\",\"id\":\"ZrLnx0aF0TcGIvJb\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$4a766d0f-0092-4810-ad49-5bd70092bb05\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Number of people required to execute a release (release overhead)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How many people (developers, IT operators, QA engineers, development managers, etc.) are typically required to execute a software release?”\",\"spans\":[{\"start\":0,\"end\":140,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5134f1a7-6676-483c-a203-ced2b19773f4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1140},\"alt\":\"Number of people required to execute a release - LaunchDarkly customers - chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLoF0aF0TcGIvJm_24-07-WakefieldSurveyJuly2024-LDCustomers-executearelease-1-.png?auto=format,compress\",\"id\":\"ZrLoF0aF0TcGIvJm\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$e4362860-5227-4ee2-bf9d-0282bd996d1f\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Interestingly, nearly 70% of customers only require five people or less to execute a software release. This suggests that, for our customers, the overhead associated with delivering software—at least in terms of labor resources—is quite low. It’s not uncommon for engineering teams to require dozens, if not hundreds, of engineering personnel to execute a release. The fact that most LaunchDarkly customers can count on one hand the number of people they need for a launch is significant.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$11d1c857-e316-4d6b-bb14-b77283602390\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Feature management maturity and usage trends\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Feature management maturity and usage trends\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Use cases\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How does your team use LaunchDarkly?”\",\"spans\":[{\"start\":0,\"end\":38,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$d85551c2-d407-4c53-ae67-5b74150cfa44\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1465},\"alt\":\"Feature management use cases chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrpnNkaF0TcGI336_24-07-WakefieldSurveyJuly2024-LDCustomers-Usecases-2-.png?auto=format,compress\",\"id\":\"ZrpnNkaF0TcGI336\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$551eca86-ff5d-4f85-b9a9-1a737400de7e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The top 3 most popular use cases for LaunchDarkly were dark launches, testing in production (canary tests), and progressive delivery.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Dark launches - turning features on/off for all users\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/guide-to-dark-launching/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Testing in production (canary tests) - testing features with a subset of users to measure operational impact\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}},{\"start\":23,\"end\":35,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Progressive delivery - gradually releasing to increasingly large segments (includes percentage rollouts)\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Beta tests - testing features with a subset of external users to gather qualitative feedback\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Experimentation - running A/B and multivariate tests to gather quantitative data\",\"spans\":[{\"start\":0,\"end\":15,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/a-guide-to-experimentation-in-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Long-term operational controls - using permanent flags for things like load shedding during high-traffic periods\",\"spans\":[{\"start\":39,\"end\":54,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/7-best-practices-for-short-term-and-permanent-feature/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Trunk-based development – smaller, more frequent updates to a main trunk\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Entitlements and plan management - controlling feature/product access based on things like customer tier\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/managing-entitlements-in-launchdarkly/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Level of LaunchDarkly adoption\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“Which best describes your organization's level of adoption of LaunchDarkly?”\",\"spans\":[{\"start\":0,\"end\":77,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$7ba15a39-506e-4486-b3d6-4795de596c6d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":967},\"alt\":\"Level of LaunchDarkly adoption chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpAUaF0TcGIvJp_24-07-WakefieldSurveyJuly2024-LDCustomers-LaunchDarklyadoption-4-.png?auto=format,compress\",\"id\":\"ZrLpAUaF0TcGIvJp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$f9221370-c68c-4b39-90e0-22b871d47fb7\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"A majority of LaunchDarkly customers (87%) have standardized their use of the platform on at least one team. Twenty-four percent have centralized and standardized their use of the platform across their entire organization, which represents a high degree of feature management maturity. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Feature flag usage\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“For what percentage of code changes (frontend and backend) does your team use LaunchDarkly feature flags?”\",\"spans\":[{\"start\":0,\"end\":107,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$818bde3f-3c6e-4f26-8f3d-7d16c2853137\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1199},\"alt\":\"Feature flag usage chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpPUaF0TcGIvJr_24-07-WakefieldSurveyJuly2024-LDCustomers-Changesinvolvingfeatureflags-1-.png?auto=format,compress\",\"id\":\"ZrLpPUaF0TcGIvJr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$45b15a3d-520a-430d-83a0-4e0402e8bb27\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Roughly one-fifth of LaunchDarkly customers (19%) use feature flags for more than 50% of software changes that they push to production. But most customers use flags for fewer than 50% of changes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Integrations \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“How many of the LaunchDarkly integrations (e.g., with Datadog, Github, Jira Cloud, Slack, etc.) does your team use?”\",\"spans\":[{\"start\":0,\"end\":117,\"type\":\"em\"},{\"start\":17,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/integrations/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$fb321783-b472-4106-a34b-24b569b849c6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1157},\"alt\":\"Number of integrations chart\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLphUaF0TcGIvJs_24-07-WakefieldSurveyJuly2024-LDCustomers-Numberofintegrations-2-.png?auto=format,compress\",\"id\":\"ZrLphUaF0TcGIvJs\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$89d03b44-f880-4ef1-a3f0-5d7e8c35536a\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly helps streamline critical workflows with 60+ integrations with popular tools in the modern DevOps tool chain like Datadog, GitHub, Jira Cloud, ServiceNow, and Slack. Currently, a majority of customers (89%) only leverage between zero and five integrations. \",\"spans\":[{\"start\":54,\"end\":70,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/integrations/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Automation\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"“Which of the LaunchDarkly automation features does your team use?”\",\"spans\":[{\"start\":0,\"end\":67,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$39acd060-f9a4-4051-a4e6-39592f0f7526\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1352},\"alt\":\"Automation features\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLpwkaF0TcGIvKa_24-07-WakefieldSurveyJuly2024-LDCustomers-Automationfeatures-2-.png?auto=format,compress\",\"id\":\"ZrLpwkaF0TcGIvKa\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$0f21ada7-956c-416d-9a1f-59da02f8a49e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly offers several capabilities that automate workflows in software delivery, remediation, and change management. Far and away, the most popular of those automation capabilities are Approvals (41% of customers use Approvals) and Slack alerts (40% of customers).\",\"spans\":[{\"start\":46,\"end\":64,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/automation/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Approvals - automatically require and issue flag change approvals\",\"spans\":[{\"start\":0,\"end\":9,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/approvals\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic Slack alerts of flag updates and/or change approvals\",\"spans\":[{\"start\":10,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/slack\",\"target\":\"_blank\"}},{\"start\":46,\"end\":62,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/slack/approvals\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Scheduling of software releases in advance\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/scheduled-changes\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Flag triggers/Automatic kill switches - automatically turn ‘off’ a flag when your observability tool detects a critical service issue\",\"spans\":[{\"start\":0,\"end\":37,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/releases/triggers\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Release Assistant - deliver features through repeatable release pipelines that follow an ordered set of environments and targeting rules\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/release-assistant-automation-monitoring-ux-improvements/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic flag syncing with Jira Cloud\",\"spans\":[{\"start\":28,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/jira\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic generation of ServiceNow tickets\",\"spans\":[{\"start\":24,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/integrations/servicenow\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$b7e2657d-8682-4d06-8cf1-5fb343dfcf3e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers have spoken. The LaunchDarkly platform has a material impact on the bottom line, improving everything from operational efficiency and innovation velocity to revenue growth and customer satisfaction. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In a software-powered world, LaunchDarkly enables product delivery teams to ship software faster, more intelligently, and with less risk. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If you’re interested in seeing a live demo of the LaunchDarkly feature management and experimentation platform, request a demo here. You may also start a free trial of the product. To learn more about LaunchDarkly and how it may transform the way you deliver software, visit launchdarkly.com.\",\"spans\":[{\"start\":112,\"end\":131,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}},{\"start\":154,\"end\":164,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}},{\"start\":275,\"end\":291,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"http://launchdarkly.com\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"---\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Customer Survey was conducted by Wakefield Research (www.wakefieldresearch.com) among 250 DevOps and IT Professionals, between April 23rd and May 1st, 2024, using an email invitation distributed by LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Respondents spanned multiple industries, company sizes, and annual revenue amounts. They also ranged from individual contributors to C-level executives, including job titles such as Software Developer, VP of Engineering, IT Director, Platform Engineer, CTO, and more. Results of any sample are subject to sampling variation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$901c3745-8357-47ff-b910-9a7fc2e21976\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"2024 Survey: Impact of LaunchDarkly on Customer Outcomes\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Learn how LaunchDarkly drives high innovation velocity, operational efficiency, and revenue growth for customers. View the full survey results.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4001,\"height\":2315},\"alt\":\"New Survey 2024: Impact of LaunchDarkly on Customer Outcomes featured blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ZrLjPkaF0TcGIvJI_24-07-WakefieldSurveyJuly2024-LDCustomers-1-.png?auto=format,compress\",\"id\":\"ZrLjPkaF0TcGIvJI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Zp6LnREAAB4ALB9r\",\"uid\":\"2024-survey-impact-of-feature-management\",\"url\":\"/blog/2024-survey-impact-of-feature-management/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Zp6LnREAAB4ALB9r%22%29+%5D%5D\",\"tags\":[\"Feature Management\",\"Feature Flags\",\"Experimentation\"],\"first_publication_date\":\"2024-07-22T17:02:50+0000\",\"last_publication_date\":\"2025-01-08T22:01:15+0000\",\"slugs\":[\"the-impact-of-feature-management-on-software-engineering-and-business-performance\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"The Impact of Feature Management on Software Engineering and Business Performance\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"X2ujuBEAACIArn1H\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"matt-delaney\",\"first_publication_date\":\"2020-09-23T19:36:28+0000\",\"last_publication_date\":\"2024-09-16T21:43:53+0000\",\"uid\":\"mattdel\",\"url\":\"/blog/author/mattdel/\",\"link_type\":\"Document\",\"key\":\"46b48557-4a94-4106-9506-9a5114312421\",\"isBroken\":false},\"timestamp\":\"2024-07-22T16:39:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZYXWnREAACEAzxnZ\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"research-report\",\"first_publication_date\":\"2024-01-03T23:42:03+0000\",\"last_publication_date\":\"2024-01-03T23:42:03+0000\",\"uid\":\"research-report\",\"url\":\"/blog/category/research-report/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Research Report\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"314fa96b-2786-4b4d-9084-9d4c542bfa87\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"db583f70-8653-4f99-ad72-65a2c46cc29d\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c1307806-fb7d-4f3f-a417-86d687727dee\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"72f597df-92f0-4ebc-9eb9-fa1f1f540875\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c0c9c19e-59de-4da3-a9c3-0d7b8f811f09\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"34b44d3c-db41-43b9-97f0-60d6a1d8d390\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format%2Ccompress\u0026rect=0%2C0%2C4001%2C2315\u0026w=3000\u0026h=1736\",\"id\":\"Zp6MZx5LeNNTxXj7\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZTBnHhYAACUAeYCy\",\"type\":\"blog_post\",\"tags\":[\"feature mangement\",\"feature flag platform\",\"feature flags\",\"feature flag management\",\"feature flagging service\"],\"lang\":\"en-us\",\"slug\":\"manufacturing-feature-flags-build-vs.-buy...and-duct-tape\",\"first_publication_date\":\"2023-10-19T04:00:58+0000\",\"last_publication_date\":\"2026-09-04T18:21:10+0000\",\"uid\":\"manufacturing-feature-flags-build-vs-buy\",\"url\":\"/blog/manufacturing-feature-flags-build-vs-buy/\",\"link_type\":\"Document\",\"key\":\"a75cdc32-3fb2-4c1c-b18d-c303c1ef2d21\",\"isBroken\":false}},{\"post\":{\"id\":\"Zkn9-RAAAB4AUBoU\",\"type\":\"blog_post\",\"tags\":[\"a/b testing\",\"GenAI\",\"Experimentation\",\"AI\",\"Release Guardian\"],\"lang\":\"en-us\",\"slug\":\"galaxy-24-product-release\",\"first_publication_date\":\"2024-05-20T18:29:18+0000\",\"last_publication_date\":\"2024-09-16T21:08:22+0000\",\"uid\":\"galaxy-2024-product-release\",\"url\":\"/blog/galaxy-2024-product-release/\",\"link_type\":\"Document\",\"key\":\"3ec22a00-1ba8-4a7d-8217-1e050ace37db\",\"isBroken\":false}},{\"post\":{\"id\":\"ZUFUUhAAACIACoVc\",\"type\":\"blog_post\",\"tags\":[\"DevOps\",\"Feature Flags\",\"Mobile\",\"Targeting\"],\"lang\":\"en-us\",\"slug\":\"the-next-devops-frontier-how-5-leading-companies-ship-software-faster\",\"first_publication_date\":\"2023-10-31T19:31:07+0000\",\"last_publication_date\":\"2026-08-24T19:08:38+0000\",\"uid\":\"the-next-devops-frontier-how-5-leading-companies-ship-software-faster\",\"url\":\"/blog/the-next-devops-frontier-how-5-leading-companies-ship-software-faster/\",\"link_type\":\"Document\",\"key\":\"d86c40e7-826a-4f2c-a186-83826104d349\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"An observational analysis of a survey of 500 DevOps and IT professionals\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Studies from researchers at DORA and McKinsey show that strong software delivery and operational practices contribute to positive business outcomes. But how does feature management affect software delivery and operational performance? And which types of feature management systems yield the greatest benefits? These are the questions we set out to answer in a recent survey of 500 DevOps and IT professionals. \",\"spans\":[{\"start\":28,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://dora.dev/guides/how-to-empower-software-delivery-teams/\",\"target\":\"_blank\"}},{\"start\":37,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In April 2024, LaunchDarkly enlisted Wakefield Research, a third-party firm, to conduct a survey of 250 LaunchDarkly customers and 250 non-customers—with the goal of comparing software engineering performance and business outcomes.\",\"spans\":[{\"start\":37,\"end\":55,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The results show a clear performance gap between customers and non-customers. On average, LaunchDarkly customers:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deploy more frequently (84% more)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Recover faster from incidents (46% more likely to recover within a day)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Experience better software reliability (48% better)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Have higher customer satisfaction (95% better)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Spend less time on pre-production testing and debugging (63% less time at a minimum)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deliver software with less overhead\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a5bc5a56-6384-438a-a05a-c8a214e16c77\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":1488},\"alt\":\"Bar chart comparing engineering performance of LaunchDarkly customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6sAB5LeNNTxYTp_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Softwareengineeringperformance-3-.png?auto=format,compress\",\"id\":\"Zp6sAB5LeNNTxYTp\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$1e65e283-0518-48bd-bf47-98c4767fe93e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Read on for a detailed breakdown of the survey results across the following categories: innovation velocity, software reliability and customer satisfaction, and release overhead.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$aa063b73-2c6b-49cb-a187-075440e01b98\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Innovation velocity \",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Innovation velocity\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers deploy code 84% more frequently\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9bdd8bed-7ebc-4bb8-a73f-e455b78dd35b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":802},\"alt\":\"Deployment frequency pie chart - LD customers vs. Non-LD customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6O4x5LeNNTxXlg_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Deployseveraltimesaweekormore.png?auto=format,compress\",\"id\":\"Zp6O4x5LeNNTxXlg\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$25fdc5c2-cad6-4d83-b4ac-8120fef06c57\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"On average, LaunchDarkly customers have a much higher deployment velocity than non-customers. According to the survey, 59% of customers deploy several times a week or more frequently, with 20% deploying “on demand.” In contrast, only 32% of non-customers deploy to production several times a week or more frequently. And only 3% deploy “on demand.” \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If we treat software “innovation” in a broad sense, spanning incremental and radical innovations, we can conclude that LaunchDarkly customers have a higher developer innovation velocity than non-customers.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Why is that? First off, LaunchDarkly feature flags provide safeguards and control that, in turn, give development teams the confidence to ship changes faster. LaunchDarkly enables many customers to do trunk-based development and low-risk continuous delivery. \",\"spans\":[{\"start\":37,\"end\":50,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}},{\"start\":201,\"end\":224,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers can also use targeting capabilities to run low-risk early access programs to quickly validate new innovations. Moreover, LaunchDarky’s experimentation features give teams confidence that the innovations they ship will deliver the intended business impact. \",\"spans\":[{\"start\":23,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/targeting/\",\"target\":\"_self\"}},{\"start\":131,\"end\":169,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/experimentation/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Lastly, customers’ use of feature flags may indicate a wider trend of adopting modern development practices. All of these modern development practices combined contribute to a faster pace of innovation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$32354320-b42c-452e-98ac-54f90f153949\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Reliability and customer satisfaction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Software reliability and customer satisfaction\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$070fb2c2-a648-46eb-8b1a-102519681971\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":1419},\"alt\":\"Bar chart comparing software reliability and user satisfaction between LaunchDarkly customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6sYB5LeNNTxYU2_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Softwarereliabilityandusersatisfaction.png?auto=format,compress\",\"id\":\"Zp6sYB5LeNNTxYU2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$c9c2a07f-dc05-4099-9367-a8e1f0c84608\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers outperformed non-customers in multiple categories tied to software reliability and user satisfaction. Customers had a superior mean time to recover (MTTR) from incidents, fewer reliability issues overall, and less negative customer feedback related to unreliable software.\",\"spans\":[{\"start\":150,\"end\":177,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZtC8cBAAAB8AJLMF\",\"type\":\"blog_post\",\"tags\":[\"mean time to restore\",\"MTTR\",\"dora metrics\"],\"lang\":\"en-us\",\"slug\":\"mean-time-to-restore-mttr-what-it-is--how-to-reduce-it\",\"first_publication_date\":\"2024-09-11T23:24:30+0000\",\"last_publication_date\":\"2026-09-10T15:40:06+0000\",\"uid\":\"mean-time-to-restore-mttr\",\"url\":\"/blog/mean-time-to-restore-mttr/\",\"link_type\":\"Document\",\"isBroken\":false}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$0432cfd2-2300-4281-8271-b474a26a08cf\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"MTTR\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Customers are 46% more likely to recover from an incident in a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"86% of LaunchDarkly customers recover from software incidents within a day or less, compared to 59% of non-customers. With LaunchDarkly, individual developers can instantly disable broken code by using feature flags as kill switches. In fact, they can do so at runtime without needing to push a fix through their deployment pipeline. When using Flag Triggers, which leverages integrations with application performance monitoring (APM) and observability tools, customers can remediate software issues automatically.\",\"spans\":[{\"start\":219,\"end\":232,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-kill-switch-software-development/\",\"target\":\"_blank\"}},{\"start\":345,\"end\":358,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/launched-automatic-kill-switches-using-flag-triggers/\",\"target\":\"_blank\"}},{\"start\":500,\"end\":513,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"With the introduction of Release Guardian, customers can natively monitor operational metrics at the feature level and automatically disable features that degrade system performance.\",\"spans\":[{\"start\":25,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/meet-release-guardian/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"All of these capabilities contribute to the impressive recovery times posted by LaunchDarkly customers.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$bc30ae03-6b0d-4424-a491-e03e0b051c38\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Software reliability\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers have 48% better software reliability\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$61dcf13b-b3e9-4018-97df-715fb94bb041\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":858},\"alt\":\"Bar chart comparing software reliability between LD customers and non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6smR5LeNNTxYVx_Neverexperiencesoftwarereliabilityissues.png?auto=format,compress\",\"id\":\"Zp6smR5LeNNTxYVx\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$92229792-1cf4-4e07-97d8-f8404a0c1f9d\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"On average, non-customers have less reliable software systems than customers. For 56% of non-customers, their primary software service or application is unavailable, slow, or operating incorrectly often or all the time. The same is true of only 5% of LaunchDarkly customers. \",\"spans\":[{\"start\":197,\"end\":218,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Similarly, only 26% of non-customers rarely or never experience reliability issues. Whereas, 70% of LaunchDarkly customers rarely or never experience reliability issues. \",\"spans\":[{\"start\":37,\"end\":53,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly platform is equipped with safety nets, controls, and automatic remediation capabilities—all of which contribute to software reliability and availability. It is, therefore, unsurprising to see exceptional levels of operational health among LaunchDarkly customers. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5e855224-3f2b-4f65-8ccb-d1227052af8e\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"User satisfaction\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers report nearly 2x fewer user complaints\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers hear far less negative user feedback regarding software reliability than non-customers. 56% of non-customers receive negative user feedback often or all the time, whereas the same is true of only 11% of LaunchDarkly customers. On the flip side, only 23% of non-customers rarely or never get negative feedback. But nearly half (45%) of LaunchDarkly customers rarely or never hear user dissatisfaction with the reliability and operational performance of their software.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In the context of software reliability, LaunchDarkly customers have nearly 2x greater customer satisfaction among their users than non-customers.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$89a67f5f-d3d8-4ed1-9dd3-d26fe4fa7fb4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"56% of non-customers (vs. 11% of LaunchDarkly customers) receive negative user feedback about unreliable software often or all the time.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$fedcd1dd-bdae-43a1-801e-6774e3eadb6d\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The superior MTTR of LaunchDarkly customers may partly explain why they hear fewer user complaints. Another reason may be that they use LaunchDarkly to progressively deliver changes to small subsets of users, including through canary tests in production. In doing so, they shrink the blast radius of errors. Even when a release throws a bug, the impact is confined to a few users. By the time the change has been released to a large audience, the defects have been identified and fixed, resulting in a better experience for the majority of users.\",\"spans\":[{\"start\":152,\"end\":173,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_blank\"}},{\"start\":227,\"end\":239,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5c2feeed-c0de-4ef8-9625-13864becd424\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Overhead of releases\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"The overhead of software releases\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$ef08aa92-6811-4235-bea0-a4c845e6f300\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1801,\"height\":1182},\"alt\":\"Chart comparing the overhead of releasing software - LD customers vs. non-customers\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6tUB5LeNNTxYYu_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Overheadofreleases.png?auto=format,compress\",\"id\":\"Zp6tUB5LeNNTxYYu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$a88e9dce-12f9-4a42-8b68-591627bead1b\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers require far less overhead than non-customers to execute software releases, particularly when it comes to labor costs. What’s more, customers spend significantly less time on non-innovative work such as testing code in pre-production environments and fixing bugs.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f0b8e7a6-8d9f-48d3-9f63-3bd7cfa03149\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Labor costs\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"Nearly 70% of LaunchDarkly customers (vs. 1% of non-customers) can execute a software release with 5 people or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly significantly reduces the number of personnel needed to execute software releases. Indeed, a majority of customers (68%) require only 1-5 people to ship software. Whereas, almost zero non-customers (1%) can say the same. This 6700% difference between customers and non-customers underscores the efficiency gains of LaunchDarkly, which allow teams to dedicate more resources to innovation and less to deployment logistics.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$04ff9161-c11c-4cbb-970c-1aac04f71b67\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"60% of non-customers require more than 25 people to execute a release, and 28% require 50+ people.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$80f90014-bfc4-4cd4-9bbc-185ca823e16b\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Even when only considering the high hourly wages of software developers and engineering leaders, we can assume that the overhead of releasing software for LaunchDarkly customers is significantly lower than for non-customers.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly platform makes releasing software safe and uneventful. If you ship a buggy feature, you can deactivate it in real time with the flip of a toggle. Also, you can decouple deployments from releases. That is, you can wrap a code change in a feature flag, merge it with the mainline, and then allow the mainline to get deployed to production—all without releasing the code change to end users. Later, you or another individual can release that change by toggling on the corresponding flag in LaunchDarkly. \",\"spans\":[{\"start\":4,\"end\":25,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/product/\",\"target\":\"_blank\"}},{\"start\":177,\"end\":211,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Such a release pattern enables lightweight software delivery and helps explain why most LaunchDarkly customers need so few people for releases.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5ebdf769-496a-4fe7-8d56-06ebe76f197b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Time on non-innovative work\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"LaunchDarkly customers spend 63% less time on pre-production testing and bug fixing (at a minimum)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Nearly three-quarters of LaunchDarkly customers (74%) spend 25% or less of their time on fixing or testing code. In contrast, the same is only true of 30% of non-customers. In other words, 70% of non-customers spend more than 25% of their time on fixing or testing code—i.e., non-innovative work.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Let’s attempt to put this in perspective. For every 100 non-customers, 70 spend at least 26% of their time on non-innovative work. If we assume an average total compensation for 1 FTE software engineer of $150K/year, that’s $2.73M a year spent on undifferentiated, non-innovative drudgery. For LaunchDarkly customers, that figure drops by $1.72M.\",\"spans\":[{\"start\":80,\"end\":88,\"type\":\"em\"},{\"start\":290,\"end\":346,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$be696eb4-e466-4a90-8ac8-e06a6abbe4e8\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers devote far less time, effort, and money to non-innovative software testing and bug fixing.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$cf8f8ac1-134c-49da-9051-a19a29e69022\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly allows customers to safely test code in production with a small subset of users. Owing to the fail-safes and control mechanisms in LaunchDarkly, teams spend less time vetting features in artificial staging environments. Instead, they rapidly ship changes to production, see how they perform in a live environment, and disable them if needed.\",\"spans\":[{\"start\":40,\"end\":63,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The survey results demonstrate the benefits of using LaunchDarkly's feature management and experimentation platform: customers have a high developer innovation velocity, recover faster, experience greater software reliability, foster high customer satisfaction, and maintain low overhead when releasing and managing software. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly is a platform for high-velocity engineering teams to release, monitor, and optimize great software in production. It is associated with high software engineering performance and positive business outcomes. Those who adopt the platform can expect to gain a competitive edge.\",\"spans\":[{\"start\":66,\"end\":73,\"type\":\"strong\"},{\"start\":75,\"end\":82,\"type\":\"strong\"},{\"start\":88,\"end\":96,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To progress on your journey to engineering excellence, request a live demo of the LaunchDarkly platform or start using the product for free.\",\"spans\":[{\"start\":55,\"end\":74,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_self\"}},{\"start\":107,\"end\":139,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"* * * * * *\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$d73f0cab-0726-435b-bd22-05d521c95453\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"About the survey\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The LaunchDarkly Survey of Non-Customers was conducted by Wakefield Research (www.wakefieldresearch.com) among 250 DevOps and IT Professionals, between April 17th and May 2nd, 2024, using an email invitation and an online survey. The LaunchDarkly Customer Survey was conducted by Wakefield Research among 250 DevOps and IT Professionals, between April 23rd and May 1st, 2024, using an email invitation distributed by LaunchDarkly.\",\"spans\":[{\"start\":78,\"end\":103,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://wakefieldresearch.com/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Respondents spanned multiple industries, company sizes, and annual revenue amounts. They also ranged from individual contributors to C-level executives, including job titles such as Software Developer, VP of Engineering, IT Director, Platform Engineer, CTO, and more. Results of any sample are subject to sampling variation.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e10e2e41-ce9c-478a-b23b-309033bc5ad6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Appendix 1 - Inferior performance of homegrown feature flag systems\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Appendix 1 - The inferior performance of those with homegrown feature flag systems\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Homegrown feature flag systems associated with worse MTTR\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e7ff1159-ecb5-43e0-88fd-6c4212a18cd6\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":871},\"alt\":\"Comparing MTTR - Homegrown systems\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6vFh5LeNNTxYf9_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-MTTRofaweekorlonger.png?auto=format,compress\",\"id\":\"Zp6vFh5LeNNTxYf9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$a1ce5cc6-5c8c-4b81-a85b-c95f36396fc1\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The non-customer segment was divided into those who use a paid feature management service (Service) and those who use a homegrown in-house system (Homegrown). Interestingly, the Homegrown group performed worse than the Service group in their mean time to recover (MTTR) from incidents. 46% of the Homegrown group take a week or longer to recover compared to 38% of the Service group.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In many cases, homegrown feature flags are essentially configuration files. This typically means that, if you need to turn “off” a buggy feature, you have to change an environment variable in a config file and then push the update through your deployment pipeline, causing delays. Moreover, in some cases, homegrown systems are not designed to work efficiently across microservices and multiple platforms (web, mobile, etc.). \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Typically, with a commercial feature flagging service, if you toggle off a flag, it disables every instance of the feature across your microservices and platforms. But with homegrown systems, you may have to disable several instances of a feature manually, slowing remediation.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"***Determine whether to build or buy a feature management system.***\",\"spans\":[{\"start\":0,\"end\":68,\"type\":\"em\"},{\"start\":24,\"end\":36,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/build-vs-buy/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Homegrown systems associated with even worse user satisfaction\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$25885673-4858-44bd-942c-29d9e5566b54\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":863},\"alt\":\"Negative user feedback - comparing performance - homegrown flag systems\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6vUx5LeNNTxYgr_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD-Hearnegativefeedback.png?auto=format,compress\",\"id\":\"Zp6vUx5LeNNTxYgr\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[],\"id\":\"image$b4490caa-68da-4285-bd64-6d272d48e192\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"The survey revealed that 84% of those with homegrown feature flagging systems hear negative user feedback at least sometimes, compared to 71% of those with a Service and only 55% of LaunchDarkly customers. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The association between homegrown systems and poor user satisfaction parallels that of the former association with slow incident recovery times. Generally speaking, homegrown systems lack the scale, sophistication, and performance of a professional feature management platform. And these deficiencies contribute to (or at least fail to sufficiently mitigate) prolonged outages, higher change failure rates, and other operational issues.\",\"spans\":[{\"start\":385,\"end\":405,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZuMbmBMAACAAYXSY\",\"type\":\"blog_post\",\"tags\":[\"dora metrics\",\"CI/CD\",\"DevOps\",\"automation\"],\"lang\":\"en-us\",\"slug\":\"change-failure-rate-what-it-is--how-to-measure\",\"first_publication_date\":\"2024-09-12T16:59:34+0000\",\"last_publication_date\":\"2026-09-10T15:31:55+0000\",\"uid\":\"change-failure-rate\",\"url\":\"/blog/change-failure-rate/\",\"link_type\":\"Document\",\"isBroken\":false}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$5f5cef1a-1093-4ce7-931c-7ea85f3f4af0\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Appendix 2 - How we calculated the statistics\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Appendix 2 - How we calculated the statistics\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly customers deploy 84% more frequently than non-customers\",\"spans\":[{\"start\":0,\"end\":68,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-59% of customers deploy several times a week or more frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-32 % of non-customers deploy several times a week or more frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(59% - 32%)/32% = .843 * 100 = ~84%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers are 46% more likely than non-customers to recover from an incident in a day or less\",\"spans\":[{\"start\":0,\"end\":93,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-86% of customers recover from software incidents within a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-59% of non-customers recover from software incidents within a day or less\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(86%-59%)/59% = .457 * 100 = ~46%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers have 48% better software reliability than non-customers\",\"spans\":[{\"start\":0,\"end\":65,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Reliability issues often or all the time: Non-customers = 56%, Customers = 5%; Difference: 56% - 5% = 51%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Rarely or never experience reliability issues: Non-customers = 6%; Customers = 70%; Difference: 70% - 26% = 44%\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Combined Summary Metric: (51% + 44%)/2 = 47.5% (round up to 48%)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers report nearly 2x fewer user complaints than non-customers\",\"spans\":[{\"start\":0,\"end\":67,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"-Rarely or never hear negative user feedback: Customers = 45%; non-customers = 23%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Relative percentage difference:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(45% - 23%)/23 * 100 = 95.6% (~2x)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Customers spend 63% less time on non-innovative work than non-customers (at a minimum)\",\"spans\":[{\"start\":0,\"end\":86,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"70% of non-customers (70% of 250 people = 175 people) say they spend more than 25% of their time on fixing and testing code. 26% of customers (65 people) say the same. We’re assuming total working hours of 2080 hours/person/year. When looking at the group of people who spend “more than 25% of their time” on non-innovative work, it means that some of those people may only spend 26% of their time on such work, others may spend 35% of their time, while others still may spend 50% of their time on non-innovative work. For the sake of this calculation, I’m going to use 26%.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Non-Customers\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\".26 * 2080 = 520 hours/person/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"520 * 175 people = 94,640 hours/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LD Customers\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"520 * 65 people = 35,152 hours/year\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Final Calculation:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"94640 – 35152/94640 = 0.628 (~63%). Thus, at a minimum, LD customers spend 63% less time on non-innovative work.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Sample costs of releasing software based on survey results\",\"spans\":[{\"start\":0,\"end\":58,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For every 100 non-customers, 70 spend at least 26% of their time on non-innovative work. If we assume an average total compensation for 1 FTE software engineer of $150K/year, that’s $2.73M a year spent on undifferentiated, non-innovative drudgery.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(.26 * $150,000) * 70 = $2,730,000\",\"spans\":[{\"start\":6,\"end\":17,\"type\":\"em\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For LaunchDarkly customers, that figure drops by $1.72M.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"(.26 * $150,000) * 26 = $1,014,000 → $2,730,000 - $1,014,000 = $1,716,000 ($1.72M)\",\"spans\":[{\"start\":7,\"end\":19,\"type\":\"em\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$10214088-e79f-4825-9039-ec5989d26e2f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Impact of Feature Management on Engineering and Business Performance\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Discover the transformative effects of feature management on software engineering and business performance. A 2024 survey compares LaunchDarkly customers to non-customers, uncovering insights into innovation, recovery times, operational efficiency, and more. \",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4001,\"height\":2315},\"alt\":\"Featured-image-charts-purple-hues-Impact-of-Feature-Management-on-Business-and-Engineering-Performance\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zp6MZx5LeNNTxXj7_24-07-WakefieldSurveyJuly2024-LDvs.Non-LD.png?auto=format,compress\",\"id\":\"Zp6MZx5LeNNTxXj7\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Zo1hqBEAACEAi0h4\",\"uid\":\"cicd-best-practices-devops\",\"url\":\"/blog/cicd-best-practices-devops/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Zo1hqBEAACEAi0h4%22%29+%5D%5D\",\"tags\":[\"CI/CD\",\"DevOps\",\"Automated Testing\",\"Best Practices\",\"CICD\"],\"first_publication_date\":\"2024-07-09T16:37:41+0000\",\"last_publication_date\":\"2026-08-24T18:40:55+0000\",\"slugs\":[\"ultimate-guide-to-cicd-best-practices-to-streamline-devops\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Ultimate Guide to CI/CD Best Practices to Streamline DevOps\",\"spans\":[],\"direction\":\"ltr\"}],\"author\":{\"id\":\"ZlpO7REAACEAEp08\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"jesse-sumrak\",\"first_publication_date\":\"2024-05-31T22:28:00+0000\",\"last_publication_date\":\"2025-06-24T00:33:30+0000\",\"uid\":\"jesse-sumrak\",\"url\":\"/blog/author/jesse-sumrak/\",\"link_type\":\"Document\",\"key\":\"1892184c-61dd-472e-858f-01ae9a16e2e4\",\"isBroken\":false},\"timestamp\":\"2024-07-09T16:10:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"Z5QhcBcAACkATlPb\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"developer-productivity\",\"first_publication_date\":\"2025-01-24T23:25:38+0000\",\"last_publication_date\":\"2025-01-24T23:25:38+0000\",\"uid\":\"developer-productivity\",\"url\":\"/blog/category/developer-productivity/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Developer productivity\",\"spans\":[],\"direction\":\"ltr\"}]},\"link_type\":\"Document\",\"key\":\"43aad591-319b-428a-adfd-2fe3ca8ef65f\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"3e737e8a-9e9e-4f9a-9d3a-335fb476c6d5\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"d4420ff7-dc4e-4c24-b4c9-c1ea39d27d74\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"737ebbe4-d58c-4606-8201-d23c30bf6be2\",\"isBroken\":false}},{\"category\":{\"id\":\"X-ASLBAAACIAVlA9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"best-practices\",\"first_publication_date\":\"2020-12-21T03:10:54+0000\",\"last_publication_date\":\"2021-01-22T04:01:23+0000\",\"uid\":\"best-practices\",\"url\":\"/blog/category/best-practices/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Best Practices\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f3e27266-d57c-4361-9678-0980679a0b40\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Light green infinity loop CI/CD best practices blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format%2Ccompress\u0026rect=1%2C0%2C3999%2C2314\u0026w=3000\u0026h=1736\",\"id\":\"Zo1hWB5LeNNTw9CB\",\"edit\":{\"x\":1,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZloxyhEAAB8AEnVm\",\"type\":\"blog_post\",\"tags\":[\"CI/CD\",\"DevOps\",\"Continuous Delivery\",\"Progressive Delivery\",\"continuous integration\"],\"lang\":\"en-us\",\"slug\":\"devops-vs.-cicd-complete-guide-to-better-software-delivery\",\"first_publication_date\":\"2024-05-31T20:41:41+0000\",\"last_publication_date\":\"2026-08-24T18:17:58+0000\",\"uid\":\"devops-vs-cicd\",\"url\":\"/blog/devops-vs-cicd/\",\"link_type\":\"Document\",\"key\":\"2161a5a5-dc55-4a66-b46d-a9a812eb5783\",\"isBroken\":false}},{\"post\":{\"id\":\"X5iWWREAAB0AriCm\",\"type\":\"blog_post\",\"tags\":[\"CI/CD\",\"Feature Management\",\"Continuous Delivery\",\"Progressive Delivery\",\"Devops\"],\"lang\":\"en-us\",\"slug\":\"what-is-progressive-delivery-all-about\",\"first_publication_date\":\"2020-11-30T05:57:45+0000\",\"last_publication_date\":\"2026-09-04T20:58:16+0000\",\"uid\":\"what-is-progressive-delivery-all-about\",\"url\":\"/blog/what-is-progressive-delivery-all-about/\",\"link_type\":\"Document\",\"key\":\"c13abc5f-9e5e-4f65-9d54-65ad569364e5\",\"isBroken\":false}},{\"post\":{\"id\":\"ZU2XLBAAACAAjSNc\",\"type\":\"blog_post\",\"tags\":[\"Feature Flags\",\"Feature Flagging Best Practices\",\"Test In Production\",\"testing in production\",\"beta testing\",\"Targeting\",\"Kill Switch\"],\"lang\":\"en-us\",\"slug\":\"dont-ship-software-on-weekends-ever-again.-heres-the-secret\",\"first_publication_date\":\"2023-11-29T15:10:15+0000\",\"last_publication_date\":\"2024-05-28T16:58:39+0000\",\"uid\":\"5-best-practices-to-ship-fast-without-ruining-your-weekends\",\"url\":\"/blog/5-best-practices-to-ship-fast-without-ruining-your-weekends/\",\"link_type\":\"Document\",\"key\":\"eb391b61-d9de-4699-9618-437842063e3e\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Continuous Integration and Continuous Delivery (CI/CD) have become fundamental practices for reliably delivering high-quality software at scale. CI/CD provides the framework to streamline development processes, reduce risks, and accelerate time to market.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CI/CD isn't just a set of tools and processes—it's a shift in how software is developed, tested, and deployed. It automates repetitive tasks while delivering consistent quality, helping your development teams deliver features and fixes more rapidly (and with greater confidence).\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here's why CI/CD matters:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Accelerated Software Delivery: Automating the build, test, and deployment processes allows for faster and more frequent releases.\",\"spans\":[{\"start\":0,\"end\":30,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Improved Code Quality: Continuous integration frequently merges and tests code to catch bugs early and maintain high code quality throughout development.\",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Better Collaboration: CI/CD creates a culture of shared responsibility and collaboration between development and operations teams, breaking down silos and improving overall workflows.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Fewer Deployment Risks: CI/CD reduces the risk associated with large-scale deployments by deploying smaller, incremental changes. Feature flags and automated rollbacks improve stability and control.\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Faster Feedback Loops: Automated testing and continuous monitoring provide immediate feedback on code changes to let developers identify and address issues quickly.\",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Below, we'll walk you through all the CI/CD best practices that'll help you streamline DevOps workflows.\",\"spans\":[{\"start\":87,\"end\":103,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/devops-vs-cicd/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c691b7db-25ad-4c84-bf5f-f08fdac1e09f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"CI/CD best practices to streamline DevOps workflows\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Implementing CI/CD is a transformative step towards more reliable (and efficient) software delivery. However, implementing it alone isn't enough—you'll need to follow a handful of best practices to create secure and scalable CI/CD pipelines.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$f9e3a119-b862-4f23-bb2a-8ac31bf5d613\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"1. Commit frequently\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"1. Commit frequently\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"One of the foundational principles of CI/CD is to commit code changes frequently. This practice keeps changes small, manageable, and easier to integrate, leading to a more stable and reliable codebase. Frequent, smaller commits minimize the risk of large, complex merges and reduce the likelihood of conflicts and bugs.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"\\\"Think big, act small,\\\" says Darrin Eden, a Senior Software Engineer at LaunchDarkly. \\\"The most frequent source of outages is code deployments. Make the smallest change possible that helps build shared knowledge and trust. If possible, avoid batching changes and deploy a single change at a time. Build in adaptive capacity for people to be resilient while responding to incidents.\\\"\",\"spans\":[{\"start\":24,\"end\":40,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.linkedin.com/in/darrin-eden/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$1a3ee58c-d20f-4861-8713-d7eb3329a64c\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"2. Optimize pipeline stages\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"2. Optimize pipeline stages\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The first step in optimizing your CI/CD pipeline is identifying stages where delays or inefficiencies occur. Use monitoring tools to track the performance of each stage and pinpoint areas that slow down the process. Once identified, work on eliminating these bottlenecks by refining processes, optimizing resource allocation, or parallelizing tasks.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Running tasks in parallel drastically reduces pipeline execution time. For example, you can run unit tests, integration tests, and static code analysis simultaneously rather than sequentially. This approach leverages available resources more efficiently and speeds up the overall pipeline.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Regularly monitor the performance of your CI/CD pipeline. Use metrics and logs to track key performance indicators (KPIs) such as build time, test duration, and deployment frequency. Continuously analyze this data to identify areas for improvement and make necessary adjustments to maintain optimal performance.\",\"spans\":[{\"start\":161,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Caching and reusing build artifacts saves significant time during the pipeline execution. For example, if you have dependencies or libraries that don't change often, cache them so they don't need to be rebuilt or downloaded every time. This reduces redundancy and speeds up the build process.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a0d0398a-0d32-4354-a7de-3701d34c098c\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"3. Build code artifacts once \",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"3. Build code artifacts once \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Build your code once and then use the same build artifacts across all environments. This approach maintains consistency, reduces duplication, and minimizes the risk of inconsistencies between environments.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Multiple builds can lead to subtle differences in the artifacts, even if the source code hasn't changed. These differences can cause inconsistencies that are hard to diagnose and resolve.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Using the same artifacts across development, testing, staging, and production environments helps you eliminate discrepancies from multiple builds. This consistency guarantees that what you test is exactly what you deploy, reducing the risk of unexpected issues in production.\",\"spans\":[{\"start\":45,\"end\":52,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environments-101-definition-types-and-best/\",\"target\":\"_self\"}},{\"start\":54,\"end\":61,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-staging-environment/\",\"target\":\"_self\"}},{\"start\":67,\"end\":90,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-production-environment/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here are a few best practices to keep in mind:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Centralized Artifact Repository: Store build artifacts in a centralized repository. Tools like JFrog Artifactory or Nexus Repository Manager can manage and distribute these artifacts across your pipeline stages.\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"strong\"},{\"start\":95,\"end\":112,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://jfrog.com/artifactory/\",\"target\":\"_blank\"}},{\"start\":116,\"end\":140,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.sonatype.com/products/sonatype-nexus-repository\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Immutable Artifacts: Once an artifact is built, help it remain immutable. Any changes to the code should trigger a new build, resulting in a new artifact version.\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automated Build Processes: Automate your build process to consistently create and store artifacts. Use CI/CD tools like Jenkins, GitLab CI, or AWS CodePipeline to manage and automate these builds.\",\"spans\":[{\"start\":0,\"end\":26,\"type\":\"strong\"},{\"start\":120,\"end\":127,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/\",\"target\":\"_blank\"}},{\"start\":129,\"end\":138,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.gitlab.com/ee/ci/\",\"target\":\"_blank\"}},{\"start\":143,\"end\":159,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codepipeline/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"LaunchDarkly Deployments: Use LaunchDarkly's feature flags to decouple deployment from release and deploy consistent build artifacts across environments while controlling feature rollouts.\",\"spans\":[{\"start\":0,\"end\":26,\"type\":\"strong\"},{\"start\":62,\"end\":94,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"For AI and ML workloads specifically, see our article on CI/CD pipelines for containerized AI development.\",\"spans\":[{\"start\":57,\"end\":105,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/best-ci-cd-pipelines-for-containerized-ai-development/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c7c19ce8-d163-420c-8e8a-ff1557b44168\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"4. Automate tests\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"4. Automate tests\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Automated testing keeps your code reliable, maintainable, and ready for deployment at any time. Here are a few automated tests you should run to improve your CI/CD pipeline:\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/automated-testing-in-launchdarkly/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Unit Tests: These tests focus on individual components or functions of your codebase to guarantee that each part works as expected in isolation. They are typically fast to run and should cover as much of the codebase as possible.\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integration Tests: These tests verify that different components of your application work together correctly. They help identify issues that may not be apparent in isolated unit tests but become evident when components interact.\",\"spans\":[{\"start\":0,\"end\":18,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"End-to-End Tests: These tests simulate real user scenarios and validate the entire application workflow from start to finish. They guarantee that the application functions correctly in a production-like environment (covering everything from the user interface to the database).\",\"spans\":[{\"start\":0,\"end\":17,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Prioritize faster tests (such as unit tests) early in the pipeline to catch issues quickly. Follow up with integration and end-to-end tests to validate more complex interactions. Make test results easily accessible to developers—with clear reporting and dashboards—to highlight any issues that need to be addressed.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Tools can help with your automation processes. Use infrastructure as code (IaC) tools like Terraform or Ansible to automate the setup of testing environments. Integrate automated testing tools with your CI/CD pipeline. Tools like Selenium, JUnit, and TestNG can help automate various types of tests and integrate seamlessly with CI/CD platforms.\",\"spans\":[{\"start\":91,\"end\":100,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.terraform.io/\",\"target\":\"_blank\"}},{\"start\":104,\"end\":111,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.ansible.com/\",\"target\":\"_blank\"}},{\"start\":230,\"end\":238,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.selenium.dev/\",\"target\":\"_blank\"}},{\"start\":240,\"end\":245,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://junit.org/\",\"target\":\"_blank\"}},{\"start\":251,\"end\":257,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://testng.org/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"However, keep in mind that automated testing isn't an end-all-be-all solution.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$a2e9f093-3b54-451f-8ccb-6f90d9c831c9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Automating your processes is great for efficiency, but it can introduce security risks, too. Get your security team involved from the start and use security scanning tools in your pipelines to keep everything safe.\\\" — Darrin Eden, Senior Software Engineer, LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$a66c101d-c70b-412d-8387-c4ebdad0b4c4\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"5. Keep builds fast and simple\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Fast builds provide quicker feedback loops, allowing developers to identify and fix issues sooner. This accelerates the development process and improves overall efficiency.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$6cd508bd-000d-4f9c-bc46-88a66d12d021\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Matching the workload to a correctly sized cluster of runners, both vertically and horizontally, guarantees efficient resource utilization and faster build times.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$6230ec54-75a8-4cd2-82fe-c8b29ba8ab64\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Carefully manage and optimize your project's dependencies and build configurations. Unnecessary or outdated dependencies can slow down build times and introduce potential conflicts. Review and update dependencies regularly, and use dependency management tools to streamline this process.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$da09606a-c713-4f42-b307-670c45426c75\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Containerizing the workflow, minimizing dependencies, and monitoring workflow velocity with alerts on performance drops can lead to more stable and faster builds.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$d85f0459-505e-4730-894b-397e52155216\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Use straightforward and consistent build scripts and avoid overly complex configurations. This speeds up builds, reduces the likelihood of errors, and makes it easier to update and manage the build process over time.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Using feature flags with LaunchDarkly can help keep your builds fast and simple by enabling you to deploy features incrementally and test them in production environments. This approach reduces the need for complex branching strategies and allows you to focus on maintaining a clean and streamlined codebase.\",\"spans\":[{\"start\":6,\"end\":19,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_self\"}},{\"start\":133,\"end\":169,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$43255c30-1560-4286-a096-506412f44bf7\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"6. Use shared pipelines (DRY)\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"6. Use shared pipelines (DRY)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Adopting a \\\"Don't Repeat Yourself\\\" (DRY) approach helps you maintain efficient and maintainable CI/CD pipelines. Reusing pipeline configurations across projects promotes consistency, reduces duplication, and streamlines development processes.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The DRY principle stresses reducing repetition in your code and configurations. In the context of CI/CD pipelines, this means creating reusable components and templates that can be shared across multiple projects.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Instead of writing separate CI/CD configurations for each project, create common templates and configurations that can be reused. This saves time and guarantees that best practices and standards are consistently applied. Use tools that support templating and reusable configurations, such as:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Jenkins Shared Libraries\",\"spans\":[{\"start\":0,\"end\":24,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/doc/book/pipeline/shared-libraries/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"GitLab CI templates\",\"spans\":[{\"start\":0,\"end\":19,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.gitlab.com/ee/development/cicd/templates.html\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"YAML anchors in AWS CodePipeline\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/blogs/opensource/using-aws-codepipeline-and-open-source-tools-for-at-scale-infrastructure-deployment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature flags help you adopt the DRY approach by allowing you to manage feature releases consistently across multiple projects. Centralizing feature flag configurations guarantees all projects follow the same release practices, reducing the risk of inconsistencies and simplifying feature management.\",\"spans\":[{\"start\":0,\"end\":28,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/feature-flags/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$c3b7b4fc-f187-4610-9ab9-e808238f3be4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"7. Take a security-first approach\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"7. Take a security-first approach\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Adding security checks and practices throughout the pipeline helps you identify and mitigate vulnerabilities early. Here's how to make that happen:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automate Security Tests: Integrate automated security tests into your CI/CD pipeline. Double-check your tests run with every code commit and provide immediate feedback to developers.\",\"spans\":[{\"start\":0,\"end\":24,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Use Security Plugins and Tools: Leverage security plugins and tools that integrate with your CI/CD platform. These tools can provide real-time analysis and alerts for potential security issues.\",\"spans\":[{\"start\":0,\"end\":31,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Conduct Regular Audits: Regularly audit your CI/CD pipeline and application code to maintain compliance with security standards and best practices. Address any identified issues quickly to maintain a strong security posture.\",\"spans\":[{\"start\":0,\"end\":23,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Educate and Train Developers: Provide ongoing education and training for your development team on secure coding practices and the latest security threats.\",\"spans\":[{\"start\":0,\"end\":29,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature flags let you control feature rollouts and manage access to new functionality by decoupling deployments from release—this lets you perform security testing on features in a production-like environment before they are widely available.\",\"spans\":[{\"start\":104,\"end\":139,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75bebe19-5af7-4421-87c4-7e819d95e1e9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"8. Create test environments on demand\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"8. Create test environments on demand\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"On-demand test environments allow you to create and dismantle testing setups dynamically based on your testing needs. Spinning up and tearing down environments as needed helps you better mimic production conditions, test thoroughly, and maintain resource efficiency.\",\"spans\":[{\"start\":10,\"end\":27,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environments-101-definition-types-and-best/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Replicate the production environment as closely as possible—this includes matching the following:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Configurations\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Software versions\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Networking settings\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Data sets\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Accurate test environments help identify issues that might only surface under production conditions.\",\"spans\":[{\"start\":9,\"end\":26,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/test-environment-best-practices-8-you-need-to-know/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Containerize your applications and dependencies to create isolated test environments. Containers can be quickly deployed, scaled, and removed, making them ideal for on-demand testing.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75e73ca7-96e1-48c6-9619-634010bfac0b\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Inconsistent environments can cause confusion and make it difficult to transfer knowledge and skills from development to production. Using containerization and creating consistent, reproducible builds guarantees your test environments accurately simulate production services.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$0993fbcd-1f91-4a06-929c-54c3eb8f6089\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"9. Monitor and measure your pipeline\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"9. Monitor and measure your pipeline\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Comprehensive monitoring and logging provide visibility into every aspect of your CI/CD pipeline. Use monitoring tools like Prometheus, Grafana, Datadog, or Elastic Stack to collect and visualize data on pipeline performance.\",\"spans\":[{\"start\":124,\"end\":134,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://prometheus.io/\",\"target\":\"_blank\"}},{\"start\":136,\"end\":143,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://grafana.com/\",\"target\":\"_blank\"}},{\"start\":145,\"end\":152,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.datadoghq.com/\",\"target\":\"_blank\"}},{\"start\":157,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.elastic.co/elastic-stack\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Logging tools help capture detailed information about each pipeline run, including build times, test results, and deployment statuses. This visibility allows you to detect anomalies, understand trends, and diagnose issues promptly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Here are a handful of metrics to watch and track:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Build Time: The time it takes to complete a build from start to finish.\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deployment Frequency: How often code changes are deployed to production.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Lead Time: The time it takes from code commit to deployment in production.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Mean Time to Recovery (MTTR): The average time it takes to recover from a failed deployment.\",\"spans\":[{\"start\":0,\"end\":28,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZtC8cBAAAB8AJLMF\",\"type\":\"blog_post\",\"tags\":[\"mean time to restore\",\"MTTR\",\"dora metrics\"],\"lang\":\"en-us\",\"slug\":\"mean-time-to-restore-mttr-what-it-is--how-to-reduce-it\",\"first_publication_date\":\"2024-09-11T23:24:30+0000\",\"last_publication_date\":\"2026-09-10T15:40:06+0000\",\"uid\":\"mean-time-to-restore-mttr\",\"url\":\"/blog/mean-time-to-restore-mttr/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":0,\"end\":29,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Test Pass Rate: The percentage of tests that pass successfully.\",\"spans\":[{\"start\":0,\"end\":15,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Analyze the data from your monitoring and logging tools regularly to identify bottlenecks and inefficiencies in your pipeline. Address issues quickly to prevent them from impacting overall performance.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$75ebcce9-a8dd-4112-a53e-b4e03cfc1608\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"10. Involve the whole team in CI/CD implementation\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"10. Involve the whole team in CI/CD implementation\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Encourage a culture where everyone (from developers to operations and QA) feels responsible for the CI/CD pipeline's success. Promote cross-functional collaboration and guarantee that all team members understand their roles and how their contributions impact the overall process. Shared ownership leads to better communication, faster problem-solving, and a more cohesive team effort.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Provide your team with the necessary skills and know-how to implement and maintain CI/CD practices. Offer training sessions, workshops, and access to learning resources on CI/CD tools, automation practices, and DevOps methodologies. Encourage team members to share their knowledge and experiences through internal presentations, documentation, and peer learning sessions.\",\"spans\":[{\"start\":211,\"end\":231,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/devops-vs-cicd/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Create an environment where feedback is welcomed and valued. Regularly solicit feedback from team members on the CI/CD processes and tools being used. Conduct retrospectives and incident reviews to review what's working well and what needs improvement. Use this feedback to make iterative improvements to your CI/CD pipeline.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$e293f3ca-7455-4c2c-93e8-6afa8432b23f\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"11. Implement progressive delivery strategies\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"11. Implement progressive delivery strategies \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Progressive delivery builds upon the core principles of CI/CD by introducing additional control mechanisms that mitigate the risks associated with continuous deployment. It introduces safeguards and control levers that reduce the risks of continuous deployments.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"At a basic level, progressive delivery entails gradually releasing code changes. You may start a rollout with a canary deployment, for example, in which you release new features to a small subset of users—letting you monitor the impact of new features on a small scale and quickly address any issues. If the canary test is successful, the feature can be gradually rolled out to more users. \",\"spans\":[{\"start\":18,\"end\":38,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-progressive-delivery-all-about/\",\"target\":\"_self\"}},{\"start\":112,\"end\":129,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"You could then expand the rollout to beta users, then to users in the Western U.S., then Eastern U.S., and so on until you’ve released to all intended users.\",\"spans\":[{\"start\":37,\"end\":47,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly provides a robust feature management platform that enables safe and efficient progressive delivery. You can use feature flags to control feature visibility, conduct canary tests, and manage rollouts.\",\"spans\":[{\"start\":31,\"end\":58,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/feature-management/\",\"target\":\"_self\"}},{\"start\":178,\"end\":190,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-canary-testing-a-detailed-explanation/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$94f63642-a2e3-47f7-b11d-883133178037\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"12. Choose your CI/CD tools with care\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"12. Choose your CI/CD tools with care\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Look for tools that address your key challenges, whether it's automation, testing, deployment, or monitoring. Here are a few factors to consider:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Scalability: Double-check that the tools can scale with your organization's growth. They should handle increased workloads and larger projects without compromising performance.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integration: Choose tools that integrate easily with your existing systems and workflows. This includes your version control system, build tools, testing frameworks, and deployment platforms.\",\"spans\":[{\"start\":0,\"end\":12,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Community Support: Choose tools with solid community support and active development. An active community can provide valuable resources, plugins, extensions, and quick answers to issues.\",\"spans\":[{\"start\":0,\"end\":18,\"type\":\"strong\"}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$40356067-3f72-40d9-a79d-002684589b81\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"\\\"Combining multiple complex tools into a continuous workflow demands increasing expertise and maintenance. Whenever possible, outsource to SaaS solutions to simplify management. As your system grows in complexity and scale, be ready to insource components and integrations. Leveraging open-source tools can also provide valuable community support and resources.\\\" — Darrin Eden\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"simple_quote$3edb3f01-4549-4fdf-ab0b-ebba4f5c08ac\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"13. Create a culture of continuous improvement\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading3\",\"text\":\"13. Create a culture of continuous improvement\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Open communication and regular feedback are the foundations of continuous improvement:\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Environment: Foster an environment where team members feel comfortable sharing their thoughts, ideas, and concerns.\",\"spans\":[{\"start\":0,\"end\":13,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Feedback: Regularly solicit feedback on your CI/CD processes and tools, and use this input to identify areas for improvement.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Meetings: Conduct regular team meetings, retrospectives, and post-incident reviews to discuss successes and challenges openly.\",\"spans\":[{\"start\":0,\"end\":10,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Schedule regular reviews of your CI/CD pipeline to identify bottlenecks, inefficiencies, and areas that could benefit from automation. Use metrics and feedback to guide these reviews, and implement changes incrementally to avoid disrupting ongoing work. Identify repetitive tasks that can be automated and implement the necessary tools and scripts to handle them.\",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$9f54259c-5194-45a1-8afa-92c37e651b87\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Adopt CI/CD best practices with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Adopt CI/CD best practices with LaunchDarkly\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Implementing these CI/CD best practices helps you accelerate your development process, reduce deployment risks, and continuously improve your workflows—and those are essential outcomes for delivering high-quality software consistently and reliably.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"And we can help.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly's feature management platform empowers you to implement progressive delivery strategies, manage feature flags, and maintain safe and controlled rollouts. This lets you decouple deployments from releases, perform canary and blue/green deployments, and facilitate quick rollbacks.\",\"spans\":[{\"start\":236,\"end\":258,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-a-definition-and-introductory/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Start your free trial today (or get a demo) to see how LaunchDarkly can help you ship faster, safer, and smarter software.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://app.launchdarkly.com/signup?_gl=1*i99fys*_gcl_au*MTI4Mjc0NDg5Ny4xNzE2MjIxMzg2\",\"target\":\"_blank\"}},{\"start\":32,\"end\":42,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[],\"id\":\"wysiwyg$95d15822-d6b7-4985-9a11-9fd53193b3f4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Ultimate Guide to CI/CD Best Practices to Streamline DevOps\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Learn the fundamental CI/CD best practices that'll help you streamline and improve DevOps workflows.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"Light green infinity loop CI/CD best practices blog post image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/Zo1hWB5LeNNTw9CB_24-07-CICDBestPractices.png?auto=format,compress\",\"id\":\"Zo1hWB5LeNNTw9CB\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZfysZxEAACQAD_2k\",\"uid\":\"what-is-software-deployment\",\"url\":\"/blog/what-is-software-deployment/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZfysZxEAACQAD_2k%22%29+%5D%5D\",\"tags\":[\"decouple deploy and release\",\"Blue-green deployment\",\"canary deployment\",\"Deployment\",\"software deployment\"],\"first_publication_date\":\"2024-03-22T01:46:58+0000\",\"last_publication_date\":\"2026-09-04T20:57:27+0000\",\"slugs\":[\"what-are-software-deployments-methodology--best-practices\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"What Are Software Deployments? Methodology + Best Practices\",\"spans\":[]}],\"author\":{\"id\":\"Y0SoxBAAACMAoQ6O\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"peter-mccarron\",\"first_publication_date\":\"2022-10-10T23:20:40+0000\",\"last_publication_date\":\"2022-10-10T23:20:40+0000\",\"uid\":\"peter-mccarron\",\"url\":\"/blog/author/peter-mccarron/\",\"link_type\":\"Document\",\"key\":\"eb41dc63-8ff6-45e1-8cca-b04ace6a7227\",\"isBroken\":false},\"timestamp\":\"2024-03-21T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f2d3ecd0-ea2b-41fb-9dd9-15b7efe6a3f6\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"45d5f6d0-ce4b-4beb-8cdd-8c7fc9b7bfcd\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"5d7f1699-5464-4285-b2e8-87671559ea26\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"What is a software deployment? Featured blog post image - code snippets, colorful UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress,format\u0026rect=0,0,3999,2314\u0026w=3000\u0026h=1736\",\"id\":\"ZfyttxEAACQAEAOO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.7502160760587727,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZfS70RAAACIAo9RW\",\"type\":\"blog_post\",\"tags\":[\"Blue-green deployment\",\"canary deployment\",\"Progressive Delivery\",\"Feature Flags\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"6-deployment-strategies-and-how-to-choose-the-best-for-you\",\"first_publication_date\":\"2024-03-15T22:10:01+0000\",\"last_publication_date\":\"2026-09-04T20:54:26+0000\",\"uid\":\"deployment-strategies\",\"url\":\"/blog/deployment-strategies/\",\"link_type\":\"Document\",\"key\":\"4cc5f96f-169e-407d-9796-0ce8910c244c\",\"isBroken\":false}},{\"post\":{\"id\":\"ZbrU9xMAACQA53Bi\",\"type\":\"blog_post\",\"tags\":[\"feature management\",\"Feature Management\",\"Canary Release\",\"Canary Launch\",\"canary testing\",\"canary deployment\",\"Deployment\",\"Feature Flags\",\"deployments\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"why-decouple-deployments-from-releases\",\"first_publication_date\":\"2024-01-31T23:17:14+0000\",\"last_publication_date\":\"2026-08-20T20:07:25+0000\",\"uid\":\"why-decouple-deployments-from-releases\",\"url\":\"/blog/why-decouple-deployments-from-releases/\",\"link_type\":\"Document\",\"key\":\"0f8adfe2-f73c-401e-9b9a-24cc6303acb2\",\"isBroken\":false}},{\"post\":{\"id\":\"Y9AdshAAAMxtkWoo\",\"type\":\"blog_post\",\"tags\":[\"release process\",\"release management\",\"canary deployment\",\"Feature Management\"],\"lang\":\"en-us\",\"slug\":\"what-is-a-software-release\",\"first_publication_date\":\"2023-02-09T18:58:33+0000\",\"last_publication_date\":\"2026-08-20T20:05:34+0000\",\"uid\":\"guide-what-is-a-software-release\",\"url\":\"/blog/guide-what-is-a-software-release/\",\"link_type\":\"Document\",\"key\":\"6b22ebb1-a59e-4e5b-b055-6679ec191704\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"key_takeaway_title\":[],\"takeaway_paragraph\":[]},\"items\":[{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Developing a comprehensive software deployment strategy is difficult for most organizations.\",\"spans\":[]}]},{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Changes in the software deployment landscape and technologies have only increased this difficulty.\",\"spans\":[]}]},{\"bullet_point\":[{\"type\":\"paragraph\",\"text\":\"Feature management solutions reduce the complexity and friction of software deployments.\",\"spans\":[]}]}],\"id\":\"key_takeaways$45c77f20-f7eb-45ed-b867-3fcf8dd62bd8\",\"slice_type\":\"key_takeaways\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Software deployment is the process and strategy of taking the new code that developers write and pushing it to an environment where the new functionality is consumable for end users. Sounds simple enough, right? The whole point of writing code and software development is to solve a problem for our customers, and yet, software deployment is slowed by developers spending time on bug fixes or other potential issues. In this article, we’ll explore:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Why software deployments are so challenging for many organizations?\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"What does a software development process look like in practice?\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"What the difference is between software deployments and releases? \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"How do we optimize the release process with feature management? \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Let’s start by defining exactly what we mean by “software deployments”. \",\"spans\":[]},{\"type\":\"embed\",\"oembed\":{\"embed_url\":\"https://launchdarkly.wistia.com/medias/xzcxkg67s5\",\"type\":\"video\",\"version\":\"1.0\",\"title\":\"What is a Software Deployment?\",\"provider_name\":\"Wistia, Inc.\",\"provider_url\":\"https://wistia.com\",\"thumbnail_url\":\"https://embed-ssl.wistia.com/deliveries/4117999f8477c0523e228ea31d21ed67.jpg?image_crop_resized=960x540\",\"thumbnail_width\":960,\"thumbnail_height\":540,\"html\":\"\u003ciframe src=\\\"https://fast.wistia.net/embed/iframe/xzcxkg67s5\\\" title=\\\"What is a Software Deployment? Video\\\" allow=\\\"autoplay; fullscreen\\\" allowtransparency=\\\"true\\\" frameborder=\\\"0\\\" scrolling=\\\"no\\\" class=\\\"wistia_embed\\\" name=\\\"wistia_embed\\\" msallowfullscreen width=\\\"960\\\" height=\\\"540\\\"\u003e\u003c/iframe\u003e\\n\u003cscript src=\\\"https://fast.wistia.net/assets/external/E-v1.js\\\" async\u003e\u003c/script\u003e\"}}]},\"items\":[{}],\"id\":\"wysiwyg$3a364000-0171-4471-98b8-0c3ed91143b4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Understanding software deployments\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Understanding software deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"When we talk about software deployments, traditionally we’re referring to the process of pushing changes to a specific environment and making that new application code available to some sort of end-user group. Feature flags have changed the way we think about software deployments by allowing us to separate the deployment (pushing code to a production environment) from the release (making those features available to users). We’ll dive into that a bit more later, but let’s first pick apart the deployment aspect of things.  \",\"spans\":[{\"start\":210,\"end\":223,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Think about the websites you visit, the apps you use on your phones, the virtual interfaces that you interact with on a daily basis. All of these solutions are the result of software deployments. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployments are complex. The complexity is rooted in application architecture. Software applications consist of two umbrella categories: front-end and back-end components. The frontend refers to what we see or interact with, and the backend is the underlying plumbing that makes everything work. This plumbing is critical and where we see a lot of complexity start to arise, but why? \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"A history of how infrastructure has shaped deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The history of software is a story of infrastructure and application code. Application code has changed in the sense of better frameworks and more developer-friendly tooling, but largely the process of writing code has remained the same. Infrastructure, on the other hand, has undergone some fairly large changes over time.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Going back a few years, we saw the introduction of virtual machines. Virtual machines (VMs) enabled organizations to simulate computer environments without requiring end-users to have access to physical hardware. And while VMs made software more readily available, it was still strongly tied to an organization's physical footprint, e.g., the number of data centers and servers they maintained that actually powered these VMs. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Then came containers, which reshaped the way that software was packaged and delivered. Developers create shareable images with all the necessary dependencies pre-loaded, reducing the time that it takes for code to go live. As a result, organizations realized they could run software anywhere, and the major cloud providers started offering compute as a service. This, in turn, led to the creation of orchestration platforms like Kubernetes, which helped organizations run their containers at scale. But Kubernetes still requires a great deal of operational overhead and management, which ultimately still slows down the deployment process.\",\"spans\":[{\"start\":400,\"end\":423,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-container-orchestration-exactly-everything/\",\"target\":\"_self\"}},{\"start\":503,\"end\":513,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-with-kubernetes/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cut to today, where we’re seeing a rise in application hosting platforms like Vercel, Netlify, Railway, and more. These platforms enable developers to deploy code without having to also maintain the back-end infrastructure that that code will rely on.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Understanding that developers just want to push code\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"So what was the point of this exploration? The common thread here is that developers just want to be able to push code quickly to a live environment without having to think about the underlying infrastructure system. This is the core challenge in software deployments: finding a way to accelerate code delivery without having to wait on the infrastructure to catch up. And there’s evidence to show that increased deployment frequency leads to better organizational results. As illustrated in Google’s State of DevOps Report, higher performing teams tend to deploy more frequently. Specifically, the highest-performing organizations deploy new code multiple times a day! \",\"spans\":[{\"start\":413,\"end\":433,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-frequency/\",\"target\":\"_self\"}},{\"start\":501,\"end\":523,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://cloud.google.com/devops/state-of-devops\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This push to accelerate code delivery is what ultimately led to the rise of DevOps. Combining the efforts of development teams and operations teams to build dynamic infrastructure environments that can support frequent software deployments. The key element to achieve this is automation. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"How infrastructure automation accelerates software delivery\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"DevOps tooling prevents infrastructure from becoming a block for accelerating software deployments. Infrastructure automation tools like HashiCorp Terraform, RedHat Ansible, Chef, and Puppet all help accelerate the creation and ease the ongoing configuration management of infrastructure environments. Rather than having operators individually provision and configure environments via ticketing requests, organizations can standardize configurations and package them in shareable templates for repeatable use. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Having the ability to create infrastructure on-demand reduces friction in the software delivery process. In fact, organizations have started leveraging these infrastructure and configuration management tools as part of their broader deployment pipeline through a process called CI/CD. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Continuous Integration/Continuous Delivery (CI/CD)\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CI/CD, or Continuous Integration/Continuous Deployment, is a philosophy based on consistently iterating on code and immediately deploying those changes through automation. The idea is that by continuously pushing changes, development teams become unblocked in their ability to innovate. As we just covered, making infrastructure available on-demand opens the door for this methodology and results in tooling like GitHub Actions, CircleCI, GitLab, and many many more. \",\"spans\":[{\"start\":128,\"end\":170,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/how-it-works/platform/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The goal of these software deployment tools is to automate the delivery of new code to different environments, e.g., development, staging, or production environments. Using infrastructure automation and CI/CD tooling, organizations can push new code into their version control systems, provision a new infrastructure environment, and deploy the changes to that environment with little to no developer or operator intervention. Using CI/CD tooling and automation helps reduce the chances of human-error where changes are pushed to the wrong environment. That is how you accelerate software deployments.\",\"spans\":[{\"start\":18,\"end\":43,\"type\":\"hyperlink\",\"data\":{\"id\":\"Z1JFiBAAAB8AhKhz\",\"type\":\"blog_post\",\"tags\":[\"software development\"],\"lang\":\"en-us\",\"slug\":\"the-ultimate-software-application-deployment-tools-for-2025\",\"first_publication_date\":\"2024-12-06T00:38:50+0000\",\"last_publication_date\":\"2026-08-20T20:30:10+0000\",\"uid\":\"software-development-tools\",\"url\":\"/blog/software-development-tools/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":130,\"end\":137,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-staging-environment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$9d6218f7-bcca-4cc2-858c-5b1e73b2ea66\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"How organizations deploy software\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"How organizations deploy software\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Now that we’ve established what a software deployment is and how we’ve gotten to where we are today, let’s explore what a modern software deployment strategy looks like. Remember that the goal is to create a frictionless process for organizations to push code as it is written, not all at once through a “big-bang” deployment.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Planning and preparing software deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The first stage for creating a software deployment process is actually planning what the organizational process will look like. In this stage, we’re trying to define what tools are going to be used, who the relevant stakeholders are, what the pipeline looks like, how approvals are going to work, etc. In many cases, this phase should be focused on optimization and gathering specific requirements for the software development lifecycle. From there, development teams will create documentation around what the proposed workflow should look like. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"From a tooling perspective, this is where many proof of concepts are likely to occur. Organizations have to make a decision on what their application architecture will look like (microservices vs. monolithic), where their infrastructure will reside (on-premise vs. cloud), and a whole host of other details. Having a strong deployment strategy is the foundation of achieving that Continuous Delivery state because you need a way to create consistency across all teams within the organization. \",\"spans\":[{\"start\":179,\"end\":207,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/migrating-legacy-monolithic-applications-microservices/\",\"target\":\"_blank\"}},{\"start\":250,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/the-pros-and-cons-of-cloud-deployment-models/\",\"target\":\"_self\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Developing and staging deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The next step on the deployment checklist is for developers to start writing their code. Organizations need to have determined what their testing environments will look like and how many environments they are looking to maintain, e.g., dev, testing, QA, staging, etc. This is the first entrypoint for some of our CI/CD solutions. As code is written and gets ready for testing, it needs to be pushed to each of these various environments. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Many developers will use tools like GitHub Actions or CircleCI in conjunction with a series of tags to make sure that code gets delivered to the correct location. When new code is published within their version control system, the commit will trigger a new build for packaging that release and then send it to the requested destination. It’s here that code may undergo a series of unit tests as well to ensure application stability before moving to the production environment.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Release and rollout processes\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Following QA and testing, the new software can now move to the production environment, sometimes referred to as a release cycle, but we’ll explain in a moment how that is actually slightly different. This is one of the precarious stages of the deployment process because it’s where external users start to interact with the new code. No matter how much testing you do, there’s always the chance of bugs creeping through. To minimize the potential impacts of those bugs, organizations have a few different deployment methods.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Blue/green deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Blue/green deployments are one of the most common deployment methods that organizations rely on today. The idea is that you evenly distribute application resources between two environments, blue for the previous version of your application and green for the new one. You then use networking patterns to control access to each environment and then test/measure how the new functionality in the green environment performs. If things are going well, you can divert more traffic to the green environment, if not, revert everyone back to the blue environment and revert the new deployment back to development and avoid downtime.  \",\"spans\":[{\"start\":0,\"end\":22,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-a-definition-and-introductory/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Canary deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Unlike blue/green deployments, canary deployments are the process of deploying specific subsets of code in a new environment and slowly introducing live traffic to those new capabilities, e.g., introducing a new API for your front-end services. Just as the name suggests, this new feature is the “canary in the coal mine” and serves as an early warning system of a potential larger problem that could lead to extended downtime. The idea is that by isolating new capabilities and starting with a smaller subset of users, you can control the impact radius when something goes wrong.   \",\"spans\":[{\"start\":31,\"end\":49,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/four-common-deployment-strategies/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Shadow deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If there are major concerns about making new capabilities visible to production end users, then shadow deployments may be right for that particular organization. With a shadow deployment, the new capabilities are released in a parallel production environment, but not made available like they are in blue/green or canary deployments. This allows organizations to test the new environment in what will be a live production environment, but can instead use internal testers to validate performance.\",\"spans\":[{\"start\":411,\"end\":433,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-production-environment/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading4\",\"text\":\"Rolling deployments\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"If maintaining additional environments, like in a canary, blue/green, or shadow deployments, is too burdensome, organizations may opt for a rolling deployment. Rolling deployments are the process of incrementally replacing elements of an application, infrastructure and all. For example, Amazon Web Services (AWS) talks about rolling deployments in the context of ECS. When a new version of an application is ready to be launched, the old container is deprecated and one containing the new version of the application is provisioned. Rolling deployments are very similar to the concept laid out in the Ship of Theseus thought experiment, where the ship was slowly replaced over time eventually becoming something new altogether. Microservice or container architectures make rolling deployments a bit more viable because the application consists of individual parts that are more easily swapped out. \",\"spans\":[{\"start\":140,\"end\":158,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/blue-green-deployments-versus-rolling-deployments/\",\"target\":\"_blank\"}},{\"start\":600,\"end\":635,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Ship_of_Theseus\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Downsides of common deployment strategies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"While each of these deployment strategies do offer a large number of benefits, they all carry a similar challenge: infrastructure management. Even in the case of rolling deployments, you're cycling through a container lifecycle which can introduce risk if the new container doesn’t provision correctly. Seems like a lot of risk when you’re just testing a new placement for a banner on your home page. Feature flags and feature management solutions help organizations streamline their rollout strategies, but without the additional overhead of managing infrastructure. We’ll touch on that again later in this article.   \",\"spans\":[{\"start\":20,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/deployment-strategies/\",\"target\":\"_blank\"}},{\"start\":401,\"end\":414,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Monitoring and feedback strategies\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"The final piece of the deployment process is monitoring metrics of changes in real-time and gathering end user feedback, either directly or indirectly. Utilizing application performance monitoring tools (APMs) like Datadog, Dynatrace, New Relic, or Honeycomb help organizations monitor the status of their software updates and help detect any performance issues that could lead to a larger outage. Having a robust monitoring system in place is critical for accelerating the software deployment cadence because it provides a safety net to become aware of hiccups before they become bigger problems. \",\"spans\":[],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$965152e8-d964-406e-8ee4-cd7833e6d5f5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Difference between deploy and release\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Difference between deploy and release\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"At this point, you may be feeling like a lot of the topics discussed are very familiar. If you’ve read or seen any of our content on decoupling deploy from release, that may be why. And so the natural next question is, what is the difference between software deployment and software release? For a full breakdown, make sure you check out this article where we cover it in detail about the differences between the deploy and release. For brevity’s sake though, we’ll define it like this—”software deployment” is the process of pushing new code to an environment, “software release” is making it available and accessible to end users. \",\"spans\":[{\"start\":378,\"end\":431,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Feature management for continuous deployment\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"As mentioned earlier, the challenge with the deployment strategies is that they all rely on infrastructure management and resources. While this is viable for some larger releases, not every single one needs to have its own dedicated environment for testing in production. Feature flags allow us to control the release process without interrupting the continuous deployment process. Code is still pushed as it is completed,  but features are made available based on an entirely different lifecycle and approval process and does not require additional deployments. \",\"spans\":[{\"start\":249,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Experimenting on deployments \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Beyond just the control element, feature management platforms allow us to run experiments to measure the effectiveness of our deployments. Organizations can gather both performance and business insights by running A/B tests within a single application vs. across multiple deployments. Feature management platforms like LaunchDarkly make it possible to integrate experimentation into the release strategy instead of something that needs to be configured as a separate process. \",\"spans\":[{\"start\":74,\"end\":89,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/a-guide-to-experimentation-in-launchdarkly/\",\"target\":\"_blank\"}},{\"start\":214,\"end\":223,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/mobile-app-ab-testing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Remediation and incident management\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"APMs and monitoring tools provide a great safety net, but they don’t alleviate the pain of a rollback process. In the event that an issue with a deployment is detected and the code has to be removed, it requires essentially another software deployment, just with a previous version of the code. Feature management solutions can leverage the monitoring data from APMs, but when problems are detected, a feature can just be toggled off, no new deployment required. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Software deployments are a challenging but necessary process in any modern organization. Software solutions touch so many aspects of our daily lives and in order to provide the best experience possible, developers need to be able to deploy quickly and frequently. We discussed the various deployment strategies, but having a strong feature management solution is also critical. If you’re curious to see how others have implemented feature management strategies in their software deployment strategies, take a look at some examples from IBM, Hireology, CircleCI, and Coder.\",\"spans\":[{\"start\":536,\"end\":539,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/ibm/\",\"target\":\"_blank\"}},{\"start\":540,\"end\":550,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/hireology/\",\"target\":\"_blank\"}},{\"start\":552,\"end\":560,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/case-studies/circleci/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$e4fd7080-df23-4bbb-a3d0-03f367c8a300\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Using LaunchDarkly to deploy software faster with less risk\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Using LaunchDarkly to deploy software faster with less risk\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly is a feature management and experimentation platform that enables 5K+ organizations to dramatically improve their software deployment processes. LaunchDarkly gives product delivery teams the safeguards and control to continuously deliver software. Moreover, it enables you to progressively deliver new features to specific audience segments and/or random percentages of users—all at your own pace. It also enables you to immediately disable broken features in runtime without needing to push a fix through your deployment pipeline. \",\"spans\":[{\"start\":18,\"end\":65,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/how-it-works/platform/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$d4de90e0-f032-4533-be66-9f3feba5e5a8\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":\"YouTube\",\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"KvAJ6t7TPlA\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$f147f603-6f6b-4c80-91f2-a9f5bb089c64\",\"slice_type\":\"youtube_video\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Software Development Best Practices \u0026 Methods\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Software development strategies and processes change over time. Learn how organizations deploy software and best practices for software development.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"What is a software deployment? Featured blog post image - code snippets, colorful UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/c5dc3ae0-8b56-4958-94f8-9d5b933ecf30_24-03+What+is+a+software+deployment+%281%29.png?auto=compress,format\",\"id\":\"ZfyttxEAACQAEAOO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZetbBBAAAB8ATTQL\",\"uid\":\"modern-devops-operating-continuously\",\"url\":\"/blog/modern-devops-operating-continuously/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZetbBBAAAB8ATTQL%22%29+%5D%5D\",\"tags\":[\"product experimentation\",\"a/b testing\",\"DevOps\",\"Progressive Delivery\",\"Experimentation\",\"Trunk-Based Development\"],\"first_publication_date\":\"2024-03-11T18:30:50+0000\",\"last_publication_date\":\"2026-07-15T17:02:14+0000\",\"slugs\":[\"modern-devops-the-shift-to-operating-continuously\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"Modern DevOps: The Shift to Operating Continuously\",\"spans\":[]}],\"author\":{\"id\":\"YWB-eRIAACAAUdSy\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"brian-rinaldi\",\"first_publication_date\":\"2021-10-12T16:47:53+0000\",\"last_publication_date\":\"2021-10-12T16:47:53+0000\",\"uid\":\"brian-rinaldi\",\"url\":\"/blog/author/brian-rinaldi/\",\"link_type\":\"Document\",\"key\":\"bcf2609e-4494-4b7f-9423-fa9b538b0a52\",\"isBroken\":false},\"timestamp\":\"2024-03-11T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"c38d6302-2932-4e1a-9ab2-7ca9869d7df3\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4pxEAACEArtx-\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"progressive-delivery\",\"first_publication_date\":\"2020-09-23T21:05:46+0000\",\"last_publication_date\":\"2024-07-02T17:49:20+0000\",\"uid\":\"progressive-delivery\",\"url\":\"/blog/category/progressive-delivery/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Progressive Delivery\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"258c0a0a-e99c-48e9-bddf-8b4b057b4d2d\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"da1290a8-bd46-4d17-ba4b-98aea48733eb\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWmRAAACEAgbPz\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-experimentation\",\"first_publication_date\":\"2023-11-28T21:08:06+0000\",\"last_publication_date\":\"2024-07-02T17:46:43+0000\",\"uid\":\"product-experimentation\",\"url\":\"/blog/category/product-experimentation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product experimentation\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"86375b6c-248a-4c73-9c9c-d02cb220651c\",\"isBroken\":false}}],\"excerpt\":[],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":3000,\"height\":1736},\"alt\":\"Modern-DevOps-the-Shift-to-Operating-Continuously-featured image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress,format\u0026rect=0,0,3999,2314\u0026w=3000\u0026h=1736\",\"id\":\"Ze9HvhAAACAApSFy\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.7502160760587727,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZUxxHRIAACUAWUdu\",\"type\":\"blog_post\",\"tags\":[\"feature management\",\"release management\",\"Canary Release\",\"Progressive Delivery\",\"Feature Flags\",\"feature flag management\"],\"lang\":\"en-us\",\"slug\":\"the-new-software-release-lifecycle-releasing-measuring-and-iterating-on-software-in-production-with-launchdarkly\",\"first_publication_date\":\"2023-11-16T00:07:50+0000\",\"last_publication_date\":\"2026-07-15T17:08:19+0000\",\"uid\":\"the-new-software-release-lifecycle\",\"url\":\"/blog/the-new-software-release-lifecycle/\",\"link_type\":\"Document\",\"key\":\"e6b69665-fa63-4157-9e01-dc3a0266e5e2\",\"isBroken\":false}},{\"post\":{\"id\":\"ZTG9zxAAACIAQUTT\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"galaxy-23-product-release\",\"first_publication_date\":\"2023-10-24T17:37:05+0000\",\"last_publication_date\":\"2024-01-18T23:18:41+0000\",\"uid\":\"galaxy-2023-product-release\",\"url\":\"/blog/galaxy-2023-product-release/\",\"link_type\":\"Document\",\"key\":\"aee8f962-8ecf-479f-918c-e633b2e3010d\",\"isBroken\":false}},{\"post\":{\"id\":\"ZXdTGRAAACAAFTGy\",\"type\":\"blog_post\",\"tags\":[\"AWS\",\"GenAI\",\"AI\",\"Amazon Bedrock\",\"feature flags\"],\"lang\":\"en-us\",\"slug\":\"ai-development-with-launchdarkly-release-measure-and-iterate\",\"first_publication_date\":\"2023-12-11T19:05:39+0000\",\"last_publication_date\":\"2026-09-04T18:21:31+0000\",\"uid\":\"ai-development-with-launchdarkly\",\"url\":\"/blog/ai-development-with-launchdarkly/\",\"link_type\":\"Document\",\"key\":\"19d947b1-e577-4df5-9d8b-79298af28f33\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Images can have an enormous impact on our understanding of a concept. This is hard wired in our brains. Studies have shown that it can take 1.2 to 2.4 seconds to comprehend an eight-word sentence while we process images in as little as 13 milliseconds. Thus images have a unique ability to influence our comprehension and perception.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"What does this have to do with DevOps? The traditional DevOps infinity loop (pictured below) is frequently attributed to Dustin Whittle in a post written in 2013. (An interesting side note is that the image itself is now broken in the original post.)\",\"spans\":[{\"start\":141,\"end\":161,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.appdynamics.com/blog/engineering/devops-scares-me-part-2/\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$97969289-8a85-45eb-b0e4-3854cecb7b43\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":946},\"alt\":\"DevOps-infinity-loop image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/ee3b706b-7c2d-4a9a-9cdd-d71d2c29a226_DevOps.png?auto=compress,format\",\"id\":\"Ze9IzxAAACAApSY_\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$2cb4196f-51a9-4e91-a7c4-5f65a583a3fd\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"As you can see, it portrays DevOps as a sequence of phases. Visually, the completion of the prior phase is what triggers the next phase. For example, planning begins and ends before code and coding ends before the build begins and so on. However, the way this illustration was described in the text of the post focused more on the link between Dev and Ops and not the specific sequence of phases that the image has seared into our brains:\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$72c4f8b8-f950-4717-bd25-be2c56a71296\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"content\":[{\"type\":\"paragraph\",\"text\":\"“I like to think DevOps can be explained simply as operations working together with engineers to get things done faster in an automated and repeatable way.”\",\"spans\":[]}]},\"items\":[{}],\"id\":\"simple_quote$94cf0461-ae54-4a90-8875-af95ff69ec6e\",\"slice_type\":\"simple_quote\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"DevOps arguably never fell neatly into the sequential phases that the illustration lays out but, without a doubt, modern DevOps doesn't occur in a sequence of phases. These processes occur in parallel and often out of order. For example, testing may occur both before and after release if you use a test in production strategy and, if you're using feature flags, release will come after deploy.\",\"spans\":[{\"start\":348,\"end\":361,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-are-feature-flags/\"}}]},{\"type\":\"paragraph\",\"text\":\"But if DevOps does not have a linear structure, how do we make sense of it and build the processes effectively?\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Taking a different perspective\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"In our book Operating Continuously, Edith Harbaugh, Cody De Arkland and I focus on the operations side of the loop. We lay out the best practices and processes that organizations are using to collaborate continuously and eliminate the step-by-step processes and dependencies that create the “baton handoff” motion between teams. Instead we lay out a concept of continuous operation with steps that happen in parallel, enabling ops teams to operate more efficiently and companies to deliver value to users at a consistent and rapid pace.\",\"spans\":[{\"start\":12,\"end\":34,\"type\":\"em\"},{\"start\":12,\"end\":34,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.amazon.com/Operating-Continuously-Practices-Accelerating-Software/dp/1098117298\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$b02d63c8-e7fa-4089-87a1-ed6d60bec172\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1800,\"height\":930},\"alt\":\"New Ops loop in DevOps infinity loop - diagram\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/5d436bd4-7188-42ce-b6b0-c96d2a1c669d_Ops+Cycle.png?auto=compress,format\",\"id\":\"Ze9KbxAAACAApS2F\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$ff7d3531-035e-4158-af26-fd83040f41dc\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"You'll notice that some steps have been reordered and others renamed. Let's look at how this differs from the traditional ops cycle.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Deploy\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The deployment process covers the workflow of moving compiled code onto a destination infrastructure or software platform. While this may seem fundamentally the same as the old model, a key differentiator here is that deploy and release are decoupled via feature flags. Wherein the old model would use a branching strategy that meant that deploys were large and infrequent, modern deploys are small and frequent using a trunk-based development model. This helps eliminate many of the bottlenecks—for instance, complex merge conflicts—that plagued the traditional system.\",\"spans\":[{\"start\":218,\"end\":250,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/why-decouple-deployments-from-releases/\"}},{\"start\":420,\"end\":449,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/introduction-to-trunk-based-development/\"}}]},{\"type\":\"heading3\",\"text\":\"Release\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Most frequently, in the old model, deployment and release were linked. In fact, that is why the order was inverted in the older model, because release was about preparing code to be ready to deploy since, once code was deployed, it was typically live in production. Strategies like canary deployments existed, but required a lot of cost and effort to implement because they necessitated standing up duplicate infrastructure. Feature flags brought a fundamental shift to this way of operating by making things like testing in production, beta programs, progressive delivery and targeted rollouts relatively trivial to implement and thereby shifted the release responsibility to the ops side of the circle.\",\"spans\":[{\"start\":514,\"end\":535,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/testing-in-production-for-safety-and-sanity/\"}},{\"start\":537,\"end\":550,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/beta-testing-programs/\"}},{\"start\":552,\"end\":572,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/progressive-delivery/\"}}]},{\"type\":\"heading3\",\"text\":\"Operate\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Incidents play a heavy role in operations because, when incidents aren’t handled well, your operations team may find it has little time for anything else. A newer model of operations utilizing feature flags minimizes the risk of incidents via kill switches that can mitigate an incident immediately—without rollbacks or redeploys. Increasingly, these kill switches are being automated as well, meaning incidents can be detected by an observability platform integration and resolved automatically, without the need of manual human intervention. These sorts of changes free up resources to focus on the people, processes and culture that make an organization operate smoothly and efficiently.\",\"spans\":[{\"start\":243,\"end\":256,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-a-kill-switch-software-development/\"}}]},{\"type\":\"heading3\",\"text\":\"Measure and experiment\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Monitoring and observability are now blended into the operate step, creating the opportunity to implement practices that quantify the efficacy of the features we are releasing to end users more proactively. Measuring is about identifying, tracking, and learning from activities and events that occur within your application or from user interactions with it. Whereas experimentation enables us to proactively test whether we are releasing the right features to our users. Does the new code bring the performance boost we anticipated? Does a design change impact conversions? Answering these types of questions via experimentation can provide invaluable insights for our future decisions.\",\"spans\":[{\"start\":367,\"end\":382,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/core-services/experimentation/\"}}]},{\"type\":\"heading2\",\"text\":\"Where to go from here\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"How does this all connect with the dev side of the infinity loop? Well, rather than an infinite loop, I'd think of it more like concentric circles sharing a common center or, even better, interconnected gears. In a gears metaphor, both circles, dev and ops, are running continuously and powering each other. Alternatively, if one side is failing to keep up or grinds to a halt, it will negatively impact the other side's ability to keep churning. Each side needs the other to turn efficiently to operate at full force.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"How does this look in practice? The full book offers a lot of guidance around processes and implementation for your operations that can take many of the high level concepts discussed here and turn them into actionable steps. Grab your copy of Operating Continuously here.\",\"spans\":[{\"start\":225,\"end\":271,\"type\":\"strong\"},{\"start\":225,\"end\":270,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.amazon.com/Operating-Continuously-Practices-Accelerating-Software/dp/1098117298\"}},{\"start\":243,\"end\":265,\"type\":\"em\"}]}]},\"items\":[{}],\"id\":\"wysiwyg$b00a3463-b1bc-449b-8f3e-04de517d5c56\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Modern DevOps: Operating Continuously\",\"spans\":[],\"direction\":\"ltr\"}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Modern DevOps runs as continuous, parallel workflows, not linear phases. Learn how feature flags and rollouts help teams manage release risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2314},\"alt\":\"Modern-DevOps-the-Shift-to-Operating-Continuously-featured image\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/1b0fa2f8-2967-4246-858c-fce80d1fa6fd_24-03-Modern+DevOps_+The+Shift+to+Operating+Continuously.png?auto=compress,format\",\"id\":\"Ze9HvhAAACAApSFy\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"ZTG9zxAAACIAQUTT\",\"uid\":\"galaxy-2023-product-release\",\"url\":\"/blog/galaxy-2023-product-release/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22ZTG9zxAAACIAQUTT%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2023-10-24T17:37:05+0000\",\"last_publication_date\":\"2024-01-18T23:18:41+0000\",\"slugs\":[\"galaxy-23-product-release\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":null,\"title\":[{\"type\":\"heading1\",\"text\":\"Galaxy ‘23 Product Release\",\"spans\":[]}],\"author\":{\"id\":\"ZPn68BAAACEAs_R3\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"jenna-bilotta\",\"first_publication_date\":\"2023-09-07T16:31:59+0000\",\"last_publication_date\":\"2023-09-07T16:31:59+0000\",\"uid\":\"jenna-bilotta\",\"url\":\"/blog/author/jenna-bilotta/\",\"link_type\":\"Document\",\"key\":\"dc795d1f-949f-4f08-b49c-8cc39c6a6ac0\",\"isBroken\":false},\"timestamp\":\"2023-10-25T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X2u4kxEAACAArtwf\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-updates\",\"first_publication_date\":\"2020-09-23T21:05:26+0000\",\"last_publication_date\":\"2024-07-02T17:56:11+0000\",\"uid\":\"product-updates\",\"url\":\"/blog/category/product-updates/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product Updates\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"e73d36cf-bbdd-4803-ac76-92a2d8fd42b3\",\"isBroken\":false}},{\"category\":{\"id\":\"X87cyRIAACQAhLSw\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"featured-collection\",\"first_publication_date\":\"2020-12-08T01:54:21+0000\",\"last_publication_date\":\"2023-11-29T05:54:06+0000\",\"uid\":\"featured-collection\",\"url\":\"/blog/category/featured-collection/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Featured Collection\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0aa12b2a-a89a-4a9c-9336-52dca9b143b1\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"d32d6f9b-3799-4e51-8518-8260075ef37e\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4ahEAACIArttd\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"feature-flags\",\"first_publication_date\":\"2020-09-23T21:04:45+0000\",\"last_publication_date\":\"2024-07-02T17:48:39+0000\",\"uid\":\"feature-flags\",\"url\":\"/blog/category/feature-flags/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Feature Flags\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"cab279b0-99dd-4ebe-b4f8-7643b67af54b\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZVlBAAACEAga9o\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"de-risked-releases\",\"first_publication_date\":\"2023-11-28T21:06:47+0000\",\"last_publication_date\":\"2024-07-02T17:45:25+0000\",\"uid\":\"de-risked-releases\",\"url\":\"/blog/category/de-risked-releases/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"De-risked releases\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0c483968-f97b-4f5a-855d-ba9402ab68fa\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWcRAAACAAgbM9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"targeted-experiences\",\"first_publication_date\":\"2023-11-28T21:07:32+0000\",\"last_publication_date\":\"2024-07-02T17:46:07+0000\",\"uid\":\"targeted-experiences\",\"url\":\"/blog/category/targeted-experiences/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Targeted experiences\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"47ba34ee-b544-4057-a7c2-9de4b272429c\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZW1RAAACAAgbUE\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"mobile-release-optimization\",\"first_publication_date\":\"2023-11-28T21:09:09+0000\",\"last_publication_date\":\"2024-07-02T17:47:38+0000\",\"uid\":\"mobile-release-optimization\",\"url\":\"/blog/category/mobile-release-optimization/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Mobile release optimization\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"3a5d45bc-228f-4ada-9335-d9a6b4799600\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZWmRAAACEAgbPz\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"product-experimentation\",\"first_publication_date\":\"2023-11-28T21:08:06+0000\",\"last_publication_date\":\"2024-07-02T17:46:43+0000\",\"uid\":\"product-experimentation\",\"url\":\"/blog/category/product-experimentation/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Product experimentation\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"e3415b71-f7fa-43b4-86d8-357f7802203a\",\"isBroken\":false}},{\"category\":{\"id\":\"ZWZYYxAAACAAgbvp\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"migrations\",\"first_publication_date\":\"2023-11-28T21:15:19+0000\",\"last_publication_date\":\"2024-07-02T17:50:00+0000\",\"uid\":\"migrations\",\"url\":\"/blog/category/migrations/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Migrations\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"f8fc26d9-029d-4304-862c-cba9eccfdd82\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"Unlock the next frontier of DevOps with LaunchDarkly's most epic product release to date. \",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":true,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1157},\"alt\":\"Galaxy Product LaunchDarkly 2023\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/b86f6362-24b8-4e78-be16-7dca0206275b_image2.png?auto=compress,format\u0026rect=0,0,2000,1157\u0026w=2000\u0026h=1157\",\"id\":\"ZTG-GhAAAB8AQUYg\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"id\":\"ZUl9yBAAACEAJK6c\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"power-your-business-target-and-personalize-experiences-with-confidence\",\"first_publication_date\":\"2023-11-07T19:20:47+0000\",\"last_publication_date\":\"2025-06-24T20:50:46+0000\",\"uid\":\"galaxy-segment-builder\",\"url\":\"/blog/galaxy-segment-builder/\",\"link_type\":\"Document\",\"key\":\"70a6f81a-5219-44ae-aec2-349421c55515\",\"isBroken\":false}},{\"post\":{\"id\":\"ZUCE9BAAACEAtdet\",\"type\":\"blog_post\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"track-key-software-delivery-metrics-introducing-engineering-insights-hub\",\"first_publication_date\":\"2023-10-31T22:23:05+0000\",\"last_publication_date\":\"2024-10-16T20:48:08+0000\",\"uid\":\"track-key-software-delivery-metrics-engineering-insights-hub\",\"url\":\"/blog/track-key-software-delivery-metrics-engineering-insights-hub/\",\"link_type\":\"Document\",\"key\":\"180ac706-fffb-4b3d-9daf-3098d8cbbcc5\",\"isBroken\":false}},{\"post\":{\"id\":\"ZXitLhAAACcAtJ0g\",\"type\":\"blog_post\",\"tags\":[\"experiments\",\"product experimentation\",\"a/b testing\",\"AB Testing\",\"funnel experiments\",\"Experimentation\"],\"lang\":\"en-us\",\"slug\":\"out-of-the-box-funnel-experiments-are-here\",\"first_publication_date\":\"2023-12-12T19:52:08+0000\",\"last_publication_date\":\"2025-01-25T01:31:07+0000\",\"uid\":\"funnel-experiments-make-it-easier-than-ever-to-measure\",\"url\":\"/blog/funnel-experiments-make-it-easier-than-ever-to-measure/\",\"link_type\":\"Document\",\"key\":\"36eb9a34-51c7-406a-b14e-f0d1c9127c92\",\"isBroken\":false}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Discover the next frontier of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Many organizations struggle to balance the need to increase developer productivity, stabilize software releases, modernize their tech stack, keep customers engaged, and innovate faster than competitors. DevOps tools and practices have helped enable progress in those areas. But gaps remain. This is especially true when it comes to connecting software development to the customer experience.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"At LaunchDarkly, we are excited to announce the next frontier of DevOps with our latest product release. In this release, which we've unveiled at our Galaxy conference, we’re enabling product delivery teams to: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Improve the velocity and stability of software releases while removing the fear of customer outages\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Target and personalize product experiences to any customer segment\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Maximize the business impact of every software feature through experimentation\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Optimize mobile app experiences by enabling you to release mobile features and fixes on your schedule, not the app store’s\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Increase developer productivity through insights into key engineering metrics\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Read on for more detail on the game-changing features we've added to the LaunchDarkly platform!\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$53330f00-e434-4b83-95ee-ee36f80c9ec5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Release Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Release Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automation for governance and rollouts\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$6059a91e-3a92-485b-9482-09fa2fb4d22d\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Release Assistant product UI 1\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/8fd0cedc-f7db-4505-8e47-20b05c2b6473_release+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEYxIAACIAXC5H\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$a090842f-dbca-47e1-b75e-ca5d4b15c296\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Safe and effective feature releases are how software development organizations connect their code to the end-user experience. So it’s imperative to release without any negative impact on customers—or engineering teams. But too often, software development organizations struggle to incorporate best practices and governance into their release processes, and they end up with ad-hoc release practices that are manual and time-consuming for developers. Additionally, there’s often no easy way to see the status of releases across an organization, leading to more inefficiency. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Release Assistant provides the ability to align releases to organizational best practices at scale with visibility into the status of all releases across an organization. With Release Assistant, LaunchDarkly customers can:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Embed best practices into reusable release pipelines so every change can follow a successful path to production and ultimately save time\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Move flags across release pipelines knowing that LaunchDarkly will send an alert when phases are complete\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Track and know the exact release status of each feature with real-time visibility across each project for all of your stakeholders\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Release Assistant\",\"spans\":[{\"start\":0,\"end\":34,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/release-pipelines\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$54a813a6-226c-4bfe-b56e-3146e76d87e3\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Release Guardian\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Release Guardian\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automatically detect and resolve bugs\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$57cbfa48-ea49-49eb-b245-8b304913a382\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Release Guardian product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/a81d93c9-528a-445d-a068-0c60fdf3b3cd_release+guardian.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEhhIAACMAXC7H\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$2033f754-bc83-45a7-8446-331f287be2ca\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Bugs happen. Unfortunately, it just comes with the territory as a developer. Releasing a bug often results in end-users experiencing suboptimal application performance and, worst-case scenario, complete outages. Bugs disrupt your users, cost your company money, and cause your engineering team considerable stress.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"But what if it were possible for a tool to detect and mitigate application regressions before they became incidents? With the announcement of Release Guardian, available for early access customers today, LaunchDarkly provides a proactive safety net for even the most complex product releases. By monitoring metrics with the release context, we can detect issues with higher sensitivity—even in the smallest releases, where issues would previously have been obscured by noise in the wider system metrics. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Release Guardian introduces:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Observability at the feature level: Real-time metric monitoring and regression detection through active flag change monitoring, even for limited releases\",\"spans\":[{\"start\":35,\"end\":36,\"type\":\"strong\"}]},{\"type\":\"list-item\",\"text\":\"Automated incident response: Dynamic audience allocation and automated change reversion\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Join the waitlist to get early access to Release Guardian\",\"spans\":[{\"start\":0,\"end\":57,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/release-guardian-early-access\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$441078e6-b281-420d-b7f3-e848fd156fdf\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Migration Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Migration Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Migrate and modernize tech stacks without the pain\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$e5d926e7-9d90-40ab-95a5-db7ba5b14ee1\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Migration Assistant product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/e12cf591-7728-4854-833c-9f661c31ffac_migration+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThEqxIAACIAXC9s\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$461a8590-97a0-4c06-be6c-8c16a5a9b16f\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Traditional “big-bang” migrations are daunting, high-risk, and stressful for engineering teams. But even if a migration or modernization project is broken down into stages, they are time-consuming to coordinate, expensive, and difficult to track at each stage. And migrations are high-risk for businesses: failed migrations can lead to app downtime, causing customer churn, lost revenue, and negative brand sentiment. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"With the new LaunchDarkly Migration Assistant, now available in early access, engineering teams can control migrations through gradual rollouts so teams can modernize with more safety, predictability, and visibility. Whether you’re migrating to the cloud, a database, an API, or some other back-end service, Migration Assistant will help reduce risk, maintain business continuity, and let you measure consistency at every step. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"This is made possible with: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"New migration flag types purpose-built to minimize migration effort and lower risk\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Controlled cohort progression to allow incrementally moving traffic allocation\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Consistency checks to maintain confidence in the results between old and new datastores\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Tracked migration metrics, like latency and error rate, to help inform each stage and step of a migration  \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Migration Assistant\",\"spans\":[{\"start\":0,\"end\":36,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/flag-types/migration-flags\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$6c06b3bc-af37-47d4-b253-e6a8c0b8b620\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Segment Builder\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Segment Builder\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Target using data that powers your business\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$5fd39f6e-b5ec-4f6c-b863-5eabd5fdd066\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Segment Builder product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/901d88e7-44bb-49f1-9434-d2c561b1c8ac_target+segment.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThExhIAACMAXC_j\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$b39e47a1-1c6e-4006-aaa2-7470a91267ce\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Delivering precise, tailored customer experiences is paramount in modern software delivery. But it’s easier said than done for engineering and product teams—especially when customer data is siloed from the release process. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"LaunchDarkly’s latest targeting capabilities make delivering the right experiences to the right audiences faster and easier. Now, with LaunchDarkly’s Segment Builder, customers can:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Effectively target using existing data sources, including Twilio Segment, Hightouch, Heap, RudderStack, Census, Tealium (coming soon), and Fulcrum\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Intuitively set up targeting rules and centrally manage audiences and experiences with visibility and control over the entire targeting process\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Confidently scale the use of targeting across the business and empower more teams to leverage LaunchDarkly targeting capabilities without increasing risk\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Segment Builder\",\"spans\":[{\"start\":0,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/segments\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$422ad91e-3b35-4d70-afbf-c9cd243566bb\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Funnel Experiments\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Funnel Experiments\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Maximize the business impact of every product feature\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$dff0bd8e-c865-4c09-a320-216af23f4fc5\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Funnel experiments - Product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/7fe452b0-cb14-4473-8e0d-c5ea46a4f487_funnels.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThE5BIAACAAXDBo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$ee999a29-6432-49ce-ae3b-f3dcd6da9a29\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Experimentation is critical for measuring the business impact behind every feature release. However, far too many organizations struggle to get started with experimentation due to its complex nature, high learning curve, and disconnection from engineering processes. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"With LaunchDarkly Funnel Experiments, unlock the ability to drive data-informed product updates. Funnel Experiments give developers and product managers alike the ability to:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Safely and rapidly increase product performance by grouping experiment metrics to ensure effectiveness only improves over time\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Create specific experiments, such as user acquisition or monetization, to improve conversion rates and make data-informed product decisions\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Export experiment data and build custom analyses on results directly in your Snowflake data warehouse\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Funnel Experiments\",\"spans\":[{\"start\":0,\"end\":35,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/creating-experiments/funnel\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$af3c62f0-1120-4a20-ad59-a703e128150a\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Mobile Lifecycle Assistant\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Mobile Lifecycle Assistant\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Optimize the mobile app version lifecycle\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$a0a53d12-bd5d-45ea-8ea6-db614dcbc6d9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Mobile Lifecycle Assistant product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/3df4deed-b54c-4aea-b321-6ba45eb0b127_mobile+assistant.png?auto=compress,format\u0026rect=0,0,2800,1844\u0026w=1400\u0026h=922\",\"id\":\"ZThFBhIAACMAXDD_\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$9330908b-328f-4219-9b66-2244adb3fd8e\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Mobile app development is uniquely complex due to tedious app store approvals, the inability to remotely control in-app features in real-time, and rising user expectations. LaunchDarkly’s latest enhancements for mobile apps save teams time and make it easier to deliver reliable, personalized experiences. Mobile development teams can take back control over their mobile apps across every stage of the mobile app lifecycle and: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Quickly and easily target against common mobile application and device properties with auto-populated targeting contexts\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Easily target features to select audiences and deliver highly personalized experiences right from within LaunchDarkly\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Gracefully migrate devices off all legacy app versions and onto the latest app version—saving time and resources with the sunset of legacy app versions\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Maintain proper flag hygiene and ensure older app versions don’t break by deprecating flags before fully archiving them\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Mobile Lifecycle Assistant\",\"spans\":[{\"start\":0,\"end\":43,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/organize/applications\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$28bbafcc-f043-4344-b499-0e05127185e2\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Engineering Insights Hub\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Engineering Insights Hub\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Boost engineering efficiency with key metrics\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$82510cdd-4ed2-4286-8321-2569fd25dad9\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"image\":{\"dimensions\":{\"width\":1400,\"height\":922},\"alt\":\"Engineering Insights Hub product UI\",\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/78fb57e2-c2d7-4b36-aace-ac16cbd36364_Insights.png?auto=compress,format\u0026rect=0,0,1400,922\u0026w=1400\u0026h=922\",\"id\":\"ZThGLBIAACIAXDXO\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"lightbox\":true,\"image_link\":{\"link_type\":\"Any\"}},\"items\":[{}],\"id\":\"image$04bd6bef-381b-45e9-aea6-50de131bd88c\",\"slice_type\":\"image\",\"slice_label\":null},{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"LaunchDarkly has long enabled developers to deliver features and experiences that customers love—and do so in less time with less risk. But to effectively maximize and scale the impact of LaunchDarkly, it’s crucial to measure and quantify success. With access to key engineering metrics, organizations can make data-informed decisions and promote engineering efficiency. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"We are excited to announce the launch of the early access program waitlist for the LaunchDarkly Engineering Insights Hub. This feature set allows customers to:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Quickly and easily access organization-level engineering productivity and efficiency metrics across projects\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Gain deeper insight into critical project-level metrics, empowering teams to identify bottlenecks in workflows and processes\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Ensure proper flag health by promoting best practices and archiving flags safely\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Learn more about Engineering Insights Hub\",\"spans\":[{\"start\":0,\"end\":41,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://docs.launchdarkly.com/home/engineering-insights\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$f076b1d9-3ae0-489b-956b-eb9cd7ed1d90\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"toc_title\":[{\"type\":\"paragraph\",\"text\":\"Step into the future of DevOps\",\"spans\":[]}],\"wysiwyg\":[{\"type\":\"heading2\",\"text\":\"Step into the future of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"We hope you are as excited as we are about the latest releases and integrations unveiled at Galaxy! Our ultimate goal is to empower product delivery teams and developers to release software quickly and safely, create exceptional product experiences for every customer, and maximize overall business impact.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Are you ready to learn more about LaunchDarkly and how to take advantage of our latest product updates? Get a demo today.\",\"spans\":[{\"start\":104,\"end\":121,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\"}}]}]},\"items\":[{}],\"id\":\"wysiwyg$25ba4893-c3f4-476e-ba56-0f0936f6a6c4\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Galaxy '23 Product Release: Unlock the Next Frontier of DevOps\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"Don't miss LaunchDarkly's most epic product release to date. Improve the velocity and stability of releases, target and personalize product experiments, maximize the business impact of every feature through product experimentation, and more! \",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{}}},{\"id\":\"Yv_U7xEAAM1nADAe\",\"uid\":\"5-tools-for-deployment-automation\",\"url\":\"/blog/5-tools-for-deployment-automation/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Yv_U7xEAAM1nADAe%22%29+%5D%5D\",\"tags\":[\"feature management\",\"deployment\",\"automation\",\"feature flags\",\"deployment automation\"],\"first_publication_date\":\"2022-08-25T15:00:06+0000\",\"last_publication_date\":\"2026-08-24T18:22:06+0000\",\"slugs\":[\"5-tools-for-deployment-automation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":false,\"title\":[{\"type\":\"heading1\",\"text\":\"5 Tools for Deployment Automation\",\"spans\":[]}],\"author\":{\"id\":\"Yv_ZTBEAAB8AAEPC\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"joelolawanle\",\"first_publication_date\":\"2022-08-19T18:41:20+0000\",\"last_publication_date\":\"2022-08-19T18:41:20+0000\",\"uid\":\"joelolawanle\",\"url\":\"/blog/author/joelolawanle/\",\"link_type\":\"Document\",\"key\":\"f53d1fa7-255e-4609-9802-58725db00bfe\",\"isBroken\":false},\"timestamp\":\"2022-08-25T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X-ASDRAAACIAVk-r\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"industry-insights\",\"first_publication_date\":\"2020-12-21T03:10:10+0000\",\"last_publication_date\":\"2021-01-22T04:01:39+0000\",\"uid\":\"industry-insights\",\"url\":\"/blog/category/industry-insights/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Industry Insights\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"99913410-2e2e-4624-bdac-011b62cdd9bf\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"1c3b42e9-f3a6-45c1-b631-26e1b5ed58a9\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":false,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1126},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress,format\u0026rect=0,0,4000,2252\u0026w=2000\u0026h=1126\",\"id\":\"Yv_U1BEAACAAAC-n\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":\"Wistia\",\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"One of the ways you can optimize your company’s DevOps workflow—in other words, shorten your development lifecycle while maintaining high-quality code—is through continuous delivery (CD) and continuous integration (CI).\",\"spans\":[{\"start\":162,\"end\":181,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/guides/reconciling-change-management-and-continuous-delivery/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In CI, developers frequently commit their codes to a central repository such as GitHub, CodeCommit, or Bitbucket, using automated builds and testing to detect and fix errors as quickly as possible.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"In CD, automated testing checks any changes to the code and confirms that it’s ready for deployment. This speeds up the testing process as well as the release process, meaning multiple daily releases vs. the previous practice of monthly releases. \",\"spans\":[{\"start\":151,\"end\":166,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/how-to-build-a-release-management-process/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"heading2\",\"text\":\"Why Use Deployment Automation Tools?\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployment automation has become a key requirement for software companies in order to remain competitive, because it removes the need for manual deployments and largely eliminates the possibility of human error. Once a process is set, it will work the same way every time you deploy your software.\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-deployment-automation-and-why-should-you-care/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Jenkins\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Jenkins is an open-source automation server that automates building, testing, and deploying multiple types of projects. It can be used for both CI and CD practices. \",\"spans\":[{\"start\":0,\"end\":7,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Founded in 2011, Jenkins commands a market share of seventy-one percent with over one million users, according to Browserstack. The self-contained program also offers great community support.\",\"spans\":[{\"start\":114,\"end\":126,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.browserstack.com/blog/best-ci-cd-tools-comparison/\",\"target\":\"_blank\"}},{\"start\":173,\"end\":190,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jenkins.io/participate\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Another major advantage of Jenkins is that it offers over 1,400 plugins to extend its architecture and integrate with multiple other tools. And, if you can’t find the right plugin, you can create your own and add it to the index of 1,800-plus community contributions. \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: Jenkins is free to use, though you must maintain and update your host server. \\nFeatures of Jenkins\",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of Jenkins:\",\"spans\":[{\"start\":0,\"end\":20,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Installation packages for Windows, macOS, and Unix-like operating systems\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Web-based configuration including a built-in help function\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Extensible CI server \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Ability to distribute building, testing, and deployment tasks across multiple machines\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"AWS CodeDeploy\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"AWS CodeDeploy automates your software deployments to various AWS services as well as your own servers. This fully managed service allows you to quickly update your projects while keeping downtime to a minimum. You can also track the status of your deployments through the AWS Management Console or the AWS CLI. You can also access the vibrant support community here.\",\"spans\":[{\"start\":0,\"end\":14,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/\",\"target\":\"_blank\"}},{\"start\":30,\"end\":50,\"type\":\"hyperlink\",\"data\":{\"id\":\"ZfysZxEAACQAD_2k\",\"type\":\"blog_post\",\"tags\":[\"decouple deploy and release\",\"Blue-green deployment\",\"canary deployment\",\"Deployment\",\"software deployment\"],\"lang\":\"en-us\",\"slug\":\"what-are-software-deployments-methodology--best-practices\",\"first_publication_date\":\"2024-03-22T01:46:58+0000\",\"last_publication_date\":\"2026-09-04T20:57:27+0000\",\"uid\":\"what-is-software-deployment\",\"url\":\"/blog/what-is-software-deployment/\",\"link_type\":\"Document\",\"isBroken\":false}},{\"start\":362,\"end\":366,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://forums.aws.amazon.com/forum.jspa?forumID=179\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: There is no additional charge for code deployments to AWS services. For on-premises servers, you pay $0.02 per instance update. Check the pricing page for details.\",\"spans\":[{\"start\":0,\"end\":6,\"type\":\"strong\"},{\"start\":144,\"end\":156,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/pricing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of AWS CodeDeploy:\",\"spans\":[{\"start\":0,\"end\":27,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automatic scaling of new instances\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Deployment health tracking, which helps to stop a deployment if there are too many failed updates\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Key integrations provided by AWS CodePipeline, AWS CodeStar, and some AWS partners (like us!) to help teams implement and benefit from continuous integration\",\"spans\":[{\"start\":29,\"end\":45,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codepipeline/\",\"target\":\"_blank\"}},{\"start\":47,\"end\":59,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codestar/\",\"target\":\"_blank\"}},{\"start\":70,\"end\":82,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/codedeploy/product-integrations/\",\"target\":\"_blank\"}},{\"start\":84,\"end\":91,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://aws.amazon.com/marketplace/seller-profile?id=0f587861-6400-4321-b49e-eedcd4c645b8\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Agnostic model that works with any type of code\\n\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"TeamCity\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"First released in 2006, TeamCity is a powerful CI/CD server from JetBrains. Its out-of-the-box functionality helps many organizations and builds of all types. \",\"spans\":[{\"start\":24,\"end\":32,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jetbrains.com/teamcity/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"TeamCity integrates with 300+ plugins—small compared to Jenkins—but it offers some exclusive features. It integrates with Docker to create container builds and with Jira and Bugzilla for issue tracking, for example. It supports the .NET framework and offers cloud integration with AWS, Azure, GCP, and VMware. Furthermore, it has an active community forum, which is divided into general topics and plugin development sections.\",\"spans\":[{\"start\":139,\"end\":155,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/what-is-container-orchestration-exactly-everything/\",\"target\":\"_self\"}},{\"start\":340,\"end\":355,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://teamcity-support.jetbrains.com/hc/en-us/community/topics\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: TeamCity is a paid solution (though it has a free version) and offers two licenses. The Professional server license allows up to one hundred build configurations and three build agents for free; any additional build agent and ten build configurations will cost you $299. The Enterprise server license runs from three agents to over one hundred agents, providing unlimited build configurations from $1,999 to over $21,999. \",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"},{\"start\":76,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.jetbrains.com/teamcity/buy/#new\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of TeamCity:\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Track history of builds; see statistics and reports of test history; pin, tag, and add builds to favorites\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Track code quality to achieve better code quality on your project\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Simple configuration practices, avoiding code duplication, and providing several ways to reuse settings\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Support for key integrations with Docker, issue trackers, and NuGet to help teams implement and benefit from CI\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"CircleCI\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"CircleCI was founded in 2011, and is a CI/CD platform that automates building, testing, and deployment of software by connecting to GitHub, GitHub Enterprise, and BitBucket. Notifications can be automated as well, so that your team knows instantly if a testing pipeline fails. It has an active support community where you can use your experience to help others, and you can ask for help from others in the community.\",\"spans\":[{\"start\":39,\"end\":53,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://circleci.com/about/\",\"target\":\"_blank\"}},{\"start\":294,\"end\":311,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://discuss.circleci.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of CircleCI:\",\"spans\":[{\"start\":0,\"end\":21,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Automated test pipelines run in a clean container or VM\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Custom job configurations\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Runs on multiple OSs as well as in CircleCI’s cloud or on your own server\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"GitLab\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Launched in 2014, GitLab is an all-encompassing DevOps tool that helps developers plan and track projects, as well as build and manage code through a single version control system. You can check out the support community here.\",\"spans\":[{\"start\":18,\"end\":24,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://about.gitlab.com/\",\"target\":\"_blank\"}},{\"start\":221,\"end\":225,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://forum.gitlab.com/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"This open-source collaboration platform also integrates with existing tools, workflow policies, and project/quality management processes so that your applications can be built, tested, and updated quickly.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Cost: GitLab is free to individual users and offers 400 CI/CD minutes per month. Business plans include more planning and management tools, as well as much larger allotments of CI/CD minutes. You can read more about pricing here.\",\"spans\":[{\"start\":0,\"end\":5,\"type\":\"strong\"},{\"start\":224,\"end\":228,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://about.gitlab.com/pricing/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Features of GitLab:\",\"spans\":[{\"start\":0,\"end\":19,\"type\":\"strong\"}],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Version control and repository management \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Data management through branching tools \",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Integrated security and license compliance testing\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"list-item\",\"text\":\"Dashboards for status tracking and issues detection\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"heading3\",\"text\":\"Conclusion\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"Deployment automation helps teams deploy error-free software with less time and effort, so that they can focus their energy on writing code instead. This upholds CI/CD practices and enables developers to more frequently create and release high-quality software.\",\"spans\":[],\"direction\":\"ltr\"},{\"type\":\"paragraph\",\"text\":\"To further your CI/CD practices, consider LaunchDarkly, which enables you to better control and speed up the software lifecycle while eliminating the work and costs of managing features yourself. Grab a demo here. \",\"spans\":[{\"start\":196,\"end\":212,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/request-a-demo/\",\"target\":\"_blank\"}}],\"direction\":\"ltr\"}]},\"items\":[{}],\"id\":\"wysiwyg$48f2946b-8bcf-40b9-ad49-264a51dc80e7\",\"slice_type\":\"wysiwyg\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"5 Tools for Deployment Automation\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"There are multiple tools available for automated deployment. This article will examine five of them through factors including features, cost, and extensibility. \",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/eecf2675-ba22-4224-92a7-385451104b9b_22-08-5+tools+for+automation.png?auto=compress,format\",\"id\":\"Yv_U1BEAACAAAC-n\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}},{\"id\":\"Yp-1XRIAACIA4lWY\",\"uid\":\"enabling-digital-transformation-through-devops\",\"url\":\"/blog/enabling-digital-transformation-through-devops/\",\"type\":\"blog_post\",\"href\":\"https://launchdarkly.cdn.prismic.io/api/v2/documents/search?ref=aqRDsxYAADAAP-_K\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Yp-1XRIAACIA4lWY%22%29+%5D%5D\",\"tags\":[\"feature flags\",\"feature management\",\"digital transformation\",\"devops\"],\"first_publication_date\":\"2022-06-21T17:13:22+0000\",\"last_publication_date\":\"2024-01-17T05:03:08+0000\",\"slugs\":[\"enabling-digital-transformation-through-devops\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"is_preview_post\":null,\"title\":[{\"type\":\"heading1\",\"text\":\"Enabling Digital Transformation Through DevOps\",\"spans\":[]}],\"author\":{\"id\":\"YCr_NxIAACIAZP1e\",\"type\":\"author\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"launchdarkly\",\"first_publication_date\":\"2021-02-15T23:11:13+0000\",\"last_publication_date\":\"2025-08-14T18:56:59+0000\",\"uid\":\"launchdarkly\",\"url\":\"/blog/author/launchdarkly/\",\"link_type\":\"Document\",\"key\":\"70a9fd4f-aae2-4c00-9726-e1d9d7be4cf6\",\"isBroken\":false},\"timestamp\":\"2022-06-21T07:00:00+0000\",\"additional_authors\":[{\"additional_author\":{\"link_type\":\"Document\"}}],\"categories\":[{\"category\":{\"id\":\"X-ASLBAAACIAVlA9\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"best-practices\",\"first_publication_date\":\"2020-12-21T03:10:54+0000\",\"last_publication_date\":\"2021-01-22T04:01:23+0000\",\"uid\":\"best-practices\",\"url\":\"/blog/category/best-practices/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"Best Practices\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"0bfb03ee-a368-4cec-bef8-238bc0d569bc\",\"isBroken\":false}},{\"category\":{\"id\":\"X2u4RREAACEArtq1\",\"type\":\"category\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"devops\",\"first_publication_date\":\"2020-09-23T21:04:11+0000\",\"last_publication_date\":\"2020-09-29T07:10:41+0000\",\"uid\":\"devops\",\"url\":\"/blog/category/devops/\",\"data\":{\"category_name\":[{\"type\":\"heading1\",\"text\":\"DevOps\",\"spans\":[]}]},\"link_type\":\"Document\",\"key\":\"cf46fd98-771b-49ac-ad17-64dfd5f69674\",\"isBroken\":false}}],\"excerpt\":[{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]}],\"exclude_recent\":false,\"hide_date\":false,\"enable_table_of_content\":false,\"disable_related_content\":null,\"featured_image\":{\"dimensions\":{\"width\":2000,\"height\":1126},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress,format\u0026rect=0,0,4000,2252\u0026w=2000\u0026h=1126\",\"id\":\"YrH7oRIAAB8Au1eC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":0.5,\"background\":\"transparent\"}},\"related_posts\":[{\"post\":{\"link_type\":\"Document\"}}],\"video_id\":[],\"video_type\":null,\"body\":[{\"primary\":{\"toc_title\":[],\"wysiwyg\":[{\"type\":\"paragraph\",\"text\":\"Digital transformation refers to an organization’s leveraging of technology to improve how it delivers value to customers. In addition to a shift in technology, this also means a shift in culture, as businesses must constantly provide a service to end users ahead of their competitors. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Even in software-first companies, digital transformation is a necessary process. While some businesses might still rely on traditional practices and workflows in order to complete projects (it's all written down in a notebook or spreadsheet somewhere!), others use various digital tools and services. These improve their development and production procedures, leading to better collaboration, faster time-to-market, and more satisfied customers. All this can be achieved through incorporating DevOps practices. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"In the DevOps methodology, various tools and practices are used to better integrate the software development and IT teams, so that they can collaborate more effectively, automate as many processes as possible, and complete applications more quickly. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Why DevOps?\",\"spans\":[{\"start\":0,\"end\":11,\"type\":\"strong\"}]},{\"type\":\"paragraph\",\"text\":\"DevOps helps organizations shift their cultural mindset as well as their tools and workflow. This reimagining and automating of the production process increases their ability to respond to change and continuously improve their product, enabling them to better meet customer demands.\",\"spans\":[{\"start\":7,\"end\":26,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.atlassian.com/devops/what-is-devops/devops-culture\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Digital transformation is also an ongoing effort. Technology changes so quickly that individual teams might not be able to keep up. One strategy is to allow each team to focus on a smaller problem domain that helps them maintain expertise while they work in tandem with other teams. This enables the faster pace necessary for digital transformation.\",\"spans\":[{\"start\":26,\"end\":48,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/blog/overcoming-the-fears-of-app-modernization/\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Additionally, a faster pace and more integrated workflow enables businesses to better understand their end users and build products that meet their needs.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the ways DevOps achieves this:\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Advanced monitoring and remediation methods mean that problems are often found before the customer notices, or that the system degrades in a way that has only a marginal impact on the customer.\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Product teams are structured to receive customer feedback quickly and act on it.  \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"A decoupled digital architecture allows for many experiments to be run simultaneously, leading to faster results.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"At larger, more traditional organizations, it is common for teams to work in separate silos, not sharing information or communicating effectively. You can use DevOps to create a collaborative organizational culture, which helps achieve digital transformation more quickly. This can strengthen your organization and increase your chances of success.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the issues your company may face if it isn’t using DevOps: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Slow delivery to customers \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Many manual tasks with a high error rate \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Teams working in silos and not communicating\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Lack of ownership in the work \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Older tools and practices that don’t meet current industry needs\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A primary characteristic of DevOps culture is increased collaboration between the development and operations teams. This means that developers become more aware of operational concerns such as deployment and monitoring, and operations staff adopt new automation tools and practices. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Together, they use a technology stack and added tooling to speed up processes that historically have been manual and slow. Practices and tools that can assist with this process include prototyping tools, AB testing, automated testing, secret detection tools, continuous integration/continuous delivery (CI/CD), logging, and user analytics tracking. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Here are some of the benefits of switching to a DevOps culture: \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Faster delivery to customers\",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Automated repetitive tasks \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"Better collaboration among teams and more ownership of the product \",\"spans\":[]},{\"type\":\"list-item\",\"text\":\"New technologies to keep the organization competitive \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Keep in mind that most DevOps transitions are far from smooth. It costs time and effort to adopt new tools and services, as well as to train staff. Your teams may not be fully productive until the organization has completed the switch, which could take years. You should move into a DevOps transition with a good understanding of the time, money, and resources required and the benefits you will realize. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Benefits of DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The core cultural benefits of introducing DevOps in an organization are automation, testing, repeatable processing, and feature selection.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Automation\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Automating manual tasks such as testing, configuration, and deployment frees people up to focus on other valuable activities and reduces the chance of human error. This also facilitates easier collaboration within organizations. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"However, automation by itself is not the solution. Other factors in a successful DevOps switch are process and culture.\",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Testing\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A strong testing culture increases the quality of your organization’s products and increases your teams’ confidence to make changes without introducing defects. Testing is a core part of building quality into a development process. This includes cross-functional concerns such as performance and security. The techniques of continuous delivery, including self-testing code, allow for regular, low-risk deployments.\",\"spans\":[{\"start\":324,\"end\":343,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://www.youtube.com/watch?v=O5s36Mqw4uU\"}},{\"start\":355,\"end\":372,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Self-testing_code\"}}]},{\"type\":\"heading3\",\"text\":\"Repeatable Processing\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"When performing a repetitive task, such as running manual test scenarios of a product feature or copying files between servers for a manual deployment, a human will inevitably lose focus at some point, especially if the tasks are complicated or time-consuming. A DevOps culture encourages repeatable processing of these tasks, partly through automation. If the tasks are performed in the background without requiring constant human effort, your organization can save both time and production costs. \",\"spans\":[]},{\"type\":\"heading3\",\"text\":\"Feature Selection\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"When developers can quickly prototype and test ideas, teams can more easily experiment and respond to user feedback in quick iterations. They can then incorporate what they’ve learned into the product or service, shipping desired features more frequently. \",\"spans\":[{\"start\":76,\"end\":86,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/features/experimentation/\"}}]},{\"type\":\"paragraph\",\"text\":\"For example, customers may be struggling to sign into the product. Developers can quickly prototype other sign-in solutions such as magic links, a one-time password, or a single sign-on. They can test these prototypes out with some users to see if the proposed solutions work, and from that feedback decide that single sign-on is the most usable method. Developers can focus on expanding that solution, throwing away the other ideas at a lower cost since they were prototypes. This adds value to the final product and to the overall organization. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"DevOps unites people, processes, and technology: when all three are aligned toward the same business goals, it promotes quick innovation and an attitude of shared responsibility for the final product. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"How to Start with DevOps\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Beginning DevOps in an existing organization can be a challenging process because of the shift in culture as well as in technologies. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"To start, you need to support a culture of shared responsibilities. This means removing silos between development and operations. Each team should better understand what the other does and how they can best help the other team manage its workflow.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"As an example, the operations team can work closely with the development team when there are production bugs in order to understand how they triage, debug, and fix the issues. From this understanding, the operations team can suggest ways to resolve production bugs more quickly, such as creating an easier way for everyone to access production logs. DevOps culture blurs the line between the developer and operations teams and may eventually eliminate the distinction.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"Next you need to empower your teams. This means breaking away from the traditional command and control structure of organizations and moving toward self-organized, autonomous teams. To collaborate effectively, developers and operations staff need to be able to make decisions and apply changes without waiting on complicated decision-making processes. You should create a culture in which people trust each other and failure is viewed as part of the learning process, as opposed to something requiring punishment.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"The above changes will help you create a good foundation for your DevOps journey. All the other practices and processes that are part of DevOps, such as automation, testing, and experimentation, will build upon this foundation.\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"As a way of initiating a DevOps transformation, you could introduce a greenfield project, or an entirely new project that doesn’t need to be integrated with the previous work environment. This will allow you to form an autonomous team to launch and test new DevOps practices without needing to combine those with existing practices and processes.\",\"spans\":[{\"start\":70,\"end\":88,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://en.wikipedia.org/wiki/Greenfield_project\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"Another approach is to identify the organization’s highest-value project that suffers the biggest bottlenecks. Start to introduce DevOps practices to help reduce those bottlenecks. The highest-value project should be given the highest priority, since improving it will provide the biggest impact for customers. Doing this will also make it easier to introduce DevOps to the rest of the organization, because other projects will have fewer issues. \",\"spans\":[]},{\"type\":\"heading2\",\"text\":\"Conclusion\",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"A digital transformation is a complete business transformation that requires more than updating your IT system or creating some apps. To achieve this shift, you must reimagine how your company operates. The best way to begin your company’s digital transformation is to initiate a DevOps culture. \",\"spans\":[]},{\"type\":\"paragraph\",\"text\":\"One of the tools you can use in your DevOps practices is LaunchDarkly, which provides feature flags so that engineers and IT teams can deploy or disable new features without deploying the rest of the code. You can detect and fix bugs without relaunching the entire app or inconveniencing end users. Feature flags also allow teams to deploy code faster with a reduced failure rate. Learn more here or by watching the video below. \\n\\n\",\"spans\":[{\"start\":381,\"end\":396,\"type\":\"hyperlink\",\"data\":{\"link_type\":\"Web\",\"url\":\"https://launchdarkly.com/solutions/devops-site-reliability-engineer-teams/\",\"target\":\"_blank\"}}]},{\"type\":\"paragraph\",\"text\":\"\",\"spans\":[]}]},\"items\":[{}],\"id\":\"wysiwyg$e52261a1-6ba3-424c-8c94-7bed15f017ae\",\"slice_type\":\"wysiwyg\",\"slice_label\":null},{\"primary\":{\"video_type\":null,\"youtube_id\":[{\"type\":\"paragraph\",\"text\":\"pwA_Ehp2SMY\",\"spans\":[]}]},\"items\":[{}],\"id\":\"youtube_video$90ced48c-7173-43b9-aa42-0c779ffacf09\",\"slice_type\":\"youtube_video\",\"slice_label\":null}],\"meta_title\":[{\"type\":\"heading1\",\"text\":\"Enabling Digital Transformation Through DevOps\",\"spans\":[]}],\"meta_description\":[{\"type\":\"paragraph\",\"text\":\"This article will show how you can use DevOps to achieve digital transformation in your company.\",\"spans\":[]}],\"schema\":[],\"open_graph_image\":{\"dimensions\":{\"width\":4000,\"height\":2252},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly/118fedaf-8f25-4a11-b66c-cbdfaee79f38_22-06-Enabling+Digital+Transformation+Through+DevOps.png?auto=compress,format\",\"id\":\"YrH7oRIAAB8Au1eC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}}}}],\"title\":\"Related Content\",\"seeAllLink\":\"/blog/category/devops\",\"isNewBlogStyle\":true,\"extraWideCard\":true,\"perPage\":4,\"perPageTablet\":2,\"noFlex\":true,\"theme\":\"dark\",\"seeAllText\":\"See all posts on devops\"}]}]\n"])</script><script>self.__next_f.push([1,"3e:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__newsletterContainer\",\"children\":[\"$\",\"$L43\",null,{}]}]\n"])</script><script>self.__next_f.push([1,"3f:[\"$\",\"div\",null,{\"className\":\"styles-module__HXqOTa__g2BannerContainer\",\"children\":[\"$\",\"$L2c\",null,{\"href\":\"/g2-review/\",\"className\":\"styles-module__MISuva__blogG2Banner\",\"children\":[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerInner\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"$undefined\",[\"$\",\"img\",null,{\"className\":\"styles-module__MISuva__blogG2BannerImage\",\"src\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ainJTAeQX7-eXMEO_icon-bw--growing-up-arrow.svg\",\"alt\":\"Climbing up arrow\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"loading\":\"lazy\",\"fetchPriority\":\"$undefined\",\"onClick\":\"$undefined\"}]]}],[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerContent\",\"children\":[\"$\",\"h4\",null,{\"className\":\"styles-module__J0n02W__variant_h4 styles-module__J0n02W__color_white styles-module__J0n02W__weight_medium\",\"children\":\"LaunchDarkly Tops G2 Grid for Feature Management\"}]}],[\"$\",\"div\",null,{\"className\":\"styles-module__MISuva__blogG2BannerButton\",\"children\":[\"$\",\"button\",null,{\"className\":\"styles-module__d4f9cW__button styles-module__d4f9cW__variant_lime styles-module__d4f9cW__size_default\",\"style\":\"$undefined\",\"type\":\"button\",\"onClick\":\"$undefined\",\"ref\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__label\",\"children\":\"Learn more\"}],[\"$\",\"span\",null,{\"className\":\"styles-module__d4f9cW__arrowBox false\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":12,\"fill\":\"none\",\"className\":\"styles-module__d4f9cW__arrow\",\"aria-hidden\":\"true\",\"children\":\"$24:2:props:children:1:props:children:props:children:1:props:children:0:props:children:2:props:children:1:props:children:props:children\"}]}]]}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"40:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/#article\\\",\\\"about\\\":[{\\\"@type\\\":\\\"Thing\\\",\\\"name\\\":\\\"Chaos Engineering: Continuous Verification in Prod\\\"}],\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Matt DeLaney\\\",\\\"url\\\":\\\"https://launchdarkly.com/blog/author/mattdel/\\\"}],\\\"datePublished\\\":\\\"2020-12-03T21:14:20.000Z\\\",\\\"dateModified\\\":\\\"2026-07-21T17:16:26.000Z\\\",\\\"headline\\\":\\\"Chaos Engineering: Continuous Verification in Prod\\\",\\\"description\\\":\\\"Chaos engineering builds resilience through continuous verification in production. Learn how feature flags support faster, safer recovery.\\\",\\\"image\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://launchdarkly.com/open-graph.jpg\\\"},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/#webpage\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://launchdarkly.com/#organization\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://launchdarkly.com/#organization\\\",\\\"name\\\":\\\"LaunchDarkly\\\",\\\"legalName\\\":\\\"LaunchDarkly\\\",\\\"description\\\":\\\"LaunchDarkly helps teams safely manage code and AI agents in production with feature flags, progressive delivery, automated rollback, and runtime control.\\\",\\\"url\\\":\\\"https://launchdarkly.com/\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://launchdarkly.com/schema-icon.png\\\",\\\"width\\\":\\\"512\\\",\\\"height\\\":\\\"512\\\"},\\\"sameAs\\\":[\\\"https://twitter.com/LaunchDarkly\\\",\\\"https://www.linkedin.com/company/launchdarkly\\\",\\\"https://github.com/launchdarkly\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"description\\\":\\\"Breadcrumbs list\\\",\\\"name\\\":\\\"Breadcrumbs\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://launchdarkly.com/\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://launchdarkly.com/blog\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"Chaos Engineering: Continuous Verification in Prod\\\",\\\"item\\\":\\\"https://launchdarkly.com/chaos-engineering-and-continuous-verification-in-production/\\\"}]}\"}}]]\n"])</script><script>self.__next_f.push([1,"41:[\"$\",\"$L47\",null,{\"data\":{\"primary\":{\"heading\":\"Resources to get started.\",\"readMoreLabel\":\"\",\"readMoreHref\":\"\",\"imageAspectRatio\":\"16:9\",\"background\":\"black\"},\"items\":[{\"title\":\"Check out the blog.\",\"eyebrow\":\"Blog\",\"description\":\"Read about LaunchDarkly news, product updates, and more.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlhaYofJOwHWAR_img-res-card--BLOG.png?auto=format,compress\",\"href\":\"/blog/\"},{\"title\":\"Explore our docs.\",\"eyebrow\":\"Docs\",\"description\":\"Learn best practices for getting started with LaunchDarkly.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlhqYofJOwHWAS_img-res-card--DOCS.png?auto=format,compress\",\"href\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Watch on demand.\",\"eyebrow\":\"Videos\",\"description\":\"Check out demos and tutorials to see LaunchDarkly in action.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtliKYofJOwHWAU_img-res-card--VIDEOS.png?auto=format,compress\",\"href\":\"https://www.youtube.com/@LaunchDarkly\"},{\"title\":\"Connect at events.\",\"eyebrow\":\"Events\",\"description\":\"Explore ways to connect with us in person and virtually.\",\"image\":\"https://images.prismic.io/launchdarkly-marketingsite/agtlh6YofJOwHWAT_img-res-card--Events.png?auto=format,compress\",\"href\":\"/events-webinars/\"}]},\"customCommands\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"31:[\"$\",\"$L2f\",null,{\"navigationDocument\":{\"id\":\"Z8jwdRIAACIAchAL\",\"uid\":null,\"url\":null,\"type\":\"main_navigation\",\"href\":\"https://launchdarkly-marketingsite.cdn.prismic.io/api/v2/documents/search?ref=aqQbiREAACwA_PkJ\u0026q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22Z8jwdRIAACIAchAL%22%29+%5D%5D\",\"tags\":[],\"first_publication_date\":\"2025-03-06T23:22:48+0000\",\"last_publication_date\":\"2026-08-12T21:50:57+0000\",\"slugs\":[\"main-navigation\"],\"linked_documents\":[],\"lang\":\"en-us\",\"alternate_languages\":[],\"data\":{\"products_group\":[{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEidWJ-7kSC2w_icon--guarded-release-x24.svg\",\"id\":\"aCQJEidWJ-7kSC2w\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZkT8yxcAACQAayzv\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"eb9e562d-4750-4567-8060-b0378a8012b7\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guarded Releases\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Monitor and de-risk.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJESdWJ-7kSC2v_icon--experimentation-x24.svg\",\"id\":\"aCQJESdWJ-7kSC2v\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZS3e3xAAACYArUv0\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"859b7068-0b26-4b9b-be95-730781ae8e60\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make data-driven decisions.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aYTW2d0YXLCxVdmZ_observability-icon-pink-gradient.svg\",\"id\":\"aYTW2d0YXLCxVdmZ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aXzdMhEAACEAbMS3\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"a6113607-80f4-45f3-9d88-a7f9cd5474ad\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Detect, diagnose, and recover.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"releases\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJEydWJ-7kSC2x_icon--release-management-x24.svg\",\"id\":\"aCQJEydWJ-7kSC2x\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZK7UUREAACQAMsBn\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"bd2dad2e-cc7c-47a4-9c6b-d14e00a62722\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature Flags\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Scale great release processes.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"release-management\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":24,\"height\":24},\"alt\":null,\"copyright\":null,\"url\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/aCQJECdWJ-7kSC2u_icon--ai-x24.svg\",\"id\":\"aCQJECdWJ-7kSC2u\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"aScrdxIAACUA_zBM\",\"type\":\"broken_type\",\"tags\":[],\"lang\":null,\"slug\":\"-\",\"first_publication_date\":null,\"last_publication_date\":null,\"link_type\":\"Document\",\"key\":\"e1c3e064-69c5-4a8a-9e6d-d47afa6f9a84\",\"isBroken\":true},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI Configs\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Make innovative AI products.\",\"spans\":[],\"direction\":\"ltr\"}],\"hover_class\":[{\"type\":\"paragraph\",\"text\":\"ai\",\"spans\":[],\"direction\":\"ltr\"}]}],\"overview_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agwNv6YofJOwHWkd_platform-overview-icon.png?auto=format,compress\",\"id\":\"agwNv6YofJOwHWkd\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT1iRIAACMAW09R\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"the-runtime-control-layer-for-the-ai-era.\",\"first_publication_date\":\"2026-05-13T22:07:57+0000\",\"last_publication_date\":\"2026-07-29T17:52:40+0000\",\"uid\":\"how-it-works.platform\",\"url\":\"/how-it-works.platform/\",\"link_type\":\"Document\",\"key\":\"cb51a2ac-66b9-445c-add5-1bfd126fdaf1\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Platform overview\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAKYofJOwHTuE_icon-main-nav--FeatureManagement.png?auto=format,compress\",\"id\":\"agpNAKYofJOwHTuE\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agJOJRIAACMAV0KE\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"feature-flags-for-real-time-control-in-production.\",\"first_publication_date\":\"2026-05-11T23:18:47+0000\",\"last_publication_date\":\"2026-07-09T17:32:44+0000\",\"uid\":\"how-it-works.feature-flags\",\"url\":\"/how-it-works.feature-flags/\",\"link_type\":\"Document\",\"key\":\"5b39f1f4-c3e9-4985-a6f4-09d007cdc71a\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNA6YofJOwHTuH_icon-main-nav--Observability.png?auto=format,compress\",\"id\":\"agpNA6YofJOwHTuH\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agUqVRIAACEAW5iJ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"observe-at-the-scale-that-you\",\"first_publication_date\":\"2026-05-14T02:28:03+0000\",\"last_publication_date\":\"2026-07-16T18:41:10+0000\",\"uid\":\"how-it-works.observability\",\"url\":\"/how-it-works.observability/\",\"link_type\":\"Document\",\"key\":\"fb0b6ba7-0f91-4639-a80e-a08103edd108\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Observability\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_6YofJOwHTuD_icon-main-nav--Experimentation.png?auto=format,compress\",\"id\":\"agpM_6YofJOwHTuD\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agT6fRIAAI1IW1Zl\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"AI Refresh\"],\"lang\":\"en-us\",\"slug\":\"optimize-at-the-speed-that-you\",\"first_publication_date\":\"2026-05-13T23:15:56+0000\",\"last_publication_date\":\"2026-08-12T00:12:40+0000\",\"uid\":\"how-it-works.experimentation\",\"url\":\"/how-it-works.experimentation/\",\"link_type\":\"Document\",\"key\":\"026bc403-ba2c-4c10-a9a7-28dc7beb9c0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Experimentation\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpM_qYofJOwHTuC_icon-main-nav--Agentintegrations.png?auto=format,compress\",\"id\":\"agpM_qYofJOwHTuC\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agPiLhIAACEAWZ_F\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"Agent Integration\"],\"lang\":\"en-us\",\"slug\":\"go-agent-native-from-day-1.\",\"first_publication_date\":\"2026-05-13T03:45:19+0000\",\"last_publication_date\":\"2026-07-02T20:40:47+0000\",\"uid\":\"how-it-works.agent-integrations\",\"url\":\"/how-it-works.agent-integrations/\",\"link_type\":\"Document\",\"key\":\"96423778-717a-4a35-b3d1-2966c0f15a99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Agent integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAqYofJOwHTuG_icon-main-nav--Integrations.png?auto=format,compress\",\"id\":\"agpNAqYofJOwHTuG\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agXnzxIAAGfYXLYC\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"integrations\",\"first_publication_date\":\"2026-05-14T15:21:28+0000\",\"last_publication_date\":\"2026-05-19T04:39:17+0000\",\"uid\":\"integrations\",\"url\":\"/integrations/\",\"link_type\":\"Document\",\"key\":\"ac21f49d-de49-4c8f-9cab-03ff74f3aeae\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Integrations\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpNAaYofJOwHTuF_icon-main-nav--Infrastructure.png?auto=format,compress\",\"id\":\"agpNAaYofJOwHTuF\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agstuhIAAGVsZG8v\",\"type\":\"ai_refresh_pages\",\"tags\":[\"how it works\",\"platform architecture\"],\"lang\":\"en-us\",\"slug\":\"built-for-runtime-control-at-scale.\",\"first_publication_date\":\"2026-05-18T15:48:56+0000\",\"last_publication_date\":\"2026-05-20T21:04:24+0000\",\"uid\":\"how-it-works.platform-architecture\",\"url\":\"/how-it-works.platform-architecture/\",\"link_type\":\"Document\",\"key\":\"654903e7-c950-4ee9-ad8d-28ced3798a0e\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Architecture\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_team_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrqYofJOwHTuK_icon-main-nav--ReleaseAI-BuiltCode.png?auto=format,compress\",\"id\":\"agpOrqYofJOwHTuK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZggxIAAGfYXWgr\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ai-coded-it-but-you-own-it-in-production.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T23:57:25+0000\",\"last_publication_date\":\"2026-07-15T15:24:08+0000\",\"uid\":\"solutions.release-ai-built-code\",\"url\":\"/solutions.release-ai-built-code/\",\"link_type\":\"Document\",\"key\":\"89e8e1ad-db87-4479-aeec-83186124bc80\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Release AI-built code\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOrKYofJOwHTuI_icon-main-nav--ControlAIAgents.png?auto=format,compress\",\"id\":\"agpOrKYofJOwHTuI\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVNRxIAACEAW8p2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"agents-make-decisions-you-own-the-results.-stay-in-control.\",\"first_publication_date\":\"2026-05-14T04:20:19+0000\",\"last_publication_date\":\"2026-07-15T15:24:56+0000\",\"uid\":\"solutions.control-ai-agents\",\"url\":\"/solutions.control-ai-agents/\",\"link_type\":\"Document\",\"key\":\"c8ca2188-6dd5-4f79-b127-b32bd5afcc49\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Control AI agents\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOraYofJOwHTuJ_icon-main-nav--OptimizeAIPerformance%26Cost.png?auto=format,compress\",\"id\":\"agpOraYofJOwHTuJ\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZehRIAACEAXWU6\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-guessing.-optimize-model-performance-and-cost-in-real-time.\",\"first_publication_date\":\"2026-05-14T23:47:53+0000\",\"last_publication_date\":\"2026-07-15T15:25:55+0000\",\"uid\":\"solutions.optimize-ai-performance\",\"url\":\"/solutions.optimize-ai-performance/\",\"link_type\":\"Document\",\"key\":\"57b0c941-034c-46e0-80ef-722178945659\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Optimize AI performance \u0026 cost\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOsKYofJOwHTuM_icon-main-nav--Self-HealSystems.png?auto=format,compress\",\"id\":\"agpOsKYofJOwHTuM\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agVxxxIAAI1IW_7K\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"stop-responding-and-automatically-fix-problems-in-production.\",\"first_publication_date\":\"2026-05-14T07:01:00+0000\",\"last_publication_date\":\"2026-07-07T00:03:00+0000\",\"uid\":\"solutions.self-heal-systems\",\"url\":\"/solutions.self-heal-systems/\",\"link_type\":\"Document\",\"key\":\"a777ddee-a6f5-485b-8cb0-df55680e5bd3\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Self-heal systems\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpOr6YofJOwHTuL_icon-main-nav--RunExperiments.png?auto=format,compress\",\"id\":\"agpOr6YofJOwHTuL\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agZhwBIAACMAXWoU\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"experiment-at-ai-scale-without-losing-control.\",\"first_publication_date\":\"2026-05-15T00:01:50+0000\",\"last_publication_date\":\"2026-07-15T15:28:25+0000\",\"uid\":\"solutions.run-experiments\",\"url\":\"/solutions.run-experiments/\",\"link_type\":\"Document\",\"key\":\"0c20b758-07ba-4180-9002-028f2eb0c933\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Run experiments\",\"spans\":[],\"direction\":\"ltr\"}]}],\"by_industry_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmaYofJOwHTuS_icon-main-nav--AIEngineer.png?auto=format,compress\",\"id\":\"agpQmaYofJOwHTuS\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"af-1HRIAACEAU2aQ\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"AI Engineer\"],\"lang\":\"en-us\",\"slug\":\"agents-break-in-production.-thats-where-control-matters.\",\"first_publication_date\":\"2026-05-09T23:06:03+0000\",\"last_publication_date\":\"2026-05-20T21:03:40+0000\",\"uid\":\"persona.ai-engineers\",\"url\":\"/persona.ai-engineers/\",\"link_type\":\"Document\",\"key\":\"fe8f38e4-584c-451d-b926-af442c252bea\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AI engineers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQmqYofJOwHTuT_icon-main-nav--Developers.png?auto=format,compress\",\"id\":\"agpQmqYofJOwHTuT\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaOnBIAACMAXamc\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"development teams\"],\"lang\":\"en-us\",\"slug\":\"ship-faster.-stay-in-control.-fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-27T20:30:26+0000\",\"uid\":\"persona.development-teams\",\"url\":\"/persona.development-teams/\",\"link_type\":\"Document\",\"key\":\"dc747045-cd9a-4d86-aec3-d00c036dff99\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Developers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQm6YofJOwHTuU_icon-main-nav--DevOps-SRE.png?auto=format,compress\",\"id\":\"agpQm6YofJOwHTuU\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaRwhIAAGfYXa5B\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"devops\"],\"lang\":\"en-us\",\"slug\":\"prevent-incidents.fix-problems-automatically.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-08-18T18:21:56+0000\",\"uid\":\"persona.devops-site-reliability-engineer-teams\",\"url\":\"/persona.devops-site-reliability-engineer-teams/\",\"link_type\":\"Document\",\"key\":\"95bbe00c-5ed4-4caf-a18e-830cfa416ced\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"DevOps \u0026 SRE\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpQnaYofJOwHTuW_icon-main-nav--ProductManagers.png?auto=format,compress\",\"id\":\"agpQnaYofJOwHTuW\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agaJuhIAAGfYXaJy\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"product managers\"],\"lang\":\"en-us\",\"slug\":\"launch-confidently.-learn-what-works.-improve-continuously.\",\"first_publication_date\":\"2026-05-15T03:39:15+0000\",\"last_publication_date\":\"2026-05-19T01:10:37+0000\",\"uid\":\"persona.product-managers\",\"url\":\"/persona.product-managers/\",\"link_type\":\"Document\",\"key\":\"aaa44826-4691-462b-a8a1-acc80ad8fbdb\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product managers\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/8Rpfg-gh7BMefouu_persona-data-scientist-icon-nav.png?auto=format,compress\",\"id\":\"8Rpfg-gh7BMefouu\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"alem8REAACwAC87h\",\"type\":\"ai_refresh_pages\",\"tags\":[\"AI Refresh\",\"Persona\",\"data scientists\"],\"lang\":\"en-us\",\"slug\":\"run-experiments-you-can-actually-trust.\",\"first_publication_date\":\"2026-07-15T18:45:45+0000\",\"last_publication_date\":\"2026-07-17T19:14:06+0000\",\"uid\":\"persona.data-scientists\",\"url\":\"/persona.data-scientists/\",\"link_type\":\"Document\",\"key\":\"f7bf52f5-fab6-4ea1-9d9c-e319463a6190\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Data scientists\",\"spans\":[],\"direction\":\"ltr\"}]}],\"learn_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSN6YofJOwHTud_icon-main-nav--Blog.png?auto=format,compress\",\"id\":\"agpSN6YofJOwHTud\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"9ad95dc9-c5ec-4aab-ac8a-7b7405aec915\",\"url\":\"https://launchdarkly.com/blog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOaYofJOwHTuf_icon-main-nav--GuidesandEbooks.png?auto=format,compress\",\"id\":\"agpSOaYofJOwHTuf\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"1b0edfb5-d056-42ae-a4c2-dd530e49f057\",\"url\":\"https://launchdarkly.com/guides/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Guides \u0026 ebooks\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOKYofJOwHTue_icon-main-nav--EventsandWebinars.png?auto=format,compress\",\"id\":\"agpSOKYofJOwHTue\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"YQxWXxIAACkAIPjQ\",\"type\":\"events\",\"tags\":[\"events\",\"webinars\"],\"lang\":\"en-us\",\"slug\":\"events\",\"first_publication_date\":\"2021-08-05T21:26:24+0000\",\"last_publication_date\":\"2026-09-11T15:17:28+0000\",\"uid\":\"events-webinars\",\"url\":\"/events-webinars/\",\"link_type\":\"Document\",\"key\":\"d1154925-59b3-4c22-afcc-e0efad605e91\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Events \u0026 webinars\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSOqYofJOwHTug_icon-main-nav--Videos.png?auto=format,compress\",\"id\":\"agpSOqYofJOwHTug\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"c4b22447-de6e-4d1e-9b7a-11748b8055aa\",\"url\":\"https://www.youtube.com/@LaunchDarkly\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Videos\",\"spans\":[],\"direction\":\"ltr\"}]}],\"success_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSQ6YofJOwHTui_icon-main-nav--Academy.png?auto=format,compress\",\"id\":\"agpSQ6YofJOwHTui\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"8a7c9deb-617c-4160-adeb-5b432b051ecf\",\"url\":\"https://academy.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Academy\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRKYofJOwHTuj_icon-main-nav--CustomerStories.png?auto=format,compress\",\"id\":\"agpSRKYofJOwHTuj\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ajGF7RcAADAA88aj\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"trusted-by-industry-leading-teams.\",\"first_publication_date\":\"2026-06-16T17:59:03+0000\",\"last_publication_date\":\"2026-06-23T21:13:13+0000\",\"uid\":\"customer-stories\",\"url\":\"/customer-stories/\",\"link_type\":\"Document\",\"key\":\"d11dbfa0-bb2d-461c-b5c3-03e978db76b6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Customer stories\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRqYofJOwHTul_icon-main-nav--ProfessionalServices.png?auto=format,compress\",\"id\":\"agpSRqYofJOwHTul\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZSgkThAAACcAC-sT\",\"type\":\"new_pages\",\"tags\":[\"services\",\"professional services\"],\"lang\":\"en-us\",\"slug\":\"launchdarkly-professional-services\",\"first_publication_date\":\"2023-10-12T16:52:47+0000\",\"last_publication_date\":\"2026-07-08T15:43:17+0000\",\"uid\":\"services\",\"url\":\"/services/\",\"link_type\":\"Document\",\"key\":\"93fcdada-dd96-49ca-b8f3-a466eb109f19\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Professional services\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSRaYofJOwHTuk_icon-main-nav--Partners.png?auto=format,compress\",\"id\":\"agpSRaYofJOwHTuk\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"ZMggHhEAACYAn2e4\",\"type\":\"new_pages\",\"tags\":[\"partner program\",\"partner program page\"],\"lang\":\"en-us\",\"slug\":\"lets-build-better-software-together.\",\"first_publication_date\":\"2023-07-31T21:59:14+0000\",\"last_publication_date\":\"2026-07-08T15:56:45+0000\",\"uid\":\"partner-program\",\"url\":\"/partner-program/\",\"link_type\":\"Document\",\"key\":\"c693eb6c-d924-4446-98dc-e50e30a73e31\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Partners\",\"spans\":[],\"direction\":\"ltr\"}]}],\"get_help_group\":[{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiKYofJOwHTu2_icon-main-nav--help-center.png?auto=format,compress\",\"id\":\"agpTiKYofJOwHTu2\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"671d49cc-49d6-4614-90a4-3c31313a2f47\",\"url\":\"https://support.launchdarkly.com/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Help Center\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Explore help topics for everything LaunchDarkly.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":160,\"height\":160},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpTiaYofJOwHTu3_icon-main-nav--request-support.png?auto=format,compress\",\"id\":\"agpTiaYofJOwHTu3\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"b1c38405-1e18-4080-81ee-a86756bec156\",\"url\":\"https://support.launchdarkly.com/hc/en-us/requests/new?ticket_form_id=360000836893\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Request support\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Reach out to us for direct answers to your questions.\",\"spans\":[],\"direction\":\"ltr\"}]}],\"resources_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVKYofJOwHTuo_icon-main-nav--DocsHome.png?auto=format,compress\",\"id\":\"agpSVKYofJOwHTuo\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"79ea2804-386d-45ba-ae92-9de4e6a20aa2\",\"url\":\"https://launchdarkly.com/docs/home\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Docs home\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSVaYofJOwHTup_icon-main-nav--FeatureFlagQuickstart.png?auto=format,compress\",\"id\":\"agpSVaYofJOwHTup\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"d55987b1-30ac-4d93-907a-c50f827814d5\",\"url\":\"https://launchdarkly.com/docs/home/getting-started\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Feature flags Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSUqYofJOwHTum_icon-main-nav--AIConfigsQuickstart.png?auto=format,compress\",\"id\":\"agpSUqYofJOwHTum\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"f3e899b1-5149-4b7f-a205-8d8be0d0d0ca\",\"url\":\"https://launchdarkly.com/docs/home/agentcontrol/quickstart\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl Quickstart\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSU6YofJOwHTun_icon-main-nav--APIDocs.png?auto=format,compress\",\"id\":\"agpSU6YofJOwHTun\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"98e0f384-0d91-4ddc-b989-908d24e47a4d\",\"url\":\"https://launchdarkly.com/docs/api/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"API docs\",\"spans\":[],\"direction\":\"ltr\"}]}],\"workflow_group\":[{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZqYofJOwHTut_icon-main-nav--Productupdates.png?auto=format,compress\",\"id\":\"agpSZqYofJOwHTut\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"daebf9c5-8c24-4a14-9df2-0a7f80d7dfce\",\"url\":\"https://launchdarkly.com/changelog/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Product Updates\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZaYofJOwHTus_icon-main-nav--PowerAnalysisCalculator.png?auto=format,compress\",\"id\":\"agpSZaYofJOwHTus\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"4a2ede12-b83e-4114-bbc3-4a738b3d8ccb\",\"url\":\"https://launchdarkly.com/sample-size-calculator/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Power analysis calculator\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSZKYofJOwHTur_icon-main-nav--FlagshipEngineeringBlog.png?auto=format,compress\",\"id\":\"agpSZKYofJOwHTur\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"0eb1c344-46c1-466a-bc84-f3bb4c46290b\",\"url\":\"https://launchdarkly.com/docs/blog\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Flagship engineering blog\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":48,\"height\":48},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpSY6YofJOwHTuq_icon-main-nav--Community.png?auto=format,compress\",\"id\":\"agpSY6YofJOwHTuq\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"link_type\":\"Web\",\"key\":\"84663d21-e4f8-4631-81cd-6da440a8b828\",\"url\":\"https://launchdarkly.com/community/\"},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"Community\",\"spans\":[],\"direction\":\"ltr\"}]}],\"banner_group\":[{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Solutions\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo now\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"bdb970f8-f1f4-424b-ae6b-5160b38903a2\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Resources\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe and control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4d1ad24c-3879-42e8-86de-2ab76c2778ad\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":267,\"height\":180},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/aatGU1xvIZEnjb9J_top-nav-moving-at-ai-speed.png?auto=format,compress\",\"id\":\"aatGU1xvIZEnjb9J\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Platform\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Move at AI speed. Stay in control.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"See how to release, experiment, observe \u0026 control AI.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Watch demo\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"35310a7f-4223-4c71-b058-f0f99ba04936\",\"url\":\"https://launchdarkly.com/product-demo/platform-overview/\"}},{\"banner_image\":{},\"banner_left_image\":{\"dimensions\":{\"width\":178,\"height\":120},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/abRT8lxvIZEnjqhK_developer-tab-free-trial.png?auto=format,compress\",\"id\":\"abRT8lxvIZEnjqhK\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"banner_subtitle_icon\":{},\"banner_position\":\"Bottom\",\"banner_location\":\"Developers\",\"banner_subtitle\":[{\"type\":\"paragraph\",\"text\":\"Take control of your AI at runtime.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_body\":[{\"type\":\"paragraph\",\"text\":\"Control releases, experiments, and AI behavior in prod.\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link_text\":[{\"type\":\"paragraph\",\"text\":\"Free trial\",\"spans\":[],\"direction\":\"ltr\"}],\"banner_link\":{\"link_type\":\"Web\",\"key\":\"4a0a8a27-41ee-4993-8274-dab982a68d7d\",\"url\":\"https://app.launchdarkly.com/signup\"}}],\"new_products_group\":[{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVqYofJOwHTu-_icon-main-nav--CodeControl.png?auto=format,compress\",\"id\":\"agpUVqYofJOwHTu-\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agTAhBIAACEAWwQ2\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"ship-confidently-with-automatic-recovery-and-continuous-improvement-built-in.\",\"first_publication_date\":\"2026-05-13T18:19:33+0000\",\"last_publication_date\":\"2026-05-19T05:42:39+0000\",\"uid\":\"platform.code-control\",\"url\":\"/platform.code-control/\",\"link_type\":\"Document\",\"key\":\"31f8582d-1543-426b-bfe9-b2e3aa405ab6\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"CodeControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"Ship confidently, with automated control built in.\",\"spans\":[],\"direction\":\"ltr\"}]},{\"icon\":{\"dimensions\":{\"width\":150,\"height\":150},\"alt\":null,\"copyright\":null,\"url\":\"https://images.prismic.io/launchdarkly-marketingsite/agpUVaYofJOwHTu9_icon-main-nav--AgentControl.png?auto=format,compress\",\"id\":\"agpUVaYofJOwHTu9\",\"edit\":{\"x\":0,\"y\":0,\"zoom\":1,\"background\":\"transparent\"}},\"link\":{\"id\":\"agSf7RIAAI1IWtRB\",\"type\":\"ai_refresh_pages\",\"tags\":[],\"lang\":\"en-us\",\"slug\":\"one-place-to-control-agent-behavior.\",\"first_publication_date\":\"2026-05-13T16:04:01+0000\",\"last_publication_date\":\"2026-06-01T17:57:35+0000\",\"uid\":\"platform.agent-control\",\"url\":\"/platform.agent-control/\",\"link_type\":\"Document\",\"key\":\"a6029978-2730-4f8c-aa21-9c15c2e2fbff\",\"isBroken\":false},\"link_text\":[{\"type\":\"paragraph\",\"text\":\"AgentControl\",\"spans\":[],\"direction\":\"ltr\"}],\"description\":[{\"type\":\"paragraph\",\"text\":\"One place to keep your agent behavior under control.\",\"spans\":[],\"direction\":\"ltr\"}]}]}},\"showBanner\":true,\"noNav\":\"$undefined\",\"addRiskMeterLogo\":false,\"hideLinks\":false,\"useSnowflakeHeader\":\"$undefined\",\"EoDNav\":\"$undefined\",\"useAiTheme\":\"$undefined\",\"isHomepage\":\"$undefined\",\"useRefreshDesign\":\"$undefined\",\"useWhiteLogo\":true}]\n"])</script><script>self.__next_f.push([1,"33:[\"$\",\"$L30\",null,{\"supportItems\":[{\"title\":\"Support home\",\"url\":\"https://support.launchdarkly.com/\"},{\"title\":\"Professional Services\",\"url\":\"/services/\"},{\"title\":\"Documentation\",\"url\":\"https://launchdarkly.com/docs/home\"},{\"title\":\"Status\",\"url\":\"https://status.launchdarkly.com/\"}],\"whyUsItems\":[{\"title\":\"Economic Impact of LaunchDarkly\",\"url\":\"https://launchdarkly.com/guides/forrester-tei-report-2026/\"},{\"title\":\"How LaunchDarkly works\",\"url\":\"/how-it-works.platform/\"},{\"title\":\"Solutions\",\"url\":\"/solutions/\"},{\"title\":\"Trust \u0026 Security\",\"url\":\"/security/\"},{\"title\":\"Trust Center\",\"url\":\"https://trust.launchdarkly.com\"},{\"title\":\"LaunchDarkly vs. Competitors\",\"url\":\"https://launchdarkly.com/compare/\"},{\"title\":\"LaunchDarkly on AWS\",\"url\":\"https://launchdarkly.com/solutions/launchdarkly-aws/\"}],\"companyItems\":[{\"title\":\"About Us\",\"url\":\"/about-us/\"},{\"title\":\"Careers\",\"url\":\"/careers/\"},{\"title\":\"Media \u0026 Analysts\",\"url\":\"/press-and-analysts/\"},{\"title\":\"Partner Program\",\"url\":\"/partner-program/\"},{\"title\":\"Terms \u0026 Policies\",\"url\":\"https://launchdarkly.com/policies/subscription-terms/\"},{\"title\":\"Contact Us\",\"url\":\"/contact-us/\"},{\"title\":\"Community\",\"url\":\"https://launchdarkly.com/community/\"}],\"snsLinks\":[{\"url\":\"https://twitter.com/launchdarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/b4508c29-da0c-4e9b-bcae-205a95a6ba5d_logo--x-twitter.svg?auto=compress,format\",\"iconAlt\":\"twitter\"},{\"url\":\"https://www.youtube.com/@LaunchDarkly\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/276be984-0bd0-44ed-9e32-44a21a0c4fac_icon-youtube.svg\",\"iconAlt\":\"YouTube\"},{\"url\":\"https://www.linkedin.com/company/launchdarkly/mycompany/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b512fb1-6ecc-4e7f-bfe2-368f1a29898b_icon-LinkedIn.svg\",\"iconAlt\":\"LinkedIn\"},{\"url\":\"https://discord.com/invite/launchdarklycommunity\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/ZpaT7h5LeNNTxNRX_discord-logo-white.svg?auto=compress,format\",\"iconAlt\":\"Discord\"},{\"url\":\"https://www.instagram.com/launchdarkly/\",\"iconUrl\":\"https://launchdarkly-marketingsite.cdn.prismic.io/launchdarkly-marketingsite/8b8446e4-02c7-468e-bb32-79d0432dd1d0_instagram-icon-small.svg\",\"iconAlt\":\"Instagram\"}],\"useRefresShortFooter\":\"$undefined\",\"loadFooterNewsletter\":true,\"shortFooter\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"48:I[91711,[\"7503\",\"static/chunks/7503-b90474bdcb57e2a8.js\",\"7724\",\"static/chunks/7724-f653158a9ba1984f.js\",\"2151\",\"static/chunks/2151-1b788faaa737d8a8.js\",\"8149\",\"static/chunks/8149-7f3e93382769fd21.js\",\"4544\",\"static/chunks/4544-0392fd1bc10fce67.js\",\"8072\",\"static/chunks/8072-5f4bd0e6a2406823.js\",\"7950\",\"static/chunks/7950-199b90cf99360b48.js\",\"6486\",\"static/chunks/6486-65f1afba5f178bdd.js\",\"4089\",\"static/chunks/4089-4672fdbd787dddc6.js\",\"5265\",\"static/chunks/5265-7f81f179d2fa0221.js\",\"685\",\"static/chunks/685-dc88876e3a3ca418.js\",\"8941\",\"static/chunks/8941-6bf805c661ac7247.js\",\"739\",\"static/chunks/739-f05d34af20af1cd5.js\",\"4661\",\"static/chunks/4661-d6f876059d7e275f.js\",\"7550\",\"static/chunks/7550-010a17a69ff132e0.js\",\"9244\",\"static/chunks/9244-3b918f1b79c82aa2.js\",\"8687\",\"static/chunks/8687-88b6a1a725cd10c9.js\",\"8634\",\"static/chunks/8634-33081268eea6ca62.js\",\"4932\",\"static/chunks/app/blog/%5Buid%5D/page-1dbdf0f3b7bbcc12.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"35:[\"$\",\"$L48\",null,{\"mainBreadcrumb\":\"Blog\",\"mainBreadcrumbLink\":\"/blog\",\"subBreadcrumb\":\"DevOps\",\"subBreadcrumbLink\":\"/blog/category/devops\",\"title\":\"Chaos Engineering and Continuous Verification in Production\",\"popularSearchTerms\":[{\"term\":[{\"type\":\"paragraph\",\"text\":\"Feature flags\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"Progressive delivery\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"feature management\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"Git branching strategies vs. trunk-based development\",\"spans\":[]}]},{\"term\":[{\"type\":\"paragraph\",\"text\":\"experimentation and A/B testing\",\"spans\":[]}]}]}]\n"])</script></body></html>