1.0DevOps Online North Americahttps://devopsnews.onlineYashesh Patelhttps://devopsnews.online/author/yashesh-patel/Best Practices for DevOps: Advanced Deployment Patterns - DevOps Online North Americarich600338<blockquote class="wp-embedded-content" data-secret="DrPhMtGGSU"><a href="https://devopsnews.online/best-practices-for-devops-advanced-deployment-patterns/">Best Practices for DevOps: Advanced Deployment Patterns</a></blockquote><iframe sandbox="allow-scripts" security="restricted" src="https://devopsnews.online/best-practices-for-devops-advanced-deployment-patterns/embed/#?secret=DrPhMtGGSU" width="600" height="338" title="“Best Practices for DevOps: Advanced Deployment Patterns” — DevOps Online North America" data-secret="DrPhMtGGSU" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"></iframe><script type="text/javascript"> /* <![CDATA[ */ /*! This file is auto-generated */ !function(d,l){"use strict";l.querySelector&&d.addEventListener&&"undefined"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i<o.length;i++)o[i].style.display="none";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute("style"),"height"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):"link"===t.message&&(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document); /* ]]> */ </script> https://devopsnews.online/wp-content/uploads/2019/05/XebiaLabs.png10701518Getting new software to your users without interrupting their experience is hard; how do you upgrade an application that’s in active use? And if you do take an application offline for an update, what happens if something goes wrong? It’s tempting to try to minimize downtime and reduce release risks by implementing extensive manual processes...