mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
1 line
8.8 KiB
JavaScript
1 line
8.8 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{334:function(e,r,t){"use strict";t.r(r);var a=t(26),n=Object(a.a)({},function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"progressive-delivery"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#progressive-delivery","aria-hidden":"true"}},[e._v("#")]),e._v(" Progressive Delivery")]),e._v(" "),r("p",[e._v("Flagger was designed to give developers confidence in automating production releases with progressive delivery techniques.")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("Canary release")]),e._v(" "),r("p",[e._v("A benefit of using canary releases is the ability to do capacity testing of the new version in a production environment\nwith a safe rollback strategy if issues are found. By slowly ramping up the load, you can monitor and capture metrics\nabout how the new version impacts the production environment.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://martinfowler.com/bliki/CanaryRelease.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Martin Fowler"),r("OutboundLink")],1)])]),e._v(" "),r("p",[e._v("Flagger can run automated application analysis, testing, promotion and rollback for the following deployment strategies:")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Canary")]),e._v(" (progressive traffic shifting with session affinity)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/linkerd-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linkerd"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kuma-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kuma Service Mesh"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gloo-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gloo"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/skipper-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Skipper"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/traefik-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Traefik"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/apisix-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache APISIX"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/knative-progressive-delivery",target:"_blank",rel:"noopener noreferrer"}},[e._v("Knative"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("A/B Testing")]),e._v(" (HTTP headers and cookies traffic routing)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-ab-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/gatewayapi-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gateway API"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/contour-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contour"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/nginx-progressive-delivery#a-b-testing",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGINX"),r("OutboundLink")],1)])])]),e._v(" "),r("li",[r("strong",[e._v("Blue/Green")]),e._v(" (traffic switching and mirroring)\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://docs.flagger.app/tutorials/kubernetes-blue-green",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kubernetes CNI"),r("OutboundLink")],1),e._v(",\n"),r("a",{attrs:{href:"https://docs.flagger.app/tutorials/istio-progressive-delivery#traffic-mirroring",target:"_blank",rel:"noopener noreferrer"}},[e._v("Istio"),r("OutboundLink")],1),e._v(",\nLinkerd, Kuma, Contour, Gloo, NGINX, Skipper, Traefik, Apache")])])])]),e._v(" "),r("p",[e._v("Flagger's application analysis can be extended with metric queries targeting Prometheus, Datadog,\nCloudWatch, New Relic, Graphite, Dynatrace, InfluxDB and Google Cloud Monitoring.")]),e._v(" "),r("p",[e._v("Flagger can be configured to "),r("a",{attrs:{href:"https://docs.flagger.app/usage/alerting",target:"_blank",rel:"noopener noreferrer"}},[e._v("send notifications"),r("OutboundLink")],1),e._v(" to\nSlack, Microsoft Teams, Discord and Rocket.\nIt will post messages when a deployment has been initialised,\nwhen a new revision has been detected and if the canary analysis failed or succeeded.")]),e._v(" "),r("h2",{attrs:{id:"gitops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#gitops","aria-hidden":"true"}},[e._v("#")]),e._v(" GitOps")]),e._v(" "),r("p",[r("img",{attrs:{src:"/flagger-gitops.png",alt:"GitOps with Flagger and Flux"}})]),e._v(" "),r("p",[e._v("You can build fully automated GitOps pipelines for canary deployments with Flagger and\n"),r("a",{attrs:{href:"https://github.com/fluxcd/flux2",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[e._v("GitOps")]),e._v(" "),r("p",[e._v("GitOps is a way to do Kubernetes cluster management and application delivery.\nIt works by using Git as a single source of truth for declarative infrastructure and applications.\nWith Git at the center of your delivery pipelines, developers can make pull requests\nto accelerate and simplify application deployments and operations tasks to Kubernetes.")])]),e._v(" "),r("h2",{attrs:{id:"getting-help"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-help","aria-hidden":"true"}},[e._v("#")]),e._v(" Getting Help")]),e._v(" "),r("p",[e._v("If you have any questions about Flagger and progressive delivery:")]),e._v(" "),r("ul",[r("li",[e._v("Read the Flagger "),r("a",{attrs:{href:"https://docs.flagger.app",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("li",[e._v("Invite yourself to the "),r("a",{attrs:{href:"https://slack.cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CNCF community slack"),r("OutboundLink")],1),e._v("\nand join the "),r("a",{attrs:{href:"https://cloud-native.slack.com/messages/flagger/",target:"_blank",rel:"noopener noreferrer"}},[e._v("#flagger"),r("OutboundLink")],1),e._v(" channel.")]),e._v(" "),r("li",[e._v("Check out the "),r("a",{attrs:{href:"https://fluxcd.io/community/#talks",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux talks section"),r("OutboundLink")],1),e._v(" and to see a list of online talks,\nhands-on training and meetups.")]),e._v(" "),r("li",[e._v("File an "),r("a",{attrs:{href:"https://github.com/fluxcd/flagger/issues/new",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("p",[e._v("Your feedback is always welcome!")]),e._v(" "),r("h2",{attrs:{id:"license"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#license","aria-hidden":"true"}},[e._v("#")]),e._v(" License")]),e._v(" "),r("p",[e._v("Flagger is "),r("a",{attrs:{href:"https://raw.githubusercontent.com/fluxcd/flagger/main/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apache 2.0"),r("OutboundLink")],1),e._v("\nlicensed and accepts contributions via GitHub pull requests.")]),e._v(" "),r("p",[e._v("Flagger was initially developed in 2018 at Weaveworks by Stefan Prodan.\nIn 2020 Flagger became a "),r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cloud Native Computing Foundation"),r("OutboundLink")],1),e._v(" project,\npart of "),r("a",{attrs:{href:"https://fluxcd.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flux"),r("OutboundLink")],1),e._v(" family of GitOps tools.")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://cncf.io/",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"/cncf.png",alt:"CNCF"}}),r("OutboundLink")],1)])])},[],!1,null,null,null);r.default=n.exports}}]); |