-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathcomponent---src-templates-page-default-js-content-file-path-content-pages-rollouts-index-mdx-91aa8ad3edc70bc97ffb.js
2 lines (2 loc) · 5.67 KB
/
component---src-templates-page-default-js-content-file-path-content-pages-rollouts-index-mdx-91aa8ad3edc70bc97ffb.js
1
2
"use strict";(self.webpackChunkargo=self.webpackChunkargo||[]).push([[207],{1520:function(e,t,l){l.r(t),l.d(t,{default:function(){return A}});var n=l(8453),r=l(6540);function a(e){const t=Object.assign({h2:"h2",p:"p",ul:"ul",li:"li"},(0,n.RP)(),e.components),{YoutubeEmbed:l}=t;return l||function(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("YoutubeEmbed",!0),r.createElement(r.Fragment,null,r.createElement(t.h2,null,"What is Argo Rollouts?"),"\n",r.createElement(t.p,null,"Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes."),"\n",r.createElement(t.p,null,"Argo Rollouts (optionally) integrates with ingress controllers and service meshes, leveraging their traffic shaping abilities to gradually shift traffic to the new version during an update. Additionally, Rollouts can query and interpret metrics from various providers to verify key KPIs and drive automated promotion or rollback during an update."),"\n",r.createElement(l,{id:"hIL0E2gLkf8",title:"Argo Rollouts demonstration video"}),"\n",r.createElement(t.h2,null,"Why Argo Rollouts?"),"\n",r.createElement(t.p,null,"The native Kubernetes Deployment Object supports the RollingUpdate strategy which provides a basic set of safety guarantees (readiness probes) during an update. However the rolling update strategy faces many limitations:"),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,"Few controls over the speed of the rollout"),"\n",r.createElement(t.li,null,"Inability to control traffic flow to the new version"),"\n",r.createElement(t.li,null,"Readiness probes are unsuitable for deeper, stress, or one-time checks"),"\n",r.createElement(t.li,null,"No ability to query external metrics to verify an update"),"\n",r.createElement(t.li,null,"Can halt the progression, but unable to automatically abort and rollback the update"),"\n"),"\n",r.createElement(t.p,null,"For these reasons, in large scale high-volume production environments, a rolling update is often considered too risky of an update procedure since it provides no control over the blast radius, may rollout too aggressively, and provides no automated rollback upon failures."),"\n",r.createElement(t.h2,null,"Controller Features"),"\n",r.createElement(t.ul,null,"\n",r.createElement(t.li,null,"Blue-Green update strategy"),"\n",r.createElement(t.li,null,"Canary update strategy"),"\n",r.createElement(t.li,null,"Fine-grained, weighted traffic shifting"),"\n",r.createElement(t.li,null,"Automated rollbacks and promotions"),"\n",r.createElement(t.li,null,"Manual judgement"),"\n",r.createElement(t.li,null,"Customizable metric queries and analysis of business KPIs"),"\n",r.createElement(t.li,null,"Ingress controller integration: NGINX, ALB"),"\n",r.createElement(t.li,null,"Service Mesh integration: Istio, Linkerd, SMI"),"\n",r.createElement(t.li,null,"Metric provider integration: Prometheus, Wavefront, Kayenta, Web, Kubernetes Jobs"),"\n"))}var o=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,n.RP)(),e.components);return t?r.createElement(t,e,r.createElement(a,e)):a(e)};var i=l(4794),s=l(971),m=l(2269),c=l(5714),u=l(5242),d=l(9500),p=l(1608),g=l(7932),f=l.n(g),b=l(1505),E=l.n(b),h=l(2272),v=l.n(h),y=l(282),w=l.n(y),x=l(2349);const k=e=>{var t,l,a,o;let{data:g,location:b,children:h}=e;const y=(null===(t=g.site.siteMetadata)||void 0===t?void 0:t.title)||"Title",k=g.mdx,A={Link:i.Link,YoutubeEmbed:x.A};return r.createElement(s.A,{location:b,title:y,headerColor:"light"},r.createElement(m.A,{title:k.frontmatter.title,description:k.frontmatter.description||"Description",url:b.href,image:k.frontmatter.thumbnail.publicURL}),r.createElement(d.A,{bg:"light",pipes:!0},r.createElement(c.x,{lg:2},r.createElement("div",{className:"xl:pl-12"},r.createElement("h1",{className:"pr-12 xl:pr-36 2xl:pr-48"},k.frontmatter.title),r.createElement("p",{className:"pr-12 text-xl xl:pr-36 2xl:pr-48"},k.frontmatter.description),r.createElement(u.A,{to:null===(l=k.frontmatter)||void 0===l?void 0:l.docs,type:"primary",label:"Documentation",className:"mb-8 mt-8"})),r.createElement("div",{className:"relative flex py-24 justify-end lg:py-0 lg:justify-center"},1===k.frontmatter.order&&r.createElement(f(),{className:"absolute -bottom-14 lg:-bottom-24 h-auto w-80 max-w-full md:w-3/5 lg:w-4/5 xl:w-3/6"}),2===k.frontmatter.order&&r.createElement(w(),{className:"absolute -bottom-16 lg:-bottom-32 h-auto w-64 max-w-full md:w-2/5 lg:w-4/5 xl:w-3/6"}),3===k.frontmatter.order&&r.createElement(v(),{className:"absolute -bottom-14 lg:-bottom-28 h-auto w-48 max-w-full md:w-2/5 lg:w-3/5 xl:w-2/5"}),4===k.frontmatter.order&&r.createElement(E(),{className:"absolute -bottom-10 lg:-bottom-24 h-auto w-48 max-w-full md:w-2/6 lg:w-2/5 xl:w-2/6"})))),r.createElement(c.m,{className:"pb-40 mt-8 prose prose-xl lg:-mt-8 xl:-mt-12 lg:pb-48 2xl:-mt-20"},r.createElement("div",{className:"relative z-10 lg:text-right h-10"},r.createElement(p.A,{repo:k.frontmatter.repo})),r.createElement(n.xA,{components:A},h),r.createElement("div",{className:"mt-6 text-center space-y-4 md:space-x-4 md:space-y-0"},r.createElement(u.A,{to:null===(a=k.frontmatter)||void 0===a?void 0:a.docs,type:"primary",label:"View Docs",className:"w-full mt-8 md:w-auto"}),r.createElement(u.A,{to:null===(o=k.frontmatter)||void 0===o?void 0:o.quickstart,type:"secondary",label:"Get Started",className:"w-full mt-8 md:w-auto"}))))};function A(e){return r.createElement(k,e,r.createElement(o,e))}}}]);
//# sourceMappingURL=component---src-templates-page-default-js-content-file-path-content-pages-rollouts-index-mdx-91aa8ad3edc70bc97ffb.js.map