um método para o desenvolvimento de software baseado em microserviços

23
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

Upload: thiago-pereira

Post on 11-Aug-2015

419 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Um método para o desenvolvimento de software baseado em microserviços

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

Page 2: Um método para o desenvolvimento de software baseado em microserviços

Roteiro da apresentação

• Justificativa

• Trabalhos Relacionados

• Objetivos

• Fundamentação Teórica

• Procedimentos Metodológicos

• Cronograma

• Referências Bibliográficas

Page 3: Um método para o desenvolvimento de software baseado em microserviços

A utilização dos microserviços melhora o desenvolvimento de sistemas de software mais complexo, confiáveis e com maior qualidade?

Page 4: Um método para o desenvolvimento de software baseado em microserviços

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.

Page 5: Um método para o desenvolvimento de software baseado em microserviços

Propor um método para o desenvolvimento de software baseado em microserviços

Page 6: 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

Page 7: Um método para o desenvolvimento de software baseado em microserviços

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

Page 8: Um método para o desenvolvimento de software baseado em microserviços

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

Page 9: Um método para o desenvolvimento de software baseado em microserviços

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

Page 10: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• Princípios dos Microserviços

• Modelo de arquitetura web tradicional

• Modelo de arquitetura baseada em microserviços

Page 11: Um método para o desenvolvimento de software baseado 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

Page 12: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• REST como modelo arquitetural.

Page 13: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• Componentização dos Microserviços • Design orientado ao domínio

Page 14: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• Componentização dos Microserviços • Design orientado ao domínio

Page 15: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• Computação em Nuvem

Page 16: Um método para o desenvolvimento de software baseado em microserviços

Fundamentação Teórica

• Arquitetura de Software

Page 17: Um método para o desenvolvimento de software baseado em microserviços

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

Page 18: Um método para o desenvolvimento de software baseado em microserviços

http://12factor.net

Page 19: Um método para o desenvolvimento de software baseado em microserviços

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

Page 20: Um método para o desenvolvimento de software baseado em microserviços

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.

Page 21: Um método para o desenvolvimento de software baseado em microserviços

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.

Page 22: Um método para o desenvolvimento de software baseado em microserviços

Obrigado!

https://kamihouse.wordpress.com/2015/06/20/um-metodo-para-o-desenvolvimento-de-software-baseado-em-microservices

Page 23: Um método para o desenvolvimento de software baseado em microserviços

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