Java – Microservices PROFESSOR: FABIO TAVARES DIPPOLD ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO Centro Universitário - Católica de Santa Catarina
Java – Microservices PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO
Centro Universitário - Católica de Santa Catarina
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.
2PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
3PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Browser ApacheMySQL
Database
ShapingService
InventoryService
Accounting Service
StoreFrontUI
war
Tomcat
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.
4PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
HistóriaUma 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.
5PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Vantagens1. Base de código menor2. Implementação continua 3. Escalado de forma independente4. Facilita escalação do desenvolvimento5. Melhor isolamento de falhas6. Elimina compromisso de longo prazo com a stack de tecnologia7. Mais aberta a experimentações
6PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Desvantagens1. Maior complexidade do código em sistemas distribuídos2. Complexidade operacional significativa3. Requer plano ordenado de implementação de serviços4. É necessário alto nível de automação5. Momento deve-se adotar a arquitetura
7PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
8PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Catalog UI
Account Management UI
Order Management UI
CheckoutUI
CatalogService
OderService
RecommendationService
Review Service
CustomerService
Mecanismos de comunicaçãoEm 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
9PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
10PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Desktop Client
Mobile Client
CustomerService
Order Service
RecommendationService
ReviewService
Catalog Service
Chamada direta aos serviços
11PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
CustomerService
Order Service
RecommendationService
ReviewService
Catalog Service
API Gateway
API Gateway
getProductInfo()getRecommendations()getReviews()
getProductDetails()
Desktop Client
Mobile Client
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étodosMas 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)
12PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
13PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
HTTP síncrono
Mensagens AssíncronasHTTP síncronoMensagens Assíncronas
Procura por profissionais
14PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Casos de sucesso
15PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
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
16PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
17PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina
Serviço de compras on-line
Account Service Order ServerCart ServerProduct
Catalog
Account DB
Products DB
Cart DB
Order DB
18PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro 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”