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
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
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
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

TCC 1 - Um método para o desenvolvimento de software baseado em microserviços

  • 1.
    Thiago Pereira Rosa Engenhariade 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
  • 2.
    Roteiro da apresentação •Justificativa • Trabalhos Relacionados • Objetivos • Fundamentação Teórica • Procedimentos Metodológicos • Cronograma • Referências Bibliográficas
  • 3.
    A utilização dosmicroserviç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étodopara o desenvolvimento de software baseado em microserviços
  • 6.
    Objetivos Específicos • Identificarmodelos 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
  • 7.
    Fundamentação Teórica • Microserviços Expedição Inventário Serviçoao cliente Contas Faturas Devoluções @samnewman Pequenos serviços Autônomos que trabalham em conjunto
  • 8.
    Fundamentação Teórica • Microserviços Umaarquitetura 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ípiosdos Microserviços • Modelo de arquitetura web tradicional • Modelo de arquitetura baseada em microserviços
  • 11.
    Fundamentação Teórica • Princípiosdos 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
  • 12.
    Fundamentação Teórica • RESTcomo modelo arquitetural.
  • 13.
    Fundamentação Teórica • Componentizaçãodos Microserviços • Design orientado ao domínio
  • 14.
    Fundamentação Teórica • Componentizaçãodos Microserviços • Design orientado ao domínio
  • 15.
  • 16.
  • 17.
    Procedimentos Metodológicos • Revisãobibliográ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
  • 18.
  • 19.
    Cronograma ATIVIDADES 2015 Mai Jun JulAgo 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.
  • 22.
  • 23.
    UM MÉTODO PARAO 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