(micro)serviços apache mesos para operar grandes sistemas e · configurações de acls e acessos...
TRANSCRIPT
![Page 1: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/1.jpg)
Apache Mesos para operar grandes sistemas e (micro)serviços
Diego de OliveiraMarço de 2015
![Page 2: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/2.jpg)
Sobre mim
Diego de Oliveira, desenvolvedor, pai, professor, viajante, motoqueiro...
![Page 3: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/3.jpg)
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 ≃ 300Requisições por dia ≃ 22 milhões
Codebase ≃ 1.5MLOC
![Page 4: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/4.jpg)
Spoiler
O servidor está morrendo
...bem vindo novo servidor
docker/docker-squash/docker-slimunikernel(ClickOS, Osv, MirageOS, etc)
![Page 5: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/5.jpg)
DE VOLTA À LOUSA
![Page 6: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/6.jpg)
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%
![Page 7: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/7.jpg)
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 logsreal 6m10.058suser 9m29.628ssys 0m29.476sbash$> du -c -h **/target/.###### a lot of logs3.5G total
Gráfico de dependências de entidades
Tempo de build e espaço em disco
![Page 8: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/8.jpg)
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
Bug na implentação de SSL do OSX
![Page 9: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/9.jpg)
O que já sabemos
Micros Serviços permite escalabilidade, domínio melhor definido, mas é necessário gerenciá-los.
Estrela da morte
Netflix Twitter
![Page 10: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/10.jpg)
ONDE CHEGAMOS
![Page 11: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/11.jpg)
Apache Mesos
Program against your datacenter like it’s a single pool of resourcesApache 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”Acácio
![Page 12: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/12.jpg)
Apache Mesos - Arquitetura
Visão de implantação/operações
![Page 13: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/13.jpg)
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
Depois
![Page 14: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/14.jpg)
Apache Mesos - Frameworks
Existem vários frameworks desenvolvidos, tanto para soluções conhecidas quando projetos de
nicho.
Visão de implantação/operações
![Page 15: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/15.jpg)
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
ao chronos caso seja um job agendado.
![Page 16: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/16.jpg)
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
![Page 17: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/17.jpg)
DEMO
![Page 18: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/18.jpg)
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.gobash$> go build sample.go
bash$> curl -sSL https://minimesos.org/install | shbash$> export PATH=$PATH:$HOME/.minimesos/binbash$> minimesos up --num-agents 6
Apache Mesos - Demo
Instalação do mesos para testes
Uma aplicação para testes
![Page 19: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/19.jpg)
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/appsbash$> curl -s -X POST -H 'Content-type: application/json' [email protected] $MARATHONbash$> 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
Executando e escalando a aplicação
![Page 20: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/20.jpg)
RESULTADOS
![Page 21: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/21.jpg)
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.
![Page 22: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/22.jpg)
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
![Page 23: (micro)serviços Apache Mesos para operar grandes sistemas e · configurações de ACLs e acessos não demoram mais de uma semana; há troca de experiências entre Operações, implantação](https://reader033.vdocuments.pub/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d4/html5/thumbnails/23.jpg)
Nível de Maturidade em Nuvem
Avalie os pontos de maturidade e observes os pontos que podem ser melhorados.
Exemplo de nível de maturidade