Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Routing Your Microservices Architecture to Ease...
Search
DevOps Gathering
March 10, 2020
Programming
300
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
More Decks by DevOps Gathering
See All by DevOps Gathering
Hacking Terraform by Constantin Weisser
devopsgatheringio
1
270
The Road to Reliability: Infrastructure Testing explained by Constantin Weisser
devopsgatheringio
1
310
Take MicroProfile to the Clouds with Quarkus by Dirk Weil
devopsgatheringio
0
220
Tracing - a Journey to Tactical Insights by Florian Kückelkorn
devopsgatheringio
0
280
Testable Kubernetes Operators? by Marcel Müller
devopsgatheringio
0
310
How Containerized Pipelines Can Boost Your CI/CD by Nico Meisenzahl
devopsgatheringio
0
200
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
170
Building a Graph User-Interface for Malware-Analysis by Stefan Hausotte
devopsgatheringio
0
280
Other Decks in Programming
See All in Programming
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
140
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
120
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
1
110
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
dRuby over BLE
makicamel
2
410
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.3k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
340
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
170
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1k
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
240
継続モナドとリアクティブプログラミング
yukikurage
3
370
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
It's Worth the Effort
3n
188
29k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
250
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Side Projects
sachag
455
43k
How to Talk to Developers About Accessibility
jct
2
280
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Navigating Team Friction
lara
192
16k
Transcript
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