2 lines
25 KiB
HTML
2 lines
25 KiB
HTML
<!DOCTYPE html><html lang="en" mode="light" > <!-- The Head v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <script defer data-domain="trstringer.com" src="https://plausible.io/js/plausible.js"></script><title>The Reality of Adding Nines to Your SLOs | Thomas Stringer</title><meta name="generator" content="Jekyll v3.10.0" /><meta property="og:title" content="The Reality of Adding Nines to Your SLOs" /><meta name="author" content="Thomas Stringer" /><meta property="og:locale" content="en_US" /><meta name="description" content="A lot of times there is an incorrect assumption that adding nines to your SLO is linear, both in gains and associated costs. Unfortunately, this idea can cause a lot of unnecessary burden on the engineers that have to build out and maintain the solution." /><meta property="og:description" content="A lot of times there is an incorrect assumption that adding nines to your SLO is linear, both in gains and associated costs. Unfortunately, this idea can cause a lot of unnecessary burden on the engineers that have to build out and maintain the solution." /><link rel="canonical" href="https://trstringer.com/slo-adding-nines/" /><meta property="og:url" content="https://trstringer.com/slo-adding-nines/" /><meta property="og:site_name" content="Thomas Stringer" /><meta property="og:type" content="article" /><meta property="article:published_time" content="2024-06-17T00:00:00+08:00" /><meta name="twitter:card" content="summary" /><meta property="twitter:title" content="The Reality of Adding Nines to Your SLOs" /><meta name="twitter:site" content="@tr_stringer" /><meta name="twitter:creator" content="@Thomas Stringer" /><meta name="google-site-verification" content="google_meta_tag_verification" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Thomas Stringer"},"dateModified":"2024-06-17T00:00:00+08:00","datePublished":"2024-06-17T00:00:00+08:00","description":"A lot of times there is an incorrect assumption that adding nines to your SLO is linear, both in gains and associated costs. Unfortunately, this idea can cause a lot of unnecessary burden on the engineers that have to build out and maintain the solution.","headline":"The Reality of Adding Nines to Your SLOs","mainEntityOfPage":{"@type":"WebPage","@id":"https://trstringer.com/slo-adding-nines/"},"url":"https://trstringer.com/slo-adding-nines/"}</script> <!-- The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps Generated by: https://www.favicon-generator.org/ v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2019 Cotes Chung Published under the MIT license --><link rel="shortcut icon" href="/assets/img/favicons/favicon.ico" type="image/x-icon"><link rel="icon" href="/assets/img/favicons/favicon.ico" type="image/x-icon"><link rel="apple-touch-icon" href="/assets/img/favicons/apple-icon.png"><link rel="apple-touch-icon" href="/assets/img/favicons/apple-icon-precomposed.png"><link rel="apple-touch-icon" sizes="57x57" href="/assets/img/favicons/apple-icon-57x57.png"><link rel="apple-touch-icon" sizes="60x60" href="/assets/img/favicons/apple-icon-60x60.png"><link rel="apple-touch-icon" sizes="72x72" href="/assets/img/favicons/apple-icon-72x72.png"><link rel="apple-touch-icon" sizes="76x76" href="/assets/img/favicons/apple-icon-76x76.png"><link rel="apple-touch-icon" sizes="114x114" href="/assets/img/favicons/apple-icon-114x114.png"><link rel="apple-touch-icon" sizes="120x120" href="/assets/img/favicons/apple-icon-120x120.png"><link rel="apple-touch-icon" sizes="144x144" href="/assets/img/favicons/apple-icon-144x144.png"><link rel="apple-touch-icon" sizes="152x152" href="/assets/img/favicons/apple-icon-152x152.png"><link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicons/apple-icon-180x180.png"><link rel="icon" type="image/png" sizes="192x192" href="/assets/img/favicons/android-icon-192x192.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="96x96" href="/assets/img/favicons/favicon-96x96.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicons/favicon-16x16.png"><meta name='msapplication-config' content='/assets/img/favicons/browserconfig.xml'><meta name="msapplication-TileColor" content="#ffffff"><meta name="msapplication-TileImage" content="/assets/img/favicons/ms-icon-144x144.png"><meta name="theme-color" content="#ffffff"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"><link rel="dns-prefetch" href="https://fonts.gstatic.com"><link rel="preconnect" href="https://www.google-analytics.com" crossorigin="use-credentials"><link rel="dns-prefetch" href="https://www.google-analytics.com"><link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><link rel="preconnect" href="cdn.jsdelivr.net"><link rel="dns-prefetch" href="cdn.jsdelivr.net"><link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha256-LA89z+k9fjgMKQ/kq4OO2Mrf8VltYml/VES+Rg0fh20=" crossorigin><link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.11.2/css/all.min.css" integrity="sha256-+N4/V/SbAFiW1MPBCXnfnP9QSN3+Keu+NlB+0ev/YKQ=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha256-LA89z+k9fjgMKQ/kq4OO2Mrf8VltYml/VES+Rg0fh20=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.11.2/css/all.min.css" integrity="sha256-+N4/V/SbAFiW1MPBCXnfnP9QSN3+Keu+NlB+0ev/YKQ=" crossorigin="anonymous"><link rel="preload" as="style" href="/assets/css/post.css"><link rel="stylesheet" href="/assets/css/post.css"><link rel="preload" as="style" href="/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.css"><link rel="stylesheet" href="/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.css" /><link rel="preload" as="script" href="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"><link rel="preload" as="script" href="https://cdn.jsdelivr.net/npm/popper.js@1.15.0/dist/umd/popper.min.js" integrity="sha256-fTuUgtT7O2rqoImwjrhDgbXTKUwyxxujIMRIK7TbuNU=" crossorigin> <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <script> window.jQuery || document.write('<script src="/assets/lib/jquery-3.4.1.min.js"><\/script>'); </script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.15.0/dist/umd/popper.min.js" integrity="sha256-fTuUgtT7O2rqoImwjrhDgbXTKUwyxxujIMRIK7TbuNU=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha256-5+02zu5UULQkO7w1GIr6vftCgMfFdZcAHeDtFnKZsBs=" crossorigin="anonymous" async></script> <script src="/assets/js/dist/commons.js" async></script> <script src="/assets/js/dist/timeago.min.js" async></script><link rel="preload" as="script" href="/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.js"> <script src="/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.js" async></script> <script src="/assets/js/dist/toc.min.js" async></script> <script src="/assets/js/dist/tooltip-loader.min.js" async></script> <script src="/app.js" defer></script><body data-spy="scroll" data-target="#toc"><div id="sidebar" class="d-flex flex-column"> <!-- The Side Bar v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><div id="nav-wrapper"><div id="profile-wrapper" class="d-flex flex-column"><div id="avatar" class="d-flex justify-content-center"> <a href="/" alt="avatar"> <img src="/images/Logo-C.png" alt="avatar"> </a></div><div class="profile-text mt-3"><div id="site-title"> <a href="/">Thomas Stringer</a></div><div id="site-subtitle" class="font-italic">Software Engineer</div></div></div><ul class="nav flex-column"><li class="nav-item d-flex justify-content-center "> <a href="/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-home ml-3 mr-3 unloaded"></i> <span>HOME</span> </a></li><li class="nav-item d-flex justify-content-center "> <a href="/tabs/tags/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-tags ml-3 mr-3 unloaded"></i> <span>TAGS</span> </a></li><li class="nav-item d-flex justify-content-center "> <a href="/tabs/archives/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-archive ml-3 mr-3 unloaded"></i> <span>ARCHIVES</span> </a></li><li class="nav-item d-flex justify-content-center "> <a href="/tabs/book/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-book ml-3 mr-3 unloaded"></i> <span>DEVOPS BOOK</span> </a></li><li class="nav-item d-flex justify-content-center "> <a href="/tabs/vim/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-star ml-3 mr-3 unloaded"></i> <span>VIM</span> </a></li><li class="nav-item d-flex justify-content-center "> <a href="/tabs/about/" class="nav-link d-flex justify-content-center align-items-center w-100"> <i class="fa-fw fas fa-info ml-3 mr-3 unloaded"></i> <span>ABOUT</span> </a></li></ul></div><div class="sidebar-bottom d-flex flex-wrap justify-content-around mt-4"> <a href="https://github.com/trstringer" target="_blank"> <i class="fab fa-github-alt"></i> </a> <a href="https://www.linkedin.com/in/trstringer" target="_blank"> <i class="fab fa-linkedin-in"></i> </a> <a href="https://twitter.com/tr_stringer" target="_blank"> <i class="fab fa-twitter"></i> </a> <a href="javascript:window.open('mailto:' + ['thomas','trstringer.com'].join('@'))"> <i class="fas fa-envelope"></i> </a> <a href="/feed.xml" target="_blank"> <i class="fas fa-rss"></i> </a></div></div><!-- The Top Bar v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><div id="topbar-wrapper" class="row justify-content-center topbar-down"><div id="topbar" class="col-11 d-flex h-100 align-items-center justify-content-between"> <span id="breadcrumb"> <span> <a href="/"> Posts </a> </span> <span>The Reality of Adding Nines to Your SLOs</span> </span> <i id="sidebar-trigger" class="fas fa-bars fa-fw"></i><div id="topbar-title"> Post</div><i id="search-trigger" class="fas fa-search fa-fw"></i> <span id="search-wrapper" class="align-items-center"> <i class="fas fa-search fa-fw"></i> <input class="form-control" id="search-input" type="search" placeholder="Search..."> <i class="fa fa-times-circle fa-fw" id="search-cleaner"></i> </span> <span id="search-cancel" >Cancel</span></div></div><div id="main-wrapper"><div id="main"> <!-- Fixed kramdown code highlight rendering: https://github.com/penibelst/jekyll-compress-html/issues/101 https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901 --><div class="row"><div id="post-wrapper" class="col-12 col-lg-11 col-xl-8"><div class="post pl-1 pr-1 pl-sm-2 pr-sm-2 pl-md-4 pr-md-4"><h1 data-toc-skip>The Reality of Adding Nines to Your SLOs</h1><div class="post-meta text-muted d-flex flex-column"><div> Posted <span class="timeago" data-toggle="tooltip" data-placement="bottom" title="Mon, Jun 17, 2024, 12:00 AM +0800"> Jun 17, 2024 <i class="unloaded">2024-06-17T00:00:00+08:00</i> </span> by <span class="author"> Thomas Stringer </span></div></div><div class="post-content"><p>A lot of times there is an incorrect assumption that adding nines to your SLO is linear, both in gains and associated costs. Unfortunately, this idea can cause a lot of unnecessary burden on the engineers that have to build out and maintain the solution.</p><p>I’m a big fan of looking at the data, and doing the math.</p><p><strong>Downtime in 30 day SLO window</strong></p><table><thead><tr><th>Uptime<th>Nines<th>Downtime (minutes)<tbody><tr><td>99%<td>2<td>432<tr><td>99.9%<td>3<td>43<tr><td>99.99%<td>4<td>4<tr><td>99.999%<td>5<td>0.4<tr><td>99.9999%<td>6<td>0.04</table><p>Going from 2 nines to 3 nines, we get a whopping gain of a little less than 400 minutes uptime. This is almost 6 and a half hours of uptime in a month, just a little shy of a full business working day. I’d say that’s a pretty significant leap in uptime and reliability!</p><p>But going from 4 nines to 5 nines gives us only about a 3 minute uptime gain. Will your users even care? Will they even notice? It’s helpful to visualize the gains as you start climbing the ladder of nines:</p><p><img src="../images/slo-more-nines1.png" alt="Nines downtime chart" /></p><p>For a lot of business stakeholders, this probably isn’t what they thought it would be. Much like the uptime gains, the added costs and complexity are also very much not linear:</p><p><img src="../images/slo-more-nines2.png" alt="Nines downtime and costs chart" /></p><p>When you start adding nines, especially beyond 3 nines, it because dramatically expensive and complex. Having less than 5 minutes of downtime over the course of a month requires a high level of redundancy, distribution, and automation. You can no longer rely on the on-call engineer to respond and mitigate to meet this SLO.</p><p>It all boils down to creating the SLOs and requirements to keep your users happy, but nothing more. Unnecessary reliability is a high cost.</p></div><div class="post-tail-wrapper text-muted"><div class="post-meta mb-3"> <i class="far fa-folder-open fa-fw mr-1"></i> <a href='/categories/blog/'>Blog</a></div><div class="post-tags"> <i class="fa fa-tags fa-fw mr-1"></i> <a href="/tags/sre/" class="post-tag no-text-decoration" >sre</a> <a href="/tags/devops/" class="post-tag no-text-decoration" >devops</a></div><div class="post-tail-bottom d-flex justify-content-between align-items-center pt-5 pb-2"><div class="license-wrapper"> This post is licensed under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> by the author.</div><!-- Post sharing snippet v2.1 https://github.com/cotes2020/jekyll-theme-chirpy © 2019 Cotes Chung Published under the MIT License --><div class="share-wrapper"> <span class="share-label text-muted mr-1">Share</span> <span class="share-icons"> <a href="https://twitter.com/intent/tweet?text=The Reality of Adding Nines to Your SLOs - Thomas Stringer&url=https://trstringer.com/slo-adding-nines/" data-toggle="tooltip" data-placement="top" title="Twitter" target="_blank"> <i class="fa-fw fab fa-twitter"></i> </a> <a href="https://www.facebook.com/sharer/sharer.php?title=The Reality of Adding Nines to Your SLOs - Thomas Stringer&u=https://trstringer.com/slo-adding-nines/" data-toggle="tooltip" data-placement="top" title="Facebook" target="_blank"> <i class="fa-fw fab fa-facebook-square"></i> </a> <a href="https://telegram.me/share?text=The Reality of Adding Nines to Your SLOs - Thomas Stringer&url=https://trstringer.com/slo-adding-nines/" data-toggle="tooltip" data-placement="top" title="Telegram" target="_blank"> <i class="fa-fw fab fa-telegram"></i> </a> <i class="fa-fw fas fa-link small" onclick="copyLink()" data-toggle="tooltip" data-placement="top" title="Copy link"></i> </span></div></div></div></div></div><!-- The Pannel on right side (Desktop views) v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><div id="panel-wrapper" class="col-xl-3 pl-2 text-muted topbar-down"><div class="access"><div id="access-tags"><h3 data-toc-skip>Topics</h3><div class="d-flex flex-wrap mt-3 mb-1 mr-3"> <a class="post-tag" href="/tags/aks/">aks</a> <a class="post-tag post-tag-highlight" href="/tags/azure/">azure</a> <a class="post-tag" href="/tags/azure-functions/">azure functions</a> <a class="post-tag" href="/tags/containers/">containers</a> <a class="post-tag" href="/tags/debian/">debian</a> <a class="post-tag post-tag-highlight" href="/tags/devops/">devops</a> <a class="post-tag" href="/tags/docker/">docker</a> <a class="post-tag" href="/tags/fedora/">fedora</a> <a class="post-tag" href="/tags/flask/">flask</a> <a class="post-tag" href="/tags/github/">github</a> <a class="post-tag" href="/tags/gnome/">gnome</a> <a class="post-tag post-tag-highlight" href="/tags/golang/">golang</a> <a class="post-tag" href="/tags/gunicorn/">gunicorn</a> <a class="post-tag" href="/tags/helm/">helm</a> <a class="post-tag" href="/tags/istio/">istio</a> <a class="post-tag post-tag-highlight" href="/tags/kubernetes/">kubernetes</a> <a class="post-tag post-tag-highlight" href="/tags/linux/">linux</a> <a class="post-tag" href="/tags/mysql/">mysql</a> <a class="post-tag" href="/tags/openssl/">openssl</a> <a class="post-tag" href="/tags/opentelemetry/">opentelemetry</a> <a class="post-tag" href="/tags/postgresql/">postgresql</a> <a class="post-tag" href="/tags/prometheus/">prometheus</a> <a class="post-tag post-tag-highlight" href="/tags/python/">python</a> <a class="post-tag" href="/tags/security/">security</a> <a class="post-tag" href="/tags/software-development/">software development</a> <a class="post-tag post-tag-highlight" href="/tags/sre/">sre</a> <a class="post-tag post-tag-highlight" href="/tags/systemd/">systemd</a> <a class="post-tag" href="/tags/terraform/">terraform</a> <a class="post-tag" href="/tags/ubuntu/">ubuntu</a> <a class="post-tag" href="/tags/vim/">vim</a></div></div></div><div id="toc-wrapper" class="pl-0 pr-4 mb-5"><h3 data-toc-skip class="pl-3 pt-2 mb-3">Contents</h3><nav id="toc" data-toggle="toc"></nav></div></div></div><div class="row"><div id="post-extend-wrapper" class="col-12 col-lg-11 col-xl-8"><div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-md-4 pr-md-4"> <!-- Navigation buttons at the bottom of the post. v2.1 https://github.com/cotes2020/jekyll-theme-chirpy © 2020 Cotes Chung MIT License --><div class="post-navigation d-flex justify-content-between"> <a href="/neovim-auto-reopen-files/" class="btn btn-outline-primary"><p>Automatically Reopen Previous Files and Session in Neovim</p></a> <a href="/neovim-automatic-session-git-branch-aware/" class="btn btn-outline-primary"><p>Neovim Git Branch Aware Automatic Session Persistence</p></a></div><!-- The related posts of current post. Placed in the bottom of every single post. v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2019 Cotes Chung Published under the MIT License --><div id="related-posts" class="mt-4 mb-2 mb-sm-4 pb-2"><h3 class="pt-2 mt-1 mb-4 ml-1" data-toc-skip>Further Reading</h3><div class="card-deck mb-4"><div class="card"> <a href="/openetelemetry-sample-application/"><div class="card-body"> <span class="timeago small"> Mar 26, 2024 <i class="unloaded">2024-03-26T00:00:00+08:00</i> </span><h3 class="pt-0 mt-1 mb-3" data-toc-skip>OpenTelemetry Sample Application</h3><div class="text-muted small"><p>TLDR OpenTelemetry shopping cart is repo that includes a microservices application, OpenTelemetry components, and many observability backend tools (the whole Grafana stack, Elasticsearch, Jaeger) ...</p></div></div></a></div><div class="card"> <a href="/systemd-journal-to-syslog-azure-monitoring/"><div class="card-body"> <span class="timeago small"> Jun 16, 2021 <i class="unloaded">2021-06-16T00:00:00+08:00</i> </span><h3 class="pt-0 mt-1 mb-3" data-toc-skip>Send systemd Journal Logs to Azure Monitor through Syslog</h3><div class="text-muted small"><p>A massive benefit of the cloud is the ability to centralize logging. It makes things easier whether you’re using VMs, web apps, containerized workloads, etc. Having one (or a few) place to go allow...</p></div></div></a></div><div class="card"> <a href="/azure-monitor-agent-linux-syslog-systemd-journal/"><div class="card-body"> <span class="timeago small"> Jun 22, 2021 <i class="unloaded">2021-06-22T00:00:00+08:00</i> </span><h3 class="pt-0 mt-1 mb-3" data-toc-skip>Using the Azure Monitor Agent to Send systemd Journal Logs through Syslog</h3><div class="text-muted small"><p>I recently talked about sending systemd journal logs to Azure Monitor, and that blog post focused on using the OMS agent to collect logs from a systemd unit and send them to Azure Monitor through s...</p></div></div></a></div></div></div></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script> <script type="text/javascript"> const el = document.querySelectorAll('#post-wrapper img'); const observer = lozad(el); observer.observe(); </script> <!-- The Footer v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><footer class="d-flex w-100 justify-content-center"><div class="d-flex justify-content-between align-items-center"><div class="footer-left"><p class="mb-0"> © 2025 <a href="https://twitter.com/tr_stringer">Thomas Stringer</a>. <span data-toggle="tooltip" data-placement="top" title="Except where otherwise noted, the blog posts on this site are licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author.">Some rights reserved.</span></p></div><div class="footer-right"><p class="mb-0"> Powered by <a href="https://jekyllrb.com" target="_blank">Jekyll</a> with <a href="https://github.com/cotes2020/jekyll-theme-chirpy/">Chirpy</a> theme.</p></div></div></footer></div><!-- The Search results v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --><div id="search-result-wrapper" class="d-flex justify-content-center unloaded"><div class="col-12 col-xl-11 post-content"><div id="search-hints"><h4 class="text-muted mb-4">Topics</h4><a class="post-tag" href="/tags/opentelemetry/">opentelemetry</a> <a class="post-tag" href="/tags/vim/">vim</a> <a class="post-tag" href="/tags/openssl/">openssl</a> <a class="post-tag" href="/tags/istio/">istio</a> <a class="post-tag" href="/tags/helm/">helm</a> <a class="post-tag" href="/tags/prometheus/">prometheus</a> <a class="post-tag" href="/tags/kubernetes/">kubernetes</a> <a class="post-tag" href="/tags/devops/">devops</a> <a class="post-tag" href="/tags/azure/">azure</a> <a class="post-tag" href="/tags/postgresql/">postgresql</a> <a class="post-tag" href="/tags/fedora/">fedora</a> <a class="post-tag" href="/tags/linux/">linux</a> <a class="post-tag" href="/tags/flask/">flask</a> <a class="post-tag" href="/tags/debian/">debian</a> <a class="post-tag" href="/tags/containers/">containers</a> <a class="post-tag" href="/tags/python/">python</a> <a class="post-tag" href="/tags/ubuntu/">ubuntu</a> <a class="post-tag" href="/tags/terraform/">terraform</a> <a class="post-tag" href="/tags/sre/">sre</a> <a class="post-tag" href="/tags/mysql/">mysql</a> <a class="post-tag" href="/tags/gunicorn/">gunicorn</a> <a class="post-tag" href="/tags/gnome/">gnome</a> <a class="post-tag" href="/tags/docker/">docker</a> <a class="post-tag" href="/tags/azure-functions/">azure functions</a> <a class="post-tag" href="/tags/golang/">golang</a> <a class="post-tag" href="/tags/software-development/">software development</a> <a class="post-tag" href="/tags/systemd/">systemd</a> <a class="post-tag" href="/tags/github/">github</a> <a class="post-tag" href="/tags/security/">security</a> <a class="post-tag" href="/tags/aks/">aks</a></div><div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div></div></div></div><div id="mask"></div><a id="back-to-top" href="#" class="btn btn-lg btn-box-shadow" role="button"> <i class="fas fa-angle-up"></i> </a> <!-- The GA snippet v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', '', 'auto'); ga('send', 'pageview'); </script> <!-- Jekyll Simple Search loader v2.0 https://github.com/cotes2020/jekyll-theme-chirpy © 2017-2019 Cotes Chung MIT License --> <script src="https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.7.3/dest/simple-jekyll-search.min.js" integrity="sha256-qcLR00zq6pJk4je3MLgAri8Nn+ZumUlXgTKR2H/xCY0=" crossorigin="anonymous"></script> <script> SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('search-results'), json: '/assets/data/search.json', searchResultTemplate: '<div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-lg-4 pr-lg-4 pl-xl-0 pr-xl-0"> <a href="https://trstringer.com{url}">{title}</a><div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1"><div class="mr-sm-4"><i class="far fa-folder fa-fw"></i>{categories}</div><div><i class="fa fa-tag fa-fw"></i>{tags}</div></div><p>{snippet}</p></div>', noResultsText: '<p class="mt-5">Oops! No result founds.</p>' }); </script>
|