I’ve published another post in the adidas Engineering Blog. This time, I talk about a mysterious bug that haunted us for months and that turned out to be Yet Another DNS Fuckup.
adidas Engineering Blog post: Plugggable NGINX configuration with S3 and Terraform
I’ve published a post in the adidas Engineering Blog about a pattern to configure a NGINX proxy server in front of multiple apps in AWS using Terraform. The tricky part: keeping each app in its own separate project with different state files.
The Fastly outage: a tale about the modern Web
A few days ago I wrote a Twitter thread about the global Fastly outage that was taking place at the moment. Following my trend of recycling content for this blog, I’ll repost it here.
Right now there is a global outage that is affecting some of the most used websites, making them partially or completely unavailable. The reason is a failure in a company that you may have never heard of called Fastly. This is a story about modern web centralization.
[Read More]Autoscaling workloads with Celery and Kubernetes
Kubernetes offers a wide range of functionalities to manage containerized applications and create complex distributed systems. One such utility is to automatically scale the number of replicas in a deployment when the workload increases. In this post we’ll see a simple example of how to use Kubernetes’ Horizontal Pod Autoscaler to dynamically adjust the number of workers that are consuming a task queue in a Flask + Celery app.
Write the Celery app
Celery is a framework to build software based on task queues. We’ll deploy a system composed by a Flask frontend web server that schedules tasks when receiving connections, a Redis server that acts as queue broker, and a set of workers that consume the tasks asynchronously. The number of workers will be decided by Kubernetes based on the workload at each time.
[Read More]