Testing your functionality is important, but what happens if other factors come into play? In this blog post we show how trivago handles non-functional testing for every commit and how we scaled it.
Posts about Backend
Efficient Image Recovery at Scale Using Amazon S3 Versioning
Would you book a hotel without seeing the images first? No, right? Hence, it’s vital to make sure the images are available all the time. In a scenario where a lot of images were deleted, we must have an efficient way of recovering them. This is how we achieved that with Amazon S3 Versioning.
Improving Your Data Layer with Rebase on Python
When migrating your data to new technologies, validation of the data becomes challenging as your data structures might change. Rebase tries to make this easier while also giving your more flexibility on your data.
AWS Kinesis with Lambdas: Lessons Learned
We built a reactive pipeline to move almost a quarter billion database records to AWS and to build a reactive and serverless pipeline. This is the story of the lessons we learned along the way working with Kinesis and Lambdas
How trivago Reduced Memcached Memory Usage by 50%
One day, Memcached ran out of free memory. The method get
failed and all requests went directly to the database. Of course these calls also failed under the huge load, and eventually it caused downtime for the whole trivago website. Yikes!
Automate and Encourage! The New Tech Blog Deployment Process
We do think that our tech blog is full of interesting things powered by our engineers’ great stories. Let us take you on a journey of how we maintain trivago tech blog from the technical perspective and how we recently automated its deployment process.
Building a full fledged API in less than 30 minutes in Symfony
We all have been there, done that. You want to build an API that allows you to manipulate your entities so you start checking which specification to use. Maybe REST or JSON API or maybe no specification. Once you have decided which way to go it’s time to create the controllers. Each controller needs at least 5 actions: one to get a single entity, one to get the collection and 3 others to create, update and delete.
Continuous Performance Monitoring for PHP - The tale of Blackfire at trivago
We’re a data-driven company. At trivago we love measuring everything. Collecting metrics and making decisions based on them comes naturally to all our engineers. This workflow also applies to performance, which is key to succeed in the modern Internet.
Your Definite Guide For Autoscaling Jenkins
At trivago we use Jenkins as our main CI tool. However, when our physical setup was not enough we needed to move it to the cloud and implement an automated slave scaling. This is the definite guide with all the steps we took to implement an auto scaling Jenkins platform.
We're Hiring
Tackling hard problems is like going on an adventure. Solving a technical challenge feels like finding a hidden treasure. Want to go treasure hunting with us?
View all current job openings