Scalable infrastructure in identity verification services

Alberto Lorenzo

Alberto Lorenzo

When you’re a significant player in the identity verification sector, providing a comfortable and, above all, seamless user experience is expected. That’s why responsiveness and scalability are essential to ensure your services can respond at all times, handle increased traffic, or respond to peaks workload if required.

In Alice we use an architecture based on microservices running on top of Kubernetes. Microservices are pieces of code developed by Alice with the goal of being autonomous and each of them performing a specific task. Kubernetes, on the other hand, is a technology designed to automate, scale and efficiently manage these microservices.

Autoscaling has the following main objectives:

  • Ensures that your applications always have enough resources to run smoothly, even when demand changes.
  • It prevents performance degradation during traffic peaks and keeps response times low.
  • With automatic scaling, you only use what you need at any given time, which helps save money by avoiding unnecessary resources.
  • Improve reliability by distributing the workload across multiple points. If something fails, Kubernetes automatically adds more resources to keep everything running without interruption.
  • Kubernetes simplifies the automated scaling process, allowing you to define rules and then taking care of the heavy lifting. This frees up your team to focus on other tasks.

In this context, the main challenge is finding an auto-scaling model that establishes the right relationship between different microservices, the infrastructure they run on, and the artificial intelligence models our services employ.

When you’re a significant player in the identity verification sector, providing a comfortable and, above all, seamless user experience is expected. That’s why responsiveness and scalability are essential to ensure your services can respond at all times, handle increased traffic, or respond to peaks workload if required.

In Alice we use an architecture based on microservices running on top of Kubernetes. Microservices are pieces of code developed by Alice with the goal of being autonomous and each of them performing a specific task. Kubernetes, on the other hand, is a technology designed to automate, scale and efficiently manage these microservices.

Autoscaling has the following main objectives:

  • Ensures that your applications always have enough resources to run smoothly, even when demand changes.
  • It prevents performance degradation during traffic peaks and keeps response times low.
  • With automatic scaling, you only use what you need at any given time, which helps save money by avoiding unnecessary resources.
  • Improve reliability by distributing the workload across multiple points. If something fails, Kubernetes automatically adds more resources to keep everything running without interruption.
  • Kubernetes simplifies the automated scaling process, allowing you to define rules and then taking care of the heavy lifting. This frees up your team to focus on other tasks.

In this context, the main challenge is finding an auto-scaling model that establishes the right relationship between different microservices, the infrastructure they run on, and the artificial intelligence models our services employ.

How Have We Done It?

In Alice we determined that a mixed strategy of using metrics and events was the most appropriate for the definition of our autoscaling model.

Kubernetes allows the use of its own metrics for autoscaling, however natively it is not capable of event-driven scaling. To solve this need we use KEDA. KEDA is a component that we have deployed in our clusters that helps to autoscale your applications based on events.

Alice Autoscale System diagram

With this combination of Kubernetes and KEDA, we ensure our application automatically adjusts to demand, providing a seamless experience to users without the need for constant technical intervention.

Conclusion

In the current technological ecosystem, surrounded by services that demand immediacy, the automation of auto-scaling with Kubernetes emerges as a fundamental solution to ensure agility and operational efficiency. Despite inherent challenges, overcoming them leads to a resilient infrastructure capable of adapting to the fluctuating demands of a SaaS service like ours by delivering a performance and user experience that meets our customers’ expectations.

If you liked it, share it on

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.