Contributed by Jeffrey Slapp,Director, Systems Engineering and
Solution Architecture, DataCore Software
There have been many significant developments related to containers over the last six months. As you may know, containers are similar to virtual machines in that they are, well, containers. However, containers are more specific to “containing” the application rather than what a virtual machine does which is “contain” an operating system and the application. Containers rely on a common and compatible underlying operating system layer which doesn’t need to be duplicated for each “container”, like a virtual machine does. The net-net is a leaner footprint resulting in lower overhead, better overall performance for the application, and a better opportunity for concurrency.
Once upon a time we had very expensive servers which performed, in general, one function. A print server, file server, mail server, etc. Then virtualization came along and gave us the ability to use expensive servers for multiple functions. It made a lot of sense since the majority of the time the physical server was sitting idle. Many years have passed since virtualization came on to the scene and now the next evolution in virtualization has occurred with containers.
Containers Here, Container There, Containers Everywhere
I suspect you can see the pattern emerging here. One function to many functions to many more functions; singular application to many applications to many more applications. If virtual machines drove higher I/O density (I/O demand per square foot), then containers certainly take it up a notch. The same I/O bottleneck which plagues virtual machines today is even more aggravated by containers. Containers just like virtual machines increase the degree of simultaneous parallel I/O requests.
If the I/O response layer is inadequate
to service the onslaught of requests from
the applications, then the full compute
potential of the hardware platform cannot be realized.
I have written extensively on this topic as of late, so I will not repeat myself here only to say, if you are highly parallel at the application layer, then you best be highly parallel at the I/O response layer.
For much more information on the topic of parallel I/O processing, take a look here or watch our video above.