microservices com asp.net 5

Post on 09-Aug-2015

261 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

UMA VISÃO DO FUTURO

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

APLICAÇÕES MONOLÍTICAS

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

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

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

ARQUITETURA DE MICROSERVICES

DEFINIÇÃO DE MICROSERVICES

Modelo arquitetural definido por decomposição de

uma aplicação em componentes gerenciáveis e

instaláveis independentemente.

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.

ARQUITETURA DOS MICROSERVICES

ARQUITETURA DOS MICROSERVICES

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

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

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

ARQUITETURA DOS MICROSERVICES

PILHA TECNOLÓGICA INDEPENDENTE

Microservice #1 Microservice #2

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

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

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

CASES DE SUCESSO MICROSERVICES

MICROSERVICES COM DOCKER

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

REFERÊNCIA

BUILD MICROSERVICESSam Newman

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

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

OBRIGADO DÚVIDAS?

top related