Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Success of Blackfire and Continuos PHP performance monitoring at trivago

Success of Blackfire and Continuos PHP performance monitoring at trivago

At trivago, we love measuring everything. Collecting metrics and making decisions based on them is natural to our engineers. We follow this workflow also with performance, which is key to succeed in the modern Internet. In this talk, we're going to describe how we integrated Blackfire profiling into the daily workflow of QA Engineers and Software Developers alike. How our own tooling around Blackfire has helped us to keep (and improve) performance over the last year. We will discuss the benefits of enforcing backend performance budgets. Also, we will explain our entire pipeline for PHP continuous monitoring.

Talk given at SymfonyLive Berlin 2018

Jorge Luis Betancourt

October 26, 2018
Tweet

More Decks by Jorge Luis Betancourt

Other Decks in Programming

Transcript

  1. @jorgelbgm Who am I Software Engineer / Performance Team Apache

    Nutch Committer & PMC Member of @TheASF Passionate about Search (Solr/ES), metrics and performance
  2. • PHP & Symfony application • Some services in other

    languages (Java) • HTML/CSS/JS 200 commits per day +100 active A/B tests
  3. @jorgelbgm Providing feedback to the developers as soon as possible

    about the impact of their changes on the performance of the application. Make trivago faster and spread the culture of performance. Mission
  4. @jorgelbgm • Assertions & Tests • Scenarios Scenarios Tests Assertions

    … over the collected metrics and dimensions Features
  5. @jorgelbgm PHP extension that collects resource consumption metrics & keeps

    track of the call graph (only when the profiling is enabled). Agent to manage communication with the Blackfire servers. Configuration management
  6. @jorgelbgm • Total independence between environments • Allow for changes

    in credentials/ agent config without restarting the web servers • Keeps configurations on the web server to a minimum
  7. @jorgelbgm Bitbucket Integrations • Bitbucket Server • Jenkins • InfluxDB

    • PR based workflow No official integration No official integration Webhook integration ! " ! ! No official integration
  8. @jorgelbgm Developers point of view • Build status of the

    merge commit • Comment on the Pull Request
  9. @jorgelbgm Trigger a build if … Trigger a build when

    the response time goes above a threshold
  10. @jorgelbgm Caching the SEO module The contents of the SEO

    Module doesn't change often so we should cache the Twig output in memcached. This saves the Twig translation calls, etc.
  11. @jorgelbgm • Detect performance bottlenecks before they’re deployed to production.

    • Enforce a backend performance budget to stop performance degradation over time. • Offer a common platform for PHP developers to discuss performance related issues. • Provides an easy syntax for writing/understanding the tests. Conclusions