This is the 2nd post in the Docker on Windows Server 2016 series. Refer back to the initial post for links to all posts in the series.
More Information, Please!
Toward the end of last week word was starting to spread that we were getting knee-deep into a Docker evaluation. That is, we are at least trying to get knee-deep into the evaluation As one of the e-mail threads started to grow our CTO asked if I could answer some questions regarding Docker, how we intend to use it and some of the benefits we think we’ll get from making use of Docker in our environment. Naturally, I was more than happy to oblige!
I quickly threw together a few slides to help guide the conversation. While I’ve posted the slides here the following image is where we spent most of our time:
This graphic visualizes the various steps of the CI/CD process that we need to solve for (initially). Some of the steps are already solved for – e.g. committing Dockerfile and Docker-compose files, etc. to version control. We already have established processes for this using VSTS and Git. Kicking off automated builds is fairly straight forward as well with the exception that we need to setup one or two build agents on a Windows Server 2016 box with Docker installed.
Lots of Questions!
There were a lot of great questions during the conversation with some of them revolving around the Docker registry. While our intent is to use Azure Container Registry (ACR) for the initial part of our evaluation we would still like to consider on-premises options. It was mentioned that we might be able to utilize VMWare Harbor. We utilize VMWare for our server virtualization needs so this seems like an obvious solution to look into. I suspect we’ll dig a bit deeper on this as the evaluation progresses – assuming all goes well. I am also running under the assumption that we’ll learn about a few other registry options along the way as well.
Something else that came up was the ability to run “hot” and “warm” environments. For example, can we run Docker (in Swarm mode) within our production data center and have a similar setup in our disaster recovery (DR) center on standby, ready to pick up the load if our primary data center goes dark (but not be servicing production requests otherwise)? I don’t know the answer to this so this will require some additional research. Maybe availability zones can help to address this? Not sure.
Finally, there were questions around our plans for a reverse proxy. Not sure on this one just yet, either. Seems like NGINX is fairly popular in the Docker world. I’ve already given this a brief look to see what’s available and, if nothing else, I’m at least learning what’s possible. I want something that I can run on-premises on a Windows Server 2016 box (via Windows containers) so I don’t know (yet) if NGINX fills this need or not. I’m sure there are other options, just haven’t done enough research yet.
All in all, it seemed to go well. As expected, there needs to be clear value for such an undertaking. The list provided in the previous post is a great start and a few more were added in the slide deck that I linked to above.
So, we’re still working to get my Azure credentials cleaned up so I can make use of the private registry I created using ACR. One of the next research spikes after that will likely be the reverse proxy so more to come on that one.
Until the next time, please let us know if you have any experience and/or questions regarding Windows Docker containers. I’d love to hear how other organizations are doing in this area so we can all learn from each other.
Until the next post…