A apresentação discute a transição de uma arquitetura monolítica para orientada a serviços, definindo os modelos, desafios de escalabilidade da primeira e benefícios da segunda em termos de deploy independente e foco no desenvolvimento de funcionalidades.
1. Copyright 2015 Google Inc
TechTalk
Arquitetura monolítica
à orientação a serviços
Ryan Padilha (ryan.padilha@gmail.com)
Apresentação técnica arquitetura orientada a serviços
2. Copyright 2015 Google Inc
Simplesmente apaixonado por tecnologia
Fundador e Instrutor do Coding4Fun Cursos Online
http://br.linkedin.com/in/ryanpadilha
- Movido a desafios!
- Graduado em sistema de informação.
- Especialista em integração de aplicações.
- Autodidata, perseverante, rápido aprendizado e adaptação.
- "Inspirar a transformação de conhecimento em software funcional"
Ryan Padilha
3. Copyright 2015 Google Inc
Agenda
Aplicação monolítica
Desenho de solução
1
2
Arquitetura orientada a serviços3
• Descritivo
• Definição de modelos de aplicação monolítica e prática de deploy.
• Os desafios da escalabilidade e alocação de recursos em regras de negócios.
• O conceito de arquitetura orientada a serviços e componentização.
4. Copyright 2015 Google Inc
Aplicação monolítica
• https://martinfowler.com/articles/microservices.html
5. Copyright 2015 Google Inc
Aplicação monolítica
• Modelo:
• Simples de desenvolver
• Testar e realizar deploy
• Aumento na complexidade do negócio
• Custos desnecessários ao escalar - clonagem
• Efeito colateral:
• Re-deploy da aplicação inteira
• Tempo de uptime afetado
• Ambiente de desenvolvimento complexo
6. Copyright 2015 Google Inc
Escalabilidade
• The Scale Cube - http://microservices.io/articles/scalecube.html
7. Copyright 2015 Google Inc
Desenho de solução
• Modelo:
• Conjunto de pequenos serviços
• Foco em desenvolvimento de funcionalidades
• Tecnologias heterogêneas e poliglotas
• Componentização e reuso de regras de negócios
• Deploy independente
• Escalabilidade apenas em gargalos da aplicação
9. Copyright 2015 Google Inc
Desenho de solução
• Definição:
• Funcionalidades co-rrelacionadas agrupadas
• Baixo acoplamento e alta coesão
• Estudar e delimitar o escopo do serviço
• Modelagem orientada a funcionalidade
• Definição de blocos em módulos
• Chamada a API remotas
• API Gateway Pattern - Otimização e agregação
• Síncrono: request/response
• Assíncrono: request/callback
10. Copyright 2015 Google Inc
Desenho de solução
• REST:
• Mecanismo síncrono
• Desacoplamento de interface e modelo de dados
• Semântica HTTP
• Mensageria:
• Mecanismo assíncrono (eventos)
• Orientado a coreografia e baixo acoplamento
• Publish/Subscribe com Message Broker
12. Copyright 2015 Google Inc
Arquitetura SOA
• Princípios de serviços:
1. São reutilizáveis
2. Compartilham um contrato formal
3. Possuem um baixo acoplamento
4. Abstraem a lógica
5. São capazes de se compor
6. São autônomos
7. Evitam alocação de recursos por longo tempo
8. São capazes de serem descobertos