SlideShare ist ein Scribd-Unternehmen logo
1 von 69
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/
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)
1T2017: +5 M
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, 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
Archaius
Atlas (Billion metrics per minute)
Governator
Prana
Spinnaker
etc.
Netflix open source stack
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
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
Weblogic
10.1.12.254:4566
DNS
meusservico.com.be/service
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
E agora?
Microserviços + cloud native
Serviço
10.1.12.254:4566
client Eureka
Solicita endpoint
Netflix - EurekaE
Eureka lifecycle - register
client Eureka
Register
Application name
Host
Port
DS-Zone
Dados serviços registrados
Eureka lifecycle - heartbeating
client Eureka
Ping
Application name
Host
Port
DS-Zone
Dados
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
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
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
Netflix - Eureka v2
Executar chamadas
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
Netflix - Feign
Netflix - Feign call
POR MELHOR QUE SEJA A EQUIPE
sh** happens
Hystrix
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
Circuit break pattern
Timeout
Fallback
Metrics
Netflix - Hystrix
circuitBreaker.requestVolumeThreshold
Qtde para abrir o circuito na janela tempo
circuitBreaker.sleepWindowInMilliseconds
Tempo para começar a passar algum request novamente
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
MÉTRICAS…. MUITAS MÉTRICAS
Netflix -
Zuul
Eureka
APP-2
APP-1
APP-2
z
u
u
lribbon
feign
hystrix
Netflix - Zuul
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.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
Netflix - Zuul
ZuulEureka
Client
Serviço A Serviço BServiço A'
AB
FILTER
Netflix - Rx
Netflix oss

Weitere ähnliche Inhalte

Was ist angesagt?

LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020Roberto Alves
 
Serverless Framework - Creating serverless applications
Serverless Framework - Creating serverless applicationsServerless Framework - Creating serverless applications
Serverless Framework - Creating serverless applicationsWallison Marra
 
Pipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudPipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudGabriel Machado
 
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...Renato Groff
 
Docker 1.12 - Swarm Mode
Docker 1.12 - Swarm ModeDocker 1.12 - Swarm Mode
Docker 1.12 - Swarm ModeRafael Gomes
 
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataforma
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataformaWebinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataforma
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataformaWSO2
 
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de RequisiçõesDeveloper Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de RequisiçõesFlávio Pimenta
 

Was ist angesagt? (9)

LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020LocalStack - TDC Porto Alegre 2020
LocalStack - TDC Porto Alegre 2020
 
Serverless Framework - Creating serverless applications
Serverless Framework - Creating serverless applicationsServerless Framework - Creating serverless applications
Serverless Framework - Creating serverless applications
 
Pipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober CloudPipelines de CI/CD com Azure @ Oktober Cloud
Pipelines de CI/CD com Azure @ Oktober Cloud
 
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...
Kubernetes + Azure DevOps: do Pod ao Deployment Automatizado na nuvem - TDC 2...
 
Containers and microservices orchestration
Containers and microservices orchestrationContainers and microservices orchestration
Containers and microservices orchestration
 
Docker 1.12 - Swarm Mode
Docker 1.12 - Swarm ModeDocker 1.12 - Swarm Mode
Docker 1.12 - Swarm Mode
 
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataforma
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataformaWebinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataforma
Webinar de Final de Ano WSO2: Novidades e Atualizações em nossa plataforma
 
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de RequisiçõesDeveloper Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
Developer Lounge - AWS Summit SP 2019 - Processando alta demanda de Requisições
 
12 factor app
12 factor app12 factor app
12 factor app
 

Ähnlich wie Netflix oss

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
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centersLeandro Moreira
 
Escalando primeiros 10 milhões de usuários
Escalando primeiros 10 milhões de usuáriosEscalando primeiros 10 milhões de usuários
Escalando primeiros 10 milhões de usuáriosAmazon Web Services LATAM
 
Ginga - Solisc 2010
Ginga - Solisc 2010Ginga - Solisc 2010
Ginga - Solisc 2010Bruno Ghisi
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
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
 
Utilização de DevOps
Utilização de DevOpsUtilização de DevOps
Utilização de DevOpsCaio Candido
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxMario Bittencourt
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
Introdução ao Windows Azure
Introdução ao Windows AzureIntrodução ao Windows Azure
Introdução ao Windows AzureFernando Correia
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiiMasters
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningFelipe Santos
 

Ähnlich wie Netflix oss (20)

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
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
 
Escalando primeiros 10 milhões de usuários
Escalando primeiros 10 milhões de usuáriosEscalando primeiros 10 milhões de usuários
Escalando primeiros 10 milhões de usuários
 
Ginga - Solisc 2010
Ginga - Solisc 2010Ginga - Solisc 2010
Ginga - Solisc 2010
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
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
 
Utilização de DevOps
Utilização de DevOpsUtilização de DevOps
Utilização de DevOps
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/Linux
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Novidades do .Net 4.0
Novidades do .Net 4.0Novidades do .Net 4.0
Novidades do .Net 4.0
 
The Next Big Language
The Next Big LanguageThe Next Big Language
The Next Big Language
 
Introdução ao Windows Azure
Introdução ao Windows AzureIntrodução ao Windows Azure
Introdução ao Windows Azure
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine Learning
 

Netflix oss