java microservices | seminário

18
Java – Microservices PROFESSOR: FABIO TAVARES DIPPOLD ALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO Centro Universitário - Católica de Santa Catarina

Upload: osmar-petry

Post on 15-Apr-2017

70 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Java microservices | Seminário

Java – Microservices PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKO

Centro Universitário - Católica de Santa Catarina

Page 2: Java microservices | Seminário

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

Page 3: Java microservices | Seminário

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

Page 4: Java microservices | Seminário

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

Page 5: Java microservices | Seminário

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

Page 6: Java microservices | Seminário

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

Page 7: Java microservices | Seminário

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

Page 8: Java microservices | Seminário

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

Page 9: Java microservices | Seminário

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

Page 10: Java microservices | Seminário

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

Page 11: Java microservices | Seminário

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

Page 12: Java microservices | Seminário

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

Page 13: Java microservices | Seminário

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

Page 14: Java microservices | Seminário

Procura por profissionais

14PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina

Page 15: Java microservices | Seminário

Casos de sucesso

15PROFESSOR: FABIO TAVARES DIPPOLDALUNOS: LUIS MACHADO, OSMAR PETRY, E SERGIO ROIKOCetro Universitário Católica Santa Catarina

Page 16: Java microservices | Seminário

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

Page 17: Java microservices | Seminário

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

Page 18: Java microservices | Seminário

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”