SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
About.me
● Desenvolvedor de software 10 anos
● Diferentes tipos de projetos e empresas
○ Sites
○ B2C
○ B2B
● Atualmente arquiteto de software na Ilegra
● https://www.linkedin.com/in/crisaltmann/
this.presentation
RuntimeServices open netflix
● Discovery: Eureka
● Gateway: Zuul
● Service communication: Ribbon
● Service client: Feign
● Service reliability: Hystrix
● 98,7 milhões assinantes (02/17)
● 42,5 bilhões horas em streaming
(2016)
● Percentual de market share nos
EUA: 75%
Netflix
● Valor estimado empresa: $ 60 bi
● Receita 1T2017 $ 2.5 B
● Incluindo DVD: $ 2.63 B
Netflix
● 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
● Referência em cloud, micro serviç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
● Spring Cloud Netflix (https://cloud.spring.io/spring-cloud-netflix/)
● Totalmente integrado com a plataforma spring
● Simplicidade código
● Você ganha:
○ Spring
○ Componentes que rodam e suportam a demanda da netflix
Netflix open source stack
Netflix open source stack
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
Netflix open source stack
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
● Interjeição atribuída a Arquimedes: Encontrei, Descobri.
● Serviço de discoverability
● Componente central da plataforma
● Baseado em REST
Eureka
Tradicionalmente
VM
10.1.12.254:4566
DNS
meusservico.com.br/service
Microserviços + cloud native
Serviço
10.1.12.254:4566
Serviço NEW
10.1.12.1:1000 (mudou)
Serviço OUT
10.1.12.254:4566
Client
X
Microserviços + cloud native
Serviço
10.1.12.254:4566
Client Eureka
1 - Solicita serviços
endpoint
Eureka lifecycle - register
Client Eureka
Register
Application name
Host
Port
DS-Zone
Dados serviços registrados
Eureka lifecycle - heartbeating
Client Eureka
Ping (heartbeating)
App1: 12.5.2.10:9008
App2: [12.5.2.10:9078,
12.5.2.10:9068]
DadosPong(heartbeating)
Eureka lifecycle - heartbeating fail
Client Eureka
Eureka lifecycle - rises heartbeating
Client Eureka
Ping
Dados
Eureka lifecycle - shutdown gracefully
Client Eureka
Cancel
Netflix - Eureka Server
Netflix - Eureka Server
Netflix - Eureka Client
Netflix - Eureka Client
Netflix - Eureka Client
Netflix - Eureka Server
● Não há protocolo join cluster.
● 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
Feign + Ribbon
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
● Lib para comunicação entre processos.
● Client Load Balancer.
● Tolerância a falhas
● Múltiplos protocolos (HTTP, TCP, UDP)
Netflix - Ribbon
Netflix - Ribbon
APP-1
APP-2
APP-2
Eureka
Netflix - Ribbon
APP-1
APP-2
APP-2
Eureka
Netflix - Ribbon
APP-1
APP-2
APP-2
Eureka
● RoundRobinRule
● AvailabilityFilteringRule
● WeightedResponseTimeRule
● ZoneAvoidanceRule
Netflix - Ribbon
Netflix - App-2 exemplo
Netflix - Eureka Client Load Balancer
application-name
Netflix - Ribbon round robin
Netflix - Ribbon round robin
Netflix - Ribbon Rule
● REST Client
● Integrate via REST Contract
● Utiliza ribbon
● @EnableFeignClients
Netflix - Feign
● Uma interface com as configurações do contrato do serviço REST
Netflix - Feign
Netflix - Feign
● Injeta no código a interface
● Runtime existirá um @Bean para este RestClient (@EnableFeignClients)
● Chamada java simples
Netflix - Feign
Netflix - Feign call
Hystrix
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
● Circuit break pattern
● Timeout
● Fallback
● Metrics
Netflix - Hystrix
Netflix - Hystrix Command
● Turbine stream
● Dashboard com metricas
● Diversos indicadores:
○ Status circuito
○ Latência
○ Request rate
○ Percentual erro últimos 10 requests
Netflix - Hystrix stream
Netflix - Hystrix
Netflix - @EnableHystrixDashboard
● Time amadurecendo o uso
● Dificuldade negócio entender o "fallback"
● Problemas com erros 4xx
● Dashboard pouco usual
Netflix - Hystrix stream
Zuul
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
● Gateway
● Dynamic routing
● Integração eureka
● Filters
● Canary
● AB
Netflix - Zuul
Netflix - Zuul
ZuulEureka
Client
Serviço A Serviço B
@EnableZuulProxy
● Config 1:
zuul.routes.catalogo.path=/catalogo/**
zuul.routes.catalogo.serviceId: catalogo-service
● Config 2:
zuul.routes.catalogo.path=/catalogo-custom/**
zuul.routes.catalogo.url: https://dns-do-catalogo.com.br
Netflix - Zuul
Netflix - Zuul
ZuulEureka
Client
Serviço A Serviço BServiço A'
AB
FILTER
Obrigado.
Dúvidas?

Mais conteúdo relacionado

Semelhante a Microservices com Netflix OSS

API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIsRafael de Paula Souza
 
TDC 2010 Florianópolis - Ginga
TDC 2010 Florianópolis - GingaTDC 2010 Florianópolis - Ginga
TDC 2010 Florianópolis - GingaBruno Ghisi
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Ricardo Katz
 
Chef, Nginx e Capistrano: Como usar!
Chef, Nginx e Capistrano: Como usar!Chef, Nginx e Capistrano: Como usar!
Chef, Nginx e Capistrano: Como usar!Felipe Navas
 
Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Bruno Ghisi
 
Apresentação tdc como aproveitar os novos recursos do java ee 7
Apresentação tdc   como aproveitar os novos recursos do java ee 7Apresentação tdc   como aproveitar os novos recursos do java ee 7
Apresentação tdc como aproveitar os novos recursos do java ee 7Denis Silva
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webernaniaz
 
03 arquitetura-cliente-servidor
03   arquitetura-cliente-servidor03   arquitetura-cliente-servidor
03 arquitetura-cliente-servidorConcurseira Le
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data tdc-globalcode
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningFelipe Santos
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Ricardo Katz
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
 
gRPC - uma breve introdução.pdf
gRPC - uma breve introdução.pdfgRPC - uma breve introdução.pdf
gRPC - uma breve introdução.pdfMatheus Donizete
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 

Semelhante a Microservices com Netflix OSS (20)

API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIs
 
Como funciona a Netflix?
Como funciona a Netflix?Como funciona a Netflix?
Como funciona a Netflix?
 
TDC 2010 Florianópolis - Ginga
TDC 2010 Florianópolis - GingaTDC 2010 Florianópolis - Ginga
TDC 2010 Florianópolis - Ginga
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3
 
Chef, Nginx e Capistrano: Como usar!
Chef, Nginx e Capistrano: Como usar!Chef, Nginx e Capistrano: Como usar!
Chef, Nginx e Capistrano: Como usar!
 
Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009
 
Cirrus
CirrusCirrus
Cirrus
 
Apresentação tdc como aproveitar os novos recursos do java ee 7
Apresentação tdc   como aproveitar os novos recursos do java ee 7Apresentação tdc   como aproveitar os novos recursos do java ee 7
Apresentação tdc como aproveitar os novos recursos do java ee 7
 
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação webNGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
 
Linuxtips - a saideira
Linuxtips - a saideiraLinuxtips - a saideira
Linuxtips - a saideira
 
03 arquitetura-cliente-servidor
03   arquitetura-cliente-servidor03   arquitetura-cliente-servidor
03 arquitetura-cliente-servidor
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine Learning
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
 
gRPC - uma breve introdução.pdf
gRPC - uma breve introdução.pdfgRPC - uma breve introdução.pdf
gRPC - uma breve introdução.pdf
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 

Microservices com Netflix OSS