Este documento apresenta um trabalho de conclusão de curso sobre um método para o desenvolvimento de software baseado em microserviços. O trabalho é orientado por Msc. Ticiana Linhares Coelho da Silva e coorientado por Dr. Flávio Rubens de Carvalho Souza. O objetivo é propor um método para o desenvolvimento de software utilizando a arquitetura de microserviços.
Método para desenvolvimento de software baseado em microserviços
1. Thiago Pereira Rosa
Engenharia de Software
Orientadora:
Msc. Ticiana Linhares Coelho da Silva
Coorientador:
Dr. Flávio Rubens de Carvalho Souza
UM MÉTODO PARA O DESENVOLVIMENTO DE
SOFTWARE BASEADO EM MICROSERVIÇOS
Trabalho de Conclusão de Curso
3. A utilização dos microserviços melhora o
desenvolvimento de sistemas de software mais
complexo, confiáveis e com maior qualidade?
4. Trabalhos Relacionados
• NAMIOT, Dmitry; SNEPS-SNEPPE, Manfred. On Micro-services
Architecture. International Journal of Open Information
Technologies, v. 2, n. 9, p. 24-27, 2014.
• VIENNOT, Nicolas et al. Synapse: a microservices architecture for
heterogeneous-database web applications. In: Proceedings of the
Tenth European Conference on Computer Systems. ACM, 2015.
p. 21.
5. Propor um método para o desenvolvimento de
software baseado em microserviços
6. Objetivos Específicos
• Identificar modelos de desenvolvimento existentes baseados em
microserviços
• Identificar características e funcionalidades fundamentais em sistemas
baseados em microserviços
• Definir um método para o desenvolvimento de software baseado em
microserviços
• Realizar um estudo de caso utilizando o método proposto
8. Fundamentação Teórica
• Microserviços
Uma arquitetura orientada a serviços
fracamente acoplada com contextos limitados
Se cada serviço deve ser atualizado ao
mesmo tempo não é fracamente acoplado
Se precisa saber muito sobre serviços
circundantes não há um contexto limitado
9. Fundamentação Teórica
• Microserviços - Preocupações
Ferramental Configuração Descoberta Encaminhamento Observalidade
Datastores
Operacional: Orquestração e Implantação da infraestrutura
Desenvolvimento: Linguagens de programação e Tecnologias de Contêiner
10. Fundamentação Teórica
• Princípios dos Microserviços
• Modelo de arquitetura web tradicional
• Modelo de arquitetura baseada em microserviços
11. Fundamentação Teórica
• Princípios dos Microserviços
• Pequenos
• Cada um executando em seu processo
• Comunicação via HTTP
• Construído em torno da capacidade de negócio
• Independentemente implementáveis
• Gerenciamento centralizado
• Escritos em diferentes linguagens de programação
• Diferentes tecnologias de armazenamento de dados
http://martinfowler.com/articles/microservices.html
17. Procedimentos Metodológicos
• Revisão bibliográfica para identificação dos modelos de
desenvolvimento baseados em microserviços existentes
• Identificar características e funcionalidades fundamentais em sistemas
baseados em microserviços
• Estruturar logicamente os artefatos da solução
• Definir tecnologias para auxiliar na construção de microserviços
• Planejar a comunicação dos microserviços
• Definir método para construir microserviços
• Implantar os microserviços construídos
• Realizar um estudo de caso
19. Cronograma
ATIVIDADES
2015
Mai Jun Jul Ago Set Out Nov Dez
Aprofundamento da revisão bibliográfica X X
Definir o método proposto X X X X
Definir tecnologias de desenvolvimento X X
Desenvolvimento do estudo de caso X X X
Testes X X X X X
Análise dos resultados X
Criação e revisão da monografia X X X
Defesa X
20. Referências Bibliográficas
• FIELDING, Roy Thomas. Architectural styles and the design of
network-based software architectures. 2000. Tese de
Doutorado. University of California, Irvine.
• FOWLER, Martin. Patterns of enterprise application
architecture. Addison-Wesley Longman Publishing Co., Inc., 2002.
• LEWIS, James; FLOWER, Martin. Microservices. Disponível em:
<http://martinfowler.com/articles/microservices.html> Acesso em:
18 jun. 2015.
• MARINESCU, Dan C. Cloud computing: Theory and practice.
1.ed. Waltham: Newnes, 2013.
21. Referências Bibliográficas
• NAMIOT, Dmitry; SNEPS-SNEPPE, Manfred. On Micro-services
Architecture. International Journal of Open Information Technologies,
v. 2, n. 9, p. 24-27, 2014.
• NEWMAN, Sam. Building Microservices. 1 ed. O'Reilly Media, Inc., 2015.
• RICHARDSON, Chris. Microservices architecture. Disponível em <http://
microservices.io/patterns/microservices.html> Acesso em: 20 mai. 2015.
• The twelve-factor app. Disponível em <http://12factor.net> Acesso em:
13 mai. 2015.
• THONES, Johannes. Microservices. Software, IEEE, v. 32, n. 1, p.
116-116, 2015.
23. UM MÉTODO PARA O DESENVOLVIMENTO DE
SOFTWARE BASEADO EM MICROSERVIÇOS
Thiago Pereira Rosa
Orientadora:
Msc. Ticiana Linhares Coelho da Silva
Coorientador:
Dr. Flávio Rubens de Carvalho Souza