Touch LATAM's AWS Partner Journey: Scaling, Reliability, and Speed with Amazon EKS

craftech_touch_success_story_banner

The Client

Touch is a company dedicated to the development of marketing services and sales tools with over 18 years of experience, 60,000 employees across 12 countries, and more than 100 clients. They provide solutions in:

  • Point of Sale Execution.
  • Marketing Consultation and Service Teams.
  • Below The Line (BTL) Marketing.

The Challenge

Touch LATAM aims to expand its services to more countries in Latin America to increase its customer base by 2022. To achieve this, they needed an infrastructure capable of scaling and handling increased traffic. To assist in achieving this goal, management aimed to migrate from a monolithic architecture to a microservices architecture. This transition allows the implementation of a container-based infrastructure where each service can be updated, replicated, and integrated as needed. This approach enables faster application growth and better service alignment with business needs. To accomplish these objectives, the decision was made to migrate to Elastic Kubernetes Services (EKS).

The Solution

Rapid Scaling

Touch LATAM migrated its microservices to the Amazon Elastic Kubernetes Services (Amazon EKS) platform using a combination of spot and on-demand instances. Instance capacity is managed by Karpenter, a tool that maximizes cloud utilization through rapid and simple node provisioning for Amazon EKS Kubernetes clusters. Karpenter streamlines Kubernetes infrastructure by automatically launching suitable computing resources, optimizing costs. Beyond cost savings, scalability and reliability have improved since migrating to Amazon EKS.

Touch LATAM also enhanced reliability by implementing Amazon CloudFront CDN to deliver its website with low latency to users. The CloudFront distribution is configured with an origin access identity to ensure that the website is accessed only through CloudFront and not directly from S3.

Faster Delivery Times

Touch LATAM needed to deploy and update services constantly. The shift to a CI/CD pipeline and simplified DevOps practices has facilitated a faster deployment cycle. Provisioning with Terraform and automated deployment with Atlantis for infrastructure provisioning as code have also contributed to increased speed and reduced operational burden.

Observability and Monitoring

A crucial aspect of the new infrastructure implementation for Touch LATAM is the collection of metrics and logs from each microservice. This approach enables the discovery of behaviors that impact application functionality, leading to decisions that enhance development processes, software infrastructure, and applications. Rapid detection and resolution of issues are also possible.

For monitoring, the architecture employs Thanos along with Prometheus and Grafana for metric visualization. The monitoring architecture focuses on having a central EKS cluster for metrics collection, visualization, and centralized alert creation for Touch LATAM’s EKS clusters.

From an operational perspective, monitoring all these clusters from a single monitoring dashboard is highly important. This not only aids in early anomaly detection but also enables performance comparison across different environments.

The implemented scheme was based on three main actions:

  • Monitoring and Metrics with Prometheus with Thanos Integration for unified querying across multiple clusters.
  • Log Management with Promtail and Loki.
  • Monitoring Dashboard for metric and log visualization using Grafana.

In this EKS cluster, all major Thanos components are implemented: Prometheus operator, offering greater flexibility in managing Prometheus instances. Prometheus operator natively supports Thanos, so each Prometheus operator implementation also includes the Thanos sidecar.

The Results

  • Accelerated deployment speed, facilitating daily release cycles.
  • Improved availability and stability through automated scaling.
  • Unified Prometheus metric monitoring for multiple Kubernetes clusters using Thanos.