routing your microservices architecture to ease devops
play

Routing Your Microservices Architecture To Ease DevOps Enterprise - PowerPoint PPT Presentation

Routing Your Microservices Architecture To Ease DevOps Enterprise Transformation Devops Gathering 2020 1 Whoami Manuel Zapf Head of Product Open Source @ Containous Maintainer on Traek @mZapfDE SantoDE 2 Containous


  1. Routing Your Microservices Architecture To Ease DevOps Enterprise Transformation Devops Gathering 2020 1

  2. Whoami Manuel Zapf Head of Product Open Source @ Containous Maintainer on Trae�k  @mZapfDE  SantoDE 2

  3. Containous https://containo.us We Believe in Open Source We Deliver Trae�k, Trae�k Enterprise Edition, Maesh Commercial Support 30 people distributed, 90% tech 3 . 1

  4. 3 . 2

  5. The Premise Of Microservices… 3 . 3

  6. … And What Happens 3 . 4

  7. Where’s My Service? 3 . 5

  8. Tools Of The Trade 3 . 6

  9. Source: Twitter[] 3 . 7

  10. What If I Told You? That You Don’t Have to Write This Con�guration File… ? 3 . 8

  11. Here Comes Traefik! 4 . 1

  12. Traefik Project 4 . 2

  13. 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

  14. Traefik (V2.0) Core Concepts 5 . 1

  15. Traefik Is An Edge Router 5 . 2

  16. Dynamically Discovers Services 5 . 3

  17. Architecture (V2.0) At A Glance 5 . 4

  18. Entrypoints 5 . 5

  19. Routers 5 . 6

  20. Middlewares 5 . 7

  21. Services 5 . 8

  22. Architecture (Again) At A Glance 5 . 9

  23. Static & Dynamic Configuration 5 . 10

  24. Traefik And Let’s Encrypt 6 . 1

  25. HTTPS & Let’s Encrypt 6 . 2

  26. Traefik With ⎈ Diagram from https://medium.com/@geraldcroes 7 . 1

  27. 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

  28. ⎈ 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

  29. ⎈ & 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

  30. East / West Traefik 8 . 1

  31. Say Hello To Maesh 8 . 2

  32. 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

  33. Maesh Architecture 8 . 4

  34. More On Maesh Built on top of Trae�k, SMI (Service Mesh Interface speci�cation) compliant, Opt-in by default. Maesh Website 8 . 5

  35. Show Me The Code! Install Maesh (Helm Chart): 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 Deploy Applications: 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 Deploy SMI Objects to allow traf�c in the mesh: kubectl apply -f apps/5-smi-http-route-groups.yaml kubectl apply -f apps/6-smi-traffic-targets.yaml 8 . 6

  36. 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

  37. That’s All Folks! 9 . 1

  38. We Have Stickers! 9 . 2

  39. We Are Hiring! docker run -it containous/jobs 9 . 3

  40. 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

Recommend


More recommend