Containers – What’s in it for you?
In a previous article we drew the broader lines of Cloud Native computing. We talked about business-driven IT development, automated rightsizing and security, and we talked about vendor-independence.
In this article, we dig deeper into what can be seen as the key technological enabler for operating truly Cloud Native: containers.
We give you insights to the main business benefits of containers, how they are used for modernizing legacy applications, and how they enable you to operate efficiently – even on premises.
Containers on the rise
As the move towards the cloud has become imperative in most sectors, still more software-applications are now being developed with cloud computing in mind. Containerized applications are typically seen as the perfect fit for this purpose.
Gartner thus predicts more than 75% of global organizations to be running containerized applications in production by 2022, compared to less than 30% in 2020. According to 451 Research, the application container market will grow to $3 billion by 2022.
These predictions are mirrored in a survey made by Forrester. They asked IT-leaders for their top priorities right now, and adopting containers seems to occupy quite a bit of headspace: 86% prioritize to ramp up their use of containers for applications, while 85% prioritize to transform their IT to become Cloud Native.
A good example of a company having benefitted from container-technologies is Spotify. In a business where competition is tough and copycats are everywhere, what enables Spotify to outperform their rivals is the ability to continuously deliver and update on new features.
As we will get back to in the following, containers play a central role in speeding up the development process, but also, as Spotify’s director of engineering, infrastructure and operations, Jai Chakrabarti says, container-technologies enable them to free up resources that can be allocated for improving the product:
“Our internal teams (…) have less of a need to focus on manual capacity provisioning and more time to focus on delivering features for Spotify.”
Modernize your legacy
Performing well in the cloud isn’t solely a matter of what you develop from now on and onwards. For the vast majority of companies, the challenge is to transform legacy IT and applications to meet modern standards.
The reason you want to modernize applications can be that they have become difficult to maintain, they might be nearing their end of support, or they are simply expensive and time consuming. Another common problem is that they have grown increasingly complex over the years and do not easily scale, which hinders you from reaping the benefits of the cloud.
To a still higher degree, containerization becomes the default choice for application modernization.
Containerizing applications can be seen as the alternative to simply lifting and shifting them from their old environment to the cloud. When you containerize an application, you take its existing setup and features and deploy it in a small, lightweight, standardized workload.
This can be done manually, or the process can be automated using an intelligent software. If you want to hear more about automated containerization and our software platform STRATOS-AI®, please reach out to us at BOSCO.
Lift and shift might be a simple and easy (yet expensive) approach if the cloud is the end goal of your digital journey. But fully reaping the benefits of cloud does not come with simply rehosting legacy applications. If your aim is a seamless migration and to transform your IT to meet contemporary demands, containers have quite a few benefits for you to consider.
What exactly are the benefits of containers?
The main benefits of containers can be summarized in two ways: from a business-strategic point of view and from a technical point of view.
From a business point of view, the keywords are cost savings, speed-to-market, better customer service, and vendor-independence.
From a technical point of view, containers excel due to their portability, compatibility, scalability, agility, and speed.
In research made by IDG, organizations (primarily in the US) are asked what they consider the primary benefits of container technologies. Here containers’ ability to be easily moved across IT environments is highlighted as the most valued feature.
As we will see in the following, a such rather technological features are linked to a whole variety of opportunities for your business. The first one we will consider is the possibility to cut down your expenses on IT.
Briefly put: containers enable you to save on hardware, cloud and operations costs.
Fundamentally, containerization is a way to virtually run multiple applications on top of one single machine. Virtualization is in itself nothing new. For years it has been common to use virtual machines, whereby you can turn one physical server into many servers.
The upside of virtual machines is that each machine acts like an independent computer while it in reality relies on a shared physical sever for its processing power. Each virtual machine simulates hardware, applications, libraries, dependencies, and the operating system (OS).
The downside is that while you can rapidly create plenty of virtual machines, you end up with a vast amount of OS’s – resources, that are often duplicated and create significant overhead for disk space and memory.
Containerization is an alternative to this traditional form of virtualization. Whereas each virtual machine is packaged with its own OS, a container is much more lightweight: containers are only packaged with what they need to run while sharing the OS and network connection with other containers.
Hence the cost savings: This kind of virtualization enables you to optimize the use of hardware and to save on licenses, as you can have multiple containerized applications stacked on the same host/OS.
What’s more is that the containers can automatically scale according to the needs of your application. This distinguishes them from virtual machines which have static processing power (CPU) and memory configuration.
All in all: containers enable you to save money by rightsizing your capacity to the fullest.
By utilizing containers and proper software development processes, you can become much quicker in responding to customer requests for new features in your product or bug fixes.
The reason for this is that containers quickly and reliably can be copied to development, test and live environments. Hereby you simplify and speed up your software development process and your release of new features, which can give you a way faster time-to-market.
Another great benefit of containers is that even though they are seen as the technology of the future, they are the perfect fit for any company seeking to modernize and gradually transform their legacy IT towards modern standards – or for simply optimizing the use of the local datacenter, if that’s preferred.
Containers can easily and reliably run across any IT environment: on your laptop, on any public or private cloud, and even on bare metal. In that way containers can be said to let you operate in a modern way – even on-premises.
Related to this talk of agility we find another, truly important benefit of containers: your ability to stay independent of your cloud provider.
Many companies have put themselves in a position where the shift to another cloud provider comes with such great costs that they outweigh the potential advantages of another cloud environment. The provider can thus increase prices to a great length without losing their customer – a situation typically referred to as vendor lock-in.
The reason shifting cloud provider typically becomes costly is that applications and the tooling that supports them traditionally have been closely tied to the underlying infrastructure and services. Consequently, moving an application from one cloud provider to another requires a lot of reformatting of code, making the shift a both costly and time-consuming affair.
Containers spare you from this problem. As containerized applications are only packaged with what they absolutely need to run, they are universally compatible across any IT-environment.
Scale at the speed of need
A sudden increase in demand can put crucial pressure on an IT system. Failing to meet demands not only means lost opportunities and income for your business – it can also mean breaches in critical functions upon which your customers depend.
Another aspect of fluctuations in demand is the massive overcapacity, an on-premises setup traditionally will experience in times of low activity.
A great benefit of containers is their ability to scale instantly. Due to their lightweight design, they can be created within seconds, and you can seamlessly react to massive traffic loads on your website.
Just as well you can scale down according to decrease in traffic to make sure you do not pay for more than you use.
Docker and Kubernetes
Deploying containers in development and test processes has become relatively simple due to the opensourcecontainerization platform Docker.
It is possible to create a container without the use of Docker. But Docker has made building, deploying and managing containers much easier, simpler and safer. Docker allows developers to use very simple commands to build, deploy, run, update and stop containers.
But when it comes to actually running applications in production, containerization comes with an increased complexity compared to traditional virtualization. Especially if you operate with a microservice architecture, you could end up having thousands of containers to deploy, manage and connect with the right distribution and balancing of load at the right time.
To handle the increased complexity coming with containers, Kubernetes comes to the rescue.
Kubernetes is an opensource tool for orchestrating containers. It automates the deployment, scaling and management of your containerized applications and lets you automatically handle networking, storage, logs, alerting etc. for all your containers.
If you are interested in hearing more about automated containerization and modernization of legacy IT, please reach out to us.