Aplicação da arquitetura de micro serviços em softwares corporativos

Preview:

Citation preview

Aplicação da arquitetura de micro serviços em softwares corporativos

Emmanuel Neri de SouzaDr. Sebastião Ribeiro Junior

Dr. Rodrigo Clemente Thom de Souza

2

Agenda

• Introdução• Objetivo• Fundamentação Teórica• Estado da Arte

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

3

Introdução

• Aumento da informatização proporcionando um crescimento na abrangência dos softwares

• Adoção a mobilidade dos softwares• Surgimento de novos modelos de negócios,

baseados em computação em nuvem e soluções Software as a Service(SaaS)

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

4

Objetivo

• Redução do tamanho dos projetos de software

• Redução do acomplamento e aumento de flexibilidade

• A necessidade de escalar os softwares• Redução do tempo de deploy e

downtime total da aplicação

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

5

Softwares Corporativos

• São aqueles que automatizam processos de natureza administrativa, financeira, contábil e outros relacionados a gestão empresarial

• “Complexidades voltada a expressivo volume de dados, grande número de usuários e extensa quantidade de linhas de códigos.”

Fowler, Martin(2008)

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

6

Arquitetura de Software

• Edsger Dijkstra em 1968 e David Parnas no início de 1970

• Trata-se da estrutura do software• Caracteriza os pontos positivos e

negativos softwares

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

7

Arquitetura monolítica

• “Quando uma aplicação é construída em uma grande e única unidade.”

D.I. Savchenko, G.I. Radchenko, O. Taipale(2015)

• Software composto por um conjunto de funcionalidades em uma única estrutura

• O modelo de arquitetura mais comum no desenvolvimento de software

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

8

Arquitetura monolítica

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

Fowler, Martin (2014)

9

Arquitetura monolítica

• Composto por múltiplos módulos em apenas uma estrutura

• O software é executado em uma única instância

• Permite ser escalado apenas em horizontal

• Restrito a uma tecnologia

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

10

Arquitetura Orientada a Serviços(SOA)

• Service Oriented Architectures, Roy Schulte e Yefim Natis(1996)

• A adoção do mercado em 2008 na integração de sistemas

• Serviço independente que possui uma interface definida para realizar a comunicação entre sistemas

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

11

Arquitetura de micro serviços

• “Um conjunto de serviços pequenos, autônomos que trabalham em conjunto.”

Newman, Sam (2015)

• Software modularizado em pequenos serviços que se comunicam por através de uma forma padronizada

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

12

Arquitetura de micro serviços

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

Fowler, Martin (2014)

13

Diferença de SOA

“Micro serviços são parecidos a SOA(Arquitetura Orientada a Serviços), porém SOA é algo muito maior”.

Fowler, Martin (2014)

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

14

Características de micro serviços

• Serviços pequenos• Serviços autônomos

Pode ser executado em uma ou mais instâncias

Deploys independentes entre os serviços• Interface de comunicação padronizada

Independência de tecnologia• Permite ser escalado horizontal e vertical

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

15

Estado da Arte

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

Linha do tempo arquitetura de micro serviços – Souza, Emmanuel(2015)

16

OBRIGADO

Emmanuel Neri de Souzaemmanuelnerisouza@gmail.com

07/11/2015 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT