Files
nexus/sreweekly/articles/113/04-serverless-ops-what-do-we-do-when-the-server-goes-away.html
2026-09-12 17:23:01 +08:00

368 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
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 class="no-js" lang="en-us"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="author" content="Tom McLaughlin">
<meta name="description" content="As serverless grows in adoption what will serverless operations be and what will it fold for Operations or DevOps engineer? What do we do when the server goes away? ">
<meta property="og:url" content="http://ServerlessOps.io/">
<meta name="twitter:creator" content="@tmclaughbos">
<title>Serverless DevOps: What do we do when the server goes away?</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/hs/hsstatic/jquery-libs/static-1.1/jquery/jquery-1.7.1.js"></script>
<script>hsjQuery = window['jQuery'];</script>
<meta property="og:description" content="As serverless grows in adoption what will serverless operations be and what will it fold for Operations or DevOps engineer? What do we do when the server goes away? ">
<meta property="og:title" content="Serverless DevOps: What do we do when the server goes away?">
<meta name="twitter:description" content="As serverless grows in adoption what will serverless operations be and what will it fold for Operations or DevOps engineer? What do we do when the server goes away? ">
<meta name="twitter:title" content="Serverless DevOps: What do we do when the server goes away?">
<style>
a.cta_button{-moz-box-sizing:content-box !important;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;vertical-align:middle}.hs-breadcrumb-menu{list-style-type:none;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.hs-breadcrumb-menu-item{float:left;padding:10px 0px 10px 10px}.hs-breadcrumb-menu-divider:before{content:'›';padding-left:10px}.hs-featured-image-link{border:0}.hs-featured-image{float:right;margin:0 0 20px 20px;max-width:50%}@media (max-width: 568px){.hs-featured-image{float:none;margin:0;width:100%;max-width:100%}}.hs-screen-reader-text{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}
</style>
<!-- Added by GoogleAnalytics integration -->
<script>
var _hsp = window._hsp = window._hsp || [];
_hsp.push(['addPrivacyConsentListener', function(consent) { if (consent.allowed || (consent.categories && consent.categories.analytics)) {
(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','//www.google-analytics.com/analytics.js','ga');
ga('create','UA-111279647-1','auto');
ga('send','pageview');
}}]);
</script>
<!-- /Added by GoogleAnalytics integration -->
<meta property="og:image" content="https://www.serverlessops.io/hubfs/blog-serverless-devops-book.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="600">
<meta property="og:image:alt" content="Serverless DevOps: What do we do when the server goes away? [Free, ungated book]">
<meta name="twitter:image" content="https://www.serverlessops.io/hubfs/blog-serverless-devops-book.jpg">
<meta name="twitter:image:alt" content="Serverless DevOps: What do we do when the server goes away? [Free, ungated book]">
<meta property="og:url" content="https://www.serverlessops.io/blog/serverless-ops-what-do-we-do-when-the-server-goes-away">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:creator" content="@tmclaughbos">
<link rel="canonical" href="https://www.serverlessops.io/blog/serverless-ops-what-do-we-do-when-the-server-goes-away">
<meta property="og:type" content="article">
<link rel="alternate" type="application/rss+xml" href="https://www.serverlessops.io/blog/rss.xml">
<meta name="twitter:domain" content="www.serverlessops.io">
<meta name="twitter:site" content="@ServerlessOpsIO">
<meta http-equiv="content-language" content="en-us">
<link href="https://fonts.googleapis.com/css?family=Montserrat:500,600|Yantramanav:400,700" rel="stylesheet">
<link rel="stylesheet" href="///277116.fs1.hubspotusercontent-na1.net/hubfs/277116/hub_generated/template_assets/1/5517371641/1743025231577/template_styles.css">
<link rel="stylesheet" href="https://www.serverlessops.io/hubfs/serverlessops-template/css/prism.css">
<link rel="icon" href="https://www.serverlessops.io/hubfs/serverlessops-template/favicon.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://www.serverlessops.io/hubfs/blog-serverless-devops-book.jpg">
<meta property="og:image" content="https://www.serverlessops.io/hubfs/blog-serverless-devops-book.jpg">
<meta name="generator" content="HubSpot"></head>
<body class="blog2 home2 blog-post2">
<div class="content-container">
<div class="home-feature">
<header>
<div class="row">
<div class="large-3 medium-5 columns no-padding-l">
<a href="http://serverlessops.io"><img src="https://www.serverlessops.io/hubfs/serverlessops-template/logo-serverlessops-long.png" class="logo" alt="ServerlessOps"></a>
</div>
<div id="hs_cos_wrapper_so_menu" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_custom_widget" style="" data-hs-cos-general-type="widget" data-hs-cos-type="custom_widget"><div class="large-6 medium-5 columns no-padding-r no-padding-l">
<ul>
<!-- <li class="hs-menu-item hs-menu-depth-1"><a href="https://serverlessops.io/services">Services</a></li> -->
<li class="hs-menu-item hs-menu-depth-1"><a href="https://serverlessops.io/blog">Blog</a></li>
<li class="hs-menu-item hs-menu-depth-1"><a href="https://serverlessops.io/what-is-serverless">What Is Serverless?</a></li>
<!-- <li class="hs-menu-item hs-menu-depth-1"><a href="https://www.serverlessops.io/coldstart/newsletter-archive">Newsletter</a></li> -->
<li class="hs-menu-item hs-menu-depth-1"><a href="https://serverlessops.io/about">About</a></li>
<li class="hs-menu-item hs-menu-depth-1 show-only-small"><a class="contact">Contact Us</a></li>
</ul>
</div></div>
<div class="large-3 medium-2 columns hide-only-small"><a class="button-outline contact">Contact Us</a></div>
</div>
</header>
<section class="blog-headline">
<div class="row">
<h1><span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text">Serverless DevOps: What do we do when the server goes away?</span></h1>
</div>
</section>
<div class="row post-meta">
<div class="row">
<p class="post-image-author">
<img src="https://www.serverlessops.io/hubfs/blog/profile-tom-600x600.jpg" alt="author image" class="author-image">
<strong>Tom McLaughlin</strong>
</p>
<p class="tags-container"><span class="post-date">February 20, 2018</span> &nbsp; // &nbsp; <span class="icon-bookmark2"></span>
<a class="tag-link" href="https://www.serverlessops.io/blog/topic/serverless">serverless</a>,
<a class="tag-link" href="https://www.serverlessops.io/blog/topic/operations">operations</a>,
<a class="tag-link" href="https://www.serverlessops.io/blog/topic/devops">devops</a>
</p>
</div>
</div>
<img src="https://www.serverlessops.io/hubfs/serverlessops-template/divider.png" alt="Beautiful divider with lightning bolt in the middle" class="divider">
</div>
<div class="white-overlay">&nbsp;</div>
<!-- test -->
<section class="post-body">
<div class="row">
<span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><p><em>When we wrote the original <a href="/blog/serverless-ops-what-do-we-do-when-the-server-goes-away-original" rel=" noopener" target="_blank">Serverless Ops: What do we do when the server goes away?</a> we thought it was a good piece on the future of operations as serverless usage increases. But we didn't expect it to be as popular as it ended up being. </em></p>
<p><em>We've expanded the original blog post into an entire series and a <a href="/download-the-serverless-devops-ebook">free downloadable ebook</a>. We cover a variety of topics including the changing role of operations, organizational change, security, cost and more. We're deeply excited to share this revised and expanded series with you.</em></p>
<p><img src="https://www.serverlessops.io/hs-fs/hubfs/blog-serverless-devops-book.jpg?noresize&amp;width=600&amp;name=blog-serverless-devops-book.jpg" alt="Serverless DevOps: What do we do when the server goes away? [Free, ungated book]" width="600" style="width: 600px; display: block; margin: 0px auto;"></p>
<blockquote>
<p style="text-align: center;"><span style="font-size: 36px;"><em>What do we do when the server goes away?</em></span></p>
</blockquote>
<p>When I built my first serverless application using AWS Lambda, I was excited right from the start. It gave me the opportunity to spend more time building my application and less time focusing on the infrastructure that was required to run it. I didn't have to think about how to get the service up and running, or even ask permission for the necessary resources. The result was an application that was running and doing what I needed more quickly than I had ever experienced before.</p>
<p>But that experience also led me to ponder my future. If there were no servers to manage, what would I do? Would I be able to explain my job? Would I be able to explain to an employer (current or prospective) the value I provide? This was <a href="https://www.serverlessops.io/blog/serverless-ops-why-did-i-start-this-company">why I started ServerlessOps</a>.</p>
<!--more-->
<h2>The Changing Landscape of Operations</h2>
<p>I have seen, and personally been affected by, a shift in the operational needs of an organization due to changes in technology. I once sat in a meeting in which engineering leadership told me there would come a day when my skills would no longer be necessary. When that happened — and they assured me it would be soon — I would not be qualified to be on the engineering team any longer.</p>
<p>Now is the right time for us to begin discussing what operations will be in a serverless world. What happens if we don't? It will be defined for us.</p>
<p>At one end of the spectrum, there are <a href="https://devops.com/serverless-computing-moving-from-devops-to-noops/">people proposing NoOps</a>, where all operational responsibilities are transferred to software engineers. That view exposes a fundamental misunderstanding of operations and its importance. Fortunately, larger voices are already out there <a href="http://redmonk.com/jgovernor/2017/06/02/serverless-and-the-the-death-of-devops-can-you-not/">countering that attitude</a>.</p>
<p>At the other end, there are people who believe operations teams will always be necessary and the status quo will remain. That view simply ignores the change that has been occurring over the past several years.</p>
<p>If DevOps and public cloud adoption hasn't affected your job yet, it's only a matter of time. Adopting a they'll-always-need-me-as-I-am-today attitude leaves you unprepared for change.</p>
<p>Somewhere in between those views, an actual answer exists. Production operations, through its growth in complexity, is expanding and changing shape. As traditional problems we deal with today become abstracted away by serverless, we'll see engineering teams and organizations change. (This will be particularly acute in SaaS product companies.) But many of today's problems — system architecture design, deployment, security, observability, and more — will still exist.</p>
<p>The serverless community <a href="https://medium.com/@PaulDJohnston/serverless-is-superops-9a47825301ac">largely recognizes the value of operations</a> as a vital component of going serverless successfully. Operations never goes away; it simply evolves in practice and meaning. Operations engineers and their expertise still possess tremendous value. But, as a community, we will have to define a new role for ourselves.</p>
<h2>Starting the Conversation</h2>
<p>In this series, we will discuss</p>
<ul>
<li>Operational concerns and responsibilities when much of the stack has been abstracted away</li>
<li>A proposed description of the role of operations when serverless</li>
</ul>
<p>&nbsp;</p>
<p>This series is a start at defining what I see as the role for operations in a serverless environment. I don't believe, however, it's the only way to define the role. I think of operations in the context of SaaS startup companies.</p>
<p>It has been awhile since I worked on traditional internal IT projects or thought of engineering without a more product growth-oriented mindset. My problems and experiences aren't necessarily your problems and experiences. This is the start of a conversation.</p>
<h2>Personal Biases</h2>
<p>As you read this, keep a few things in mind. What I discuss on a technical level is very Amazon Web Services (AWS) centric. This is just a matter of my own experience and the cloud platform I’m most familiar with. You can apply these same ideas to serverless on Microsoft Azure or Google Cloud.</p>
<p>What I write, however, assumes public cloud provider serverless and not private platforms. The effects of public cloud serverless are more far reaching and disruptive than private cloud serverless.</p>
<p>In addition, I’ve worked primarily in product SaaS companies and startups for the past several years. My work has contributed toward the delivery of a company's primary revenue-generating service. But you can take many of these lessons and reapply them. Your customer doesn’t need to be external to your organization. They can just as easily be your coworker.</p>
<p>With all that in mind, here's what I see as the future serverless operations.</p>
<h2>Serverless DevOps The Series</h2>
<ol>
<li><a href="/blog/serverless-devops-what-is-serverless" rel=" noopener">What Is Serverless?</a></li>
<li><a href="/blog/serverless-devops-where-does-ops-belong" rel=" noopener">Where Does Ops Belong?</a></li>
<li><a href="/blog/serverless-devops-why-serverless" rel=" noopener">Why Serverless For Operations People</a></li>
<li><a href="/blog/serverless-devops-the-need-for-ops" rel=" noopener">The Need for Ops</a></li>
<li><a href="https://www.serverlessops.io/blog/serverless-devops-the-need-to-code">The Need To Code</a></li>
<li><a href="/blog/serverless-devops-the-work-operating-serverless-systems" rel=" noopener">The Work Of Operating Serverless Systems</a></li>
<li><a href="/blog/serverless-devops-build-testing-deploy-and-management-tooling" rel=" noopener">Build, Testing, Deploy, and Management Tooling</a></li>
<li><a href="/blog/serverless-devops-security" rel=" noopener">Security</a></li>
<li><a href="/blog/serverless-devops-cost-revenue-findev" rel=" noopener">Cost, Revenue, &amp; FinDev</a></li>
</ol>
<h2>Serverless DevOps: The Book!</h2>
<p>But wait, there's more! We've also released the <em>Serverless DevOps</em> series as a free downloadable book, too. This comprehensive 80-page book describes the future of operations as more organizations go serverless.</p>
<p><span style="background-color: transparent; color: var(--flint);">Whether you're an individual operations engineer or managing an operations team, this book is meant for you. <strong>Get a copy, no form required.</strong></span></p>
<p style="text-align: center;"><!--HubSpot Call-to-Action Code --><span class="hs-cta-wrapper" id="hs-cta-wrapper-33cc5ceb-a73c-4215-9088-9fa2b3213cf0"><span class="hs-cta-node hs-cta-33cc5ceb-a73c-4215-9088-9fa2b3213cf0" id="hs-cta-33cc5ceb-a73c-4215-9088-9fa2b3213cf0"><!--[if lte IE 8]><div id="hs-cta-ie-element"></div><![endif]--><a href="https://cta-redirect.hubspot.com/cta/redirect/277116/33cc5ceb-a73c-4215-9088-9fa2b3213cf0" target="_blank" rel="noopener"><img class="hs-cta-img" id="hs-cta-img-33cc5ceb-a73c-4215-9088-9fa2b3213cf0" style="border-width:0px;" src="https://no-cache.hubspot.com/cta/default/277116/33cc5ceb-a73c-4215-9088-9fa2b3213cf0.png" alt="[Free, Ungated Book] Serverless DevOps: What do we do when the server goes away?"></a></span><script charset="utf-8" src="/hs/cta/cta/current.js"></script><script type="text/javascript"> hbspt.cta._relativeUrls=true;hbspt.cta.load(277116, '33cc5ceb-a73c-4215-9088-9fa2b3213cf0', {"useNewLoader":"true","region":"na1"}); </script></span><!-- end HubSpot Call-to-Action Code --></p></span>
</div>
</section>
<span id="hs_cos_wrapper_raw_html" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_raw_html" style="" data-hs-cos-general-type="widget" data-hs-cos-type="raw_html"></span><span id="hs_cos_wrapper_my_raw_html" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_raw_html" style="" data-hs-cos-general-type="widget" data-hs-cos-type="raw_html"></span>
<div class="blog-pagination">
<div class="row">
<img src="https://www.serverlessops.io/hubfs/serverlessops-template/divider.png" alt="Beautiful divider with lightning bolt in the middle" class="divider">
<div class="large-6 columns">
<div class="row">
<div class="small-1 columns"><span class="page-arrow">«</span></div>
<div class="small-11 columns">
<a class="previous" href="/blog/static-websites-on-aws-s3-with-serverless-framework">
<span class="text-upper-gray">Previous Post</span><br>
Static Websites On AWS S3 With Serverless Framework</a>
</div>
</div>
</div>
<div class="large-6 columns">
<div class="row">
<div class="small-11 columns">
<a class="next" href="/blog/podcast-interview-founding-your-own-devops-startup">
<span class="text-upper-gray">Next Post</span><br>
Podcast Interview: Founding Your Own DevOps Startup</a>
</div>
<div class="small-1 columns"><span class="page-arrow">»</span></div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5a5ec3cae9e62ed3"></script>
<!-- <div id="hs_cos_wrapper_so_about" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module" >
<section class="content-cta about-serverlessops">
<div class="row">
<span id="hs_cos_wrapper_so_about_about_serverlessops" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="rich_text" ><h3>We're ServerlessOps</h3>
<p>We help you design, build, and run reliable serverless systems in AWS. Whether you're a startup, cloud native, or just beginning your cloud journey, we're here for you. Learn more about the services we offer, and how we can help you successfully accomplish your serverless operations goals.</p>
<div class="content-audience">
<div class="large-4 column no-padding-l">
<a class="box" href="https://www.serverlessops.io/services#transformation">
<img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-cloud-transformation.png" alt="DevOps Transformation and AWS Cloud Transition" />
<h3>DevOps Transformation and Cloud Transition</h3>
<span class="red">Learn More &raquo</span>
</a>
</div>
<div class="large-4 column no-padding-l no-padding-r">
<a class="box" href="https://www.serverlessops.io/services#standards">
<img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-standards.png" alt="AWS Serverless Standards and Best Practices" />
<h3>AWS Serverless Standards and Best Practices</h3>
<span class="red">Learn More &raquo</span>
</a>
</div>
<div class="large-4 column no-padding-r">
<a class="box" href="https://www.serverlessops.io/services#training">
<img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-best-practices.png" alt="AWS Serverless Training" />
<h3>AWS Serverless Training</h3>
<span class="red">Learn More &raquo</span>
</a>
</div></span>
</div>
</div>
</section>
</div> -->
<div id="hs_cos_wrapper_contact_panel" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><div class="contact-form">
<div class="headline">
<h3>Contact Us</h3>
<div class="contact-close"><a class="btn-close contact">×</a></div>
</div>
<div class="content-contact-form">
Looking to get in touch with a member of our team? Simply fill out the form below and we'll be in touch soon!
<br><br>
<!--[if lte IE 8]>
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2-legacy.js"></script>
<![endif]-->
<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2.js"></script>
<script>
hbspt.forms.create({
portalId: "277116",
formId: "f93eb029-15a3-435c-9f0f-88c1a87a9036",
css: ""
});
</script>
</div>
</div></div>
<div id="hs_cos_wrapper_contact_cta_no_contact" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<section class="content-cta">
<div class="row">
<div class="large-9 columns">
<h3></h3>
<br>
</div>
<!--
<div class="large-3 columns fadeIn">
<button class="contact button-outline">Get in Touch</button>
</div>
-->
</div>
</section>
</div>
<div id="hs_cos_wrapper_so_footer_no_drift" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module"><footer>
<a href="https://twitter.com/ServerlessOpsIO" target="_blank"><img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-twitter.png?noresize" alt="Twitter (Displays an icon with the Twitter logo in the middle)" class="icon"></a>
<a href="https://www.linkedin.com/company/11402338/" target="_blank"><img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-linkedin.png?noresize" alt="LinkedIn (Displays an icon with the LinkedIn logo in the middle)" class="icon"></a>
<a href="mailto:hello@serverlessops.io" target="_blank"><img src="https://www.serverlessops.io/hubfs/serverlessops-template/icon-email.png?noresize" alt="Email (Displays an icon with an email in the middle)" class="icon"></a>
</footer>
<script src="https://www.serverlessops.io/hubfs/serverlessops-template/js/jquery.slidereveal.min.js"></script>
<script src="https://www.serverlessops.io/hubfs/serverlessops-template/js/wow.min.js"></script>
<script src="https://www.serverlessops.io/hubfs/serverlessops-template/js/jquery.scrolly.js"></script>
<script>
$(document).ready(function(){
$('.contact-form').slideReveal({
trigger: $(".contact"),
push: false,
overlay: false,
autoEscape: true,
width: 500,
shown: function(slider, trigger){
$('.contact-form').addClass('display-block').removeClass('display-none');
},
hidden: function(slider, trigger){
$('.contact-form').addClass('display-none').removeClass('display-block');
}
});
});
</script>
<script>jQuery(document).ready(function($){$(function(){$('a[href*=#]:not([href=#])').click(function(){if(location.pathname.replace(/^\//,'')==this.pathname.replace(/^\//,'')&&location.hostname==this.hostname){var target=$(this.hash);target=target.length?target:$('[name='+this.hash.slice(1)+']');if(target.length){$('html,body').animate({scrollTop:target.offset().top},1000);return false;}}});});});wow=new WOW({animateClass:'animated',offset:100});wow.init();</script></div>
</div>
<!-- HubSpot performance collection script -->
<script defer src="/hs/hsstatic/content-cwv-embed/static-1.1293/embed.js"></script>
<script>
var hsVars = hsVars || {}; hsVars['language'] = 'en-us';
</script>
<script src="/hs/hsstatic/cos-i18n/static-1.53/bundles/project.js"></script>
<!-- Start of HubSpot Analytics Code -->
<script type="text/javascript">
var _hsq = _hsq || [];
_hsq.push(["setContentType", "blog-post"]);
_hsq.push(["setCanonicalUrl", "https:\/\/www.serverlessops.io\/blog\/serverless-ops-what-do-we-do-when-the-server-goes-away"]);
_hsq.push(["setPageId", "6291070078"]);
_hsq.push(["setContentMetadata", {
"contentPageId": 6291070078,
"legacyPageId": "6291070078",
"contentFolderId": null,
"contentGroupId": 277229703,
"abTestId": null,
"languageVariantId": 6291070078,
"languageCode": "en-us",
}]);
</script>
<script type="text/javascript" id="hs-script-loader" async defer src="/hs/scriptloader/277116.js"></script>
<!-- End of HubSpot Analytics Code -->
<script type="text/javascript">
var hsVars = {
render_id: "136cf92e-c9b9-4c66-90b6-8b811452bd6c",
ticks: 1783397870623,
page_id: 6291070078,
content_group_id: 277229703,
portal_id: 277116,
app_hs_base_url: "https://app.hubspot.com",
cp_hs_base_url: "https://cp.hubspot.com",
language: "en-us",
analytics_page_type: "blog-post",
scp_content_type: "",
analytics_page_id: "6291070078",
category_id: 3,
folder_id: 0,
is_hubspot_user: false
}
</script>
<script defer src="/hs/hsstatic/HubspotToolsMenu/static-1.640/js/index.js"></script>
<script src="https://www.serverlessops.io/hubfs/serverlessops-template/js/prism.js"></script>
</body></html>