O documento discute as arquiteturas monolítica e de microserviços, comparando suas vantagens e desvantagens. A arquitetura monolítica tem aplicações auto-suficientes e independentes, enquanto a arquitetura de microserviços tem o objetivo de tornar o código menos frágil e permitir que softwares complexos mudem. A arquitetura de microserviços tem vantagens como implementação contínua e escalabilidade independente, mas também desvantagens como maior complexidade do código distribuído.
1. Java – Microservices
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Centro Universitário - Católica de Santa Catarina
2. A arquitetura monolítica
Uma aplicacação monolítica é auto-sulficiente, e independente de
outros aplicações.
A filosofia dessa arquitetura é que o aplicativo seja responsável não
apenas para executar uma determinada tarefa, mas sim para executar
todos os passos necessários para completer uma função específica.
2
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
3. 3
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Browser Apache
MySQL
Database
ShapingService
InventoryService
Accounting Service
StoreFrontUI
war
Tomcat
4. A arquitetura microservices
Tem em seu design o objetivo fazer com que o código seja menos
frágil e, fazer com que softwares complexos e de larga escala
mudem.
4
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
5. História
Uma workshop de arquitetos de software em maio de 2011 em
Venice utilizou o termo "microservice" para descrever o que os
participantes viram como um estilo arquitetônico comum que muitos
deles estiveram recentemente explorando.
Em 2012, Adrian Cockcroft com a Netflix foi pioneiro neste estilo em
uma escala web.
5
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
6. Vantagens
1. Base de código menor
2. Implementação continua
3. Escalado de forma independente
4. Facilita escalação do desenvolvimento
5. Melhor isolamento de falhas
6. Elimina compromisso de longo prazo com a stack de tecnologia
7. Mais aberta a experimentações
6
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
7. Desvantagens
1. Maior complexidade do código em sistemas distribuídos
2. Complexidade operacional significativa
3. Requer plano ordenado de implementação de serviços
4. É necessário alto nível de automação
5. Momento deve-se adotar a arquitetura
7
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
8. 8
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Catalog
UI
Account Management
UI
Order Management
UI
Checkout
UI
Catalog
Service
Oder
Service
Recommendation
Service
Review
Service
Customer
Service
9. Mecanismos de comunicação
Em uma arquitetura de microservices, os padrões de comunicação
entre clientes e a aplicação, bem como entre os próprios
componentes da aplicação, são diferentes de uma aplicação
monolítica.
Primeiramente, são abordadas as questões de interação entre
clientes e os microservices. Em seguida, são abordados os
mecanismos de comunicação entre microservices
9
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
10. 10
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Desktop
Client
Mobile
Client
Customer
Service
Order
Service
Recommendation
Service
Review
Service
Catalog
Service
Chamada direta aos serviços
11. 11
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Customer
Service
Order
Service
Recommendation
Service
Review
Service
Catalog
Service
API Gateway
API Gateway
getProductInfo()
getRecommendations()
getReviews()
getProductDetails()
Desktop
Client
Mobile
Client
12. Mecanismos de comunicação inter-service
Outra grande diferença da arquitetura de microservices é a forma de
interação entre os diferentes componentes da aplicação.
Em uma aplicação monolítica, componentes comunicam-se através
de chamadas de métodos
Mas em uma arquitetura de microservices, diferentes serviços são
executados em diferentes processos.
Consequentemente, os serviços devem utilizar uma comunicação
entre processos (IPC - inter-process communication)
12
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
13. 13
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
HTTP síncrono
Mensagens Assíncronas
HTTP síncrono
Mensagens Assíncronas
15. Casos de sucesso
15
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
16. Referências
Microservices: Decomposing Applications for Deployability and Scalability -
https://www.infoq.com/articles/microservices-intro
Pattern: Monolithic Architecture - http://microservices.io/patterns/monolithic.html
Pattern: Microservices Architecture - http://microservices.io/patterns/microservices.html
Microservices with Spring - https://spring.io/blog/2015/07/14/microservices-with-spring
Microservices - https://en.wikipedia.org/wiki/Microservices#History
Monolithic application - https://en.wikipedia.org/wiki/Monolithic_application
16
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
17. 17
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Serviço de compras on-line
Account
Service
Order ServerCart Server
Product
Catalog
Account
DB
Products
DB
Cart
DB
Order
DB
18. 18
PROFESSOR: FABIO TAVARES DIPPOLD
ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Cetro Universitário Católica Santa Catarina
Web-
Service
Account-
Service
Account
DB
Registration Service
(Eureka)
Register as
“accont-service”
JPA/SQLRESTful Request
Looks for
“account-service”