SlideShare a Scribd company logo
TRAEFIK AS AN OPEN SOURCE EDGE ROUTER
FOR MICROSERVICE ARCHITECTURES
JAKUB HAJEK
FEB 27TH, 2020
▸ I am the owner and technical consultant working for Cometari
▸ I’ve been system admin since 1998
▸ Cometari is a solutions company implementing DevOps culture
and providing consultancy, workshops and software services.
▸ Our expertise are DevOps, Elastic Stack - log analysis,
▸ We are deeply involved in the travel tech industry
▸ However our solutions go much further than just integrating
travel API’s.
INTRODUCTION
“I strongly believe that implementing DevOps culture, across
the entire organisation, should provide measurable value and
solve the real issue rather than generate a new one.”
Jakub Hajek, Cometari
My goal is to show how Traefik can make your daily duties easier if you work
with microservice architectures running in distributed systems.
CONTAINERS
IMMUTABLE CONTAINERS
▸ Mutable vs Immutable
▸ No incremental changes to the image
▸ No more drifting configuration
▸ (No) imperative updates
▸ Base image + source code = An artefact / immutable image
▸ The artefact is scaling unit in distributed systems
▸ Canary and mirror deployments
▸ Rollback if an error occurs
Immutable containers are at the core of any distributed systems
TRAEFIK 2.X
TRAEFIK 2.X KEY FEATURES
▸ TCP support
▸ Kubernetes CRD
▸ ROUTER= frontend, SERVICE=backend, MIDDLEWARES=rules
▸ Fully customisable routes via middleware, which can be reused on many routers
▸ YAML, TOML is still good
▸ A new dashboard with web UI
▸ Canary deployment with Service Load balancer
▸ Network traffic Mirroring with Service Load balancer
▸ Consul catalog
KUBERNETES INGRESS PROVIDER
▸ Traefik can be used as an another ingress provider
▸ Configuration is done via (lots of) annotations
KUBERNETES CRD AND AVAILABLE CUSTOM RESOURCES
▸ Ingressroute - HTTP routing - http router
▸ Middleware - tweaks the HTTP before they are sent to a
service - HTTP Middleware
▸ TraefikService - abstraction for HTTP LB/mirroring
▸ IngressRouteTCP - TCP routing - TCP router
▸ TLSOptions - TLS connection parameters
https://docs.traefik.io/routing/providers/kubernetes-crd/
LETSENCRYPT WITH CRD
▸ Traefik is delivered as an immutable containers
▸ LetsEncrypt keeps persistence in a file
▸ Previous version keeps cert in KV stores (Consul)
▸ The file with cert works fine with only once Traefik instance
▸ SPOF
https://docs.traefik.io/providers/kubernetes-crd/#letsencrypt-support-with-the-custom-resource-definition-provider
IMMUTABLE CONTAINER WITH TRAEFIK
▸ Custom image with Traefik with added SSL certificate into
image
▸ Configuration files added directly to the image
▸ Works perfectly if you bought SSL cert and don’t use
dynamically updated Let’s Encrypt
▸ Horizontal scalability is simple, no need to care about the
persistence for Let’s Encrypt certificates
HA WITH LETSENCRYPT
▸ Traefik EE which supports distributed LetsEncrypt
▸ LetsEncrypt keeps persistence in a file
▸ Previous version keeps cert in KV stores (Consul)
▸ Cert Manager that keeps certificates in secrets
ENTRYPOINTS :80, :443
ROUTERS
PROVIDER 1
Traefik configuration introduction
PROVIDER
CONNECTION
INFORMATION
SERVICES
MIDDLEWARES
CERTIFICATES
PROVIDER 2
DYNAMIC (WHILE RUNNING)STATIC (STARTUP TIME)
ENTRYPOINT ROUTER SERVICE
MIDDLEWARE 1 MIDDLEWARE 2 MIDDLEWARE 3
Request Calls to backend servers
Tweaking request before / after the arrives to their destination
MIRRORING OR LIVE TRAFFIC SHADOW
▸ Understand difference between Deployment vs Release
▸ Deployment brings new code to the production,
no production traffic yet!
▸ Run smoke, integration tests to make sure that new
deployment has no impact to your users
▸ Release brings live traffic to a deployment.
▸ We can shadow live traffic to the new deployment and
reduce the risk of failure.
MIRRORING
VERSION 2
VERSION 1
https://service
Mirroring with Service Load Balancer
20%
https://github.com/containous/traefik/issues/2989
CANARY DEPLOYMENT
▸ Deployment vs Release
▸ Instead of switching to new version in one step, we use a phased
approach
▸ We deploy a new app in a small part of the production
infrastructure
▸ Only a few users (1%) are routed to the newest version (Release)
▸ With no errors reported, the new version can be released to the
rest of the infrastructure.
CANARY
VERSION 2
VERSION 1
https://service
Canary deployment with Service Load balancers
1% of live traffic, a few users
Majority of users
https://github.com/containous/traefik/issues/1164
CANARY VERSION 2
https://service
Canary deployment with Service Load balancers
VERSION 2VERSION 2VERSION 2
OBSERVABILITY
▸ /metrics endpoint
▸ Enable Prometheus or any other backend
▸ Use Grafana to visualise metrics
▸ Use existing dashboards to visualise data (or develop your
own)
LOGGING AND VISUALISING ACCESS LOGS
▸ Traefik logs are in JSON including startup and errors events
▸ Access logs are written to STDOUT in JSON format.
▸ Treat logs as an event and transfer them to external system
(Elastic Stack + Fluentd)
▸ Use Kibana and Logs tab to have live data streaming
▸ Develop dashboard with a map and place GEO points of IP
addresses
TRACING
▸ You can’t just relay on app and system logs
▸ Visualize the requests flows
▸ Traefik uses OpenTracing for distributed tracing
▸ Jeager, Zipkin, Datadag and a few more
CONFIGURATION TIPS
▸ Don’t mix static configuration vs dynamic configuration
▸ CLI command can be used for static config or if you prefer you can define
config file as well
▸ Labels (for Swarm) can be used to define dynamic configuration or config files
▸ directory with WATCH flag enabled as well
▸ More advanced rules configuration via middleware are dynamically defined
▸ The most flexible is to run Traefik as container, instead of binary directly from
host
▸ Healthcheck for your services are crucial
DEMO ENVIRONMENT
DEMO ENVIRONMENT IN DETAILS
▸ K3S cluster* consisting of 3 nodes
▸ INSTALL_K3S_EXEC="server --no-deploy traefik”
▸ SSL certs issued by Lets Encrypt
▸ FQDN domains:
▸ https://a.labs.cometari.eu
▸ https://n.labs.cometari.eu
▸ https://c.labs.cometari.eu
▸ DNS Round Robin: Route 53 with its implemented health checks
▸ Web Server and NodeJS backend
Diagram of demo environment
TRAEFIK
WEB FRONTEND
NODEJS BACKEND
Talk is cheap, show me the code!
DEMO TIME
DEMO SCENARIOS
▸ Web UI to see how services are deployed
▸ Scaling services and generating some network traffic via
Slapper
▸ Example of Canary deployment
▸ Example of Mirroring configuration
SUMMARY
▸ Traefik provides flexible way to expose services, auto discovery
▸ It can be configured in multiple way, there are no ready to use config - just
refer to configuration tips
▸ Fully customise routes via middlewares
▸ Easily integrates with every major cluster technology
▸ Lets Encrypt integrated, managing SSL certs is easy
▸ Metrics, Tracing, Logs
▸ Rolling out releases thanks to Canary deployments
▸ Mirroring - duplicating incoming request and send them to different services.
THANK YOU
@_JAKUBHAJEK
JAKUB.HAJEK@COMETARI.COM

More Related Content

PDF
Traefik 2.x features - canary deployment with Traefik and K3S
PPTX
Running Docker in Production - The Good, the Bad and The Ugly
PDF
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
PDF
Future of Cloud Computing with Containers
PPTX
Dockercon 2017 EU Recap
PPTX
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASY
PDF
Deploying WSO2 Middleware on Kubernetes
PPTX
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
Traefik 2.x features - canary deployment with Traefik and K3S
Running Docker in Production - The Good, the Bad and The Ugly
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Future of Cloud Computing with Containers
Dockercon 2017 EU Recap
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES HAS NEVER BEEN SO EASY
Deploying WSO2 Middleware on Kubernetes
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...

What's hot (20)

PDF
Deploying WSO2 Middleware on Containers
PDF
The Fairy Tale of the One Command Build Script
PDF
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
PDF
In-Cluster Continuous Testing Framework for Docker Containers
PDF
Troubleshooting tips from docker support engineers
PDF
How Ansible Tower and Prometheus can help automate continuous deployments
PPTX
Beginners Guide to Kontena
PDF
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
PDF
Kubernetes laravel and kubernetes
PPTX
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
PDF
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
PDF
Current Status of Kubernetes-powered Docker for Mac Platform
PDF
Going deep (learning) with tensor flow and quarkus
PDF
Monitoring kubernetes with prometheus
PDF
WSO2 Cloud and Platform as a Service Strategy
PDF
OMG Namespaces! | Raffaele Di Fazio
PDF
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
PDF
My kubernetes toolkit
PDF
OpenStack Preso: DevOps on Hybrid Infrastructure
Deploying WSO2 Middleware on Containers
The Fairy Tale of the One Command Build Script
Docker for Mac and Windows: The Insider's Guide by Justin Cormack
In-Cluster Continuous Testing Framework for Docker Containers
Troubleshooting tips from docker support engineers
How Ansible Tower and Prometheus can help automate continuous deployments
Beginners Guide to Kontena
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Kubernetes laravel and kubernetes
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
Current Status of Kubernetes-powered Docker for Mac Platform
Going deep (learning) with tensor flow and quarkus
Monitoring kubernetes with prometheus
WSO2 Cloud and Platform as a Service Strategy
OMG Namespaces! | Raffaele Di Fazio
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
My kubernetes toolkit
OpenStack Preso: DevOps on Hybrid Infrastructure
Ad

Similar to Traefik as an open source edge router for microservice architectures (20)

PDF
Container Orchestration with Traefik 2.x
PDF
Canary deployment with Traefik and K3S
PDF
10. th cncf meetup - Routing microservice-architectures-with-traefik-cncfsk
PPSX
How Postman adopted Docker
PDF
Cloud-native .NET Microservices mit Kubernetes
PPTX
Full stack development best practice and toolset
PDF
Containerising bootiful microservices javaeeconf
PDF
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
PDF
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
PPTX
What's New in Docker - February 2017
PDF
Build cloud native solution using open source
PDF
How to Design a Backend for IoT
PDF
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
PDF
Modernization patterns to refactor a legacy application into event driven mic...
PDF
The path to a serverless-native era with Kubernetes
PDF
Digital Forensics and Incident Response in The Cloud Part 3
PDF
Scaling Microservices with Kubernetes
PPTX
Docker, cornerstone of an hybrid cloud?
PPTX
Webinar: Dealing with automation tool overload!
PDF
Cloud Native Microservices with Spring Cloud
Container Orchestration with Traefik 2.x
Canary deployment with Traefik and K3S
10. th cncf meetup - Routing microservice-architectures-with-traefik-cncfsk
How Postman adopted Docker
Cloud-native .NET Microservices mit Kubernetes
Full stack development best practice and toolset
Containerising bootiful microservices javaeeconf
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
What's New in Docker - February 2017
Build cloud native solution using open source
How to Design a Backend for IoT
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Modernization patterns to refactor a legacy application into event driven mic...
The path to a serverless-native era with Kubernetes
Digital Forensics and Incident Response in The Cloud Part 3
Scaling Microservices with Kubernetes
Docker, cornerstone of an hybrid cloud?
Webinar: Dealing with automation tool overload!
Cloud Native Microservices with Spring Cloud
Ad

More from Jakub Hajek (6)

PDF
Docker Logging and analysing with Elastic Stack
PDF
Docker Swarm and Traefik 2.0
PDF
Container Orchestration with Traefk on Docker Swarm
PDF
Cometari Dedicated Solutions Company Presentation
PDF
Cometari Dedicated Solutions Oferta ogólna
PDF
Cometari Dedicated Solutions General Offer
Docker Logging and analysing with Elastic Stack
Docker Swarm and Traefik 2.0
Container Orchestration with Traefk on Docker Swarm
Cometari Dedicated Solutions Company Presentation
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions General Offer

Recently uploaded (20)

PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
Tartificialntelligence_presentation.pptx
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Mushroom cultivation and it's methods.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
project resource management chapter-09.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools
WOOl fibre morphology and structure.pdf for textiles
1. Introduction to Computer Programming.pptx
Chapter 5: Probability Theory and Statistics
1 - Historical Antecedents, Social Consideration.pdf
Enhancing emotion recognition model for a student engagement use case through...
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
cloud_computing_Infrastucture_as_cloud_p
Tartificialntelligence_presentation.pptx
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
MIND Revenue Release Quarter 2 2025 Press Release
Mushroom cultivation and it's methods.pdf
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
A comparative study of natural language inference in Swahili using monolingua...
project resource management chapter-09.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf

Traefik as an open source edge router for microservice architectures

  • 1. TRAEFIK AS AN OPEN SOURCE EDGE ROUTER FOR MICROSERVICE ARCHITECTURES JAKUB HAJEK FEB 27TH, 2020
  • 2. ▸ I am the owner and technical consultant working for Cometari ▸ I’ve been system admin since 1998 ▸ Cometari is a solutions company implementing DevOps culture and providing consultancy, workshops and software services. ▸ Our expertise are DevOps, Elastic Stack - log analysis, ▸ We are deeply involved in the travel tech industry ▸ However our solutions go much further than just integrating travel API’s. INTRODUCTION
  • 3. “I strongly believe that implementing DevOps culture, across the entire organisation, should provide measurable value and solve the real issue rather than generate a new one.” Jakub Hajek, Cometari
  • 4. My goal is to show how Traefik can make your daily duties easier if you work with microservice architectures running in distributed systems.
  • 6. IMMUTABLE CONTAINERS ▸ Mutable vs Immutable ▸ No incremental changes to the image ▸ No more drifting configuration ▸ (No) imperative updates ▸ Base image + source code = An artefact / immutable image ▸ The artefact is scaling unit in distributed systems ▸ Canary and mirror deployments ▸ Rollback if an error occurs
  • 7. Immutable containers are at the core of any distributed systems
  • 9. TRAEFIK 2.X KEY FEATURES ▸ TCP support ▸ Kubernetes CRD ▸ ROUTER= frontend, SERVICE=backend, MIDDLEWARES=rules ▸ Fully customisable routes via middleware, which can be reused on many routers ▸ YAML, TOML is still good ▸ A new dashboard with web UI ▸ Canary deployment with Service Load balancer ▸ Network traffic Mirroring with Service Load balancer ▸ Consul catalog
  • 10. KUBERNETES INGRESS PROVIDER ▸ Traefik can be used as an another ingress provider ▸ Configuration is done via (lots of) annotations
  • 11. KUBERNETES CRD AND AVAILABLE CUSTOM RESOURCES ▸ Ingressroute - HTTP routing - http router ▸ Middleware - tweaks the HTTP before they are sent to a service - HTTP Middleware ▸ TraefikService - abstraction for HTTP LB/mirroring ▸ IngressRouteTCP - TCP routing - TCP router ▸ TLSOptions - TLS connection parameters https://docs.traefik.io/routing/providers/kubernetes-crd/
  • 12. LETSENCRYPT WITH CRD ▸ Traefik is delivered as an immutable containers ▸ LetsEncrypt keeps persistence in a file ▸ Previous version keeps cert in KV stores (Consul) ▸ The file with cert works fine with only once Traefik instance ▸ SPOF https://docs.traefik.io/providers/kubernetes-crd/#letsencrypt-support-with-the-custom-resource-definition-provider
  • 13. IMMUTABLE CONTAINER WITH TRAEFIK ▸ Custom image with Traefik with added SSL certificate into image ▸ Configuration files added directly to the image ▸ Works perfectly if you bought SSL cert and don’t use dynamically updated Let’s Encrypt ▸ Horizontal scalability is simple, no need to care about the persistence for Let’s Encrypt certificates
  • 14. HA WITH LETSENCRYPT ▸ Traefik EE which supports distributed LetsEncrypt ▸ LetsEncrypt keeps persistence in a file ▸ Previous version keeps cert in KV stores (Consul) ▸ Cert Manager that keeps certificates in secrets
  • 15. ENTRYPOINTS :80, :443 ROUTERS PROVIDER 1 Traefik configuration introduction PROVIDER CONNECTION INFORMATION SERVICES MIDDLEWARES CERTIFICATES PROVIDER 2 DYNAMIC (WHILE RUNNING)STATIC (STARTUP TIME)
  • 16. ENTRYPOINT ROUTER SERVICE MIDDLEWARE 1 MIDDLEWARE 2 MIDDLEWARE 3 Request Calls to backend servers Tweaking request before / after the arrives to their destination
  • 17. MIRRORING OR LIVE TRAFFIC SHADOW ▸ Understand difference between Deployment vs Release ▸ Deployment brings new code to the production, no production traffic yet! ▸ Run smoke, integration tests to make sure that new deployment has no impact to your users ▸ Release brings live traffic to a deployment. ▸ We can shadow live traffic to the new deployment and reduce the risk of failure.
  • 18. MIRRORING VERSION 2 VERSION 1 https://service Mirroring with Service Load Balancer 20% https://github.com/containous/traefik/issues/2989
  • 19. CANARY DEPLOYMENT ▸ Deployment vs Release ▸ Instead of switching to new version in one step, we use a phased approach ▸ We deploy a new app in a small part of the production infrastructure ▸ Only a few users (1%) are routed to the newest version (Release) ▸ With no errors reported, the new version can be released to the rest of the infrastructure.
  • 20. CANARY VERSION 2 VERSION 1 https://service Canary deployment with Service Load balancers 1% of live traffic, a few users Majority of users https://github.com/containous/traefik/issues/1164
  • 21. CANARY VERSION 2 https://service Canary deployment with Service Load balancers VERSION 2VERSION 2VERSION 2
  • 22. OBSERVABILITY ▸ /metrics endpoint ▸ Enable Prometheus or any other backend ▸ Use Grafana to visualise metrics ▸ Use existing dashboards to visualise data (or develop your own)
  • 23. LOGGING AND VISUALISING ACCESS LOGS ▸ Traefik logs are in JSON including startup and errors events ▸ Access logs are written to STDOUT in JSON format. ▸ Treat logs as an event and transfer them to external system (Elastic Stack + Fluentd) ▸ Use Kibana and Logs tab to have live data streaming ▸ Develop dashboard with a map and place GEO points of IP addresses
  • 24. TRACING ▸ You can’t just relay on app and system logs ▸ Visualize the requests flows ▸ Traefik uses OpenTracing for distributed tracing ▸ Jeager, Zipkin, Datadag and a few more
  • 25. CONFIGURATION TIPS ▸ Don’t mix static configuration vs dynamic configuration ▸ CLI command can be used for static config or if you prefer you can define config file as well ▸ Labels (for Swarm) can be used to define dynamic configuration or config files ▸ directory with WATCH flag enabled as well ▸ More advanced rules configuration via middleware are dynamically defined ▸ The most flexible is to run Traefik as container, instead of binary directly from host ▸ Healthcheck for your services are crucial
  • 27. DEMO ENVIRONMENT IN DETAILS ▸ K3S cluster* consisting of 3 nodes ▸ INSTALL_K3S_EXEC="server --no-deploy traefik” ▸ SSL certs issued by Lets Encrypt ▸ FQDN domains: ▸ https://a.labs.cometari.eu ▸ https://n.labs.cometari.eu ▸ https://c.labs.cometari.eu ▸ DNS Round Robin: Route 53 with its implemented health checks ▸ Web Server and NodeJS backend
  • 28. Diagram of demo environment TRAEFIK WEB FRONTEND NODEJS BACKEND
  • 29. Talk is cheap, show me the code!
  • 31. DEMO SCENARIOS ▸ Web UI to see how services are deployed ▸ Scaling services and generating some network traffic via Slapper ▸ Example of Canary deployment ▸ Example of Mirroring configuration
  • 32. SUMMARY ▸ Traefik provides flexible way to expose services, auto discovery ▸ It can be configured in multiple way, there are no ready to use config - just refer to configuration tips ▸ Fully customise routes via middlewares ▸ Easily integrates with every major cluster technology ▸ Lets Encrypt integrated, managing SSL certs is easy ▸ Metrics, Tracing, Logs ▸ Rolling out releases thanks to Canary deployments ▸ Mirroring - duplicating incoming request and send them to different services.