In the continually changing world of IT – it is vital to stay on top of new trends as they are identified. Something that has popped up on my radar over the last year and has been gaining in popularity around dev circles is a cool technology called containerization. Have you heard about it? Like most trending technologies – it has reached a level of awareness that everyone needs to know about what it is and how it works.
Sounds like a nice topic for a “Top 5 reasons” you should pay attention to this and understand how it works – so you are informed when a CxO type comes up and asks you about it. Here is my list in no particular order.
- Containers “compartmentalize” components or portions of apps / whole apps for use on any platform that supports the same containerization technology. That means that you could have a developer working on a dev machine creating a multi-stage app / system and could deploy it to an internal cloud or public cloud. Same code, same containers – just literally changing deployment target. Kind of eliminates the “works on my workstation” syndrome, right?
- Containers can be shared privately or publically for reuse as building blocks for other applications by other developers. This generates a large wealth of reusable blocks that should make development time decrease and creativity grow with all sorts of rich community involvement. You can take one public container and modify / enhance it for your needs and then share it back to the community for use. It’s really cool – nurture the community by making it simple to share, things start to take off with regards to adoption and market share.
- Small footprint in order to be able to host the containers. Think of a purpose built OS running the containerization runtime on which sit the containers. Unlike a whole VM to run EACH container just for it’s app, you now just run the container sitting on top of this purpose built OS. You don’t get 13 OSes with duplication overhead to run 13 containers – just need one to run. Better resource utilization = greater possible density of containers = less cost due to more efficient use of available resources.
- Scale, scale and more SCALE. Along with that – fast and consistent deployment as you need it. Obviously you have to construct your app to work at scale – but now the deployment vehicle is consistent and identical when deployed in multiple locations. Oh – did I mention it is lightweight and small compared to full VMs.
- I alluded to it above when talking about the concept – “portability” and all that it brings (including cross-platform). You don’t need to worry about setup of specific environments with identical configurations or specific editions of different supporting software. You just worry about the container engine running correctly on your ON-Premises or public cloud / hosted cloud infrastructure.
don’t be fooled – this is not something that is “just for devs”… this is something that you should spend some time with to understand it’s architecture, how it is installed, how containers are managed and deployed to different environments. Start small – then work your way up.
I have been playing around with Docker – just starting to get my feet wet. You Should Too! Great information about them and containerization technologies on their main site. Everything from what this is and how their solution of containerization works. You can try it out on their site with a little help and get up and running. Once you get a bit of an understanding – you can fire it up on Azure – we have docker ready images in the marketplace gallery!
Need a primer on Open Source technologies on Azure and want some Docker pieces added in as a bonus? I did four modules on OpenSource and containerization technologies (Docker) in last Decembers Level Up Azure live stream. You should check out the replay.