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.

Avatar for Wellington F. Silva

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