Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Making Microservices Micro with Istio [RUS]

Making Microservices Micro with Istio [RUS]

Slides for an internal talk in Lazada Moscow Techhub.

The original slides can be found here: https://speakerdeck.com/saturnism/making-microservices-micro-with-istio-service-mesh

The original talk: http://saturnism.me/talk/making-microservices-micro-istio/

Ivan Korolev

April 06, 2018
Tweet

More Decks by Ivan Korolev

Other Decks in Programming

Transcript

  1. @saturnism @googlecloud @istiomesh @kubernetesio Microservices? 4 You probably heard a

    lot already! No theories here - just a how to solve problems
  2. @saturnism @googlecloud @istiomesh @kubernetesio apiVersion: extensions/v1beta1 kind: Deployment metadata: name:

    httpbin . . . spec: replicas: 2 template: . . . spec: containers: - name: httpbin image: docker.io/citizenstig/httpbin 6
  3. @saturnism @googlecloud @istiomesh @kubernetesio Scheduler 7 kubectl Kubelet Kubelet Kubelet

    Kubelet Config file Kubernetes Master Container Image Browsers
  4. @saturnism @googlecloud @istiomesh @kubernetesio Control Plane 8 Cluster of machines

    as one Well-defined API & types Abstraction of infrastructure
  5. @saturnism @googlecloud @istiomesh @kubernetesio Beyond Deployment 9 Load Balancing Fault

    Tolerance Observability Monitoring & Tracing Circuit Breaking
  6. @saturnism @googlecloud @istiomesh @kubernetesio Popular Open Source Tools 10 Eureka

    - Service Registry Ribbon - Client Side LB Hystrix - Circuit Breaker Zipkin - Distributed Tracing Prometheus - Monitoring Grafana - Data Visualization
  7. @saturnism @googlecloud @istiomesh @kubernetesio Eureka Service Registry Zuul API Gateway

    Zipkin Distributed Trace Prometheus Metrics Store Grafana Visualization Microservice A Ribbon (LB) Hystrix Tracer Metrics Archaius Centralized Config 11
  8. @saturnism @googlecloud @istiomesh @kubernetesio 12 Microservice B Ribbon Hystrix Tracer

    Metrics Service Registry Microservice A Ribbon Hystrix Tracer Metrics
  9. @saturnism @googlecloud @istiomesh @kubernetesio What Where When How A complete

    framework for connecting, securing, managing and monitoring services Secure and monitor traffic for microservices and legacy services An open platform with key contributions from Google, IBM, Lyft and others Multi-environment and multi-platform, but Kubernetes first 18
  10. @saturnism @googlecloud @istiomesh @kubernetesio Control Plane 19 Service to Service

    Communication Routing Rules Retries Circuit Breaker Performance Monitoring Tracing
  11. @saturnism @googlecloud @istiomesh @kubernetesio Eureka Service Registry Zuul API Gateway

    Zipkin Distributed Trace Prometheus Metrics Store Grafana Visualization Microservice A Ribbon Hystrix Tracer Metrics Archaius Centralized Config 20
  12. @saturnism @googlecloud @istiomesh @kubernetesio Eureka Service Registry Zuul API Gateway

    Zipkin Distributed Trace Prometheus Metrics Store Grafana Visualization Microservice A Ribbon Hystrix Tracer Metrics Archaius Centralized Config 21
  13. @saturnism @googlecloud @istiomesh @kubernetesio A C++ based L4/L7 proxy Low

    memory footprint Battle-tested @ Lyft 100+ services 10,000+ VMs 2M req/s An awesome team willing to work with the community! 23
  14. @saturnism @googlecloud @istiomesh @kubernetesio Dynamic service discovery Load balancing TLS

    termination HTTP/2 gRPC proxying Circuit breakers Health checks Traffic split Fault injection ... 24
  15. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Service calls http://service-b/ Service Mesh transparently intercepts request, forwards to local proxy 27
  16. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Service calls http://service-b/ Service Mesh transparently intercepts request, forwards to local proxy Proxy has a list of destinations, load balances the request to a destination proxy 28
  17. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Service calls http://service-b/ Service Mesh transparently intercepts request, forwards to local proxy Proxy has a list of destinations, load balances the request to a destination proxy If allowed, destination proxy forwards the request to Service B instance 29
  18. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Service calls http://service-b/ Service Mesh transparently intercepts request, forwards to local proxy Proxy has a list of destinations, load balances the request to a destination proxy Destination proxy checks with a mixer to enforce policy, quota, ACL, etc Service B response goes back to the caller 30
  19. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Service calls http://service-b/ Service Mesh transparently intercepts request, forwards to local proxy Proxy has a list of destinations, load balances the request to a destination proxy Destination proxy checks with a mixer to enforce policy, quota, ACL, etc If allowed, destination proxy forwards the request to Service B instance Service B response goes back to the caller 31
  20. @saturnism @googlecloud @istiomesh @kubernetesio Proxy Microservice A Proxy Microservice B

    Through the Proxy - Traffic Control - enforce routing rules & policies - Resiliency - Circuit Breaker, Retries - Monitoring - Record metrics - Observability - Record traces - Security - Mutual TLS! Encryption 32
  21. @saturnism @googlecloud @istiomesh @kubernetesio or Cloud Platform Services Proxy Microservice

    A Proxy Microservice B ... BlueMix Google Cloud Istio Mixer 34
  22. @saturnism @googlecloud @istiomesh @kubernetesio • 0.1: a single Kubernetes namespace

    • 0.2: a single Kubernetes cluster and external VMs • 0.3 (by end of year): production readiness within a single cluster • ... • 0.7: current • 1.0: (2018): complete mesh across all environments 42
  23. Learn more on istio.io Let us know on [email protected] Examples

    on github.com/saturnism/istio-by-example-java Try our Code Labs g.co/codelabs/cloud! @saturnism @googlecloud @istiomesh @kubernetesio 46 44 Thank you!