6 thoughts on “Docker Flow: Blue-Green Deployment and Relative Scaling”
ArtemT
Thanks a lot, this is what I’m looking for!
One small remark: IMO deployment and scaling are different tasks, you implemented both in a single binary (and you’re planning to add proxy control as well). It seems a violation of ‘Do One Thing’ principle, isn’t it?
Docker Flow project is a single binary. However, it does not do much but relies on other tools and executes its own logic that ties those tools together. You can consider it a kind of an orchestrator that implements features that might be missing in Docker ecosystem.
Just so that you get an idea of the direction I’m taking, I’ll release “Docker Flow: Proxy” in a few days. It will make sure that HAProxy is reloaded whenever a new service is deployed (and all the tests passed). It will be a completely separate binary and container. Once it is done, I’ll put additional logic to “Docker Flow” that will only invoke it when needed. Those two will not be inside the same binary or container.
I think that with this approach I am maintaining “Do One Thing” principle. “Docker Flow” will be in charge only of the orchestration of the flow. It uses other tools to do stuff. For example, Consul for service discovery and, soon to come, “Docker Flow: Proxy” for dynamic HAProxy. As I come up with new tools (like proxy), they will be released separately and you’ll be able to use them with or without “Docker Flow”.
Please let me know what you think and whether you’d like to be involved.
I understand that both deployment and scaling tasks dealing with application instances, both have the ‘orchestration’ logic. I think I need to learn your code and to use it well enough before posting any issues 🙂
Can’t wait to see your ‘Docker Flow: Proxy’ thing.
BTW: You might consider supporting https://github.com/kobolog/gorb (REST API instead of Consul, damn fast!) as the alternative to HAProxy.
Your article is very useful and Docker Flow excellent discovered for me, I am beginning make test with microservice architecture, but i had a lot doubts and with article everything stayed clear
Thanks a lot, this is what I’m looking for!
One small remark: IMO deployment and scaling are different tasks, you implemented both in a single binary (and you’re planning to add proxy control as well). It seems a violation of ‘Do One Thing’ principle, isn’t it?
Docker Flow project is a single binary. However, it does not do much but relies on other tools and executes its own logic that ties those tools together. You can consider it a kind of an orchestrator that implements features that might be missing in Docker ecosystem.
Just so that you get an idea of the direction I’m taking, I’ll release “Docker Flow: Proxy” in a few days. It will make sure that HAProxy is reloaded whenever a new service is deployed (and all the tests passed). It will be a completely separate binary and container. Once it is done, I’ll put additional logic to “Docker Flow” that will only invoke it when needed. Those two will not be inside the same binary or container.
I think that with this approach I am maintaining “Do One Thing” principle. “Docker Flow” will be in charge only of the orchestration of the flow. It uses other tools to do stuff. For example, Consul for service discovery and, soon to come, “Docker Flow: Proxy” for dynamic HAProxy. As I come up with new tools (like proxy), they will be released separately and you’ll be able to use them with or without “Docker Flow”.
Please let me know what you think and whether you’d like to be involved.
Thanks for your response.
I understand that both deployment and scaling tasks dealing with application instances, both have the ‘orchestration’ logic. I think I need to learn your code and to use it well enough before posting any issues 🙂
Can’t wait to see your ‘Docker Flow: Proxy’ thing.
BTW: You might consider supporting https://github.com/kobolog/gorb (REST API instead of Consul, damn fast!) as the alternative to HAProxy.
Thank you very much!
Your article is very useful and Docker Flow excellent discovered for me, I am beginning make test with microservice architecture, but i had a lot doubts and with article everything stayed clear
Pingback: Blue-Green Deployment and Relative Scaling with Docker | Jenkins Advanced
Pingback: “Your focus determines your links.” – Qui-Gon Jinn - Magnus Udbjørg