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.

Netflix oss

799 views

Published on

Slide sobre alguns componentes da stack netflix (Eureka, Ribbon, Feign, Hystrix, Zuul)

Published in: Software
  • em qual arquitetura de sistemas distribuidos o NETFLIX OSS se encaixa e o que tem de diferentes das demais?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Netflix oss

  1. 1. About.me Desenvolvedor de software 10 anos Java (JavaEE e Spring), Magic, JS, C, Delphi… (sim, Delphi…) Diferentes tipos de projetos e empresas Sites B2C B2B Atualmente arquiteto de software na Ilegra https://www.linkedin.com/in/crisaltmann/
  2. 2. this.presentation RuntimeServices open netflix Discovery: Eureka Gateway: Zuul Service communication: Ribbon Service client: Feign Service reliability: Hystrix
  3. 3. 98,7 milhões assinantes (02/17) 1T2017: +5 M 42,5 bilhões horas em streaming (2016) Percentual de market share nos EUA: 75% Netflix
  4. 4. Valor estimado empresa: $ 60 bi Receita 1T2017 $ 2.5 B Incluindo DVD: $ 2.63 B Netflix
  5. 5. Uso internet EUA: Netflix: 37.5% Youtube: 17% Média de 45 Gb / mês por usuário Subiram 329.400.000.000 Gb (2015) Netflix
  6. 6. Referência em cloud, microserviços Contribuição importante comunidade open source. Referência em serviços resilientes Em 02/2017, um datacenter da amazon caiu: ~150 k sites afetados Site da amazon - OFF Netflix - ON https://netflix.github.io/ Netflix
  7. 7. Archaius Atlas (Billion metrics per minute) Governator Prana Spinnaker etc. Netflix open source stack
  8. 8. Spring Cloud Netflix (https://cloud.spring.io/spring-cloud-netflix/) Totalmente integrado com a plataforma spring Maioria do código envolve algumas poucas anotações. Você ganha: Spring (boot ou não) Componentes que rodam e suportam todos aqueles números citados A tua demanda supera isso? Netflix open source stack
  9. 9. Netflix open source stack Eureka APP-2 APP-1 APP-2 z u u lribbon feign hystrix
  10. 10. Netflix open source stack Eureka APP-2 APP-1 APP-2 z u u lribbon feign hystrix
  11. 11. Interjeição atribuída a Arquimedes: Encontrei, Descobri. Serviço de discoverability Componente central da plataforma Baseado em REST Eureka
  12. 12. Tradicionalmente Weblogic 10.1.12.254:4566 DNS meusservico.com.be/service
  13. 13. Microserviços + cloud native Serviço 10.1.12.254:4566 Serviço 10.1.12.1:1000 Serviço OUT 10.1.12.254:4566 client
  14. 14. E agora?
  15. 15. Microserviços + cloud native Serviço 10.1.12.254:4566 client Eureka Solicita endpoint
  16. 16. Netflix - EurekaE
  17. 17. Eureka lifecycle - register client Eureka Register Application name Host Port DS-Zone Dados serviços registrados
  18. 18. Eureka lifecycle - heartbeating client Eureka Ping Application name Host Port DS-Zone Dados
  19. 19. Eureka lifecycle - heartbeating fail client Eureka
  20. 20. Eureka lifecycle - rises heartbeating client Eureka Ping Dados
  21. 21. Eureka lifecycle - shutdown gracefully client Eureka Cancel
  22. 22. Netflix - Eureka Server
  23. 23. Netflix - Eureka Server
  24. 24. Netflix - Eureka Client
  25. 25. Netflix - Eureka Client
  26. 26. Netflix - Eureka Client
  27. 27. Netflix - Eureka Server
  28. 28. Configuração server peer exige o conhecimento dos outros servers. Tempo default de heartbeating elevado para dev. Pooling Fetch todos serviços Server peers replicam todo os dados para TODOS os peers. Netflix - Eureka limitações v1
  29. 29. Client se registra informando quais atualizações ele deseja receber Server enviam atualizações para os clients quando ocorrerem Separação entre leitura / escrita. Melhorias no algoritmo replicação Rich dashboard Netflix - Eureka v2
  30. 30. Netflix - Eureka v2
  31. 31. Executar chamadas
  32. 32. Feign + Ribbon Eureka APP-2 APP-1 APP-2 z u u lribbon feign hystrix
  33. 33. Lib para comunicação entre processos. Client Load Balancer. Tolerância a falhas Múltiplos protocolos (HTTP, TCP, UDP) Netflix - Ribbon
  34. 34. Netflix - Ribbon APP-1 APP-2 APP-2 Eureka
  35. 35. Netflix - Ribbon APP-1 APP-2 APP-2 Eureka
  36. 36. Netflix - Ribbon APP-1 APP-2 APP-2 Eureka
  37. 37. RoundRobinRule AvailabilityFilteringRule WeightedResponseTimeRule ZoneAvoidanceRule Netflix - Ribbon
  38. 38. Netflix - App-2 exemplo
  39. 39. Netflix - Eureka Client Load Balancer application-name
  40. 40. Netflix - Ribbon round robin
  41. 41. Netflix - Ribbon round robin
  42. 42. Netflix - Ribbon Rule
  43. 43. REST Client Integrate via REST Contract Utiliza ribbon @EnableFeignClients Netflix - Feign
  44. 44. Netflix - Feign
  45. 45. Netflix - Feign call
  46. 46. POR MELHOR QUE SEJA A EQUIPE
  47. 47. sh** happens
  48. 48. Hystrix Eureka APP-2 APP-1 APP-2 z u u lribbon feign hystrix
  49. 49. Circuit break pattern Timeout Fallback Metrics
  50. 50. Netflix - Hystrix
  51. 51. circuitBreaker.requestVolumeThreshold Qtde para abrir o circuito na janela tempo circuitBreaker.sleepWindowInMilliseconds Tempo para começar a passar algum request novamente
  52. 52. Netflix - Hystrix Command
  53. 53. Turbine stream Dashboard com metricas Diversos indicadores: Status circuito Latência Request rate Percentual erro últimos 10 requests Netflix - Hystrix stream
  54. 54. Netflix - Hystrix
  55. 55. Netflix - @EnableHystrixDashboard
  56. 56. Time amadurecendo o uso Dificuldade negócio entender o "fallback" Problemas com erros 4xx Dashboard pouco usual Netflix - Hystrix stream
  57. 57. MÉTRICAS…. MUITAS MÉTRICAS
  58. 58. Netflix -
  59. 59. Zuul Eureka APP-2 APP-1 APP-2 z u u lribbon feign hystrix
  60. 60. Netflix - Zuul
  61. 61. Gateway Dynamic routing Integração eureka Filters Canary AB Netflix - Zuul
  62. 62. Netflix - Zuul ZuulEureka Client Serviço A Serviço B
  63. 63. @EnableZuulProxy Config 1: zuul.routes.pessoa.path=/pessoa/** zuul.routes.pessoa.serviceId: pessoa-service Config 2: zuul.routes.pessoa.path=/pessoa/** zuul.routes.pessoa.url: https://servico-pessoa.com.br Netflix - Zuul
  64. 64. Netflix - Zuul ZuulEureka Client Serviço A Serviço BServiço A' AB FILTER
  65. 65. Netflix - Rx

×