CenturyLinkLabs / zodiac

A lightweight tool for easy deployment and rollback of dockerized applications.
Apache License 2.0
198 stars 20 forks source link

zero downtime? #29

Open jgallen23 opened 9 years ago

jgallen23 commented 9 years ago

if I deploy with zodiac, does it cause downtime on my server or are old containers kept alive until the new ones are fully spun up?

alexwelch commented 9 years ago

There will be limited downtime for now. Basically mirroring that of Docker Compose.

jgallen23 commented 9 years ago

do you know if compose has plans to fix that? This feels like a showstopper for me using this in production

alexwelch commented 9 years ago

I doubt compose has plans to change that. We could certainly do a lot of work on the Zodiac front to address this, but we wanted to start with a very simple utility for the middle of the road applications that may not need or want all the complexities of a more robust deployment tool. Of course, the downtime is only as long as it takes the containers to stop and start.

funkytaco commented 9 years ago

I don't think adding too much unrelated logic would be good for the code base. Docker specifically broke out docker-compose and docker-machine out of docker because they were trying to do too much.

Just proxy or load balance your solution, which you probably do anyways, and keep one online during maintenance.

alexwelch commented 9 years ago

I agree with @funkytaco, this is something that can be accomplished outside of both Zodiac and Docker Compose.

jgallen23 commented 9 years ago

how would that work? Doesn't docker compose take down the old containers first? It would need to bring up other new containers, check to see if they are up and responding to requests and then take down the old containers. or am I missing something?

alexwelch commented 9 years ago

@jgallen23, correct. I should have been more clear when I said "outside of both Zodiac and Docker Compose". You would certainly need to add some ingredients yourself. Here is one post on the subject.

I think if you were to do a docker-compose based solution, you'd fire up two separate compose applications and gradually switch traffic. You'd need a long running load balancer that lived outside these two compose applications, so it seems kinda complicated... I'll let you know if I come up with any other ideas.

narutosanjiv commented 8 years ago

@alexwelch @jgallen23 Any progress on zero downtime issue?