Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Routing Your Microservices Architecture to Ease...
Search
DevOps Gathering
March 10, 2020
Programming
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Routing Your Microservices Architecture to Ease DevOps Enterprise Transformation by Manuel Zapf
DevOps Gathering
March 10, 2020
Transcript
40 slides
Routing Your Microservices Architecture To Ease DevOps Enterprise Transformation Devops
Gathering 2020 1
Whoami Manuel Zapf Head of Product Open Source @ Maintainer
on Containous Trae k @mZapfDE SantoDE 2
Containous We Believe in Open Source We Deliver Trae k,
Trae k Enterprise Edition, Maesh Commercial Support 30 people distributed, 90% tech https://containo.us 3 . 1
3 . 2
The Premise Of Microservices… 3 . 3
… And What Happens 3 . 4
Where’s My Service? 3 . 5
Tools Of The Trade 3 . 6
Source: Twitter[] 3 . 7
What If I Told You? That You Don’t Have to
Write This Con guration File… ? 3 . 8
Here Comes Traefik! 4 . 1
Traefik Project 4 . 2
Traefik 2.0 Quick Overview Revamped Documentation Clari ed Concepts Expressive
Routing Rule Syntax Middlewares TCP Support Canary / Mirroring And so Much More… Learn more on the blog post 4 . 3
Traefik (V2.0) Core Concepts 5 . 1
Traefik Is An Edge Router 5 . 2
Dynamically Discovers Services 5 . 3
Architecture (V2.0) At A Glance 5 . 4
Entrypoints 5 . 5
Routers 5 . 6
Middlewares 5 . 7
Services 5 . 8
Architecture (Again) At A Glance 5 . 9
Static & Dynamic Configuration 5 . 10
Traefik And Let’s Encrypt 6 . 1
HTTPS & Let’s Encrypt 6 . 2
Traefik With ⎈ ⎈ Diagram from https://medium.com/@geraldcroes 7 . 1
Ingress Example With ⎈ ⎈ apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:
name: corporate-webapp annotations: kubernetes.io/ingress.class: 'traefik' spec: rules: - host: localhost http: paths: - backend: serviceName: corporate-webapp servicePort: 80 7 . 2
⎈ ⎈ CRD - Custom Resources Definition # File "webapp.yaml"
apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: simpleingressroute spec: entryPoints: - web routes: - match: Host(`localhost`) && PathPrefix(`/whoami`) kind: Rule services: - name: webapp port: 80 $ kubectl apply -f webapp.yaml $ kubectl get ingressroute 7 . 3
⎈ ⎈ & TCP (With CRD) apiVersion: traefik.containo.us/v1alpha1 kind: IngressRouteTCP
metadata: name: ingressroutetcpmongo.crd spec: entryPoints: - mongotcp routes: - match: HostSNI(`mongo-prod`) services: - name: mongo-prod port: 27017 7 . 4
East / West Traefik 8 . 1
Say Hello To Maesh 8 . 2
What Is Maesh? Maesh is a lightweight, easy to con
gure, and non-invasive service mesh that allows visibility and management of the traf c ows inside any Kubernetes cluster. 8 . 3
Maesh Architecture 8 . 4
More On Maesh Built on top of Trae k, SMI
(Service Mesh Interface speci cation) compliant, Opt-in by default. Maesh Website 8 . 5
Show Me The Code! Install Maesh (Helm Chart): Deploy Applications:
Deploy SMI Objects to allow traf c in the mesh: helm repo add maesh https://containous.github.io/maesh/charts helm repo update helm install --name=maesh --namespace=maesh maesh/maesh --values=./maesh/values.yaml kubectl apply -f apps/0-namespace.yaml kubectl apply -f apps/1-svc-accounts.yaml kubectl apply -f apps/2-apps-client.yaml kubectl apply -f apps/3-apps-servers.yaml kubectl apply -f apps/4-ingressroutes.yaml kubectl apply -f apps/5-smi-http-route-groups.yaml kubectl apply -f apps/6-smi-traffic-targets.yaml 8 . 6
A Closer Look To SMI Objects apiVersion: specs.smi-spec.io/v1alpha1 kind: HTTPRouteGroup
metadata: name: app-routes namespace: apps matches: - name: all pathRegex: "/" methods: ["*"] --- apiVersion: access.smi-spec.io/v1alpha1 kind: TrafficTarget metadata: name: client-apps namespace: apps destination: kind: ServiceAccount name: apps-server namespace: apps specs: - kind: HTTPRouteGroup name: app-routes matches: - all sources: - kind: ServiceAccount name: apps-client namespace: apps 8 . 7
That’s All Folks! 9 . 1
We Have Stickers! 9 . 2
We Are Hiring! docker run -it containous/jobs 9 . 3
Thank You! @mZapfDE SantoDE Slides (HTML): https://containous.github.io/slides/devops-gathering-2020 Slides
(PDF): https://containous.github.io/slides/devops-gathering-2020/slides.pdf Source on : https://github.com/containous/slides/tree/devops-gathering-2020 10
More Decks by DevOps Gathering
See All by DevOps Gathering
Hacking Terraform by Constantin Weisser
devopsgatheringio
1
290
The Road to Reliability: Infrastructure Testing explained by Constantin Weisser
devopsgatheringio
1
330
Take MicroProfile to the Clouds with Quarkus by Dirk Weil
devopsgatheringio
0
240
Tracing - a Journey to Tactical Insights by Florian Kückelkorn
devopsgatheringio
0
300
Testable Kubernetes Operators? by Marcel Müller
devopsgatheringio
0
330
How Containerized Pipelines Can Boost Your CI/CD by Nico Meisenzahl
devopsgatheringio
0
210
The First Decade of DevOps is Over by Konstanin Diener
devopsgatheringio
1
190
From Zero to Hero - Onboarding with GitOps by Mario Kleinsasser
devopsgatheringio
0
180
Building a Graph User-Interface for Malware-Analysis by Stefan Hausotte
devopsgatheringio
0
290
Other Decks in Programming
See All in Programming
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
180
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
430
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
230
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
610
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
260
LLM 101
dalinaum
0
480
オーケストレーション記述言語 Katari
yukikurage
0
250
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
180
protojson における文字化けの扱い
kazuki1023
0
410
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
340
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Faster Mobile Websites
deanohume
310
32k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
The Curious Case for Waylosing
cassininazir
1
610
The Cost Of JavaScript in 2023
addyosmani
56
10k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
570
Site-Speed That Sticks
csswizardry
13
1.6k
The browser strikes back
jonoalderson
0
1.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
350