Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva

85 views

Published on

Wellington Figueira da Silva - Sysadmin de Códigos, Easy

Com a popularidade dos contêineres ficou mais fácil criar microserviços e mais ágil construir aplicações distribuídas, porém a gerência desses serviços fica muito mais complicada.
Mostraremos a ferramenta chamada Istio que nos ajuda com service discovery, com a distribuição de carga, com as rotas, com a detecção e tratamento de falhas, com controle de acesso entre aplicações dentre muitas outras funcionalidades disponíveis.

Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon

Published in: Software
  • Be the first to comment

  • Be the first to like this

Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva

  1. 1. Service Mesh com Istio e Kubernetes Intercon 2018
  2. 2. 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
  3. 3. Agenda • Monólito vs Micro-serviços • Service Mesh • Docker • Kubernetes • Istio
  4. 4. Monólito vs 
 Micro-serviços
  5. 5. Monólito (the good) • http://martinfowler.com/bliki/ MonolithFirst.html
  6. 6. Monólito (the good) • http://martinfowler.com/bliki/ MonolithFirst.html • Começa rápido
  7. 7. Monólito (the good) • http://martinfowler.com/bliki/ MonolithFirst.html • Começa rápido • Baixa complexidade entre desenvolvimento e a entrega
  8. 8. Monólito (the good) • http://martinfowler.com/bliki/ MonolithFirst.html • Começa rápido • Baixa complexidade entre desenvolvimento e a entrega • Baixo custo inicial (1 máquina para todos serviços assim como ambiente de desenvolvimento)
  9. 9. Monólito (the bad) • Aumento do sistema, mais pessoas para mantê-lo (leva a divisão natural de equipes)
  10. 10. Monólito (the bad) • Aumento do sistema, mais pessoas para mantê-lo (leva a divisão natural de equipes) • The Mythical Man-Month (Frederick Brooks): "Adding manpower to a late software project makes it later”
  11. 11. Monólito (the bad) • Aumento do sistema, mais pessoas para mantê-lo (leva a divisão natural de equipes) • The Mythical Man-Month (Frederick Brooks): "Adding manpower to a late software project makes it later” • Deploy para uma pequena feature pode quebrar o sistema inteiro
  12. 12. –Wikipedia “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.”
  13. 13. –Tradução livre “Micro-serviço é uma técnica de desenvolvimento de software, uma variação do service-oriented architecture (SOA) estilo arquitetural que estrutura uma aplicação como uma coleção de serviços de baixo acoplamento.”
  14. 14. Micro-serviços (the good) • "A regra de ouro: Você consegue alterar e publicar um serviço por si só sem alterar nada mais?" Sam Newman
  15. 15. Micro-serviços (the good) • "A regra de ouro: Você consegue alterar e publicar um serviço por si só sem alterar nada mais?" Sam Newman • Uma esteira de entrega para cada serviço
  16. 16. Micro-serviços (the good) • "A regra de ouro: Você consegue alterar e publicar um serviço por si só sem alterar nada mais?" Sam Newman • Uma esteira de entrega para cada serviço • Baixo acoplamento
  17. 17. Micro-serviços (the good) • "A regra de ouro: Você consegue alterar e publicar um serviço por si só sem alterar nada mais?" Sam Newman • Uma esteira de entrega para cada serviço • Baixo acoplamento • Independência e autonomia
  18. 18. Micro-serviços (the bad) • Debug, IDEs vão no nível do serviço
  19. 19. Micro-serviços (the bad) • Debug, IDEs vão no nível do serviço • Complexidade de trabalhar sempre pensando no distribuído
  20. 20. Micro-serviços (the bad) • Debug, IDEs vão no nível do serviço • Complexidade de trabalhar sempre pensando no distribuído • Alta dependência de rede
  21. 21. Micro-serviços (the bad) • Debug, IDEs vão no nível do serviço • Complexidade de trabalhar sempre pensando no distribuído • Alta dependência de rede • Difícil controle de rotas e dependência entre serviços
  22. 22. Micro-serviços Ferramentas 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)
  23. 23. Micro-serviços
  24. 24. Problemas • Necessário mudança nas aplicações • Tempo para construir as integrações com as libs • Limita as ferramentas que podem ser utilizadas na sua aplicação • Difícil manter compatibilidade
  25. 25. Service Mesh
  26. 26. –Nginx “A service mesh is a configurable infrastructure layer for a microservices application. It makes communication between service instances flexible, reliable, and fast”
  27. 27. Tradução Livre “Service mesh é uma camada de infraestrutura para aplicações de micro- serviços. Ela torna a comunicação entre instâncias de serviços flexível, confiável, e rápida”
  28. 28. Service Mesh
  29. 29. Como resolver esses problemas?
  30. 30. Docker
  31. 31. “Ferramenta para virtualização no nível do Sistema Operacional.”
  32. 32. –Wellington F. Silva “Ferramenta para virtualização no nível do Sistema Operacional.”
  33. 33. Docker • Não é VM, é processo
  34. 34. Docker • Não é VM, é processo • Desacopla a aplicação da máquina
  35. 35. Docker • Não é VM, é processo • Desacopla a aplicação da máquina • Empacota as dependências da aplicação
  36. 36. Docker • Não é VM, é processo • Desacopla a aplicação da máquina • Empacota as dependências da aplicação • Tempo de boot muito rápido
  37. 37. Demo
  38. 38. Kubernetes
  39. 39. Ferramenta para orquestração de contêineres
  40. 40. Ferramenta para orquestração de contêineres processos
  41. 41. Kubernetes • Automatiza implantações / atualizações de aplicações
  42. 42. Kubernetes • Automatiza implantações / atualizações de aplicações • Orquestra containers em múltiplas máquinas
  43. 43. Kubernetes • Automatiza implantações / atualizações de aplicações • Orquestra containers em múltiplas máquinas • Otimiza custos de infraestrutura
  44. 44. Kubernetes • Automatiza implantações / atualizações de aplicações • Orquestra containers em múltiplas máquinas • Otimiza custos de infraestrutura • Entrega self healing, high availability e auto scale para suas aplicações.
  45. 45. Demo
  46. 46. Istio
  47. 47. Istio • Load balancing para HTTP, gRPC, WebSocket, e TCP
  48. 48. Istio • Load balancing para HTTP, gRPC, WebSocket, e TCP • Controle fino de rotas, retries, failover, injeção de falhas
  49. 49. Istio • Load balancing para HTTP, gRPC, WebSocket, e TCP • Controle fino de rotas, retries, failover, injeção de falhas • API de configuração que suporta controles de acesso, limites de request e quotas
  50. 50. Istio • Load balancing para HTTP, gRPC, WebSocket, e TCP • Controle fino de rotas, retries, failover, injeção de falhas • API de configuração que suporta controles de acesso, limites de request e quotas • Métricas, logs e traces para todo tráfego dentro do cluster, incluindo ingress e egress
  51. 51. Istio Resumindo • Descoberta de serviços • Load Balancing • Controle de tráfego avançado • Segurança • Métricas • Rastreamento
  52. 52. Sidecar Proxy
 (pattern utilizado no Istio)
  53. 53. Sidecar Proxy
  54. 54. Componentes
  55. 55. Control Plane
  56. 56. Mixer
  57. 57. Pilot
  58. 58. Envoy
  59. 59. Citadel
  60. 60. Demo
  61. 61. Valeu
 =) Slides em
 https://speakerdeck.com/wsilva/ *

×