Files
nexus/sreweekly/articles/175/03-multi-cloud-you-keep-using-that-word.html
2026-09-12 17:23:01 +08:00

730 lines
109 KiB
HTML
Raw 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"><script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script><script>class RocketLazyLoadScripts{constructor(){this.v="1.2.5.1",this.triggerEvents=["keydown","mousedown","mousemove","touchmove","touchstart","touchend","wheel"],this.userEventHandler=this._triggerListener.bind(this),this.touchStartHandler=this._onTouchStart.bind(this),this.touchMoveHandler=this._onTouchMove.bind(this),this.touchEndHandler=this._onTouchEnd.bind(this),this.clickHandler=this._onClick.bind(this),this.interceptedClicks=[],this.interceptedClickListeners=[],this._interceptClickListeners(this),window.addEventListener("pageshow",e=>{this.persisted=e.persisted,this.everythingLoaded&&this._triggerLastFunctions()}),document.addEventListener("DOMContentLoaded",()=>{this._preconnect3rdParties()}),this.delayedScripts={normal:[],async:[],defer:[]},this.trash=[],this.allJQueries=[]}_addUserInteractionListener(e){if(document.hidden){e._triggerListener();return}this.triggerEvents.forEach(t=>window.addEventListener(t,e.userEventHandler,{passive:!0})),window.addEventListener("touchstart",e.touchStartHandler,{passive:!0}),window.addEventListener("mousedown",e.touchStartHandler),document.addEventListener("visibilitychange",e.userEventHandler)}_removeUserInteractionListener(){this.triggerEvents.forEach(e=>window.removeEventListener(e,this.userEventHandler,{passive:!0})),document.removeEventListener("visibilitychange",this.userEventHandler)}_onTouchStart(e){"HTML"!==e.target.tagName&&(window.addEventListener("touchend",this.touchEndHandler),window.addEventListener("mouseup",this.touchEndHandler),window.addEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.addEventListener("mousemove",this.touchMoveHandler),e.target.addEventListener("click",this.clickHandler),this._disableOtherEventListeners(e.target,!0),this._renameDOMAttribute(e.target,"onclick","rocket-onclick"),this._pendingClickStarted())}_onTouchMove(e){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler),e.target.removeEventListener("click",this.clickHandler),this._disableOtherEventListeners(e.target,!1),this._renameDOMAttribute(e.target,"rocket-onclick","onclick"),this._pendingClickFinished()}_onTouchEnd(){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler)}_onClick(e){e.target.removeEventListener("click",this.clickHandler),this._disableOtherEventListeners(e.target,!1),this._renameDOMAttribute(e.target,"rocket-onclick","onclick"),this.interceptedClicks.push(e),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this._pendingClickFinished()}_replayClicks(){window.removeEventListener("touchstart",this.touchStartHandler,{passive:!0}),window.removeEventListener("mousedown",this.touchStartHandler),this.interceptedClicks.forEach(e=>{e.target.dispatchEvent(new MouseEvent("click",{view:e.view,bubbles:!0,cancelable:!0}))})}_interceptClickListeners(e){EventTarget.prototype.addEventListenerBase=EventTarget.prototype.addEventListener,EventTarget.prototype.addEventListener=function(t,i,r){"click"!==t||e.windowLoaded||i===e.clickHandler||e.interceptedClickListeners.push({target:this,func:i,options:r}),(this||window).addEventListenerBase(t,i,r)}}_disableOtherEventListeners(e,t){this.interceptedClickListeners.forEach(i=>{i.target===e&&(t?e.removeEventListener("click",i.func,i.options):e.addEventListener("click",i.func,i.options))}),e.parentNode!==document.documentElement&&this._disableOtherEventListeners(e.parentNode,t)}_waitForPendingClicks(){return new Promise(e=>{this._isClickPending?this._pendingClickFinished=e:e()})}_pendingClickStarted(){this._isClickPending=!0}_pendingClickFinished(){this._isClickPending=!1}_renameDOMAttribute(e,t,i){e.hasAttribute&&e.hasAttribute(t)&&(event.target.setAttribute(i,event.target.getAttribute(t)),event.target.removeAttribute(t))}_triggerListener(){this._removeUserInteractionListener(this),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this)):this._loadEverythingNow()}_preconnect3rdParties(){let e=[];document.querySelectorAll("script[type=rocketlazyloadscript][data-rocket-src]").forEach(t=>{let i=t.getAttribute("data-rocket-src");if(i&&0!==i.indexOf("data:")){0===i.indexOf("//")&&(i=location.protocol+i);try{let r=new URL(i).origin;r!==location.origin&&e.push({src:r,crossOrigin:t.crossOrigin||"module"===t.getAttribute("data-rocket-type")})}catch(n){}}}),e=[...new Map(e.map(e=>[JSON.stringify(e),e])).values()],this._batchInjectResourceHints(e,"preconnect")}async _loadEverythingNow(){this.lastBreath=Date.now(),this._delayEventListeners(this),this._delayJQueryReady(this),this._handleDocumentWrite(),this._registerAllDelayedScripts(),this._preloadAllScripts(),await this._loadScriptsFromList(this.delayedScripts.normal),await this._loadScriptsFromList(this.delayedScripts.defer),await this._loadScriptsFromList(this.delayedScripts.async);try{await this._triggerDOMContentLoaded(),await this._pendingWebpackRequests(this),await this._triggerWindowLoad()}catch(e){console.error(e)}window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this._waitForPendingClicks().then(()=>{this._replayClicks()}),this._emptyTrash()}_registerAllDelayedScripts(){document.querySelectorAll("script[type=rocketlazyloadscript]").forEach(e=>{e.hasAttribute("data-rocket-src")?e.hasAttribute("async")&&!1!==e.async?this.delayedScripts.async.push(e):e.hasAttribute("defer")&&!1!==e.defer||"module"===e.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(e):this.delayedScripts.normal.push(e):this.delayedScripts.normal.push(e)})}async _transformScript(e){if(await this._littleBreath(),!0===e.noModule&&"noModule"in HTMLScriptElement.prototype){e.setAttribute("data-rocket-status","skipped");return}return new Promise(t=>{let i;function r(){(i||e).setAttribute("data-rocket-status","executed"),t()}try{if(navigator.userAgent.indexOf("Firefox/")>0||""===navigator.vendor)i=document.createElement("script"),[...e.attributes].forEach(e=>{let t=e.nodeName;"type"!==t&&("data-rocket-type"===t&&(t="type"),"data-rocket-src"===t&&(t="src"),i.setAttribute(t,e.nodeValue))}),e.text&&(i.text=e.text),i.hasAttribute("src")?(i.addEventListener("load",r),i.addEventListener("error",function(){i.setAttribute("data-rocket-status","failed"),t()}),setTimeout(()=>{i.isConnected||t()},1)):(i.text=e.text,r()),e.parentNode.replaceChild(i,e);else{let n=e.getAttribute("data-rocket-type"),s=e.getAttribute("data-rocket-src");n?(e.type=n,e.removeAttribute("data-rocket-type")):e.removeAttribute("type"),e.addEventListener("load",r),e.addEventListener("error",function(){e.setAttribute("data-rocket-status","failed"),t()}),s?(e.removeAttribute("data-rocket-src"),e.src=s):e.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(e.text)))}}catch(a){e.setAttribute("data-rocket-status","failed"),t()}})}async _loadScriptsFromList(e){let t=e.shift();return t&&t.isConnected?(await this._transformScript(t),this._loadScriptsFromList(e)):Promise.resolve()}_preloadAllScripts(){this._batchInjectResourceHints([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}_batchInjectResourceHints(e,t){var i=document.createDocumentFragment();e.forEach(e=>{let r=e.getAttribute&&e.getAttribute("data-rocket-src")||e.src;if(r){let n=document.createElement("link");n.href=r,n.rel=t,"preconnect"!==t&&(n.as="script"),e.getAttribute&&"module"===e.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),e.crossOrigin&&(n.crossOrigin=e.crossOrigin),e.integrity&&(n.integrity=e.integrity),i.appendChild(n),this.trash.push(n)}}),document.head.appendChild(i)}_delayEventListeners(e){let t={};function i(i,r){return t[r].eventsToRewrite.indexOf(i)>=0&&!e.everythingLoaded?"rocket-"+i:i}function r(e,r){var n;!t[n=e]&&(t[n]={originalFunctions:{add:n.addEventListener,remove:n.removeEventListener},eventsToRewrite:[]},n.addEventListener=function(){arguments[0]=i(arguments[0],n),t[n].originalFunctions.add.apply(n,arguments)},n.removeEventListener=function(){arguments[0]=i(arguments[0],n),t[n].originalFunctions.remove.apply(n,arguments)}),t[e].eventsToRewrite.push(r)}function n(t,i){let r=t[i];t[i]=null,Object.defineProperty(t,i,{get:()=>r||function(){},set(n){e.everythingLoaded?r=n:t["rocket"+i]=r=n}})}r(document,"DOMContentLoaded"),r(window,"DOMContentLoaded"),r(window,"load"),r(window,"pageshow"),r(document,"readystatechange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}_delayJQueryReady(e){let t;function i(t){return e.everythingLoaded?t:t.split(" ").map(e=>"load"===e||0===e.indexOf("load.")?"rocket-jquery-load":e).join(" ")}function r(r){if(r&&r.fn&&!e.allJQueries.includes(r)){r.fn.ready=r.fn.init.prototype.ready=function(t){return e.domReadyFired?t.bind(document)(r):document.addEventListener("rocket-DOMContentLoaded",()=>t.bind(document)(r)),r([])};let n=r.fn.on;r.fn.on=r.fn.init.prototype.on=function(){return this[0]===window&&("string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=i(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(e=>{let t=arguments[0][e];delete arguments[0][e],arguments[0][i(e)]=t})),n.apply(this,arguments),this},e.allJQueries.push(r)}t=r}r(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>t,set(e){r(e)}})}async _pendingWebpackRequests(e){let t=document.querySelector("script[data-webpack]");async function i(){return new Promise(e=>{t.addEventListener("load",e),t.addEventListener("error",e)})}t&&(await i(),await e._requestAnimFrame(),await e._pendingWebpackRequests(e))}async _triggerDOMContentLoaded(){this.domReadyFired=!0,await this._littleBreath(),document.dispatchEvent(new Event("rocket-readystatechange")),await this._littleBreath(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this._littleBreath(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this._littleBreath(),window.dispatchEvent(new Event("rocket-DOMContentLoaded"))}async _triggerWindowLoad(){await this._littleBreath(),document.dispatchEvent(new Event("rocket-readystatechange")),await this._littleBreath(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this._littleBreath(),window.dispatchEvent(new Event("rocket-load")),await this._littleBreath(),window.rocketonload&&window.rocketonload(),await this._littleBreath(),this.allJQueries.forEach(e=>e(window).trigger("rocket-jquery-load")),await this._littleBreath();let e=new Event("rocket-pageshow");e.persisted=this.persisted,window.dispatchEvent(e),await this._littleBreath(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted}),this.windowLoaded=!0}_triggerLastFunctions(){document.onreadystatechange&&document.onreadystatechange(),window.onload&&window.onload(),window.onpageshow&&window.onpageshow({persisted:this.persisted})}_handleDocumentWrite(){let e=new Map;document.write=document.writeln=function(t){let i=document.currentScript;i||console.error("WPRocket unable to document.write this: "+t);let r=document.createRange(),n=i.parentElement,s=e.get(i);void 0===s&&(s=i.nextSibling,e.set(i,s));let a=document.createDocumentFragment();r.setStart(a,0),a.appendChild(r.createContextualFragment(t)),n.insertBefore(a,s)}}async _littleBreath(){Date.now()-this.lastBreath>45&&(await this._requestAnimFrame(),this.lastBreath=Date.now())}async _requestAnimFrame(){return document.hidden?new Promise(e=>setTimeout(e)):new Promise(e=>requestAnimationFrame(e))}_emptyTrash(){this.trash.forEach(e=>e.remove())}static run(){let e=new RocketLazyLoadScripts;e._addUserInteractionListener(e)}}RocketLazyLoadScripts.run();</script>
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- This site is optimized with the Yoast SEO plugin v26.6 - https://yoast.com/wordpress/plugins/seo/ -->
<title>Multi-Cloud: You keep using that word... - DiscoPosse.com</title>
<link rel="canonical" href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Multi-Cloud: You keep using that word... - DiscoPosse.com" />
<meta property="og:description" content="It isn&#8217;t surprising in 2019 how many times I bump into an environment or organization where the word multi-cloud comes up.  Technology presents us with lots of architectural choices that often get very buzzword-centric.  Multi-cloud leads the pack on popularity and buzz wordiness.  Multi-cloud also continues  to be a strangely ill-defined even at this point ... Read more" />
<meta property="og:url" content="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/" />
<meta property="og:site_name" content="DiscoPosse.com" />
<meta property="article:published_time" content="2019-06-19T15:33:17+00:00" />
<meta property="og:image" content="https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png" />
<meta property="og:image:width" content="976" />
<meta property="og:image:height" content="850" />
<meta property="og:image:type" content="image/png" />
<meta name="author" content="Eric" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@DiscoPosse" />
<meta name="twitter:site" content="@DiscoPosse" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Eric" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="6 minutes" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#article","isPartOf":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/"},"author":{"name":"Eric","@id":"https://discoposse.com/#/schema/person/2172d15eacc228b547480d516f4bd940"},"headline":"Multi-Cloud: You keep using that word&#8230;","datePublished":"2019-06-19T15:33:17+00:00","mainEntityOfPage":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/"},"wordCount":1192,"commentCount":5,"publisher":{"@id":"https://discoposse.com/#/schema/person/2172d15eacc228b547480d516f4bd940"},"image":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#primaryimage"},"thumbnailUrl":"https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png","keywords":["cloud architecture","Multi-Cloud","multicloud"],"articleSection":["Cloud, Virtualization and Architecture"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#respond"]}]},{"@type":"WebPage","@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/","url":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/","name":"Multi-Cloud: You keep using that word... - DiscoPosse.com","isPartOf":{"@id":"https://discoposse.com/#website"},"primaryImageOfPage":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#primaryimage"},"image":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#primaryimage"},"thumbnailUrl":"https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png","datePublished":"2019-06-19T15:33:17+00:00","breadcrumb":{"@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#primaryimage","url":"https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png","contentUrl":"https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png","width":976,"height":850},{"@type":"BreadcrumbList","@id":"https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://discoposse.com/"},{"@type":"ListItem","position":2,"name":"Multi-Cloud: You keep using that word&#8230;"}]},{"@type":"WebSite","@id":"https://discoposse.com/#website","url":"https://discoposse.com/","name":"DiscoPosse.com","description":"Using the Chicken to Measure IT","publisher":{"@id":"https://discoposse.com/#/schema/person/2172d15eacc228b547480d516f4bd940"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://discoposse.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https://discoposse.com/#/schema/person/2172d15eacc228b547480d516f4bd940","name":"Eric","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://discoposse.com/#/schema/person/image/","url":"https://discoposse.com/wp-content/uploads/2018/07/cropped-400dpiLogoCropped.png","contentUrl":"https://discoposse.com/wp-content/uploads/2018/07/cropped-400dpiLogoCropped.png","width":2048,"height":410,"caption":"Eric"},"logo":{"@id":"https://discoposse.com/#/schema/person/image/"},"description":"People, Process, and Technology. Powered by Community!","sameAs":["http://www.DiscoPosse.com"]}]}</script>
<!-- / Yoast SEO plugin. -->
<link rel='dns-prefetch' href='//www.googletagmanager.com' />
<link rel='dns-prefetch' href='//discoposse.com' />
<link href='https://discoposse.com' rel='preconnect' />
<link rel="alternate" type="application/rss+xml" title="DiscoPosse.com &raquo; Feed" href="https://discoposse.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="DiscoPosse.com &raquo; Comments Feed" href="https://discoposse.com/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="DiscoPosse.com &raquo; Multi-Cloud: You keep using that word&#8230; Comments Feed" href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://discoposse.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdiscoposse.com%2F2019%2F06%2F19%2Fmulti-cloud-you-keep-using-that-word%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://discoposse.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdiscoposse.com%2F2019%2F06%2F19%2Fmulti-cloud-you-keep-using-that-word%2F&#038;format=xml" />
<style id='wp-img-auto-sizes-contain-inline-css'>
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link rel='stylesheet' id='fontawesome-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/fontawesome/fontawesome.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='fontawesome-solid-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/fontawesome/solid.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='fancybox-css' href='https://discoposse.com/wp-content/plugins/hivepress/node_modules/@fancyapps/fancybox/dist/jquery.fancybox.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='slick-css' href='https://discoposse.com/wp-content/plugins/hivepress/node_modules/slick-carousel/slick/slick.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='flatpickr-css' href='https://discoposse.com/wp-content/plugins/hivepress/node_modules/flatpickr/dist/flatpickr.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='select2-css' href='https://discoposse.com/wp-content/plugins/hivepress/node_modules/select2/dist/css/select2.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='intl-tel-input-css' href='https://discoposse.com/wp-content/plugins/hivepress/node_modules/intl-tel-input/build/css/intlTelInput.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='jquery-ui-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/jquery-ui.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='hivepress-grid-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/grid.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='hivepress-core-common-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/common.min.css?ver=1.7.18' media='all' />
<link rel='stylesheet' id='hivepress-core-frontend-css' href='https://discoposse.com/wp-content/plugins/hivepress/assets/css/frontend.min.css?ver=1.7.18' media='all' />
<style id='wp-emoji-styles-inline-css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id='wp-block-library-inline-css'>
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id='wp-block-search-inline-css'>
.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{height:1.25em;min-height:24px;min-width:24px;width:1.25em;fill:currentColor;vertical-align:text-bottom}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
/*# sourceURL=https://discoposse.com/wp-includes/blocks/search/style.min.css */
</style>
<style id='classic-theme-styles-inline-css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id='global-styles-inline-css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--contrast: var(--contrast);--wp--preset--color--contrast-2: var(--contrast-2);--wp--preset--color--contrast-3: var(--contrast-3);--wp--preset--color--base: var(--base);--wp--preset--color--base-2: var(--base-2);--wp--preset--color--base-3: var(--base-3);--wp--preset--color--accent: var(--accent);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='stylesheet' id='generate-style-css' href='https://discoposse.com/wp-content/themes/generatepress/assets/css/all.min.css?ver=3.6.1' media='all' />
<style id='generate-style-inline-css'>
body{background-color:#efefef;color:#3a3a3a;}a{color:#1e73be;}a:hover, a:focus, a:active{color:#000000;}body .grid-container{max-width:1120px;}.wp-block-group__inner-container{max-width:1120px;margin-left:auto;margin-right:auto;}.site-header .header-image{width:300px;}.generate-back-to-top{font-size:20px;border-radius:3px;position:fixed;bottom:30px;right:30px;line-height:40px;width:40px;text-align:center;z-index:10;transition:opacity 300ms ease-in-out;opacity:0.1;transform:translateY(1000px);}.generate-back-to-top__show{opacity:1;transform:translateY(0);}:root{--contrast:#222222;--contrast-2:#575760;--contrast-3:#b2b2be;--base:#f0f0f0;--base-2:#f7f8f9;--base-3:#ffffff;--accent:#1e73be;}:root .has-contrast-color{color:var(--contrast);}:root .has-contrast-background-color{background-color:var(--contrast);}:root .has-contrast-2-color{color:var(--contrast-2);}:root .has-contrast-2-background-color{background-color:var(--contrast-2);}:root .has-contrast-3-color{color:var(--contrast-3);}:root .has-contrast-3-background-color{background-color:var(--contrast-3);}:root .has-base-color{color:var(--base);}:root .has-base-background-color{background-color:var(--base);}:root .has-base-2-color{color:var(--base-2);}:root .has-base-2-background-color{background-color:var(--base-2);}:root .has-base-3-color{color:var(--base-3);}:root .has-base-3-background-color{background-color:var(--base-3);}:root .has-accent-color{color:var(--accent);}:root .has-accent-background-color{background-color:var(--accent);}body, button, input, select, textarea{font-family:-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";}body{line-height:1.5;}.entry-content > [class*="wp-block-"]:not(:last-child):not(.wp-block-heading){margin-bottom:1.5em;}.main-navigation .main-nav ul ul li a{font-size:14px;}.sidebar .widget, .footer-widgets .widget{font-size:17px;}h1{font-weight:300;font-size:40px;}h2{font-weight:300;font-size:30px;}h3{font-size:20px;}h4{font-size:inherit;}h5{font-size:inherit;}@media (max-width:768px){.main-title{font-size:30px;}h1{font-size:30px;}h2{font-size:25px;}}.top-bar{background-color:#636363;color:#ffffff;}.top-bar a{color:#ffffff;}.top-bar a:hover{color:#303030;}.site-header{background-color:#ffffff;color:#3a3a3a;}.site-header a{color:#3a3a3a;}.main-title a,.main-title a:hover{color:#222222;}.site-description{color:#757575;}.main-navigation,.main-navigation ul ul{background-color:#222222;}.main-navigation .main-nav ul li a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items{color:#ffffff;}.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a, .main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a{color:#ffffff;background-color:#3f3f3f;}button.menu-toggle:hover,button.menu-toggle:focus,.main-navigation .mobile-bar-items a,.main-navigation .mobile-bar-items a:hover,.main-navigation .mobile-bar-items a:focus{color:#ffffff;}.main-navigation .main-nav ul li[class*="current-menu-"] > a{color:#ffffff;background-color:#3f3f3f;}.navigation-search input[type="search"],.navigation-search input[type="search"]:active, .navigation-search input[type="search"]:focus, .main-navigation .main-nav ul li.search-item.active > a, .main-navigation .menu-bar-items .search-item.active > a{color:#ffffff;background-color:#3f3f3f;}.main-navigation ul ul{background-color:#3f3f3f;}.main-navigation .main-nav ul ul li a{color:#ffffff;}.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a{color:#ffffff;background-color:#4f4f4f;}.main-navigation .main-nav ul ul li[class*="current-menu-"] > a{color:#ffffff;background-color:#4f4f4f;}.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header{background-color:#ffffff;}.entry-meta{color:#595959;}.entry-meta a{color:#595959;}.entry-meta a:hover{color:#1e73be;}.sidebar .widget{background-color:#ffffff;}.sidebar .widget .widget-title{color:#000000;}.footer-widgets{background-color:#ffffff;}.footer-widgets .widget-title{color:#000000;}.site-info{color:#ffffff;background-color:#222222;}.site-info a{color:#ffffff;}.site-info a:hover{color:#606060;}.footer-bar .widget_nav_menu .current-menu-item a{color:#606060;}input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],textarea,select{color:#666666;background-color:#fafafa;border-color:#cccccc;}input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="number"]:focus,textarea:focus,select:focus{color:#666666;background-color:#ffffff;border-color:#bfbfbf;}button,html input[type="button"],input[type="reset"],input[type="submit"],a.button,a.wp-block-button__link:not(.has-background){color:#ffffff;background-color:#666666;}button:hover,html input[type="button"]:hover,input[type="reset"]:hover,input[type="submit"]:hover,a.button:hover,button:focus,html input[type="button"]:focus,input[type="reset"]:focus,input[type="submit"]:focus,a.button:focus,a.wp-block-button__link:not(.has-background):active,a.wp-block-button__link:not(.has-background):focus,a.wp-block-button__link:not(.has-background):hover{color:#ffffff;background-color:#3f3f3f;}a.generate-back-to-top{background-color:rgba( 0,0,0,0.4 );color:#ffffff;}a.generate-back-to-top:hover,a.generate-back-to-top:focus{background-color:rgba( 0,0,0,0.6 );color:#ffffff;}:root{--gp-search-modal-bg-color:var(--base-3);--gp-search-modal-text-color:var(--contrast);--gp-search-modal-overlay-bg-color:rgba(0,0,0,0.2);}@media (max-width:768px){.main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a{background:none;color:#ffffff;}}.inside-top-bar{padding:10px;}.site-main .wp-block-group__inner-container{padding:40px;}.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull{margin-left:-40px;width:calc(100% + 80px);max-width:calc(100% + 80px);}.container.grid-container{max-width:1200px;}.rtl .menu-item-has-children .dropdown-menu-toggle{padding-left:20px;}.rtl .main-navigation .main-nav ul li.menu-item-has-children > a{padding-right:20px;}.site-info{padding:20px;}@media (max-width:768px){.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header{padding:30px;}.site-main .wp-block-group__inner-container{padding:30px;}.site-info{padding-right:10px;padding-left:10px;}.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull{margin-left:-30px;width:calc(100% + 60px);max-width:calc(100% + 60px);}}.one-container .sidebar .widget{padding:0px;}/* End cached CSS */@media (max-width:768px){.main-navigation .menu-toggle,.main-navigation .mobile-bar-items,.sidebar-nav-mobile:not(#sticky-placeholder){display:block;}.main-navigation ul,.gen-sidebar-nav{display:none;}[class*="nav-float-"] .site-header .inside-header > *{float:none;clear:both;}}
/*# sourceURL=generate-style-inline-css */
</style>
<link rel='stylesheet' id='generate-font-icons-css' href='https://discoposse.com/wp-content/themes/generatepress/assets/css/components/font-icons.min.css?ver=3.6.1' media='all' />
<script src="https://discoposse.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script src="https://discoposse.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<script id="zxcvbn-async-js-extra">
var _zxcvbnSettings = {"src":"https://discoposse.com/wp-includes/js/zxcvbn.min.js"};
//# sourceURL=zxcvbn-async-js-extra
</script>
<script src="https://discoposse.com/wp-includes/js/zxcvbn-async.min.js?ver=1.0" id="zxcvbn-async-js"></script>
<!-- Google tag (gtag.js) snippet added by Site Kit -->
<!-- Google Analytics snippet added by Site Kit -->
<script type="rocketlazyloadscript" data-rocket-src="https://www.googletagmanager.com/gtag/js?id=GT-5NR7VDT" id="google_gtagjs-js" async></script>
<script id="google_gtagjs-js-after">
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
gtag("set","linker",{"domains":["discoposse.com"]});
gtag("js", new Date());
gtag("set", "developer_id.dZTNiMT", true);
gtag("config", "GT-5NR7VDT", {"googlesitekit_post_type":"post","googlesitekit_post_categories":"Cloud, Virtualization and Architecture","googlesitekit_post_date":"20190619"});
//# sourceURL=google_gtagjs-js-after
</script>
<link rel="https://api.w.org/" href="https://discoposse.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://discoposse.com/wp-json/wp/v2/posts/7424" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://discoposse.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.9.7" />
<link rel='shortlink' href='https://discoposse.com/?p=7424' />
<!-- start Simple Custom CSS and JS -->
<script type="rocketlazyloadscript">
(function(s,t,a,n){s[t]||(s[t]=a,n=s[a]=function(){n.q.push(arguments)},
n.q=[],n.v=2,n.l=1*new Date)})(window,"InstanaEumObject","ineum");
ineum('reportingUrl', 'https://eum-orange-saas.instana.io');
ineum('key', '7up4OuX5TDGL8_q5mOohhw');
ineum('trackSessions');
</script>
<script type="rocketlazyloadscript" defer crossorigin="anonymous" data-rocket-src="https://eum.instana.io/eum.min.js"></script><!-- end Simple Custom CSS and JS -->
<!-- start Simple Custom CSS and JS -->
<!-- Add HTML code to the header or the footer.
For example, you can use the following code for loading the jQuery library from Google CDN:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
or the following one for loading the Bootstrap library from MaxCDN:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
-- End of the comment -->
<script type="rocketlazyloadscript" id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/0d5e9d0ab247c200596a5f801/9ad9fba8b63960199be47516f.js");</script><!-- end Simple Custom CSS and JS -->
<meta name="generator" content="Site Kit by Google 1.168.0" /><link rel="icon" href="https://discoposse.com/wp-content/uploads/2016/03/cropped-favicon-150x150.png" sizes="32x32" />
<link rel="icon" href="https://discoposse.com/wp-content/uploads/2016/03/cropped-favicon-300x300.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://discoposse.com/wp-content/uploads/2016/03/cropped-favicon-300x300.png" />
<meta name="msapplication-TileImage" content="https://discoposse.com/wp-content/uploads/2016/03/cropped-favicon-300x300.png" />
<!-- Facebook Pixel Code -->
<script type="rocketlazyloadscript">
var aepc_pixel = {"pixel_id":"1041731576239958","user":{},"enable_advanced_events":"yes","fire_delay":"0","can_use_sku":"yes"},
aepc_pixel_args = [],
aepc_extend_args = function( args ) {
if ( typeof args === 'undefined' ) {
args = {};
}
for(var key in aepc_pixel_args)
args[key] = aepc_pixel_args[key];
return args;
};
// Extend args
if ( 'yes' === aepc_pixel.enable_advanced_events ) {
aepc_pixel_args.userAgent = navigator.userAgent;
aepc_pixel_args.language = navigator.language;
if ( document.referrer.indexOf( document.domain ) < 0 ) {
aepc_pixel_args.referrer = document.referrer;
}
}
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.agent='dvpixelcaffeinewordpress';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', aepc_pixel.pixel_id, aepc_pixel.user);
setTimeout( function() {
fbq('track', "PageView", aepc_pixel_args);
}, aepc_pixel.fire_delay * 1000 );
</script>
<!-- End Facebook Pixel Code -->
</head>
<body class="wp-singular post-template-default single single-post postid-7424 single-format-standard wp-custom-logo wp-embed-responsive wp-theme-generatepress hp-theme--generatepress right-sidebar nav-below-header one-container fluid-header active-footer-widgets-1 nav-aligned-center header-aligned-center dropdown-hover featured-image-active" itemtype="https://schema.org/Blog" itemscope>
<a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a> <header class="site-header" id="masthead" aria-label="Site" itemtype="https://schema.org/WPHeader" itemscope>
<div class="inside-header grid-container grid-parent">
<div class="site-logo">
<a href="https://discoposse.com/" rel="home">
<picture class="header-image is-logo-image">
<source type="image/webp" srcset="https://discoposse.com/wp-content/uploads/2018/07/cropped-400dpiLogoCropped.png.webp"/>
<img alt="DiscoPosse.com" src="https://discoposse.com/wp-content/uploads/2018/07/cropped-400dpiLogoCropped.png"/>
</picture>
</a>
</div> </div>
</header>
<nav class="main-navigation sub-menu-right" id="site-navigation" aria-label="Primary" itemtype="https://schema.org/SiteNavigationElement" itemscope>
<div class="inside-navigation grid-container grid-parent">
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false">
<span class="mobile-menu">Menu</span> </button>
<div id="primary-menu" class="main-nav"><ul id="menu-custom-small-menu" class=" menu sf-menu"><li class="menu-item menu-item--first menu-item--user-login"> <a href="#user_login_modal" class="hp-menu__item hp-menu__item--user-login hp-link">
<i class="hp-icon fas fa-sign-in-alt"></i>
<span>Sign In</span>
</a>
</li><li id="menu-item-6819" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current_page_parent menu-item-has-children menu-item-6819"><a href="https://discoposse.com/blog/">Blog<span role="presentation" class="dropdown-menu-toggle"></span></a>
<ul class="sub-menu">
<li id="menu-item-5722" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-5722"><a href="https://discoposse.com/category/cloud-virt/">Cloud, Virtualization and Architecture</a></li>
<li id="menu-item-5720" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5720"><a href="https://discoposse.com/category/apps-os-databases/">Applications, OS and Databases</a></li>
<li id="menu-item-5721" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5721"><a href="https://discoposse.com/category/automation-development/">Automation, Scripting and Development</a></li>
<li id="menu-item-5723" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5723"><a href="https://discoposse.com/category/community/">Community and Thought Leadership</a></li>
<li id="menu-item-5728" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5728"><a href="https://discoposse.com/category/training-courses/">Training</a></li>
<li id="menu-item-5726" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5726"><a href="https://discoposse.com/category/networking-security/">Networking and Security</a></li>
<li id="menu-item-4813" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4813"><a href="https://discoposse.com/category/bcp-dr/">BCP/DR</a></li>
<li id="menu-item-5727" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5727"><a href="https://discoposse.com/category/reviews/">Reviews</a></li>
<li id="menu-item-4821" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4821"><a href="https://discoposse.com/category/music-and-media/">Music and Media</a></li>
<li id="menu-item-4820" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4820"><a href="https://discoposse.com/category/fitness/">Fitness and Food</a></li>
<li id="menu-item-5730" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5730"><a href="https://discoposse.com/category/podcast/">Podcast</a></li>
</ul>
</li>
<li id="menu-item-8140" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8140"><a href="https://gtmdelta.com/discoposse-podcast">Podcast</a></li>
<li id="menu-item-8141" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8141"><a href="https://gtmdelta.com">GTM Delta</a></li>
<li id="menu-item-4834" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4834"><a href="https://discoposse.com/about/">About</a></li><li class="menu-item menu-item--last menu-item--user-login"> <a href="#user_login_modal" class="hp-menu__item hp-menu__item--user-login hp-link">
<i class="hp-icon fas fa-sign-in-alt"></i>
<span>Sign In</span>
</a>
</li>
</ul></div> </div>
</nav>
<div class="site grid-container container hfeed grid-parent" id="page">
<div class="site-content" id="content">
<div class="content-area grid-parent mobile-grid-100 grid-75 tablet-grid-75" id="primary">
<main class="site-main" id="main">
<article id="post-7424" class="post-7424 post type-post status-publish format-standard has-post-thumbnail hentry category-cloud-virt tag-cloud-architecture tag-multi-cloud tag-multicloud" itemtype="https://schema.org/CreativeWork" itemscope>
<div class="inside-article">
<div class="featured-image page-header-image-single grid-container grid-parent">
<img width="976" height="850" src="https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png" class="attachment-full size-full wp-post-image" alt="" itemprop="image" decoding="async" fetchpriority="high" srcset="https://discoposse.com/wp-content/uploads/2019/06/multi-cloud.png 976w, https://discoposse.com/wp-content/uploads/2019/06/multi-cloud-300x261.png 300w, https://discoposse.com/wp-content/uploads/2019/06/multi-cloud-768x669.png 768w" sizes="(max-width: 976px) 100vw, 976px" /> </div>
<header class="entry-header">
<h1 class="entry-title" itemprop="headline">Multi-Cloud: You keep using that word&#8230;</h1> <div class="entry-meta">
<span class="posted-on"><time class="entry-date published" datetime="2019-06-19T11:33:17-04:00" itemprop="datePublished">June 19, 2019</time></span> <span class="byline">by <span class="author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope><a class="url fn n" href="https://discoposse.com/author/discoposse/" title="View all posts by Eric" rel="author" itemprop="url"><span class="author-name" itemprop="name">Eric</span></a></span></span> </div>
</header>
<div class="entry-content" itemprop="text">
<p>It isn&#8217;t surprising in 2019 how many times I bump into an environment or organization where the word multi-cloud comes up.  Technology presents us with lots of architectural choices that often get very buzzword-centric.  Multi-cloud leads the pack on popularity and buzz wordiness.  Multi-cloud also continues  to be a strangely ill-defined even at this point in the evolution of our cloud adoption in the industry.</p>
<h2>Multi-Cloud 2012</h2>
<p>In 2012 it was all about whether IT teams would be looking at the newly available public cloud alternatives to solve the woes of bursting for resource needs.  That was the most often pitched use-case that we used to Devine what a &#8220;hybrid cloud&#8221; was.  Vendors and architects showed exciting diagrams of on-premises applications that would suddenly burst out to the cloud to scale when demand increased.  Sounded good at the time.</p>
<p>The issues we would face became very obvious, very quickly.</p>
<ul>
<li>Where is your data for that bursting application?</li>
<li>How do you define and deploy networks that securely span the hybrid platform?</li>
<li>What applications do you have today that can leverage this architectural pattern?</li>
</ul>
<p>Multi-cloud was right on the heels of the hybrid cloud story because the &#8220;big 3&#8221; players (AWS, Azure, Google Cloud) were all pushing to become the target for your workloads.  This meant that you could now run your bursting application across more than one cloud.</p>
<p>This new multi-cloud idea was fast becoming the classic &#8220;solution looking for a problem&#8221;.  It was technically interesting (read: challenging) and we begin hearing stories of Netflix and others who were taking advantage of the burstable options in and across clouds.</p>
<p>The questions we needed to ask began to solidify:</p>
<ul>
<li>Is cloud lock-in a concern?  In other words, does being beholden to a single cloud provider put you at risk both technically and in your negotiation position?</li>
<li>Are your engineering teams capable and eager to own the tooling to build for more than one cloud platform?</li>
<li>Does the risk versus reward and ROI work out for a multi-cloud application scenario?</li>
</ul>
<p>If you run single-purposed applications that are scale-out capable, the questions become easier to answer.  Multi-cloud looked like a neat idea for most organizations, but a pipe dream at the same time.  Most IT orgs weren&#8217;t even widely deploying applications that could cross their own private data centers in an active-active scenario, let alone across multiple clouds.</p>
<p>Do a google image search for &#8220;multi-cloud 2012&#8221; and you&#8217;ll see a treasure trove of presentations on the concepts and not a lot of live use-cases in production.</p>
<h2>Multi-Cloud 2019</h2>
<p>We&#8217;ve come a long way.  More technical solutions arrived in the ensuing years to open the door to real potential of a legitimate multi-cloud deployment.  Containerization and container schedulers (read: Kubernetes) now make the underlayers virtually invisible.  So, did that application that runs on one cloud and burst to the second cloud turn out to be the right use-case?  Nope!  Time has proven that use-case to be as long-lasting as the Palm Pilot.  Good idea that didn&#8217;t execute.  But that&#8217;s fine.</p>
<p>Orchestration and infrastructure-as-code with platforms like Puppet, Chef, RackN, Terraform, and others, truly open up the possibilities of architecting and deploying for any underlying platform and your developers can build their applications on higher abstractions that can finally span these clouds.</p>
<h2>What Multi-Cloud Is and Is Not</h2>
<p>It still does not really make sense to span your applications or burst your applications across cloud platforms in most cases.  Despite the hype and technical capabilities these use-cases haven&#8217;t proven out:</p>
<ul>
<li>Single application that spans across more than one cloud provider</li>
<li>Scale-out apps with data</li>
</ul>
<p>Why didn&#8217;t these play out like the marketing messages of yesteryear would have indicated they could?  Pretty simply:</p>
<ul>
<li>Data gravity for the apps &#8211; front-end servers kept so far from the back end create latency&#8230;so what if you distribute the data?</li>
<li>Data consistency in a globally-distributed, scale out database requires low-latency between nodes or apps designed for eventual consistency</li>
</ul>
<p>Data seems to be one of the biggest markers for why we localize applications.  We can shard out the data all we want, but a true enterprise application with high throughput that needs to be resilient and distributed also comes with the baggage of needing high throughput on low-latency with consistency across the entire application set.</p>
<p>Basically, the most needy application that caused us to make it resilient by spanning the cloud also causes us to fall to the lowest common denominator of data gravity. Web applications are one thing.  They can work in a distributed fashion without as much pain and re-architecture.  The reality is that distributed apps that are backed by large data sets will be more likely candidates to build resiliency <span style="text-decoration: underline;">within</span> a cloud rather than across multiple clouds.</p>
<p>Before you begin throwing names like LinkedIn, and Netflix, as examples, remember that they are apps which are purpose built for multi-cloud and they even had to build up their own tooling to do so because the native cloud platforms didn&#8217;t provide a way to do it.  CI/CD across clouds is a whole other beast which opened up a new and exciting conversation of &#8220;can we versus should we?&#8221; as we looked at borrowing the toolsets that Netflix, Walmart, and others open sourced.</p>
<p>What does make sense as multi-cloud use cases is using the best-of-breed solution for each application and leveraging software-defined networking to access and share resources across clouds.  The magic of VPNs and persistent networks across cloud providers now easily enables valuable scenarios:</p>
<ul>
<li>Active Directory on Azure as the authoritative IAM for AWS and on-premises Windows workloads &#8211; federate your IAM across all clouds and on-premises using a common platform and then use it to manage Windows servers across all of your cloud providers</li>
<li>AWS-specific apps and Azure-specific apps &#8211; Why force developers to abandon services that could be purpose-built to solve a problem.  Need Rekognition for one application set and also want to use the Azure ML services for another?  Don&#8217;t port to a single cloud to achieve alleged reduction in complexity when it means sacrificing better services to meet the needs of your apps and business</li>
<li>Acquisitions of teams, apps, and companies that already have a large footprint on one or more clouds &#8211; A huge use-case to maintain a multi=cloud  architecture is that you acquired an already established platform through an acquisition.  Why would you spend needless effort porting and migrating to another cloud.  The ROI most likely won&#8217;t be in your favor</li>
</ul>
<p>The multi-cloud reality is treating each cloud like it&#8217;s own data center and choosing to interconnect those clouds for resiliency and to leverage the best features and capabilities of each.  There will be some added complexity as we adopt tooling to deploy and manage these environments, but the benefit far outweighs the cost of effort in using multiple tools.  Forget the single pane of glass and forget the multi-cloud spanning application.  Let&#8217;s embrace multi-cloud for what it really is which is a beautiful opportunity to stop and ask what we really want to accomplish with the underlying tech.</p>
<p>&nbsp;</p>
</div>
<footer class="entry-meta" aria-label="Entry meta">
<span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://discoposse.com/category/cloud-virt/" rel="category tag">Cloud, Virtualization and Architecture</a></span> <span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://discoposse.com/tag/cloud-architecture/" rel="tag">cloud architecture</a>, <a href="https://discoposse.com/tag/multi-cloud/" rel="tag">Multi-Cloud</a>, <a href="https://discoposse.com/tag/multicloud/" rel="tag">multicloud</a></span> <nav id="nav-below" class="post-navigation" aria-label="Posts">
<div class="nav-previous"><span class="prev"><a href="https://discoposse.com/2019/05/04/podcast-episode-76-ultimate-email-productivity-with-ponydotgg-founder-dmitry-minkovsky-dminkovsky/" rel="prev">Podcast Episode 76 &#8211; Ultimate Email Productivity with @PonyDotGG founder Dmitry Minkovsky (@dminkovsky)</a></span></div><div class="nav-next"><span class="next"><a href="https://discoposse.com/2019/06/20/podcast-episode-77-virtual-design-master-vdmchallenge-season-6-announcement-with-angeloluciani/" rel="next">Podcast Episode 77 &#8211; Virtual Design Master (@vdmchallenge) Season 6 Announcement with @angeloluciani</a></span></div> </nav>
</footer>
</div>
</article>
<div class="comments-area">
<div id="comments">
<h2 class="comments-title">5 thoughts on &ldquo;Multi-Cloud: You keep using that word&#8230;&rdquo;</h2>
<ol class="comment-list">
<li id="comment-194789" class="comment even thread-even depth-1">
<article class="comment-body" id="div-comment-194789" itemtype="https://schema.org/Comment" itemscope>
<footer class="comment-meta" aria-label="Comment meta">
<img alt='' src='https://secure.gravatar.com/avatar/dbba6dd7fc27608fca02ad7b3fc5db3c0ff5f07fef5c5b0cd42b818d9157b4b8?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/dbba6dd7fc27608fca02ad7b3fc5db3c0ff5f07fef5c5b0cd42b818d9157b4b8?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' decoding='async'/> <div class="comment-author-info">
<div class="comment-author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope>
<cite itemprop="name" class="fn"><a href="http://blog.laubenheimer.net/" class="url" rel="ugc external nofollow">LJ Laubenheimer</a></cite> </div>
<div class="entry-meta comment-metadata">
<a href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#comment-194789"> <time datetime="2019-06-24T14:15:42-04:00" itemprop="datePublished">
June 24, 2019 at 2:15 pm </time>
</a> </div>
</div>
</footer>
<div class="comment-content" itemprop="text">
<p>&#8220;The multi-cloud reality is treating each cloud like it’s own data center and choosing to interconnect those clouds for resiliency and to leverage the best features and capabilities of each.&#8221;</p>
<p>This. This, IMO, is a great use case for multi-cloud. </p>
<p>But if you are a critical/HA or geo-distributed service, having multiple DCs(cloud providers) is crucial.</p>
<p>It&#8217;s not &#8220;easy&#8221; like single cloud can be, but with current containerization &amp; orchestration technologies, it can be simplified.</p>
<p>If you don&#8217;t need that level of redundancy, it&#8217;s best to stick to one provider and make it shine before you think about adding another.</p>
<span class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-194789" data-commentid="194789" data-postid="7424" data-belowelement="div-comment-194789" data-respondelement="respond" data-replyto="Reply to LJ Laubenheimer" aria-label="Reply to LJ Laubenheimer">Reply</a></span> </div>
</article>
</li><!-- #comment-## -->
<li id="comment-194791" class="comment odd alt thread-odd thread-alt depth-1">
<article class="comment-body" id="div-comment-194791" itemtype="https://schema.org/Comment" itemscope>
<footer class="comment-meta" aria-label="Comment meta">
<img alt='' src='https://secure.gravatar.com/avatar/ad739b18484889130a9214d80b61675f5d2636fae408d4c5826959cbbf67cf83?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/ad739b18484889130a9214d80b61675f5d2636fae408d4c5826959cbbf67cf83?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' decoding='async'/> <div class="comment-author-info">
<div class="comment-author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope>
<cite itemprop="name" class="fn"><a href="http://www.iheavy.com" class="url" rel="ugc external nofollow">Sean Hull</a></cite> </div>
<div class="entry-meta comment-metadata">
<a href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#comment-194791"> <time datetime="2019-06-24T15:14:26-04:00" itemprop="datePublished">
June 24, 2019 at 3:14 pm </time>
</a> </div>
</div>
</footer>
<div class="comment-content" itemprop="text">
<p>Some great points.</p>
<p>Some companies mean using more than one cloud across the business. So for ex: salesforce for sales teams, aws for applications, google bigquary for data and analytics. </p>
<p>In that case the business would be spread over *THREE* public clouds</p>
<span class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-194791" data-commentid="194791" data-postid="7424" data-belowelement="div-comment-194791" data-respondelement="respond" data-replyto="Reply to Sean Hull" aria-label="Reply to Sean Hull">Reply</a></span> </div>
</article>
</li><!-- #comment-## -->
<li id="comment-194840" class="comment even thread-even depth-1 parent">
<article class="comment-body" id="div-comment-194840" itemtype="https://schema.org/Comment" itemscope>
<footer class="comment-meta" aria-label="Comment meta">
<img alt='' src='https://secure.gravatar.com/avatar/05cc5b3468d1bda1c3ca7aea82004fcebc9a8d07290fc3bf54f52ac4c5b5e283?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/05cc5b3468d1bda1c3ca7aea82004fcebc9a8d07290fc3bf54f52ac4c5b5e283?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy' decoding='async'/> <div class="comment-author-info">
<div class="comment-author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope>
<cite itemprop="name" class="fn"><a href="https://stonefly.com" class="url" rel="ugc external nofollow">Henry Carter</a></cite> </div>
<div class="entry-meta comment-metadata">
<a href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#comment-194840"> <time datetime="2019-06-27T06:22:59-04:00" itemprop="datePublished">
June 27, 2019 at 6:22 am </time>
</a> </div>
</div>
</footer>
<div class="comment-content" itemprop="text">
<p>Really interesting article. You really raised some fine questions regarding multi-cloud infrastructure. </p>
<p>These cloud storage providers really put some restrictions when you try to integrate one cloud platform to another. There are gateway solutions out there who claim that they provide seamless integration, but are these solutions really that &#8220;seamless&#8221;? Don&#8217;t you think architectural differences interfere with these integrations?</p>
<span class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-194840" data-commentid="194840" data-postid="7424" data-belowelement="div-comment-194840" data-respondelement="respond" data-replyto="Reply to Henry Carter" aria-label="Reply to Henry Carter">Reply</a></span> </div>
</article>
<ul class="children">
<li id="comment-195016" class="comment byuser comment-author-discoposse bypostauthor odd alt depth-2">
<article class="comment-body" id="div-comment-195016" itemtype="https://schema.org/Comment" itemscope>
<footer class="comment-meta" aria-label="Comment meta">
<img alt='' src='https://secure.gravatar.com/avatar/7db272408944c0eb846d9fad2a4a97a11695853f4a93eec70f98107a8356814b?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/7db272408944c0eb846d9fad2a4a97a11695853f4a93eec70f98107a8356814b?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy' decoding='async'/> <div class="comment-author-info">
<div class="comment-author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope>
<cite itemprop="name" class="fn"><a href="http://www.DiscoPosse.com" class="url" rel="ugc external nofollow">DiscoPosse</a></cite> </div>
<div class="entry-meta comment-metadata">
<a href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#comment-195016"> <time datetime="2019-07-05T16:03:18-04:00" itemprop="datePublished">
July 5, 2019 at 4:03 pm </time>
</a> </div>
</div>
</footer>
<div class="comment-content" itemprop="text">
<p>So true! Storage and networking are the keystone in the multi-cloud story for most folks.</p>
<span class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-195016" data-commentid="195016" data-postid="7424" data-belowelement="div-comment-195016" data-respondelement="respond" data-replyto="Reply to DiscoPosse" aria-label="Reply to DiscoPosse">Reply</a></span> </div>
</article>
</li><!-- #comment-## -->
</ul><!-- .children -->
</li><!-- #comment-## -->
<li id="comment-194938" class="comment even thread-odd thread-alt depth-1">
<article class="comment-body" id="div-comment-194938" itemtype="https://schema.org/Comment" itemscope>
<footer class="comment-meta" aria-label="Comment meta">
<img alt='' src='https://secure.gravatar.com/avatar/a5ac4e871bdcf38aabd0eadebf0e18ee312dc47fd0f048006dfcd27b6221885c?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/a5ac4e871bdcf38aabd0eadebf0e18ee312dc47fd0f048006dfcd27b6221885c?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy' decoding='async'/> <div class="comment-author-info">
<div class="comment-author vcard" itemprop="author" itemtype="https://schema.org/Person" itemscope>
<cite itemprop="name" class="fn">Mitchell Pronschinske</cite> </div>
<div class="entry-meta comment-metadata">
<a href="https://discoposse.com/2019/06/19/multi-cloud-you-keep-using-that-word/#comment-194938"> <time datetime="2019-07-01T12:29:39-04:00" itemprop="datePublished">
July 1, 2019 at 12:29 pm </time>
</a> </div>
</div>
</footer>
<div class="comment-content" itemprop="text">
<p>If you look at the growth in multi-cloud, it&#8217;s not really about companies (especially not startups) trying to optimize their IaaS usage with multiple clouds—although the major players all have their own strengths and weaknesses.</p>
<p>Multi-cloud chooses them. Large enterprises are dealing with different IT divisions doing their own thing all the time, and more commonly these multi-cloud situations come about through acquisition. If a Fortune 500 acqui-hires a bunch of engineers, they&#8217;ll lose those engineers if they try to make them convert to their cloud vendors suddenly. So they let their group use Google Cloud for example, while the rest of the org is standardized on Azure.</p>
<p>It&#8217;s not about &#8220;should we do this&#8221; it&#8217;s more about &#8220;how do we deal with this now that it&#8217;s happening.&#8221; </p>
<p>Some stats on multi-cloud growth: <a href="https://www.channelpartnersonline.com/2017/11/27/451-research-enterprises-gravitating-to-multi-cloud-environments/" rel="nofollow ugc">https://www.channelpartnersonline.com/2017/11/27/451-research-enterprises-gravitating-to-multi-cloud-environments/</a></p>
<span class="reply"><a rel="nofollow" class="comment-reply-link" href="#comment-194938" data-commentid="194938" data-postid="7424" data-belowelement="div-comment-194938" data-respondelement="respond" data-replyto="Reply to Mitchell Pronschinske" aria-label="Reply to Mitchell Pronschinske">Reply</a></span> </div>
</article>
</li><!-- #comment-## -->
</ol><!-- .comment-list -->
<div id="respond" class="comment-respond">
<h3 id="reply-title" class="comment-reply-title">Leave a Comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2019/06/19/multi-cloud-you-keep-using-that-word/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://discoposse.com/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-form-comment"><label for="comment" class="screen-reader-text">Comment</label><textarea id="comment" name="comment" cols="45" rows="8" required></textarea></p><label for="author" class="screen-reader-text">Name</label><input placeholder="Name *" id="author" name="author" type="text" value="" size="30" required />
<label for="email" class="screen-reader-text">Email</label><input placeholder="Email *" id="email" name="email" type="email" value="" size="30" required />
<label for="url" class="screen-reader-text">Website</label><input placeholder="Website" id="url" name="url" type="url" value="" size="30" />
<!-- Mailchimp for WordPress v4.10.9 - https://www.mc4wp.com/ --><input type="hidden" name="_mc4wp_subscribe_wp-comment-form" value="0" /><p class="mc4wp-checkbox mc4wp-checkbox-wp-comment-form "><label><input type="checkbox" name="_mc4wp_subscribe_wp-comment-form" value="1" checked="checked"><span>Sign me up for the newsletter!</span></label></p><!-- / Mailchimp for WordPress --><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='7424' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="89b96b2bab" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="18"/><script type="rocketlazyloadscript">document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond -->
<p class="akismet_comment_form_privacy_notice">This site uses Akismet to reduce spam. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">Learn how your comment data is processed.</a></p>
</div><!-- #comments -->
</div>
</main>
</div>
<div class="widget-area sidebar is-right-sidebar grid-25 tablet-grid-25 grid-parent" id="right-sidebar">
<div class="inside-right-sidebar">
<aside id="block-2" class="widget inner-padding widget_block widget_search"><form role="search" method="get" action="https://discoposse.com/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></aside><aside id="custom_html-12" class="widget_text widget inner-padding widget_custom_html"><h2 class="widget-title">Podcast</h2><div class="textwidget custom-html-widget"><iframe id="multi_iframe" frameborder="0" scrolling="no" allowfullscreen="" src="https://www.podbean.com/media/player/multi?playlist=http%3A%2F%2Fplaylist.podbean.com%2F924537%2Fplaylist_multi.xml&vjs=1&kdsowie31j4k1jlf912=ac6d774351f76dc2ca70eb74701910236a51777d&size=80&share=1&fonts=Helvetica&auto=0&skin=6" width="100%" height="270"></iframe></div></aside><aside id="archives-3" class="widget inner-padding widget_archive"><h2 class="widget-title">Archive</h2> <label class="screen-reader-text" for="archives-dropdown-3">Archive</label>
<select id="archives-dropdown-3" name="archive-dropdown">
<option value="">Select Month</option>
<option value='https://discoposse.com/2026/04/'> April 2026 </option>
<option value='https://discoposse.com/2026/03/'> March 2026 </option>
<option value='https://discoposse.com/2026/02/'> February 2026 </option>
<option value='https://discoposse.com/2026/01/'> January 2026 </option>
<option value='https://discoposse.com/2025/12/'> December 2025 </option>
<option value='https://discoposse.com/2025/11/'> November 2025 </option>
<option value='https://discoposse.com/2025/10/'> October 2025 </option>
<option value='https://discoposse.com/2025/04/'> April 2025 </option>
<option value='https://discoposse.com/2025/03/'> March 2025 </option>
<option value='https://discoposse.com/2025/02/'> February 2025 </option>
<option value='https://discoposse.com/2024/12/'> December 2024 </option>
<option value='https://discoposse.com/2024/11/'> November 2024 </option>
<option value='https://discoposse.com/2024/07/'> July 2024 </option>
<option value='https://discoposse.com/2024/01/'> January 2024 </option>
<option value='https://discoposse.com/2023/10/'> October 2023 </option>
<option value='https://discoposse.com/2023/09/'> September 2023 </option>
<option value='https://discoposse.com/2023/06/'> June 2023 </option>
<option value='https://discoposse.com/2023/05/'> May 2023 </option>
<option value='https://discoposse.com/2023/03/'> March 2023 </option>
<option value='https://discoposse.com/2022/07/'> July 2022 </option>
<option value='https://discoposse.com/2022/04/'> April 2022 </option>
<option value='https://discoposse.com/2021/12/'> December 2021 </option>
<option value='https://discoposse.com/2021/11/'> November 2021 </option>
<option value='https://discoposse.com/2021/08/'> August 2021 </option>
<option value='https://discoposse.com/2021/06/'> June 2021 </option>
<option value='https://discoposse.com/2021/01/'> January 2021 </option>
<option value='https://discoposse.com/2020/12/'> December 2020 </option>
<option value='https://discoposse.com/2020/11/'> November 2020 </option>
<option value='https://discoposse.com/2020/08/'> August 2020 </option>
<option value='https://discoposse.com/2020/07/'> July 2020 </option>
<option value='https://discoposse.com/2020/06/'> June 2020 </option>
<option value='https://discoposse.com/2020/05/'> May 2020 </option>
<option value='https://discoposse.com/2020/04/'> April 2020 </option>
<option value='https://discoposse.com/2020/03/'> March 2020 </option>
<option value='https://discoposse.com/2020/02/'> February 2020 </option>
<option value='https://discoposse.com/2020/01/'> January 2020 </option>
<option value='https://discoposse.com/2019/12/'> December 2019 </option>
<option value='https://discoposse.com/2019/11/'> November 2019 </option>
<option value='https://discoposse.com/2019/10/'> October 2019 </option>
<option value='https://discoposse.com/2019/09/'> September 2019 </option>
<option value='https://discoposse.com/2019/08/'> August 2019 </option>
<option value='https://discoposse.com/2019/07/'> July 2019 </option>
<option value='https://discoposse.com/2019/06/'> June 2019 </option>
<option value='https://discoposse.com/2019/05/'> May 2019 </option>
<option value='https://discoposse.com/2019/04/'> April 2019 </option>
<option value='https://discoposse.com/2019/03/'> March 2019 </option>
<option value='https://discoposse.com/2019/02/'> February 2019 </option>
<option value='https://discoposse.com/2019/01/'> January 2019 </option>
<option value='https://discoposse.com/2018/12/'> December 2018 </option>
<option value='https://discoposse.com/2018/11/'> November 2018 </option>
<option value='https://discoposse.com/2018/10/'> October 2018 </option>
<option value='https://discoposse.com/2018/09/'> September 2018 </option>
<option value='https://discoposse.com/2018/07/'> July 2018 </option>
<option value='https://discoposse.com/2018/06/'> June 2018 </option>
<option value='https://discoposse.com/2018/05/'> May 2018 </option>
<option value='https://discoposse.com/2018/04/'> April 2018 </option>
<option value='https://discoposse.com/2018/03/'> March 2018 </option>
<option value='https://discoposse.com/2018/02/'> February 2018 </option>
<option value='https://discoposse.com/2017/12/'> December 2017 </option>
<option value='https://discoposse.com/2017/11/'> November 2017 </option>
<option value='https://discoposse.com/2017/10/'> October 2017 </option>
<option value='https://discoposse.com/2017/09/'> September 2017 </option>
<option value='https://discoposse.com/2017/08/'> August 2017 </option>
<option value='https://discoposse.com/2017/07/'> July 2017 </option>
<option value='https://discoposse.com/2017/06/'> June 2017 </option>
<option value='https://discoposse.com/2017/05/'> May 2017 </option>
<option value='https://discoposse.com/2017/04/'> April 2017 </option>
<option value='https://discoposse.com/2017/03/'> March 2017 </option>
<option value='https://discoposse.com/2017/02/'> February 2017 </option>
<option value='https://discoposse.com/2017/01/'> January 2017 </option>
<option value='https://discoposse.com/2016/12/'> December 2016 </option>
<option value='https://discoposse.com/2016/11/'> November 2016 </option>
<option value='https://discoposse.com/2016/10/'> October 2016 </option>
<option value='https://discoposse.com/2016/09/'> September 2016 </option>
<option value='https://discoposse.com/2016/08/'> August 2016 </option>
<option value='https://discoposse.com/2016/07/'> July 2016 </option>
<option value='https://discoposse.com/2016/06/'> June 2016 </option>
<option value='https://discoposse.com/2016/05/'> May 2016 </option>
<option value='https://discoposse.com/2016/04/'> April 2016 </option>
<option value='https://discoposse.com/2016/03/'> March 2016 </option>
<option value='https://discoposse.com/2016/02/'> February 2016 </option>
<option value='https://discoposse.com/2015/12/'> December 2015 </option>
<option value='https://discoposse.com/2015/11/'> November 2015 </option>
<option value='https://discoposse.com/2015/10/'> October 2015 </option>
<option value='https://discoposse.com/2015/09/'> September 2015 </option>
<option value='https://discoposse.com/2015/08/'> August 2015 </option>
<option value='https://discoposse.com/2015/07/'> July 2015 </option>
<option value='https://discoposse.com/2015/06/'> June 2015 </option>
<option value='https://discoposse.com/2015/05/'> May 2015 </option>
<option value='https://discoposse.com/2015/04/'> April 2015 </option>
<option value='https://discoposse.com/2015/03/'> March 2015 </option>
<option value='https://discoposse.com/2015/02/'> February 2015 </option>
<option value='https://discoposse.com/2015/01/'> January 2015 </option>
<option value='https://discoposse.com/2014/12/'> December 2014 </option>
<option value='https://discoposse.com/2014/11/'> November 2014 </option>
<option value='https://discoposse.com/2014/10/'> October 2014 </option>
<option value='https://discoposse.com/2014/09/'> September 2014 </option>
<option value='https://discoposse.com/2014/08/'> August 2014 </option>
<option value='https://discoposse.com/2014/07/'> July 2014 </option>
<option value='https://discoposse.com/2014/06/'> June 2014 </option>
<option value='https://discoposse.com/2014/05/'> May 2014 </option>
<option value='https://discoposse.com/2014/04/'> April 2014 </option>
<option value='https://discoposse.com/2014/03/'> March 2014 </option>
<option value='https://discoposse.com/2014/02/'> February 2014 </option>
<option value='https://discoposse.com/2014/01/'> January 2014 </option>
<option value='https://discoposse.com/2013/12/'> December 2013 </option>
<option value='https://discoposse.com/2013/11/'> November 2013 </option>
<option value='https://discoposse.com/2013/10/'> October 2013 </option>
<option value='https://discoposse.com/2013/09/'> September 2013 </option>
<option value='https://discoposse.com/2013/08/'> August 2013 </option>
<option value='https://discoposse.com/2013/07/'> July 2013 </option>
<option value='https://discoposse.com/2013/06/'> June 2013 </option>
<option value='https://discoposse.com/2013/05/'> May 2013 </option>
<option value='https://discoposse.com/2013/04/'> April 2013 </option>
<option value='https://discoposse.com/2013/03/'> March 2013 </option>
<option value='https://discoposse.com/2013/02/'> February 2013 </option>
<option value='https://discoposse.com/2013/01/'> January 2013 </option>
<option value='https://discoposse.com/2012/12/'> December 2012 </option>
<option value='https://discoposse.com/2012/11/'> November 2012 </option>
<option value='https://discoposse.com/2012/10/'> October 2012 </option>
<option value='https://discoposse.com/2012/09/'> September 2012 </option>
<option value='https://discoposse.com/2012/08/'> August 2012 </option>
<option value='https://discoposse.com/2012/07/'> July 2012 </option>
<option value='https://discoposse.com/2012/06/'> June 2012 </option>
<option value='https://discoposse.com/2012/05/'> May 2012 </option>
<option value='https://discoposse.com/2012/04/'> April 2012 </option>
<option value='https://discoposse.com/2012/03/'> March 2012 </option>
<option value='https://discoposse.com/2012/02/'> February 2012 </option>
<option value='https://discoposse.com/2012/01/'> January 2012 </option>
<option value='https://discoposse.com/2011/12/'> December 2011 </option>
<option value='https://discoposse.com/2011/11/'> November 2011 </option>
<option value='https://discoposse.com/2011/10/'> October 2011 </option>
<option value='https://discoposse.com/2011/09/'> September 2011 </option>
<option value='https://discoposse.com/2011/08/'> August 2011 </option>
<option value='https://discoposse.com/2011/07/'> July 2011 </option>
<option value='https://discoposse.com/2011/01/'> January 2011 </option>
<option value='https://discoposse.com/2010/12/'> December 2010 </option>
<option value='https://discoposse.com/2010/09/'> September 2010 </option>
<option value='https://discoposse.com/2010/08/'> August 2010 </option>
<option value='https://discoposse.com/2010/07/'> July 2010 </option>
<option value='https://discoposse.com/2010/06/'> June 2010 </option>
<option value='https://discoposse.com/2010/05/'> May 2010 </option>
<option value='https://discoposse.com/2010/04/'> April 2010 </option>
<option value='https://discoposse.com/2010/02/'> February 2010 </option>
<option value='https://discoposse.com/2010/01/'> January 2010 </option>
</select>
<script type="rocketlazyloadscript">
( ( dropdownId ) => {
const dropdown = document.getElementById( dropdownId );
function onSelectChange() {
setTimeout( () => {
if ( 'escape' === dropdown.dataset.lastkey ) {
return;
}
if ( dropdown.value ) {
document.location.href = dropdown.value;
}
}, 250 );
}
function onKeyUp( event ) {
if ( 'Escape' === event.key ) {
dropdown.dataset.lastkey = 'escape';
} else {
delete dropdown.dataset.lastkey;
}
}
function onClick() {
delete dropdown.dataset.lastkey;
}
dropdown.addEventListener( 'keyup', onKeyUp );
dropdown.addEventListener( 'click', onClick );
dropdown.addEventListener( 'change', onSelectChange );
})( "archives-dropdown-3" );
//# sourceURL=WP_Widget_Archives%3A%3Awidget
</script>
</aside> </div>
</div>
</div>
</div>
<div class="site-footer">
<div id="footer-widgets" class="site footer-widgets">
<div class="footer-widgets-container grid-container grid-parent">
<div class="inside-footer-widgets">
<div class="footer-widget-1 grid-parent grid-100 tablet-grid-50 mobile-grid-100">
<aside id="custom_html-7" class="widget_text widget inner-padding widget_custom_html"><h2 class="widget-title">Disclosure and Disclaimer</h2><div class="textwidget custom-html-widget">As an Amazon Associate I earn from qualifying purchases.</div></aside> </div>
</div>
</div>
</div>
<footer class="site-info" aria-label="Site" itemtype="https://schema.org/WPFooter" itemscope>
<div class="inside-site-info grid-container grid-parent">
<div class="copyright-bar">
<span class="copyright">&copy; 2026 DiscoPosse.com</span> &bull; Built with <a href="https://generatepress.com" itemprop="url">GeneratePress</a> </div>
</div>
</footer>
</div>
<a title="Scroll back to top" aria-label="Scroll back to top" rel="nofollow" href="#" class="generate-back-to-top" data-scroll-speed="400" data-start-scroll="300" role="button">
</a> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1041731576239958&amp;ev=PageView&amp;noscript=1"/></noscript>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/generatepress/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<div id="user_login_modal" class="hp-modal" data-component="modal"> <h3 class="hp-modal__title">Sign In</h3>
<form class="hp-form--narrow hp-block hp-form hp-form--user-login" data-model="user" action="#" data-action="https://discoposse.com/wp-json/hivepress/v1/users/login/" method="POST" data-redirect="true" data-component="form"><div class="hp-form__messages" data-component="messages"></div><div class="hp-form__fields"><div class="hp-form__field hp-form__field--text"><label class="hp-field__label hp-form__label"><span>Username or Email</span></label><input type="text" name="username_or_email" value="" autocomplete="username" maxlength="254" required="required" class="hp-field hp-field--text"></div><div class="hp-form__field hp-form__field--password"><label class="hp-field__label hp-form__label"><span>Password</span></label><input type="password" name="password" autocomplete="current-password" data-component="password" maxlength="64" required="required" class="hp-field hp-field--password"><a href="#" title="Show" data-component="toggle" data-icon="eye-slash" data-caption="Hide" class="hp-field__icon hp-link"><i class="hp-icon fas fa-eye"></i></a></div></div><div class="hp-form__footer"><button type="submit" class="hp-form__button button-primary alt button hp-field hp-field--submit"><span>Sign In</span></button><div class="hp-form__actions"> <p class="hp-form__action hp-form__action--user-register">Don&#039;t have an account yet? <a href="#user_register_modal">Register</a></p>
<a href="#user_password_request_modal" class="hp-form__action hp-form__action--user-password-request">Forgot password?</a>
</div></div></form></div><div id="user_register_modal" class="hp-modal" data-component="modal"> <h3 class="hp-modal__title">Register</h3>
<form class="hp-form--narrow hp-block hp-form hp-form--user-register" data-model="user" action="#" data-action="https://discoposse.com/wp-json/hivepress/v1/users/" method="POST" data-redirect="true" data-component="form"><div class="hp-form__messages" data-component="messages"></div><div class="hp-form__fields"><div class="hp-form__field hp-form__field--email"><label class="hp-field__label hp-form__label"><span>Email</span></label><input type="email" name="email" value="" autocomplete="email" maxlength="254" required="required" class="hp-field hp-field--email"></div><div class="hp-form__field hp-form__field--password"><label class="hp-field__label hp-form__label"><span>Password</span></label><input type="password" name="password" autocomplete="new-password" data-component="password" minlength="8" maxlength="64" required="required" class="hp-field hp-field--password"><a href="#" title="Show" data-component="toggle" data-icon="eye-slash" data-caption="Hide" class="hp-field__icon hp-link"><i class="hp-icon fas fa-eye"></i></a></div></div><div class="hp-form__footer"><button type="submit" class="hp-form__button button-primary alt button hp-field hp-field--submit"><span>Register</span></button><div class="hp-form__actions"><p class="hp-form__action hp-form__action--user-login">Already have an account? <a href="#user_login_modal">Sign In</a></p>
</div></div></form></div><div id="user_password_request_modal" class="hp-modal" data-component="modal"> <h3 class="hp-modal__title">Reset Password</h3>
<form data-message="Password reset email has been sent." action="#" data-action="https://discoposse.com/wp-json/hivepress/v1/users/request-password/" method="POST" data-component="form" class="hp-form hp-form--user-password-request"><div class="hp-form__header"><p class="hp-form__description">Please enter your username or email address, you will receive a link to create a new password via email.</p><div class="hp-form__messages" data-component="messages"></div></div><div class="hp-form__fields"><div class="hp-form__field hp-form__field--text"><label class="hp-field__label hp-form__label"><span>Username or Email</span></label><input type="text" name="username_or_email" value="" autocomplete="username" maxlength="254" required="required" class="hp-field hp-field--text"></div></div><div class="hp-form__footer"><button type="submit" class="hp-form__button button-primary alt button hp-field hp-field--submit"><span>Send Email</span></button></div></form></div><script type="rocketlazyloadscript" id="generate-a11y">
!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("pointerdown",(function(){e.classList.add("using-mouse")}),{passive:!0}),e.addEventListener("keydown",(function(){e.classList.remove("using-mouse")}),{passive:!0})}}();
</script>
<script src="https://discoposse.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script>
<script src="https://discoposse.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.13.3" id="jquery-ui-mouse-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js?ver=1.7.18" id="jquery-ui-touch-punch-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/blueimp-file-upload/js/jquery.fileupload.js?ver=1.7.18" id="fileupload-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/@fancyapps/fancybox/dist/jquery.fancybox.min.js?ver=1.7.18" id="fancybox-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/slick-carousel/slick/slick.min.js?ver=1.7.18" id="slick-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/sticky-sidebar/dist/jquery.sticky-sidebar.min.js?ver=1.7.18" id="sticky-sidebar-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/php-date-formatter/js/php-date-formatter.min.js?ver=1.7.18" id="php-date-formatter-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/flatpickr/dist/flatpickr.min.js?ver=1.7.18" id="flatpickr-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/select2/dist/js/select2.full.min.js?ver=1.7.18" id="select2-full-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/intl-tel-input/build/js/intlTelInput.min.js?ver=1.7.18" id="intl-tel-input-js"></script>
<script src="https://discoposse.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.13.3" id="jquery-ui-sortable-js"></script>
<script id="hivepress-core-js-extra">
var hivepressCoreData = {"apiURL":"https://discoposse.com/wp-json/hivepress/v1","apiNonce":"5fd116f0ed","language":"en"};
//# sourceURL=hivepress-core-js-extra
</script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/assets/js/common.min.js?ver=1.7.18" id="hivepress-core-js"></script>
<script src="https://discoposse.com/wp-includes/js/dist/hooks.min.js?ver=dd5603f07f9220ed27f1" id="wp-hooks-js"></script>
<script src="https://discoposse.com/wp-includes/js/dist/i18n.min.js?ver=c26c3dc7bed366793375" id="wp-i18n-js"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="password-strength-meter-js-extra">
var pwsL10n = {"unknown":"Password strength unknown","short":"Very weak","bad":"Weak","good":"Medium","strong":"Strong","mismatch":"Mismatch"};
//# sourceURL=password-strength-meter-js-extra
</script>
<script type="rocketlazyloadscript" data-rocket-src="https://discoposse.com/wp-admin/js/password-strength-meter.min.js?ver=6.9.7" id="password-strength-meter-js"></script>
<script src="https://discoposse.com/wp-includes/js/jquery/ui/slider.min.js?ver=1.13.3" id="jquery-ui-slider-js"></script>
<script src="https://discoposse.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/assets/js/frontend.min.js?ver=1.7.18" id="hivepress-core-frontend-js"></script>
<script src="https://discoposse.com/wp-content/plugins/hivepress/node_modules/select2/dist/js/i18n/en.js?ver=1.7.18" id="select2-en-js"></script>
<script id="rocket-browser-checker-js-after">
"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
//# sourceURL=rocket-browser-checker-js-after
</script>
<script id="rocket-preload-links-js-extra">
var RocketPreloadLinksConfig = {"excludeUris":"/(?:.+/)?feed(?:/(?:.+/?)?)?$|/(?:.+/)?embed/|/(index.php/)?(.*)wp-json(/.*|$)|/refer/|/go/|/recommend/|/recommends/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https://discoposse.com","onHoverDelay":"100","rateThrottle":"3"};
//# sourceURL=rocket-preload-links-js-extra
</script>
<script id="rocket-preload-links-js-after">
(function() {
"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
}());
//# sourceURL=rocket-preload-links-js-after
</script>
<script id="generate-menu-js-before">
var generatepressMenu = {"toggleOpenedSubMenus":true,"openSubMenuLabel":"Open Sub-Menu","closeSubMenuLabel":"Close Sub-Menu"};
//# sourceURL=generate-menu-js-before
</script>
<script src="https://discoposse.com/wp-content/themes/generatepress/assets/js/menu.min.js?ver=3.6.1" id="generate-menu-js"></script>
<script id="generate-back-to-top-js-before">
var generatepressBackToTop = {"smooth":true};
//# sourceURL=generate-back-to-top-js-before
</script>
<script src="https://discoposse.com/wp-content/themes/generatepress/assets/js/back-to-top.min.js?ver=3.6.1" id="generate-back-to-top-js"></script>
<script src="https://discoposse.com/wp-includes/js/comment-reply.min.js?ver=6.9.7" id="comment-reply-js" async data-wp-strategy="async" fetchpriority="low"></script>
<script defer src="https://discoposse.com/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1766425295" id="akismet-frontend-js"></script>
<script id="aepc-pixel-events-js-extra">
var aepc_pixel_events = {"custom_events":{"AdvancedEvents":[{"params":{"login_status":"not_logged_in","post_type":"post","object_id":7424,"object_type":"single","tax_category":["Cloud, Virtualization and Architecture"],"tax_post_tag":["cloud architecture","Multi-Cloud","multicloud"]}}]},"api":{"root":"https://discoposse.com/wp-json/","nonce":"5fd116f0ed"}};
//# sourceURL=aepc-pixel-events-js-extra
</script>
<script src="https://discoposse.com/wp-content/plugins/pixel-caffeine/build/frontend.js?ver=2.3.3" id="aepc-pixel-events-js"></script>
</body>
</html>
<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->