Java microservices | Seminário

Preview:

Citation preview

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”

Recommended