One of the things I love about PowerShell is that it can be used as somewhat ‘sudo code’ to just write things that come to mind. Afterwards, if it turns out you are onto something great you can always come back with the C# hat on and make things more official.
On that note, I had great feedback from a post I made last month in which I was taking information from DSC nodes and combining that to make an interactive web interface. I wanted to keep that feel of creativity flowing into another project surrounding one of my favorite topics.
Windows Server Containers are set to revolutionize our industry (again) in a way we’ve not seen since we first started simple visualization techniques. I have been playing with Containers in the last few releases of the Windows Server 2016 Technical Preview’s and have witnessed the increase in performance and usability growing steadily.
That being said there is a huge market that is about to boom in the space of Windows Server Container monitoring, deployment tools and services. I’m looking forward to working on a few ideas in this space as we see Containers roll into the mainstream thought process of Windows developers and Ops teams over the next few years.
Lets take a look at a typical layout with a Container Host and a few containers running some simple web based applications on them.
Here we can see a basic layout with a Container Host and three containers. The Containers are sending and receiving traffic (they have their own NIC) over a Virtual Switch which is attached to the Container Host. Traffic comes in to the Container Host from the outside world with a destination in mind and the vSwitch (using winNAT) allows communication between the traffic and the containers.
Sure it might appear like there is a bit of magic happening here but mostly its simple NAT and PAT working together to route you to your destination container.
One might think that with all this great technology that we would have this amazing way to monitor all of the resources used within the container world.
Introducing the wonderful world of ‘Docker stats’:
While we’re only in Technical Preview 5 of Windows Server 2016 it does appear that not only does ‘Docker Stats‘ not actually work but its a pretty horrific way to track metrics on Containers.
Now, Nothing I’ve put together yet helps with Container metrics gathering. However, at a later date it would be something I would like to streamline into an interface that would make monitoring Containers a simplistic task.
So, for right now. I wanted to see more about my Containers from an ‘easy on the eyes’ web interface.
Well, here are some screenshots from what I am currently working on:
As you can see there is still a ton of work to do. However, at the moment we get a slick looking web interface for real-time monitoring of Windows Server Containers. The page is refreshed every 60 seconds with information from the Container Host.
The Container names themselves are also links that will send you through to the port on which you can view the application running on that specific container. In the above example, clicking on /godev will send me through to my golang web application which is running in a container that has port 88 externally mapped to 8000 internally.
This technique makes it easy for anyone to simply check the main page to view any containers that may be running at any given time. Since its live updating every 60 seconds we will also be aware of when our containers are destroyed or altered in any way.
This was a side project that I got interested in and will continue to develop as time goes on. But for now I am very much looking forward to the release of Windows Server 2016!
Stay tuned for updates!
Like previous ‘Making DSC beautiful’ project I am again using a simplistic template by http://html5up.net/ . I’ve made quite a lot of changes to the HTML/CSS to get it functioning the way as I wanted but it was all possible because of his initial template.