um método para o desenvolvimento de software baseado em microserviços
TRANSCRIPT
Thiago Pereira Rosa Engenharia de Software
Orientadora: Msc. Ticiana Linhares Coelho da SilvaCoorientador: 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
Roteiro da apresentação
• Justificativa
• Trabalhos Relacionados
• Objetivos
• Fundamentação Teórica
• Procedimentos Metodológicos
• Cronograma
• Referências Bibliográficas
A utilização dos microserviços melhora o desenvolvimento de sistemas de software mais complexo, confiáveis e com maior qualidade?
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.
Propor um método para o desenvolvimento de software baseado em microserviços
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
Fundamentação Teórica
• Microserviços
Expedição
Inventário
Serviço ao cliente
Contas
Faturas
Devoluções
@samnewman
Pequenos serviços Autônomos que trabalham em conjunto
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
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
Fundamentação Teórica
• Princípios dos Microserviços
• Modelo de arquitetura web tradicional
• Modelo de arquitetura baseada em microserviços
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
Fundamentação Teórica
• REST como modelo arquitetural.
Fundamentação Teórica
• Componentização dos Microserviços • Design orientado ao domínio
Fundamentação Teórica
• Componentização dos Microserviços • Design orientado ao domínio
Fundamentação Teórica
• Computação em Nuvem
Fundamentação Teórica
• Arquitetura de Software
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
http://12factor.net
Cronograma
ATIVIDADES2015
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
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.
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.
Obrigado!
https://kamihouse.wordpress.com/2015/06/20/um-metodo-para-o-desenvolvimento-de-software-baseado-em-microservices
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