Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blue green deployment #1383

Open
1 of 3 tasks
ncelisabet opened this issue Jan 10, 2025 · 0 comments
Open
1 of 3 tasks

Blue green deployment #1383

ncelisabet opened this issue Jan 10, 2025 · 0 comments
Labels
Needs: triage 🔍 Pending a first pass to read, tag, and assign

Comments

@ncelisabet
Copy link

This issue is a: (mark with an x)

  • bug report -> please search issues before submitting
  • documentation issue or request
  • regression (a behavior that used to work and stopped in a new release)

Issue description

I'm trying to implement a blue/green deployment pattern and would love to know if you have any recommendations. I have multiple container apps and an Application Gateway

What I have considered so far:

Using ingress traffic and label weights

The thought here is that each container app has a green and a blue label on its revisions, and their ingresses decides which revision gets traffic

Pros

  • Granular support fort shifting traffic

Cons

Using two container app environments

The thought here is to have a blue and a green container app environment. Each service with external endpoints will have two backend pools that the app gw can switch between.

Pros

  • The whole system is either blue or green
  • Network settings (and other settings that has more to do with the container app rather than a revision in it) can be changed without affecting production

Cons

  • Possibly lots of backend pools
  • Not possible to do canary/gradual deployments

Using something between app gw and cae

If we stick to having two container app environments, we might put something between them whose job it is to route traffic to either blue or green environment. Something like nginx or ocelot

Pros

  • The same benefits as the previous solution as it builds on the same idea
  • Good control over traffic - possible to do canary deployments

Cons

  • Setting up and maintaining another service
  • Cost of having another service

Conclusion

There might be other possibilities that I haven't even considered - do you have any ideas or suggestions?

Do you have any general recommendations?

@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs: triage 🔍 Pending a first pass to read, tag, and assign label Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: triage 🔍 Pending a first pass to read, tag, and assign
Projects
None yet
Development

No branches or pull requests

1 participant