Case Study

Inversion of Control With Consul at Criteo

Learn how Criteo uses HashiCorp Consul to dynamically let services discover other services without specific knowledge of their target.


  • Pierre Souchay
    Pierre SouchaySenior DevOps Engineer, Criteo

Criteo's infrastructure includes 250K services running on 35K physical machines in 9 DCs. They are power users of Consul, harnessing it's Consul Connect service mesh capabilities and pushing it to high-scale on very large workloads.

Consul is usually used to provide information for applications, so the applications can discover the services they depend on. Combined with tools such as consul-template, it allows for abstract machines/services in large infrastructures. But with tags and service meta, they can go further and allow applications to be dynamically discovered by other services without specific knowledge of their target. They call this "Inversion of Control" and use it to speed up integration as well as decoupling services.

In this talk, Criteo discovery team leader Pierre Souchay will discuss how his company uses Inversion of Control (IoC) to: 1. Provision network layers using Consul 2. Provide various services automatically such as security scanners, WS Discovery, automatic alerting, and metering 3. Build services on top of services, such as OAuth, automatically 4. Enforce security/monitoring in real time in all infrastructure 5. Easily manage new services and remove the burden associated with creating applications and services 6. Allow people to experiment more often and faster 7. Remove the need for cleaning up legacy and dead services

More resources like this one