SlideShare a Scribd company logo
Pierre Souchay
Discovery Team @Criteo
Twitter: @vizionr
Github: pierresouchay
Inversion Of
Control with
Consul
Leading Discovery Team @Criteo (SDKs + Consul)
Dealing with 240k+ services, 38k Consul nodes in 9 DCs
1st external contributor to Consul
Author of consul-templaterb
Infrastructure
is changing
faster & faster
Services in VM/containers/FAAS
Several clusters, cloud providers
Multiplication of ยตServices
Service Mesh (East/West traffic)
Itโ€™s hard to discover
where things actually are
Cloud Provider/tech might provide it
โ€ฆ
But usually, it is hard to mix
God made the world in 7 days
Because there were no legacy
What is Consul?
โ€ข OSS Distributed Discovery system
โ€ข Each agent declares its services
โ€ข IP/PORT + health + TAGS + META
โ€ข Anyone can discover all services
โ€ข Notified when services changes
โ€ข Provides DNS!
โ€ข โ€ฆ
โ€ข Fault tolerance
โ€ข Multi DC/Clouds
7 โ€ข
More servers every year
DC: 12 (9 prod)
Servers: 38 000+
Services: 4000+
Instances: 240k+
HTTP req/s: 3M+
BigData: 180+ Pb
Kafka msg/s: 8M+
We registered all of our services in Consul starting in 2015
Our Network
Load-Balancers
are using it!
What did we learn about our users?
love their services configuration into their systems
What did we learn about our users?
love their services
want predictability
configuration into their systems
give them tools to investigate
What did we learn about our users?
love their services
want predictability
love business semantics
configuration into their systems
give them tools to investigate
focus on semantics, ignore tools
What did we learn about our users?
love their services
want predictability
love business semantics
want it fast and magic
configuration into their systems
give them tools to investigate
focus on semantics, ignore tools
magic is better than As A Service
So, what is this IoC?
14 โ€ข
Inversion of Control
Decoupling systems stuff using a framework
Provides semantics of your needs
Someone will provide what you need (and
much more)
Broader than Dependency Injection
Decouple producer/consumer
16 โ€ข
Inversion Of Control
17 โ€ข
Inversion Of Control: Swagger
18 โ€ข
Inversion Of Control: Automatic alerts
Why is meta so cool?
Direct configuration
โ€ข alert_* => automatic alerts
โ€ข vip_*=> VAAS Configuration
โ€ข swagger_* => you saw it
โ€ฆand information
โ€ข version
โ€ข start
โ€ข team
โ€ข OWNERS...
.. Automatically cleaned up
More meta,
More power,
More services
node meta + service meta: 2 layers
metrics can re-use it as well (ex:
Prometheus/Consul integration)
Templates are re-useable
Same meta can be re-used for new tools
It gets easier and easier
21 โ€ข
How IoC
changes infra
Removes
configuration
from hidden
places
If you are providing a cross service new
system, you probably donโ€™t need a git
repository for the configuration
So everything is transparent and open to
everybody
Information is where it needs to be, on
the service itself
Ease onboarding of newcomers
Cleanup is not
a hard
problem
anymore
Systems live and die,
consumers react
Ops synchronization is not
needed anymore
Help
innovating
Real decoupling
You can start your new project on your laptop
Templating systems create your configs easily
No migration costs anymore, we donโ€™t configure
tools
Semantics are better than YAML config files
Q&A
Twitter: @vizionr
Github: pierresouchay
26 โ€ข
Real-World
Examples
Automatic Metering /
Alerts
โ€ข templates of consul-templaterb generating prometheus alerts
โ€ข Provide 100% of coverage of Criteo for free
โ€ข Also provide metrics such as availability for all of Criteo
โ€ข App availability according to version/OS/rack, using meta!
โ€ข Re-use those meta in all metrics
28 โ€ข
VAAS
โ€ข Provides all networking for Criteo
โ€ข Serving more than 4M HTTP req/s
โ€ข Share semantics for several load-balancers
โ€ข HaProxy
โ€ข F5
โ€ข Provisioning of much more than reverse proxies
โ€ข DNS (including Geo-DNS)
โ€ข TLS
โ€ข Real time creation of Services (less than 1 minute)
29 โ€ข
โ€ข Detect old applications
โ€ข Detect invalid ownership
โ€ข Old security groups
โ€ข Deprecated usersโ€ฆ
Services Scanner
30 โ€ข
Consul-UI / Consul-
Timeline
โ€ข Live logs for all services
โ€ข History of services
โ€ข http://github.com/criteo/consul-
templaterb/
โ€ข Provides real time updates about the
status of all services
โ€ข Provides an history of changes for all
services

More Related Content

PDF
HAProxyConf 2019: Building a Service Mesh at Criteo with Consul and HAProxy
PPTX
2019 05-28 SRE Consul Criteo Meetup
PPTX
2019 hashiconf seattle_consul_ioc
PDF
2019 hashiconf consul-templaterb
PDF
Service discovery in a microservice architecture using consul
PDF
Consul: Microservice Enabling Microservices and Reactive Programming
PDF
Istio Service Mesh
PPTX
MicroServices at Netflix - challenges of scale
HAProxyConf 2019: Building a Service Mesh at Criteo with Consul and HAProxy
2019 05-28 SRE Consul Criteo Meetup
2019 hashiconf seattle_consul_ioc
2019 hashiconf consul-templaterb
Service discovery in a microservice architecture using consul
Consul: Microservice Enabling Microservices and Reactive Programming
Istio Service Mesh
MicroServices at Netflix - challenges of scale

What's hot (20)

PPT
Mistral Hong Kong Unconference track
PPTX
Building a Cloud Native Service - Docker Meetup Santa Clara (July 20, 2017)
PPTX
Spring Cloud and Netflix Components
PDF
Operating Consul as an Early Adopter
PPTX
Building Microservices with Spring Cloud and Netflix OSS
PDF
Consul in 5 minutes
PPTX
Service Discovery with Consul
PDF
Service Discovery in Distributed Systems
PPTX
Real Time Recommendations Using WebSockets and Redis - Ninad Divadkar, Inuit
PDF
How to Serve Blockchain Data with AWS Lambda
ย 
PDF
What Does Kubernetes Look Like?: Performance Monitoring & Visualization with ...
PPTX
WebSocket MicroService vs. REST Microservice
PDF
Microservices with Spring Cloud and Netflix OSS
PDF
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
PDF
Altitude NY 2018: Don't let the weeds overwhelm the garden
ย 
PDF
Monitoring Microservices
PDF
Fact-Based Monitoring - PuppetConf 2014
ย 
PPTX
Altitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
ย 
PDF
Microservices with Netflix OSS and Spring Cloud
PPTX
My graduation project on Opsschool ('the elephant')
Mistral Hong Kong Unconference track
Building a Cloud Native Service - Docker Meetup Santa Clara (July 20, 2017)
Spring Cloud and Netflix Components
Operating Consul as an Early Adopter
Building Microservices with Spring Cloud and Netflix OSS
Consul in 5 minutes
Service Discovery with Consul
Service Discovery in Distributed Systems
Real Time Recommendations Using WebSockets and Redis - Ninad Divadkar, Inuit
How to Serve Blockchain Data with AWS Lambda
ย 
What Does Kubernetes Look Like?: Performance Monitoring & Visualization with ...
WebSocket MicroService vs. REST Microservice
Microservices with Spring Cloud and Netflix OSS
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Altitude NY 2018: Don't let the weeds overwhelm the garden
ย 
Monitoring Microservices
Fact-Based Monitoring - PuppetConf 2014
ย 
Altitude NY 2018: 132 websites, 1 service: Your local news runs on Fastly
ย 
Microservices with Netflix OSS and Spring Cloud
My graduation project on Opsschool ('the elephant')
Ad

Similar to 2019 Lightning Talk: Discovery, Consul and Inversion of Control for the infrastructure (20)

PDF
Puppet Keynote: Puppet Camp London
ย 
PPTX
Cloud foundry: The Platform for Forging Cloud Native Applications
PPTX
Tectonic Summit 2016: Betting on Kubernetes
ย 
PPTX
State of Puppet - Puppet Camp Silicon Valley 2014
ย 
PDF
Gitops: a new paradigm for software defined operations
PDF
Monitoring microservices platform
PDF
Continuous Lifecycle London 2018 Event Keynote
PDF
Introducciรณn a Microservicios, SUSE CaaS Platform y Kubernetes
PPTX
From Duke of DevOps to Queen of Chaos - Api days 2018
PDF
Microservice - Up to 500k CCU
PDF
Puppet Camp Tokyo 2014: Keynote
ย 
PDF
Operational Visibiliy and Analytics - BU Seminar
PDF
SCaLE 16x - Application Monitoring And Tracing In Kubernetes
PDF
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
PPTX
Cytoscape CI Chapter 2
PPTX
Exploring Twitter's Finagle technology stack for microservices
PDF
Consul administration at scale
PDF
56k.cloud training
PDF
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
ย 
PDF
MuleSoft Surat Virtual Meetup#28 - Exposing and Consuming SOAP Service - SOAP...
Puppet Keynote: Puppet Camp London
ย 
Cloud foundry: The Platform for Forging Cloud Native Applications
Tectonic Summit 2016: Betting on Kubernetes
ย 
State of Puppet - Puppet Camp Silicon Valley 2014
ย 
Gitops: a new paradigm for software defined operations
Monitoring microservices platform
Continuous Lifecycle London 2018 Event Keynote
Introducciรณn a Microservicios, SUSE CaaS Platform y Kubernetes
From Duke of DevOps to Queen of Chaos - Api days 2018
Microservice - Up to 500k CCU
Puppet Camp Tokyo 2014: Keynote
ย 
Operational Visibiliy and Analytics - BU Seminar
SCaLE 16x - Application Monitoring And Tracing In Kubernetes
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Cytoscape CI Chapter 2
Exploring Twitter's Finagle technology stack for microservices
Consul administration at scale
56k.cloud training
stackconf 2023 | Infrastructure-From-Code and the end of Microservices by Ala...
ย 
MuleSoft Surat Virtual Meetup#28 - Exposing and Consuming SOAP Service - SOAP...
Ad

Recently uploaded (20)

PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
๐Ÿ’ฐ ๐”๐Š๐“๐ˆ ๐Š๐„๐Œ๐„๐๐€๐๐†๐€๐ ๐Š๐ˆ๐๐„๐‘๐Ÿ’๐ƒ ๐‡๐€๐‘๐ˆ ๐ˆ๐๐ˆ ๐Ÿ๐ŸŽ๐Ÿ๐Ÿ“ ๐Ÿ’ฐ
ย 
DOCX
Unit-3 cyber security network security of internet system
PDF
Exploring VPS Hosting Trends for SMBs in 2025
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
Digital Literacy And Online Safety on internet
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPTX
Internet___Basics___Styled_ presentation
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PPTX
E -tech empowerment technologies PowerPoint
PPT
tcp ip networks nd ip layering assotred slides
PPTX
presentation_pfe-universite-molay-seltan.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PPTX
artificial intelligence overview of it and more
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
INTERNET------BASICS-------UPDATED PPT PRESENTATION
๐Ÿ’ฐ ๐”๐Š๐“๐ˆ ๐Š๐„๐Œ๐„๐๐€๐๐†๐€๐ ๐Š๐ˆ๐๐„๐‘๐Ÿ’๐ƒ ๐‡๐€๐‘๐ˆ ๐ˆ๐๐ˆ ๐Ÿ๐ŸŽ๐Ÿ๐Ÿ“ ๐Ÿ’ฐ
ย 
Unit-3 cyber security network security of internet system
Exploring VPS Hosting Trends for SMBs in 2025
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Digital Literacy And Online Safety on internet
Tenda Login Guide: Access Your Router in 5 Easy Steps
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
introduction about ICD -10 & ICD-11 ppt.pptx
Introuction about WHO-FIC in ICD-10.pptx
Unit-1 introduction to cyber security discuss about how to secure a system
Internet___Basics___Styled_ presentation
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
E -tech empowerment technologies PowerPoint
tcp ip networks nd ip layering assotred slides
presentation_pfe-universite-molay-seltan.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
artificial intelligence overview of it and more
Slides PPTX World Game (s) Eco Economic Epochs.pptx

2019 Lightning Talk: Discovery, Consul and Inversion of Control for the infrastructure

  • 1. Pierre Souchay Discovery Team @Criteo Twitter: @vizionr Github: pierresouchay Inversion Of Control with Consul Leading Discovery Team @Criteo (SDKs + Consul) Dealing with 240k+ services, 38k Consul nodes in 9 DCs 1st external contributor to Consul Author of consul-templaterb
  • 2. Infrastructure is changing faster & faster Services in VM/containers/FAAS Several clusters, cloud providers Multiplication of ยตServices Service Mesh (East/West traffic)
  • 3. Itโ€™s hard to discover where things actually are
  • 4. Cloud Provider/tech might provide it โ€ฆ But usually, it is hard to mix
  • 5. God made the world in 7 days Because there were no legacy
  • 6. What is Consul? โ€ข OSS Distributed Discovery system โ€ข Each agent declares its services โ€ข IP/PORT + health + TAGS + META โ€ข Anyone can discover all services โ€ข Notified when services changes โ€ข Provides DNS! โ€ข โ€ฆ โ€ข Fault tolerance โ€ข Multi DC/Clouds
  • 7. 7 โ€ข More servers every year DC: 12 (9 prod) Servers: 38 000+ Services: 4000+ Instances: 240k+ HTTP req/s: 3M+ BigData: 180+ Pb Kafka msg/s: 8M+ We registered all of our services in Consul starting in 2015
  • 9. What did we learn about our users? love their services configuration into their systems
  • 10. What did we learn about our users? love their services want predictability configuration into their systems give them tools to investigate
  • 11. What did we learn about our users? love their services want predictability love business semantics configuration into their systems give them tools to investigate focus on semantics, ignore tools
  • 12. What did we learn about our users? love their services want predictability love business semantics want it fast and magic configuration into their systems give them tools to investigate focus on semantics, ignore tools magic is better than As A Service
  • 13. So, what is this IoC?
  • 14. 14 โ€ข Inversion of Control Decoupling systems stuff using a framework Provides semantics of your needs Someone will provide what you need (and much more) Broader than Dependency Injection
  • 17. 17 โ€ข Inversion Of Control: Swagger
  • 18. 18 โ€ข Inversion Of Control: Automatic alerts
  • 19. Why is meta so cool? Direct configuration โ€ข alert_* => automatic alerts โ€ข vip_*=> VAAS Configuration โ€ข swagger_* => you saw it โ€ฆand information โ€ข version โ€ข start โ€ข team โ€ข OWNERS... .. Automatically cleaned up
  • 20. More meta, More power, More services node meta + service meta: 2 layers metrics can re-use it as well (ex: Prometheus/Consul integration) Templates are re-useable Same meta can be re-used for new tools It gets easier and easier
  • 22. Removes configuration from hidden places If you are providing a cross service new system, you probably donโ€™t need a git repository for the configuration So everything is transparent and open to everybody Information is where it needs to be, on the service itself Ease onboarding of newcomers
  • 23. Cleanup is not a hard problem anymore Systems live and die, consumers react Ops synchronization is not needed anymore
  • 24. Help innovating Real decoupling You can start your new project on your laptop Templating systems create your configs easily No migration costs anymore, we donโ€™t configure tools Semantics are better than YAML config files
  • 27. Automatic Metering / Alerts โ€ข templates of consul-templaterb generating prometheus alerts โ€ข Provide 100% of coverage of Criteo for free โ€ข Also provide metrics such as availability for all of Criteo โ€ข App availability according to version/OS/rack, using meta! โ€ข Re-use those meta in all metrics
  • 28. 28 โ€ข VAAS โ€ข Provides all networking for Criteo โ€ข Serving more than 4M HTTP req/s โ€ข Share semantics for several load-balancers โ€ข HaProxy โ€ข F5 โ€ข Provisioning of much more than reverse proxies โ€ข DNS (including Geo-DNS) โ€ข TLS โ€ข Real time creation of Services (less than 1 minute)
  • 29. 29 โ€ข โ€ข Detect old applications โ€ข Detect invalid ownership โ€ข Old security groups โ€ข Deprecated usersโ€ฆ Services Scanner
  • 30. 30 โ€ข Consul-UI / Consul- Timeline โ€ข Live logs for all services โ€ข History of services โ€ข http://github.com/criteo/consul- templaterb/ โ€ข Provides real time updates about the status of all services โ€ข Provides an history of changes for all services