Today we are joined by Rohan and Francois, rockstars on the Systems Engineering Team at Smaato.
Welcome! Before we dive in, can you tell us a little bit about what the Systems Engineering Team does?
We at Smaato handle and process huge volumes of data. We have many applications and services working together on the backend to ensure that users receive optimized responses.
As a result, we have to make sure that our services run on an infrastructure which is resilient and provides high availability and performance. Our job is to make sure that our infrastructure is resilient, scalable and highly available.
Today we’re going to be talking a bit about “container orchestration.” To go back to the basics for a minute, what is a container?
Containers are packages of software that contain all of the necessary elements to run in any environment. Containers are a streamlined way to build, test, and deploy applications on multiple platforms and environments.
What are the benefits of using a container?
There are many advantages to using containers. For example:
- Containers require fewer system resources compared to hardware-deployed applications.
- Containers can be deployed easily to multiple platforms.
- They also help teams to automate process and deployment with readily available tools.
- They can be developed, deployed, and scaled rapidly.
click to enlarge
What are Container Orchestrators?
The reproducibility and portability of a containerized process, that provides an opportunity to move and scale our containerized applications across various platforms. Containers can effectively guarantee that those applications run the same way anywhere, allowing quickly and easily to take advantage of all these environments. Additionally, as we scale our applications accordingly with the amount of traffic or processing of data, we need some tooling to help automate the maintenance of those applications, enable the replacement of failed containers, and manage the rollout of updates and reconfigurations of those containers during their lifecycle.
Tools to manage, scale, and maintain containerized applications are called orchestrators, and the most common examples of these container orchestrators are Kubernetes (an orchestrator tool that helps to run containerized applications) and Docker Swarm.
Can you explain how we chose EKS (Elastic Kubernetes Service) for container orchestration?
We evaluated both Docker Swarm and Kubernetes as our orchestration platform. While Docker Swarm has some advantages, it still is bound with Docker API, which limits the functionality in Docker Swarm. And, during the evaluation of platforms, Kubernetes became the industry standard for container orchestration.
Kubernetes is an ideal solution because it offers customizations and has a modular approach on resources. Also during the time Kubernetes came on top as a mature platform for container orchestrations due to its versatility to natively integrate into various cloud based applications and services. Built on the principles of high availability, high reliability and high resilience, Kubernetes has become one of the industry leading tools for container orchestration.
Kubernetes offers a scalable, available, and resilient platform, and it comes with self-healing mechanisms, which help us ensure our services run with as little downtime as possible.
After looking at advantages and disadvantages, we decided to go with AWS EKS as our container orchestration. We also have a strong relationship with AWS, as they host our infrastructure. This gives us the ability to integrate these additional tools into our existing infrastructure with ease and efficiency – another key advantage.
How do we use EKS at Smaato?
At Smaato, we offer many different types of services to our customers. Those services are made of different components and can be broken down into various microservices. Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams. These microservices are the ones which give you your dashboard, and information about the products, your monetization and budget.
The information collected from various microservices running on EKS is then presented on your dashboard. There are many more microservices which are involved in the monetization and advertising displays, as well. These are hosted on various platforms that we operate and one such platform is EKS. Where we host and deploy various microservices that work in combination with other services.
How do we deploy services on EKS and maintain it?
We leverage different automation tools to integrate CI/CD with various tools, but in a nutshell, they all work similarly: deploy your configuration and manifest from your code repository onto EKS.
How Does Automating this Process Reduce Human Error?
The reason we leverage various tools for automation is that it helps reduce human interaction on repetitive tasks. That helps us avoid making mistakes while doing so. By combining human expertise with sophisticated automated tools, we can ensure the highest possible level of accuracy and eliminate human error.
This means we can make sure that our services are always reachable to customers, they have fewer downtimes and are responding quickly.
That way we make sure that all the information and data required for the customers are processed and stored correctly. Also this helps us to keep accountability and is used to calculate the expenditure and earnings.
So by using automation we try to keep our services highly available and useful for our customers.
People make mistakes, and that’s something that can’t be avoided completely. Even when you hire the very best people to work for you, you have to accept that there will be some level of human error. However, just because people are always going to make mistakes, it doesn’t mean that you can’t try to prevent as many of them as possible. Using automation, you can take steps to reduce human error and ensure more accurate information, as well as smoothly completed tasks and processes.
Thank you for joining us today and for sharing about the Elastic Kubernetes Service used by Smaato!