Microservices with Dropwizard, SparkJava, SpringBoot and Vert.x
https://about.me/ricardo.longa | http://goo.gl/awklqD
Quebrando o gelo
O que é Microservices?
Nosso primeiro serviço
Dropwizard (Healthchecks)
Comunicação entre serviços
Feedback para o usuário
SpringBoot (Admin)
SparkJava (Lambdas)
Datas em JSon
Guerra entre equipes
Vert.x (Nanoservices?)
Docker
Continuous Delivery
Documentação das APIs
SQL x NoSQL
Kubernetes / CoreOS / AWS
Monitoramento em tempo real
Já participou de uma guerra?
Já participou de uma guerra?
Têm certeza!?
Têm certeza!?
Ou de uma grande construção?
Ou de uma grande construção?
Conhece a Burj Khalifa?
Conhece a Burj Khalifa?
828m, 160 andares, 49 elevadores
828m, 160 andares, 49 elevadores
2008, Netflix em um único war...
2008, Netflix em um único war...
2010, +100 micro serviços...
2010, +100 micro serviços...
0.7.x suporta Jersey 1.18.1
0.7.x suporta Jersey 1.18.1
Como representar um texto em Json?
{
"nome": "Ricardo Longa"
}
Como representar um inteiro em Json?
{
"nome": "Ricardo Longa"
"idade": 28
}
Como representar um decimal em Json?
{
"nome": "Ricardo Longa"
"idade": 28
"altura": 1.83
}
Como representar uma data em Json?
{
"nome": "Ricardo Longa"
"idade": 28
"altura": 1.83
"nascimento": "21/02/1987 18:00:00"
}
Como representar uma data em Json?
{
"nome": "Ricardo Longa"
"idade": 28
"altura": 1.83
"nascimento": "02/21/1987 18:00:00"
}
Como representar uma data em Json?
{
"nome": "Ricardo Longa"
"idade": 28
"altura": 1.83
"nascimento": 540939600000
}
Como representar uma data em Json?
{
"nome": "Ricardo Longa"
"idade": 28
"altura": 1.83
"nascimento": "Tue, 1 Jul 2003 10:52:37 +0200"
}
ISO 8601
{
"nascimento": "2015-05-14"
"nascimento": "2015-05-14T10:30:00"
"nascimento": "2015-05-14T10:30:00Z"
"nascimento": "2015-05-14T10:30:00-03:00"
}
docker ps (lista containers em execução)
docker ps -a (lista todos os containers)
docker images (lista imagens disponíveis)
docker run (inicia um novo container)
docker rm -f (pára e exclui um container)
docker stop (apenas pára um container)
docker rmi (exclui uma imagem disponível)
docker pull (baixa uma imagem de um repo)
docker push (envia uma imagem para um repo)
docker inspect (verificar infos e envs)
docker logs -f (checar os logs)
(apenas no CoreOS)
(problemas no pull)
PostgreSQL >>> MongoDB