microservices com asp.net 5

25
UMA VISÃO DO FUTURO Microservices com ASP.NET 5

Upload: waldyr-felix

Post on 09-Aug-2015

261 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Microservices com ASP.NET 5

UMA VISÃO DO FUTURO

Microservices com ASP.NET 5

Page 2: Microservices com ASP.NET 5

WALDYR FELIX

Arquiteto Líder no Time de Operações Críticas & Consultoria da FCamara

Microsoft MVP de ASP.NET desde 2012

Fundador do Grupo ASP.NET BRASIL

Blog: waldyrfelix.net

Twitter/LinkedIn/Facebook: waldyrfelix

Page 3: Microservices com ASP.NET 5

APLICAÇÕES MONOLÍTICAS

Page 4: Microservices com ASP.NET 5

APLICAÇÕES MONOLÍTICAS

1 esquema de build

1 esquema de deployment

1 única arquitetura

1 única pilha tecnológica

Vantagens

1. Simples de desenvolver

2. Simples de escalar horizontalmente

3. Fácil de padronizar

4. Fácil de replicar

Page 5: Microservices com ASP.NET 5

APLICAÇÕES MONOLÍTICAS

Desvantagens

1. Difícil de mudar, por alto impacto

2. Difícil adoção de novas tecnologias

3. Com o tempo fica complicado de manter

4. Refatorar pode levar horas

5. Escalabilidade limitada

6. Geralmente foge do controle

7. Rapidamente torna-se um gigante

Page 6: Microservices com ASP.NET 5

APLICAÇÕES MONOLÍTICAS

Casos Reais

1. Método com 1890 linhas

2. Classes com mais de 3 mil linhas

3. Manutenability Index = 0

4. Query SQL com 1780 linhas

Page 7: Microservices com ASP.NET 5

ARQUITETURA DE MICROSERVICES

Page 8: Microservices com ASP.NET 5

DEFINIÇÃO DE MICROSERVICES

Modelo arquitetural definido por decomposição de

uma aplicação em componentes gerenciáveis e

instaláveis independentemente.

Page 9: Microservices com ASP.NET 5

DEFINIÇÃO DE MICROSERVICES

A decomposição deve ser feita de forma vertical;

Instalação independente, significa que não deve haver estado compartilhado

entre serviços;

A comunicação deve ser feita entre processos via HTTP/REST;

O termo “micro” refere-se ao tamanho dos componentes.

Page 10: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

Page 11: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

Page 12: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

Filosofia Unix de aplicações

“Faça apenas uma coisa e faça bem”

Cada Microservice deve representar um recurso da aplicação

Por exemplo: Produto, Cliente, Carrinho, Pedido, etc.

Deve possuir sua própria forma de gestão de dados

Page 13: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

DEPLOYMENT

Chave para a construção dos Microservices

Habilita flexibilidade de tecnologia, escalabilidade

Deve ser tão fácil quanto apertar um botão

Evolução independente do código e features

Page 14: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

UMA BASE DE CÓDIGO

Fácil de ser mantido pelos desenvolvedores

Refatoração, merge, branch, build e testes

tornam-se mais rápidos

Sem forte acoplamento ou dependência circular

Page 15: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

PILHA TECNOLÓGICA INDEPENDENTE

Microservice #1 Microservice #2

Page 16: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

COMUNICAÇÃO

HTTP/HTTPS – Protocolo base de comunicação

REST – Interfaces de exposição de recursos e

operações baseadas nos métodos HTTP

JSON – Representação e serialização de dados

Page 17: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

Baseado em Padrões

Natural Web Architecture

Fácil de Escalar

Fácil e Rápido de Manter

Gestão de Código Independente

Gestão de Dados Independente

Fácil Fazer Deployment

Page 18: Microservices com ASP.NET 5

ARQUITETURA DOS MICROSERVICES

Comunicação Entre Serviços

Integração de Base de Dados

Difícil padronizar

Precisa de Infraestrutura Preparada

Precisa de Mais Automação

Precisa de Mais Monitoramento

Difícil Controle de Evolução

Page 19: Microservices com ASP.NET 5

CASES DE SUCESSO MICROSERVICES

Page 20: Microservices com ASP.NET 5

MICROSERVICES COM DOCKER

Page 21: Microservices com ASP.NET 5

DEMONSTRAÇÃO DOCKER + ASP.NET 5

1. docker pull microsoft/aspnet

2. docker images

3. git clone https://github.com/waldyrfelix/MicroservicesDemo.git

4. Dockerfile

5. docker build -t aspnetbr/produto .

6. docker images

7. docker run -it -p 80:5000 aspnetbr/produto

Page 22: Microservices com ASP.NET 5

REFERÊNCIA

BUILD MICROSERVICESSam Newman

Page 23: Microservices com ASP.NET 5

FUTURO DOS MICROSERVICES

Microsoft anunciou o Windows Nano Server para hosting de aplicações leves

Microsoft anunciou parceria com o Docker

Microsoft anunciou Windows 10 para IoT

Microsoft anunciou Windows Server Container

Page 24: Microservices com ASP.NET 5

REFERÊNCIAShttp://martinfowler.com/articles/microservices.html

http://azure.microsoft.com/blog/2014/10/15/new-windows-server-containers-and-azure-support-for-docker/

http://martinfowler.com/bliki/MicroservicePrerequisites.html

https://sudo.hailoapp.com/web/2014/12/08/webapps-as-microservices/

http://www.infoq.com/articles/microservices-intro

http://azure.microsoft.com/blog/tag/docker/

http://www.infoq.com/minibooks/emag-microservices

http://www.amazon.com/gp/product/1491950358

http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html

https://msdn.microsoft.com/en-us/virtualization/windowscontainers.aspx

https://www.docker.com/

https://registry.hub.docker.com/u/microsoft/aspnet/

https://github.com/waldyrfelix/MicroservicesDemo

https://circleci.com/docs/docker

http://blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker.aspx

Page 25: Microservices com ASP.NET 5

OBRIGADO DÚVIDAS?