Companies have a lot of choices in how they deploy and run applications today: bare metal, VMs, containers, serverless, etc. All of them have pros and cons and work better in some situations versus others. Exadel has experience with all of these, and we help find the right solution for our clients, depending on their needs. Of course, the cloud is a very popular approach, and even bare metal deployment can be the right choice for certain kinds of applications and services that are highly optimized for those scenarios. Let’s discuss containers and container orchestration tools and how we have used these tools effectively for some clients with the Exadel end to end DevOps — covering both the Kubernetes benefits and challenges.
Kubernetes is a container orchestration tool — this means that if you have an application that has been developed or runs inside of containers (packages of code or application components and needed resources that run together), Kubernetes is a way to manage these containers. Kubernetes helps users understand what’s running, create containers, destroy them, add more of them automatically to handle load, automate deployment, etc. This is what we mean by container orchestration tool. Exadel has used Kubernetes in real-world, high-scale environments that allowed our customers to use their resources more effectively and save 10–15% on operational systems in the process. Let’s look closer at Kubernetes benefits and its advantages on projects.
Kubernetes is valuable because it allows companies to scale their applications more effectively, not only to the use of computing resources, but also to human time and effort. By containerizing an application, an organization simplifies its management and support — assuming you’ve spent the upfront time to automate things appropriately. With Kubernetes, scaling an application’s resources can be automated, monitoring is straightforward, and mistakes are reduced because of push-button deployment. Lets see the real example of Kubernetes benefits on one of Exadel’s projects.
Exadel and Kubernetes in Action: A Story from One of Our Engagements
Azure Kubernetes Service (AKS) is Microsoft’s integrated Kubernetes service offering that is a part of its Azure cloud platform. AKS makes it easier for companies to create and deploy applications and workloads with Kubernetes on Azure. Exadel was hired by a client who was facing challenges deploying a suite of security tools on AKS. Their previous implementation had not been reliable. They brought in Exadel experts to help get the applications installed and running correctly on AKS. The Exadel DevOps team developed a solution that not only worked for the security tools that it was originally designed for but allowed the customer to install other business applications as well. The team used Azure DevOps and Azure Pipelines to create an automated deployment scenario for building secure, reliable AKS deployments. Because some of these applications handled public traffic and requests could easily spike, the system needed to support autoscaling. The Exadel team was able to implement an autoscaling solution that met the clients needs and allowed Kubernetes to scale up effectively during peak traffic times. Working with Kubernetes and containers requires great teamwork and communication. In the past, teams may have been able to get away with working in a siloed fashion, but containerization blurs the lines. The best developers and DevOps engineers work together to design systems that take advantage of the best features and work together to secure and implement those designs.
By deploying applications on Kubernetes in this fashion, we can get the most from our computing resources. Containers are allocated at the moment that they are needed and deallocated when they are not needed. By carefully monitoring usage patterns and making smart use of cloud-based tools, the customer pays only for what they need and does not waste money on unused capacity or idle VMs. We also avoid the waste of running the operating system which may contain many unused features. Kubernetes allocates only what is needed and containers ask for only what is required to do their work.
Combining on-demand usage and avoiding waste, this customer estimates that they saved 10–20% on compute costs by switching from a VM-based system to one based on containers and Kubernetes for multiple applications.
Learn more about Exadel DevOps services and the challenges Exadel DevOps experts can help to solve.