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

Service Mesh with Istio and Kubernetes (Darkmir...

Service Mesh with Istio and Kubernetes (Darkmira Tour PHP 2019)

Talk presented at the English Only Track on June 9th 2019 at Darkmira Tour PHP 2019 in Fortaleza, Ceara - Brazil. We covered some concepts, vantages and disadvantages comparing Micro-services and Monolith architectures. Then we showed Istio, what it is, how it works and its components. We made some demos showing microservices running on docker, then they running over a Kubernetes cluster and how the deployment and rollback works in high availability modes, and then we finished running the same stack with Istio and how to create routes, inject failures and make a canary deployment. The video of the demos and the code will be available soon.

Wellington F. Silva

June 09, 2019
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi*

    funções: pai, tec. telecom, programador, sysadmin, docker community leader, instrutor, escritor, zend certified engineer e docker certified associate * deprecation in favor of Well
  2. Monolith • The bigger the system the bigger the team

    • Many people maintaining leads to natural split into teams
  3. Monolith • The bigger the system the bigger the team

    • Many people maintaining leads to natural split into teams • A small change can break the whole system
  4. “Adding manpower to a late software project makes it later”

    Frederick Brooks - The Mythical Man-Month
  5. –Wikipedia
 https://en.wikipedia.org/wiki/Microservices “Microservice is a software development technique, a variant

    of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services.”
  6. Microservices • Debug is hard • Work on a service

    always paying attention to integration with other services
  7. Microservices • Debug is hard • Work on a service

    always paying attention to integration with other services • Huge network dependency
  8. Microservices • Debug is hard • Work on a service

    always paying attention to integration with other services • Huge network dependency • Orchestration complexity
  9. Microservices • Debug is hard • Work on a service

    always paying attention to integration with other services • Huge network dependency • Orchestration complexity • Service Discovery dependency
  10. –Sam Newman
 Building Microservices “The golden rule: can you make

    a change to a service and deploy it by itself without changing anything else?”
  11. Communication Computer 1 Computer 2 Networking Networking Service A Service

    B Circuit Breaker Service Discovery Circuit Breaker Service Discovery
  12. Communication Computer 1 Computer 2 Networking Networking Service A Service

    B Library Circuit Breaker Service Discovery Library Circuit Breaker Service Discovery
  13. Communication Issues: • The need to change and adapt your

    application for it • Time spend to build integrations with this libs
  14. Communication Issues: • The need to change and adapt your

    application for it • Time spend to build integrations with this libs • It limits the amount of tools that can be used
  15. Communication Issues: • The need to change and adapt your

    application for it • Time spend to build integrations with this libs • It limits the amount of tools that can be used • Hard to maintain compatibility of tools and versions
  16. Communication Tools from Netflix OSS • Netflix Hystrix (circuit breaking

    / bulk heading) • Netflix Zuul (edge router) • Netflix Ribbon (client site service discovery / load balancer)
  17. Communication Tools from Netflix OSS • Netflix Hystrix (circuit breaking

    / bulk heading) • Netflix Zuul (edge router) • Netflix Ribbon (client site service discovery / load balancer) • Netflix Eureka (service discovery registry)
  18. Communication Tools from Netflix OSS • Netflix Hystrix (circuit breaking

    / bulk heading) • Netflix Zuul (edge router) • Netflix Ribbon (client site service discovery / load balancer) • Netflix Eureka (service discovery registry) • Netflix Spectator / Atlas (metrics)
  19. Containers Tool to virtualise at the Operation System level It

    IS NOT a Virtual Machine (Virtual environment - the magic of how was presented at the Docker workshop)
  20. Containers Tool to virtualise at the Operation System level It

    IS NOT a Virtual Machine (Virtual environment - the magic of how was presented at the Docker workshop) Whit VMs we can run Linux over Windows, vice- versa, and others.
  21. Containers Tool to virtualise at the Operation System level It

    IS NOT a Virtual Machine (Virtual environment - the magic of how was presented at the Docker workshop) Whit VMs we can run Linux over Windows, vice- versa, and others. With Containers you only run FreeBSD over FreeBSD, Linux over Linux, Windows over Windows.
  22. Kubernetes Tool to Orchestrate Containers Processes in a cluster of

    machines Deploy of applications can be automated
  23. Kubernetes Tool to Orchestrate Containers Processes in a cluster of

    machines Deploy of applications can be automated Containers can be in any machine of the cluster
  24. Kubernetes Tool to Orchestrate Containers Processes in a cluster of

    machines Deploy of applications can be automated Containers can be in any machine of the cluster Optimizes the use of infrastructure resources
  25. Kubernetes Tool to Orchestrate Containers Processes in a cluster of

    machines Deploy of applications can be automated Containers can be in any machine of the cluster Optimizes the use of infrastructure resources Delivery easily self healing, high availability and scalability to apps and services
  26. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services.
  27. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services. • Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic.
  28. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services. • Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic. • Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection.
  29. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services. • Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic. • Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection. • A pluggable policy layer and configuration API supporting access controls, rate limits and quotas.
  30. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services. • Automatic load balancing for HTTP, gRPC, WebSocket, and TCP traffic. • Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection. • A pluggable policy layer and configuration API supporting access controls, rate limits and quotas. • Automatic metrics, logs, and traces for all traffic within a cluster, including cluster ingress and egress.
  31. Istio Set of tools that together deliveries security, traffic management,

    observability, and other features between services. • Secure service-to-service communication in a cluster with strong identity-based authentication and authorisation.
  32. Envoy Is a sidecar proxy that sits side-by-side with the

    application and proxy it’s network communications.
  33. Pilot Do service discovery for envoy sidecars, traffic management capabilities

    for routing like A/B tests, canary rollouts and resiliency like timeouts, retries, circuit breakers.
  34. Galley It is responsible for insulating the rest of the

    Istio components from the details of obtaining user configuration from the underlying platform (e.g. Kubernetes).