6 thoughts on “Docker Flow: Blue-Green Deployment and Relative Scaling

  1. 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?

    1. Viktor Farcic Post author

      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.

      1. ArtemT

        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.

  2. Pingback: Blue-Green Deployment and Relative Scaling with Docker | Jenkins Advanced

  3. Pingback: “Your focus determines your links.” – Qui-Gon Jinn - Magnus Udbjørg

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s