Long running preview powered by ArgoRollouts #1661
Replies: 2 comments 2 replies
-
@jessesuen Let me know if you can shed some light on this conversation. |
Beta Was this translation helpful? Give feedback.
-
Maybe I am missing something obvious here, but why then use Argo Rollouts in the first place? Just deploy a second deployment with your "preview" service using your normal deployment method (ArgoCD or whatever) and then use Istio to do whatever traffic splits that you want. And you can keep both versions running as long as you like. On a related note, isn't 1 week a bit excessive for a rollout? If a release has issues, wouldn't you know that in the first hours? Did you have incidents where a release was fine for 5 days and you found issues in the 6th day? And you had to rollback instead of doing a hotfix?And if yes, what percentage of your deployments had this? I am just trying to understand if this is a corner case/nice-to-have feature or you consider this essential functionality. On another note, Istio is not the only servicemesh/gateway out there. We need to make sure that all core functionality of Argo Rollouts is agnostic for the networking layer. Finally, even if tomorrow Argo Rollouts had a magic way to handle long running releases, there are several questions that need to be answered. For example if in the middle of the week (when there are already two versions running) you deploy a 3rd version, what is the expected result? Would you expect Argo Rollouts to manage 3 versions now? Or keep only the last two and immediately discard the oldest (conflicting with the whole point of progressive delivery)? |
Beta Was this translation helpful? Give feedback.
-
Copied from a community question:
Revision 1.0 is out
Revision 1.1 is to go out as a preview release
Argo Rollout thinks it’s doing steps that take traffic gradually from 1.0 to 1.1, but by the end of the rollout, 1.1 now has 100% of the traffic.
However, for preview purposes, we don’t want that.
Sure, I could use the above workaround to leave n historical revisions around, and overlay yaml for VS and DR via pipeline for now (until we have declarative end state in Argo itself to accomplish this).
But, b/t applying the final VS/DR yaml and the end of the rollout, a version only intended for preview is actually taking 100% of all traffic.
And if anything goes wonky, and new yaml doesn’t successfully apply, things could be weirder yet for getting back to a sane state.
How do we solve this? For my current rollout step 0, we do 0% public traffic, and only hit it for canary tests. but beyond that, we curretly increment by weighted % of traffic, and final step completes this to 100%. It’s like we need alternate step config that can complete the rollout w/o ever taking it to 100%, which again segues back to need to promote a rollout in some state, but then have a declarative end state allowig multiple “experiments” or something to coexist w/ their own traffic rules in Istio. Right now, rollouts referenes VS and DR by name….maybe the end-state could refer to another VS/DR pair by their names.
Beta Was this translation helpful? Give feedback.
All reactions