• Nenhum resultado encontrado

Apache Mesos para operar grandes sistemas e (micro)serviços. Diego de Oliveira Março de 2015

N/A
N/A
Protected

Academic year: 2021

Share "Apache Mesos para operar grandes sistemas e (micro)serviços. Diego de Oliveira Março de 2015"

Copied!
24
0
0

Texto

(1)

Apache Mesos para operar grandes sistemas e

(micro)serviços

Diego de Oliveira

(2)

Sobre mim

Diego de Oliveira, desenvolvedor, pai,

professor, viajante, motoqueiro...

(3)

O PagSeguro é uma solução de

intermediação de pagamentos através da

internet e seus leitores de cartão.

Sobre o PagSeguro

ADs/Devs/Qas/Webs/etc ≃ 300

Requisições por dia ≃ 22 milhões

(4)

Spoiler

O servidor está morrendo

...bem vindo novo servidor

docker/docker-squash/docker-slim

(5)
(6)

O que já sabemos

A alocação de recursos on premise tende ao

desperdício, virtualização melhora, mas cobra seu preço em performance.

Com 16 CPUs esse percentual poderia chegar à 1600%, o máximo utilizado em um ano foi 200%

(7)

O que já sabemos

Sistemas monolíticos podem reduzir a performance do time, a confiança na entrega, a capacidade de experimentar, entre outros problemas.

bash$> time mvn install -2TC … ###### a lot of logs real 6m10.058s user 9m29.628s sys 0m29.476s bash$> du -c -h **/target/. ###### a lot of logs 3.5G total

Gráfico de dependências de entidades

(8)

O que já sabemos

Entregas muito grande em sistemas 24x7 podem ser assustadoras.

OpenSSL bugs, tamanho do projeto: 442.895 linhas de código

Correção do Heartbleed

(9)

O que já sabemos

Micros Serviços permite escalabilidade, domínio melhor definido, mas é necessário gerenciá-los.

Estrela da morte

(10)
(11)

Apache Mesos

Program against your datacenter like it’s a single pool

of resources

Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

“Apache Mesos é o n1 automatizado”

(12)

Apache Mesos - Arquitetura

(13)

Apache Mesos - Disponibilidade

Um único pool de servidores, sendo usado para executar várias tasks, melhor

aproveitamento.

Caso um servidor falhe, as tasks são migradas automaticamente para servidores saudáveis.

Visão de implantação/operações

Antes

(14)

Apache Mesos - Frameworks

Existem vários frameworks desenvolvidos, tanto para soluções conhecidas quando projetos de nicho.

(15)

Apache Mesos - Frameworks Marathon/Chronos

A fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules

A cluster-wide init and control system for services in cgroups or Docker containers

Visão de implantação/operações/devs

Descreva a necessidade da sua aplicação em um json, envie ao Marathon para executar um serviço persistente ou

(16)

Apache Mesos - Frameworks Marathon/Chronos

Arquitetura de alta disponibilidade

Sempre tenha mais de uma instância para garantir comportamento ininterrupto

Isolamento via cgroups/docker/lxc

(17)
(18)

bash$> echo ' package main import ( "io" "os" "net/http" )

func hello(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Hello world!")

}

func main() {

port := os.Args[1]

http.HandleFunc("/", hello)

http.ListenAndServe(":" + port, nil) }' > sample.go

bash$> go build sample.go

bash$> curl -sSL https://minimesos.org/install | sh

bash$> export PATH=$PATH:$HOME/.minimesos/bin

bash$> minimesos up --num-agents 6

Apache Mesos - Demo

Instalação do mesos para testes

(19)

bash$> export IP=`ip route get 8.8.8.8 | awk 'NR==1 {print $NF}'` bash$> echo " { \"id\": \"/sample\", \"instances\": 1,

\"cmd\": \"chmod +x sample; ./sample \$PORT0\", \"cpus\": 0.1,

\"mem\": 100, \"disk\": 10,

\"uris\": [ \"http://$IP:9999/sample\" ] }" > sample.json

bash$> python -m SimpleHTTPServer 9999 > /dev/null &

bash$> export MARATHON=http://172.17.0.5:8080/v2/apps

bash$> curl -s -X POST -H 'Content-type: application/json' -d@sample.json $MARATHON

bash$> firefox http://172.17.0.7:8080 > /dev/null &

bash$> firefox http://172.17.0.6:5050 > /dev/null &

bash$> curl -s -X PUT -H 'Content-type: application/json' -d '{ "instances": 2 }' $MARATHON/sample

bash$> minimesos destroy

Apache Mesos - Demo

Descrevendo o deploy

(20)
(21)

Novas aplicações

Nossa estrela da morte

Os novos projetos, jobs, módulos, serviços ou micro serviços estão sendo publicado nesse ambiente.

Melhor uso dos recursos, sem necessidade de spare frio.

(22)

Nível de Maturidade em Nuvem

Sistema

Operação

Entrega

Recurso

Sua base de código é modular; é de fácil manutenção; falhas não se propagam em cascata; há delineamento claro dos domínios; está pouco acoplado;

é fácil ter acesso aos logs; operações não é baba de sistemas; configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações,

implantação e desenvolvimento;

fácil, não precisa de coordenação entre vários times; aprovação fácil, sem burocracia; novos códigos demoram menos de um mês para entrar em produção; é sempre tranquila

demora menos de uma semana para adicionar um novo servidor/serviço; fácil fazer upgrade de hardware; um novo domínio demora menos de um mês; fácil adicionar espaço em disco

(23)

Nível de Maturidade em Nuvem

Avalie os pontos de maturidade e observes os pontos que podem ser melhorados.

(24)

PERGUNTAS?

Referências

Documentos relacionados

Não fez Com duas soluções uma sofrendo redução e a outra oxidação, em um circuito fechado com fio condutor metálico e uma ponte salina é possível produzir uma pilha química

em efeitos superiores, contudo, considerando-se a realização do experimento apenas no Rio Grande do Sul e as particularidades de cada região produtiva, a extrapolação dos

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

A nutrição enteral (NE), segundo o Ministério da Saúde do Brasil, designa todo e qualquer “alimento para fins especiais, com ingestão controlada de nutrientes, na forma isolada

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

Este trabalho tem como objetivo geral avaliar a quantidade de água pluvial que pode ser aproveitada após infiltrar em um pavimento permeável de concreto

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças