As we wrap up Ignite, we heard loud and clear the call to action from Microsoft to drive adoption of cloud-first strategies in order to embrace digital transformation. What does this mean? Does it mean that you should migrate your aging infrastructure to the cloud? Or is half enough, while leaving the other half on-prem (and buy Azure Stack of course)? Does it mean that it’s time to move your existing workloads to the cloud “as-is”? Or is it better to break up your monolithic apps into microservices first?
No two enterprises are the same in terms of server or user count, in terms of hardware or software stack, and definitely not the same in terms of the custom applications that they are running.
However, all of them have to start somewhere in their transition from old to new, in order to stay competitive (and dare I say, relevant). I believe that the one place where all enterprises can start (small or large) is containers. Why? Because all enterprises are familiar with the concept of VMs and have been running plenty of them for quite some time.
If you can run VMs, you can run containers (…and start your modernization journey on the fast lane may I add.)
Here are 10 reasons why containers are here to stay:
Containers are designed to be leaner, faster and more reliable than VMs. Containers are nothing more than virtualized processes that live indefinitely, or live for as long as they are needed, which means that they offer all the functionality of an application running inside a virtual machine, but without the overhead. They are a lot smaller than a VM (~100 MB vs. 4 GB), they take ~1s to start vs. 30s, and are less likely to crash since all the dependencies that enable them to run come packaged in something called an image (more on this later). This means that on the same compute capacity and memory of 1 VM you could run 5+ containers.
2. Linux AND Windows
Containers are first-class citizens on both Windows and Linux. While containers have been traditionally a Linux-only proposition, the latest version of Windows (Server 2016) is capable to run both Linux and Windows containers on the same host (virtual or physical), in essence eliminating the need to “pick one-or-the-other.” Most enterprise environments are heterogeneous, and in the past developers/admins have been forced to choose either Windows or Linux to target/manage their applications. This is no longer the case with containers. You could run a full .Net with SQL or LAMP stack on the same host, virtually eliminating the need for resource sprawl.
3. All Hardware Platforms
Containers run on an all hardware platforms, from Raspberry Pi, to mainframes. Windows is relatively new to the game, but getting lots of traction due to its broad following from GUI-loving admins to console-only geeks – thanks to PowerShell. Why? Because Windows runs on the most popular architecture of the enterprise: x86/x64.
4. Orchestrators, Mature, and Highly Valuable
The two most popular container orchestration technologies (Kubernetes and Docker Swarm) are capable of managing Windows containers now. To show you how serious Microsoft is about containers, not only have they become members of the Cloud Native Computing Foundation (CNCF) but they curated the latest release of Kubernetes (1.8), formerly a Google project which has been donated to the Open-source community.
5. Simplicity in Modernizing Apps
You can modernize apps with little to no-effort using containers. Front-end web servers (such as IIS) can run in a container. Traditional Windows apps (.Net 3.5, 4) as well as modern apps (.Net Core) can run in containers with virtually no code change. SQL server can also run inside a container since the release of SQL 2017. This means that you can modernize a 3-tier app a lot faster than you thought.
6. Agnostic to Location
Containers guarantee that your app will work the same on your developer’s workstation, on your on-prem server and in any public/private cloud. They were invented for this reason alone. Because containers are not only made up of custom code, but more importantly come packaged with all the dependencies that make-up the app, the result is a consistent set of “bits” which, in traditional VMs, means lots of patches and controls that are usually overlooked and result in dependency failure.
7. Cost Friendly
Containers are cheap to run. Due to their high density, you can cover a lot more containers with 1 Windows license, or 1 SQL Server licenses than traditional VMs.
Containers are portable and do not lock-you-in. You can run containers on IaaS in Azure, AWS or GCP, on spare capacity that you may have on your on-prem Hypervisors, or on any VM that runs a modern OS like Windows 2016 or Linux.
9. Cataloged and Tagged
They eliminate the question “who built this?” In order to build a proper container environment, you need a Container Registry. It stores all the container images and they all need to be cataloged and tagged before they can be used. Also, a modern registry like Docker Hub or Azure Container Registry (ACR) will keep a log of each deployment, which in turn will quickly become a popularity contest among your developers.
10. Containers are a Hot Topic
Everyone in your company is going to want to talk to YOU! Let’s face it, containers are the hottest technology that exists today. It already powers all of the tech companies you care about, and they are starting to get traction in the traditional enterprise. Run a container (or a thousand) and you will never look back!