CINXE.COM
Development Operations & Site Reliability Engineering - The Go Programming Language
<!DOCTYPE html> <html lang="en" data-theme="auto"> <head> <link rel="preconnect" href="https://www.googletagmanager.com"> <script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-W8MVQXG');</script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#00add8"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons"> <link rel="stylesheet" href="/css/styles.css"> <link rel="icon" href="/images/favicon-gopher.png" sizes="any"> <link rel="apple-touch-icon" href="/images/favicon-gopher-plain.png"/> <link rel="icon" href="/images/favicon-gopher.svg" type="image/svg+xml"> <link rel="me" href="https://hachyderm.io/@golang"> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-W8MVQXG');</script> <script src="/js/site.js"></script> <meta name="og:url" content="https://go.dev/solutions/devops"> <meta name="og:title" content="Development Operations & Site Reliability Engineering - The Go Programming Language"> <title>Development Operations & Site Reliability Engineering - The Go Programming Language</title> <meta name="og:image" content="https://go.dev/doc/gopher/gopher5logo.jpg"> <meta name="twitter:image" content="https://go.dev/doc/gopher/gopherbelly300.jpg"> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@golang"> </head> <body class="Site"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <header class="Site-header js-siteHeader"> <div class="Header Header--dark"> <nav class="Header-nav"> <a href="/"> <img class="js-headerLogo Header-logo" src="/images/go-logo-white.svg" alt="Go"> </a> <div class="skip-navigation-wrapper"> <a class="skip-to-content-link" aria-label="Skip to main content" href="#main-content"> Skip to Main Content </a> </div> <div class="Header-rightContent"> <ul class="Header-menu"> <li class="Header-menuItem Header-menuItem--active"> <a href="#" class="js-desktop-menu-hover" aria-label=Why Go aria-describedby="dropdown-description"> Why Go <i class="material-icons" aria-hidden="true">arrow_drop_down</i> </a> <div class="screen-reader-only" id="dropdown-description" hidden> Press Enter to activate/deactivate dropdown </div> <ul class="Header-submenu js-desktop-submenu-hover" aria-label="submenu"> <li class="Header-submenuItem"> <div> <a href="/solutions/case-studies"> Case Studies </a> </div> <p>Common problems companies solve with Go</p> </li> <li class="Header-submenuItem"> <div> <a href="/solutions/use-cases"> Use Cases </a> </div> <p>Stories about how and why companies use Go</p> </li> <li class="Header-submenuItem"> <div> <a href="/security/"> Security </a> </div> <p>How Go can help keep you secure by default</p> </li> </ul> </li> <li class="Header-menuItem "> <a href="/learn/" aria-label=Learn aria-describedby="dropdown-description"> Learn </a> <div class="screen-reader-only" id="dropdown-description" hidden> Press Enter to activate/deactivate dropdown </div> </li> <li class="Header-menuItem "> <a href="#" class="js-desktop-menu-hover" aria-label=Docs aria-describedby="dropdown-description"> Docs <i class="material-icons" aria-hidden="true">arrow_drop_down</i> </a> <div class="screen-reader-only" id="dropdown-description" hidden> Press Enter to activate/deactivate dropdown </div> <ul class="Header-submenu js-desktop-submenu-hover" aria-label="submenu"> <li class="Header-submenuItem"> <div> <a href="/doc/effective_go"> Effective Go </a> </div> <p>Tips for writing clear, performant, and idiomatic Go code</p> </li> <li class="Header-submenuItem"> <div> <a href="/doc"> Go User Manual </a> </div> <p>A complete introduction to building software with Go</p> </li> <li class="Header-submenuItem"> <div> <a href="https://pkg.go.dev/std"> Standard library </a> </div> <p>Reference documentation for Go's standard library</p> </li> <li class="Header-submenuItem"> <div> <a href="/doc/devel/release"> Release Notes </a> </div> <p>Learn what's new in each Go release</p> </li> </ul> </li> <li class="Header-menuItem "> <a href="https://pkg.go.dev" aria-label=Packages aria-describedby="dropdown-description"> Packages </a> <div class="screen-reader-only" id="dropdown-description" hidden> Press Enter to activate/deactivate dropdown </div> </li> <li class="Header-menuItem "> <a href="#" class="js-desktop-menu-hover" aria-label=Community aria-describedby="dropdown-description"> Community <i class="material-icons" aria-hidden="true">arrow_drop_down</i> </a> <div class="screen-reader-only" id="dropdown-description" hidden> Press Enter to activate/deactivate dropdown </div> <ul class="Header-submenu js-desktop-submenu-hover" aria-label="submenu"> <li class="Header-submenuItem"> <div> <a href="/talks/"> Recorded Talks </a> </div> <p>Videos from prior events</p> </li> <li class="Header-submenuItem"> <div> <a href="https://www.meetup.com/pro/go"> Meetups <i class="material-icons">open_in_new</i> </a> </div> <p>Meet other local Go developers</p> </li> <li class="Header-submenuItem"> <div> <a href="/wiki/Conferences"> Conferences <i class="material-icons">open_in_new</i> </a> </div> <p>Learn and network with Go developers from around the world</p> </li> <li class="Header-submenuItem"> <div> <a href="/blog"> Go blog </a> </div> <p>The Go project's official blog.</p> </li> <li class="Header-submenuItem"> <div> <a href="/help"> Go project </a> </div> <p>Get help and stay informed from Go</p> </li> <li class="Header-submenuItem"> <div> Get connected </div> <p></p> <div class="Header-socialIcons"> <a class="Header-socialIcon" aria-label="Get connected with google-groups (Opens in new window)" href="https://groups.google.com/g/golang-nuts"><img src="/images/logos/social/google-groups.svg" /></a> <a class="Header-socialIcon" aria-label="Get connected with github (Opens in new window)" href="https://github.com/golang"><img src="/images/logos/social/github.svg" /></a> <a class="Header-socialIcon" aria-label="Get connected with twitter (Opens in new window)" href="https://twitter.com/golang"><img src="/images/logos/social/twitter.svg" /></a> <a class="Header-socialIcon" aria-label="Get connected with reddit (Opens in new window)" href="https://www.reddit.com/r/golang/"><img src="/images/logos/social/reddit.svg" /></a> <a class="Header-socialIcon" aria-label="Get connected with slack (Opens in new window)" href="https://invite.slack.golangbridge.org/"><img src="/images/logos/social/slack.svg" /></a> <a class="Header-socialIcon" aria-label="Get connected with stack-overflow (Opens in new window)" href="https://stackoverflow.com/tags/go"><img src="/images/logos/social/stack-overflow.svg" /></a> </div> </li> </ul> </li> </ul> <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation."> </button> </div> </nav> <div class="UseCaseSubNav js-useCaseSubnav"> <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader"> Jump to <img class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon" alt="Open menu icon" src="/images/icons/chevron-down.svg"> </button> <div class="UseCaseSubNav-menu js-useCaseSubnavMenu"> <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks"> </div> </div> </div> </div> </header> <aside class="NavigationDrawer js-header"> <nav class="NavigationDrawer-nav"> <div class="NavigationDrawer-header"> <a href="/"> <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go."> </a> </div> <ul class="NavigationDrawer-list"> <li class="NavigationDrawer-listItem js-mobile-subnav-trigger NavigationDrawer-listItem--active NavigationDrawer-hasSubnav"> <a href="#"><span>Why Go</span> <i class="material-icons">navigate_next</i></a> <div class="NavigationDrawer NavigationDrawer-submenuItem"> <nav class="NavigationDrawer-nav"> <div class="NavigationDrawer-header"> <a href="#"><i class="material-icons">navigate_before</i>Why Go</a> </div> <ul class="NavigationDrawer-list"> <li class="NavigationDrawer-listItem"> <a href="/solutions/case-studies"> Case Studies </a> </li> <li class="NavigationDrawer-listItem"> <a href="/solutions/use-cases"> Use Cases </a> </li> <li class="NavigationDrawer-listItem"> <a href="/security/"> Security </a> </li> </ul> </div> </div> </li> <li class="NavigationDrawer-listItem "> <a href="/learn/">Learn</a> </li> <li class="NavigationDrawer-listItem js-mobile-subnav-trigger NavigationDrawer-hasSubnav"> <a href="#"><span>Docs</span> <i class="material-icons">navigate_next</i></a> <div class="NavigationDrawer NavigationDrawer-submenuItem"> <nav class="NavigationDrawer-nav"> <div class="NavigationDrawer-header"> <a href="#"><i class="material-icons">navigate_before</i>Docs</a> </div> <ul class="NavigationDrawer-list"> <li class="NavigationDrawer-listItem"> <a href="/doc/effective_go"> Effective Go </a> </li> <li class="NavigationDrawer-listItem"> <a href="/doc"> Go User Manual </a> </li> <li class="NavigationDrawer-listItem"> <a href="https://pkg.go.dev/std"> Standard library </a> </li> <li class="NavigationDrawer-listItem"> <a href="/doc/devel/release"> Release Notes </a> </li> </ul> </div> </div> </li> <li class="NavigationDrawer-listItem "> <a href="https://pkg.go.dev">Packages</a> </li> <li class="NavigationDrawer-listItem js-mobile-subnav-trigger NavigationDrawer-hasSubnav"> <a href="#"><span>Community</span> <i class="material-icons">navigate_next</i></a> <div class="NavigationDrawer NavigationDrawer-submenuItem"> <nav class="NavigationDrawer-nav"> <div class="NavigationDrawer-header"> <a href="#"><i class="material-icons">navigate_before</i>Community</a> </div> <ul class="NavigationDrawer-list"> <li class="NavigationDrawer-listItem"> <a href="/talks/"> Recorded Talks </a> </li> <li class="NavigationDrawer-listItem"> <a href="https://www.meetup.com/pro/go"> Meetups <i class="material-icons">open_in_new</i> </a> </li> <li class="NavigationDrawer-listItem"> <a href="/wiki/Conferences"> Conferences <i class="material-icons">open_in_new</i> </a> </li> <li class="NavigationDrawer-listItem"> <a href="/blog"> Go blog </a> </li> <li class="NavigationDrawer-listItem"> <a href="/help"> Go project </a> </li> <li class="NavigationDrawer-listItem"> <div>Get connected</div> <div class="Header-socialIcons"> <a class="Header-socialIcon" href="https://groups.google.com/g/golang-nuts"><img src="/images/logos/social/google-groups.svg" /></a> <a class="Header-socialIcon" href="https://github.com/golang"><img src="/images/logos/social/github.svg" /></a> <a class="Header-socialIcon" href="https://twitter.com/golang"><img src="/images/logos/social/twitter.svg" /></a> <a class="Header-socialIcon" href="https://www.reddit.com/r/golang/"><img src="/images/logos/social/reddit.svg" /></a> <a class="Header-socialIcon" href="https://invite.slack.golangbridge.org/"><img src="/images/logos/social/slack.svg" /></a> <a class="Header-socialIcon" href="https://stackoverflow.com/tags/go"><img src="/images/logos/social/stack-overflow.svg" /></a> </div> </li> </ul> </div> </div> </li> </ul> </nav> </aside> <div class="NavigationDrawer-scrim js-scrim" role="presentation"></div> <main class="SiteContent SiteContent--default" id="main-content"> <div> <div class="WhoUsesSubPage-hero--useCase"> <div class="WhoUsesSubPage-heroInner--useCase"> <div class="WhoUsesSubPage-heroContent--useCase"> <div class="WhoUsesSubPage-heroText--useCase"> <ol class="SiteBreadcrumb"> <li class="BreadcrumbNav-li "> <a class="BreadcrumbNav-link" href="/solutions/"> Why Go </a> </li> <li class="BreadcrumbNav-li active"> <a class="BreadcrumbNav-link" href="/solutions/devops"> Development Operations & Site Reliability Engineering </a> </li> </ol> <h1>Development Operations & Site Reliability Engineering</h1> <div class="Article-date">3 October 2019</div> </div> </div> </div> </div> <article class="Article Article--solutions"> <div class="UseCase-content"> <div class="UseCase-contentAside"> <div class="js-useCaseStickyNav UseCaseSubNav-anchorLinks"> </div> </div> <div class="UseCase-contentBody js-useCaseContentBody"> <h2 id="overview" class="sectionHeading">Overview</h2> <h3 id="go-helps-enterprises-automate-and-scale">Go helps enterprises automate and scale</h3> <p>Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement tooling and automation to enhance software development, deployment, and support.</p> <p>Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient, and scalable,”<a href="https://opensource.com/article/18/10/what-site-reliability-engineer" rel="noreferrer" target="_blank"> writes Silvia Fressard</a>, an independent DevOps consultant. “And the practices they developed responded so well to Google’s needs that other big tech companies, such as Amazon and Netflix, also adopted them.” SRE requires a mix of development and operations skills, and “<a href="https://stackify.com/site-reliability-engineering/" rel="noreferrer" target="_blank">empowers software developers</a> to own the ongoing daily operation of their applications in production.”</p> <p>Go serves both siblings, DevOps and SRE, from its fast build times and lean syntax to its security and reliability support. Go’s concurrency and networking features also make it ideal for tools that manage cloud deployment—readily supporting automation while scaling for speed and code maintainability as development infrastructure grows over time.</p> <p>DevOps/SRE teams write software ranging from small scripts, to command-line interfaces (CLI), to complex automation and services, and Go’s feature set has benefits for every situation.</p> <h2 id="key-benefits" class="sectionHeading">Key Benefits</h2> <h3 id="easily-build-small-scripts-with-gos-robust-standard-library-and-static-typing">Easily build small scripts with Go’s robust standard library and static typing</h3> <p>Go’s fast build and startup times. Go’s extensive standard library—including packages for common needs like HTTP, file I/O, time, regular expressions, exec, and JSON/CSV formats—lets DevOps/SREs get right into their business logic. Plus, Go’s static type system and explicit error handling make even small scripts more robust.</p> <h3 id="quickly-deploy-clis-with-gos-fast-build-times">Quickly deploy CLIs with Go’s fast build times</h3> <p>Every site reliability engineer has written “one-time use” scripts that turned into CLIs used by dozens of other engineers every day. And small deployment automation scripts turn into rollout management services. With Go, DevOps/SREs are in a great position to be successful when software scope inevitably creeps. Starting with Go puts you in a great position to be successful when that happens.</p> <h3 id="scale-and-maintain-larger-applications-with-gos-low-memory-footprint-and-doc-generator">Scale and maintain larger applications with Go’s low memory footprint and doc generator</h3> <p>Go’s garbage collector means DevOps/SRE teams don’t have to worry about memory management. And Go’s automatic documentation generator (godoc) makes code self-documenting–lowering maintenance overhead and establishing best practices from the get-go.</p> <div class="FeaturedUsers"> <h2 id="featured-users" class="sectionHeading">Featured users</h2> <table> <thead> <tr> <th class="FeaturedUsers--hiddenMobile">Customer</th> <th>Brief introduction</th> <th>Projects using go</th> </tr> </thead> <tbody> <tr class="js-featuredUsersRow FeaturedUsers-row" > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/docker.svg" alt="Docker" class="DarkMode-img" /> <img src="/images/logos/docker.svg" alt="Docker" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/docker.svg" alt="Docker" /> Docker is a software-as-a-service (SaaS) product, written in Go, that DevOps/SRE teams leverage to “drive secure automation and deployment at massive scale,” supporting their CI/CD efforts. </td> <td> <ul> <li><a href="https://www.docker.com/solutions/cicd">Docker CI/CD</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/drone.svg" alt="Drone" class="DarkMode-img" /> <img src="/images/logos/drone.svg" alt="Drone" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/drone.svg" alt="Drone" /> Drone is a Continuous Delivery system built on container technology, written in Go, that uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers. </td> <td> <ul> <li><a href="https://github.com/drone">Drone</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/etcd.svg" alt="etcd" class="DarkMode-img" /> <img src="/images/logos/etcd.svg" alt="etcd" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/etcd.svg" alt="etcd" /> etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines, and it's written in Go. </td> <td> <ul> <li><a href="https://github.com/etcd-io/etcd">etcd</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/ibm.svg" alt="IBM" class="DarkMode-img" /> <img src="/images/logos/ibm.svg" alt="IBM" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/ibm.svg" alt="IBM" /> IBM’s DevOps teams use Go through Docker and Kubernetes, plus other DevOps and CI/CD tools written in Go. The company also supports connection to it’s messaging middleware through a Go-specific API. </td> <td> <ul> <li><a href="https://developer.ibm.com/messaging/2019/02/05/simplified-ibm-mq-applications-golang/">IBM Applications in Golang</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/netflix.svg" alt="Netflix" class="DarkMode-img" /> <img src="/images/logos/netflix.svg" alt="Netflix" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/netflix.svg" alt="Netflix" /> Netflix uses Go to handle large scale data caching, with a service called Rend, which manages globally replicated storage for personalization data. </td> <td> <ul> <li><a href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef">Application Data Caching</a></li> <li><a href="https://github.com/netflix/rend">Rend</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/microsoft_dark.svg" alt="Microsoft" class="DarkMode-img" /> <img src="/images/logos/microsoft_light.svg" alt="Microsoft" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/microsoft_light.svg" alt="Microsoft" /> Microsoft uses Go in Azure Red Hat OpenShift services. This Microsoft solution provides DevOps teams with OpenShift clusters to maintain regulatory compliance and focus on application development. </td> <td> <ul> <li><a href="https://azure.microsoft.com/en-us/services/openshift/">OpenShift</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/terraform-icon.svg" alt="Terraform" class="DarkMode-img" /> <img src="/images/logos/terraform-icon.svg" alt="Terraform" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/terraform-icon.svg" alt="Terraform" /> Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. It supports a number of cloud providers such as AWS, IBM Cloud, GCP, and Microsoft Azure - and it’s written in Go. </td> <td> <ul> <li><a href="https://www.terraform.io/intro/index.html">Terraform</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/prometheus.svg" alt="Prometheus" class="DarkMode-img" /> <img src="/images/logos/prometheus.svg" alt="Prometheus" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/prometheus.svg" alt="Prometheus" /> Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Most Prometheus components are written in Go, making them easy to build and deploy as static binaries. </td> <td> <ul> <li><a href="https://github.com/prometheus/prometheus">Prometheus</a></li> </ul> </td> </tr> <tr class="js-featuredUsersRow FeaturedUsers-row" hidden > <td class="FeaturedUsers--hiddenMobile"> <img src="/images/logos/youtube.svg" alt="YouTube" class="DarkMode-img" /> <img src="/images/logos/youtube.svg" alt="YouTube" class="LightMode-img" /> </td> <td> <img class="FeaturedUsers--hiddenDesktop" src="/images/logos/youtube.svg" alt="YouTube" /> YouTube uses Go with Vitess (now part of PlanetScale), its database clustering system for horizontal scaling of MySQL through generalized sharding. Since 2011 it’s been a core component of YouTube’s database infrastructure, and has grown to encompass tens of thousands of MySQL nodes. </td> <td> <ul> <li><a href="https://github.com/vitessio/vitess">Vitess</a></li> </ul> </td> </tr> </tbody> </table> <button class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn" type="button"> More projects </button> </div> <h2 id="get-started" class="sectionHeading">Get Started</h2> <h3 id="go-books-on-devops--sre">Go books on DevOps & SRE</h3> <ul class="Learn-tileList"> <li class="Learn-tile"> <a href="https://www.amazon.com/Go-Programming-Network-Operations-Automation-ebook/dp/B07JKKN34L/ref=sr_1_16"> <img class="Learn-tileThumbnail Learn-tileThumbnail--book" alt="Go Programming for Network Operations thumbnail." src="/images/books/go-programming-for-network-operations.jpg"> <span class="Learn-tileTitle"> Go Programming for Network Operations </span> </a> </li> <li class="Learn-tile"> <a href="https://github.com/matryer/goblueprints"> <img class="Learn-tileThumbnail Learn-tileThumbnail--book" alt="Go Programming Blueprints thumbnail." src="/images/learn/go-programming-blueprints.png"> <span class="Learn-tileTitle"> Go Programming Blueprints </span> </a> </li> <li class="Learn-tile"> <a href="https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781"> <img class="Learn-tileThumbnail Learn-tileThumbnail--book" alt="Go in Action thumbnail." src="/images/books/go-in-action.jpg"> <span class="Learn-tileTitle"> Go in Action </span> </a> </li> <li class="Learn-tile"> <a href="https://www.gopl.io/"> <img class="Learn-tileThumbnail Learn-tileThumbnail--book" alt="The Go Programming Language thumbnail." src="/images/learn/go-programming-language-book.png"> <span class="Learn-tileTitle"> The Go Programming Language </span> </a> </li> </ul> <div class="WhoUsesCaseStudy-librariesWrapper"> <div class="headerWithLink"> <h3>Monitoring and tracing</h3> </div> <ul class="WhoUsesCaseStudy-librariesList"> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/go.opentelemetry.io/otel">open-telemetry/opentelemetry-go</a> <p>Vendor-neutral APIs and instrumentation for monitoring and distributed tracing</p> </li> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/jaegertracing/jaeger-client-go?tab=overview">jaegertracing/jaeger-client-go</a> <p>An open source distributed tracing system developed by Uber formats</p> </li> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/grafana/grafana?tab=overview">grafana/grafana</a> <p>An open-source platform for monitoring and observability</p> </li> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/istio/istio?tab=overview">istio/istio</a> <p>An open-source service mesh and integratable platform</p> </li> </ul> <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=tracing">View More</a> </div> <div class="WhoUsesCaseStudy-librariesWrapper"> <div class="headerWithLink"> <h3>CLI Libraries</h3> </div> <ul class="WhoUsesCaseStudy-librariesList"> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/cobra?tab=overview">spf13/cobra</a> <p>A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go</p> </li> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/viper?tab=overview">spf13/viper</a> <p>A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats</p> </li> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/urfave/cli?tab=overview">urfave/cli</a> <p>A minimal framework for creating and organizing command line Go applications</p> </li> </ul> <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=command%20line%20OR%20CLI">View More</a> </div> <div class="WhoUsesCaseStudy-librariesWrapper"> <div class="headerWithLink"> <h3>Other projects</h3> </div> <ul class="WhoUsesCaseStudy-librariesList"> <li class="WhoUsesCaseStudy-library"> <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/golang-migrate/migrate?tab=overview">golang-migrate/migrate</a> <p>A database migration tool written in Go</p> </li> </ul> <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="">View More</a> </div> </div> </div> </article> </div> </main> <footer class="Site-footer"> <div class="Footer"> <div class="Container"> <div class="Footer-links"> <div class="Footer-linkColumn"> <a href="/solutions/" class="Footer-link Footer-link--primary" aria-describedby="footer-description"> Why Go </a> <a href="/solutions/use-cases" class="Footer-link" aria-describedby="footer-description"> Use Cases </a> <a href="/solutions/case-studies" class="Footer-link" aria-describedby="footer-description"> Case Studies </a> </div> <div class="Footer-linkColumn"> <a href="/learn/" class="Footer-link Footer-link--primary" aria-describedby="footer-description"> Get Started </a> <a href="/play" class="Footer-link" aria-describedby="footer-description"> Playground </a> <a href="/tour/" class="Footer-link" aria-describedby="footer-description"> Tour </a> <a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link" aria-describedby="footer-description"> Stack Overflow </a> <a href="/help/" class="Footer-link" aria-describedby="footer-description"> Help </a> </div> <div class="Footer-linkColumn"> <a href="https://pkg.go.dev" class="Footer-link Footer-link--primary" aria-describedby="footer-description"> Packages </a> <a href="/pkg/" class="Footer-link" aria-describedby="footer-description"> Standard Library </a> <a href="https://pkg.go.dev/about" class="Footer-link" aria-describedby="footer-description"> About Go Packages </a> </div> <div class="Footer-linkColumn"> <a href="/project" class="Footer-link Footer-link--primary" aria-describedby="footer-description"> About </a> <a href="/dl/" class="Footer-link" aria-describedby="footer-description"> Download </a> <a href="/blog/" class="Footer-link" aria-describedby="footer-description"> Blog </a> <a href="https://github.com/golang/go/issues" class="Footer-link" aria-describedby="footer-description"> Issue Tracker </a> <a href="/doc/devel/release" class="Footer-link" aria-describedby="footer-description"> Release Notes </a> <a href="/brand" class="Footer-link" aria-describedby="footer-description"> Brand Guidelines </a> <a href="/conduct" class="Footer-link" aria-describedby="footer-description"> Code of Conduct </a> </div> <div class="Footer-linkColumn"> <a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary" aria-describedby="footer-description"> Connect </a> <a href="https://www.twitter.com/golang" class="Footer-link" aria-describedby="footer-description"> Twitter </a> <a href="https://github.com/golang" class="Footer-link" aria-describedby="footer-description"> GitHub </a> <a href="https://invite.slack.golangbridge.org/" class="Footer-link" aria-describedby="footer-description"> Slack </a> <a href="https://reddit.com/r/golang" class="Footer-link" aria-describedby="footer-description"> r/golang </a> <a href="https://www.meetup.com/pro/go" class="Footer-link" aria-describedby="footer-description"> Meetup </a> <a href="https://golangweekly.com/" class="Footer-link" aria-describedby="footer-description"> Golang Weekly </a> </div> </div> </div> </div> <div class="screen-reader-only" id="footer-description" hidden> Opens in new window. </div> <div class="Footer"> <div class="Container Container--fullBleed"> <div class="Footer-bottom"> <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher"> <ul class="Footer-listRow"> <li class="Footer-listItem"> <a href="/copyright" aria-describedby="footer-description">Copyright</a> </li> <li class="Footer-listItem"> <a href="/tos" aria-describedby="footer-description">Terms of Service</a> </li> <li class="Footer-listItem"> <a href="http://www.google.com/intl/en/policies/privacy/" aria-describedby="footer-description" target="_blank" rel="noopener"> Privacy Policy </a> </li> <li class="Footer-listItem"> <a href="/s/website-issue" aria-describedby="footer-description" target="_blank" rel="noopener" > Report an Issue </a> </li> <li class="Footer-listItem go-Footer-listItem"> <button class="go-Button go-Button--text go-Footer-toggleTheme js-toggleTheme" aria-label="Toggle theme"> <img data-value="auto" class="go-Icon go-Icon--inverted" height="24" width="24" src="/images/icons/brightness_6_gm_grey_24dp.svg" alt="System theme"> <img data-value="dark" class="go-Icon go-Icon--inverted" height="24" width="24" src="/images/icons/brightness_2_gm_grey_24dp.svg" alt="Dark theme"> <img data-value="light" class="go-Icon go-Icon--inverted" height="24" width="24" src="/images/icons/light_mode_gm_grey_24dp.svg" alt="Light theme"> </button> </li> </ul> <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener"> <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo"> </a> </div> </div> </div> <script src="/js/jquery.js"></script> <script src="/js/carousels.js"></script> <script src="/js/searchBox.js"></script> <script src="/js/misc.js"></script> <script src="/js/hats.js"></script> <script src="/js/playground.js"></script> <script src="/js/godocs.js"></script> <script async src="/js/copypaste.js"></script> </footer> <section class="Cookie-notice js-cookieNotice"> <div>go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. <a target=_blank href="https://policies.google.com/technologies/cookies">Learn more.</a></div> <div><button class="go-Button">Okay</button></div> </section> </body> </html>