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

Service Mesh with Istio and Kubernetes (Interco...

Service Mesh with Istio and Kubernetes (Intercon 2018)

Palestra apresentada dia 6 de outubro de 2018 no iMasters Intercon 2018. Abordamos o histórico de aplicações indo de monólito a micro-serviços, a utilização do Docker para rodar aplicações conteinerizadas e as suas vantagens, abordamos a utilização de Kubernetes para orquestrar aplicações conteinerizadas e mostramos algumas das funcionalidades disponíveis do Istio com direito a live demo disponível na playlist https://www.youtube.com/playlist?list=PLDfOn5butDJfN1gD848Hmydz-Jf7vgxDF essa playlist inclui a criação do cluster kubernetes, o que leva mais tempo e por isso não foi abordado na palestra.

Wellington F. Silva

October 06, 2018
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
  2. 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)
  3. Monólito (the bad) • Aumento do sistema, mais pessoas para

    mantê-lo (leva a divisão natural de equipes)
  4. 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”
  5. 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
  6. –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.”
  7. –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.”
  8. 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
  9. 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
  10. 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
  11. 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
  12. Micro-serviços (the bad) • Debug, IDEs vão no nível do

    serviço • Complexidade de trabalhar sempre pensando no distribuído
  13. 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
  14. 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
  15. 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)
  16. 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
  17. –Nginx “A service mesh is a configurable infrastructure layer for

    a microservices application. It makes communication between service instances flexible, reliable, and fast”
  18. 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”
  19. Docker • Não é VM, é processo • Desacopla a

    aplicação da máquina • Empacota as dependências da aplicação
  20. 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
  21. Kubernetes • Automatiza implantações / atualizações de aplicações • Orquestra

    containers em múltiplas máquinas • Otimiza custos de infraestrutura
  22. 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.
  23. Istio • Load balancing para HTTP, gRPC, WebSocket, e TCP

    • Controle fino de rotas, retries, failover, injeção de falhas
  24. 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
  25. 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
  26. Istio Resumindo • Descoberta de serviços • Load Balancing •

    Controle de tráfego avançado • Segurança • Métricas • Rastreamento