Escalabilidade de Ops para microservices (Pedro Azevedo)

Post on 15-Apr-2017

104 views 1 download

Transcript of Escalabilidade de Ops para microservices (Pedro Azevedo)

Ajudamos empresas a criar produtos digitais de sucesso

EscalabilidadeVisão deturpada...

na visão de um Ops.

Pedro Azevedo

–Trabalha na Concrete Solutions.–Formado em Redes de Computadores.–Atua há 8 anos como SysAdmin e Infra.

Quem me conhece:–Não gosto de pancadaria nas talks.–Não usa regularmente essas roupas.–Gosta de cubos mágicos e café.

Agenda

1.Escalabilidade2.Hot Topics3.Aplicações 4.Containers5.Balanceamento de Carga6.Soluções

Hands-on

Todos lembram de Ops no deploy!

Escalabilidade

“Capacidade se adequar a uma crescente demanda de trabalho, ou de ser elástico suficiente para acomodar essa demanda.”

Lembram da lei de Amdhal?

Escalabilidade

–Horizontal•Aumento no número de nós dentro da arquitetura.

–Vertical•Aumento da capacidade de um nó ou mais nós específicos .

Hot Topics

–Microservices•Quebra das funcionalidades em componentes específicos.

–NodeJS•Fácil manipulação, trabalho assícrono...

–Containers•Certo “isolamento”, melhor separação dos recursos disponíveis.

Quem usa?

Qual melhor forma de escalar?

No que isso implica?

Escalabilidade proxy-based

–Nginx–HAProxy–Apache–ELB (Amazon AWS) Load Balancer

Server Server

Isso é horizontal!

Escalabilidade application level

–PM2–Forever–StrongLoop

Server

Isso é vertical né?!

Server

Escalabilidade em micro-service

Load Balancer

Server1 (/route1/) Server2 (/route2/)

E isso??

Load Balancer

Server1 (/route1/) Server2 (/route2/)

Load Balancer

O que você acha que é escalabilidade?

Se eu sou Ops - Eu tenho que deployar!

- Inúmeras ferramentas para deploy.- Depende da arquitetura escolhida.- Depende do fluxo de desenvolvimento implementado. - Depende dos rumos do projeto.

Vamos para o hands-on!

https://github.com/cs-pedro-azevedo/node-project-talk

App em NodeJS

–Eu sou borracheiro de software.–Então notem a qualidade do código.

App em NodeJS

Container

–Separação dos componentes de forma mais visível.–Um certo “isolamento”.–Tratamento distinto por entidade.–Controle de recurso em menores porções,.

Load Balancer

–Distribuição dos requests para cada nó (proxy).–Diferentes técnicas de escalonamento.

O que eu acho que é escalabilidade?

Possíveis Soluções

–Time de Ops mais próximo do planejamento.–Teste - Análise de Performance.–Técnicas aplicadas ao seu contexto, não é geral.

– Adicionar layers dentro de uma arquitetura talvez não melhore sua vida.

www.concretesolutions.com.brblog.concretesolutions.com.br

Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030

São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449