pokusio / try-kudo

Let's try the awesome KUDO framework !
0 stars 0 forks source link

first walk #1

Open Jean-Baptiste-Lasselle opened 1 year ago

Jean-Baptiste-Lasselle commented 1 year ago

try using kudo to develop a siimple kubernetes operator, for a simple app :

Jean-Baptiste-Lasselle commented 1 year ago

I want to try all deployment strategies Flagger supports :

Everything Full Stack Published in Everything Full Stack

Guy Saar Guy Saar Follow Dec 28, 2021

· 6 min read ·

Listen

Progressive Delivery: How To Implement Flagger with Istio

What will be discussed: Progressive Delivery What is the added value of Flagger Flagger’s Deployment Strategies Canary Release Demo: how to implement Flagger with Istio Versions: Istio: v1.12.* Flagger: v1.16.0 Progressive Delivery Progressive delivery is a modern software development for gradually rolling out new features in order to limit the potential negative impact for new product features.

Flagger helps us to manage traffic routing between our current release and our new release. Flagger uses a service mesh (App Mesh, Istio, Linkerd, Open Service Mesh) or an ingress controller (Contour, Gloo, NGINX, Skipper, Traefik) for traffic routing.

To sum up:

Flagger is a progressive delivery tool that automates the release process for applications running on Kubernetes. It reduces the risk of introducing a new software version in production by gradually shifting traffic to the new version while measuring metrics and running conformance tests. https://docs.flagger.app/

What is the added value of Flagger Flagger will monitor the traffic routing for the canary release, and “decided” whether to route more traffic to the canary release or not. Not just that, we have very good control over how much traffic to route each step. For example, we can configure Flagger to query all the “response code” that is routed to the canary release service, and route 5% of the traffic every 30 minutes to the new release. Flagger will test the traffic each step, as long as the test passed it will keep routing more traffic as configured in the Canary Release.

Example: If more than 1% of the “response code” that has been routed to the canary release was from the 5XX family, we can set Flagger to halt the advance of the traffic to the new release. Otherwise Flagger will keep routing more traffic to the canary release, as configured in the canary.

Flagger can query Prometheus, Datadog, New Relic, CloudWatch, or Graphite and sends alerts via: Slack, MS Teams, Discord, and Rocket.

Flagger’s Deployment Strategies: Canary Release (progressive traffic shifting): Istio, Linkerd, App Mesh, NGINX, Skipper, Contour, Gloo Edge, Traefik, Open Service Mesh A/B Testing (HTTP headers and cookies traffic routing): Istio, App Mesh, NGINX, Contour, Gloo Edge Blue/Green (traffic switching): Kubernetes CNI, Istio, Linkerd, App Mesh, NGINX, Contour, Gloo Edge, Open Service Mesh Blue/Green Mirroring (traffic shadowing): Istio

Jean-Baptiste-Lasselle commented 1 year ago

here is exactly what i want to test, :

Another thing, there is a KUDO vs IaC : they say exactly how they advise drawing the limit between the KUDO and terraform

this means that KUDO manages state of kubernetes resources: let terraform hande all the rest, and KUDO manages the state of the statefull app.

question, if i compare already : where does my operator keeps rack of thestate of the infrastruture ? it should have a database where it persists the current desired state

Jean-Baptiste-Lasselle commented 1 year ago

https://medium.com/everything-full-stack/progressive-delivery-how-to-implement-flagger-with-istio-cb81aab800b8