MICROSERVICES
ARQUITETURA
AGNI G. B. CAMPOS
http://agni-tech.blogspot.com
(21) 96624-5486
parte 2
AGENDA
1  / Arquitetura Monolítica
2  / Arquitetura Micro Serviços
3  / Mensagens Síncronas
4  / Point-to-point Style
5  / API-Gateway Style
6  / Message Broker style
7  / Decentralized Data Management
8  / Service: Registry and Discovery
9  /  Client-side Discovery
10/  Server-side Discovery  
11/ Deployment
12/ Docker
ARQUITETURA MONOLÍTICA
Osaplicativosdesoftwarecorporativosãoprojetadospara
facilitarinúmerosrequisitosdenegócios.Assim,um
determinadoaplicativodesoftwareoferececentenasde
funcionalidadesetodasessasfuncionalidadessãoempilhadas
emumaúnicaaplicaçãomonolítica.
Porexemplo,ERPs,CRMseoutrosváriossistemasdesoftware
sãoconstruídoscomoummonólitocomváriascentenasde
funcionalidades.
Aimplantação,soluçãodeproblemas,dimensionamentoe
atualizaçãodetaisaplicaçõesdesoftwaremonstruosaséum
pesadelo.
ARQUITETURA MONOLÍTICA
ARQUITETURA MICRO SERVIÇOS
Aarquiteturademicroservicesésobreodesenvolvimentode
umúnicoaplicativocomoumconjuntodeserviçospequenos
eindependentesqueestãosendoexecutadosemseupróprio
processo,desenvolvidoseimplantadosdeforma
independente.
Namaioriadasdefiniçõesdaarquiteturamicroservices,é
explicadocomooprocessodesegregaçãodosserviços
disponíveisnomonolíticoemumconjuntodeserviços
independentes.
Noentanto,naminhaopinião,aMicroservicesnãoconsiste
apenasemdividirosserviçosdisponíveisemmonolíticosem
serviçosindependentes.
ARQUITETURA MICRO SERVIÇOS
MENSAGENS SÍNCRONAS
Paramensagenssíncronas(oclienteesperaumaresposta
"atempada"doserviçoeesperaatéconseguir)na
arquiteturaMicroservices,RESTéaescolhaunânime,pois
forneceumestilodemensagenssimplesimplementadocom
solicitação-respostaHTTP,combasenoestilodaAPIde
recursos.
Portanto,amaioriadasimplementaçõesdemicroservices
estãousandoHTTP, juntamentecomestilosbaseadosna
APIderecursos.
MENSAGENS SÍNCRONAS
POINT-TO-POINT STYLE
NoestiloPoint-to-point(pontoaponto),atotalidadedalógicaderoteamentodemensagensresideemcada
pontofinaleosserviçospodemsecomunicardiretamente.CadamicroserviceexpõeumaAPIRESTeum
microservicedadoouumclienteexternopodeminvocaroutromicroserviceatravésdasuaAPIREST.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
INVOCANDO SERVIÇOS DIRETAMENTE
API-GATEWAY STYLE
Aidéia-chaveportrásdoestilodoGatewaydaAPIéqueusarumgatewaydemensagenslevescomoo
pontodeentradaprincipalparatodososclientes/consumidoreseimplementarosrequisitosnão
funcionaiscomunsnoníveldoGateway.
Emgeral, umGatewaydeAPIpermitequevocêconsomeumaAPIgerenciadaemREST/HTTP,
portanto,aquipodemosexpornossasfuncionalidadesdenegóciosquesãoimplementadascomo
microservices,atravésdaAPI-GW,comoAPIgerenciadas.
Naverdade,estaéumacombinaçãodearquiteturadeMicroserviceseAPI-Managementquelhedãoo
melhordosdoismundos.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
MESSAGE BROKER STYLE
Osmicroservicespodemserintegradoscomumcenáriodemensagensassíncronas,como
solicitaçõesunidirecionaisemensagensdeinscriçãodepublicaçãousandofilas.
 
Ummicroservicedadopodeseroprodutordemensagensepodeenviarmensagensassíncronamente
paraumafilaeemseguida,omicroserviceconsumidorpodeconsumirmensagensdafila,esteestilo
desacoplaráosprodutoresdemensagensdosconsumidoresdemensagenseocorretorde
mensagensintermédiasarmazenandoasmensagensatéqueoconsumidorpossaprocessá-las.
Osmicroservicesdoprodutordesconhecemcompletamenteosmicroservicesdoconsumidor.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
DECENTRALIZED DATA MANAGEMENT
NaarquiteturaMicroservices,asfuncionalidadessãodispersasemváriosmicroservicese,seusarmos
omesmobancodedadoscentralizado,osmicroservicesnãoserãomaisindependentesunsdosoutros
(porexemplo,seoesquemadobancodedadostivermudadodeummicroservicedeterminado,isso
iráquebrarváriosoutrosserviços), portanto,cadamicroservicedeveterseuprópriobancodedados.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
SERVICE REGISTRY & DISCOVERY
Service Registry
O Registro de serviços contém as instâncias dos microservices e suas localizações. As instâncias do
Microservice são registradas no registro do serviço na inicialização e cancelaram o registro no
desligamento. Os consumidores podem encontrar os microservices disponíveis e seus locais através do
registro do serviço.
Service Discovery
Para encontrar os microservices disponíveis e sua localização, precisamos ter um mecanismo de
descoberta de serviço. Existem dois tipos de mecanismos de descoberta de serviço, Client-side
Discovery e Server-side Discovery. 
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
CLIENT-SIDE DISCOVERY
Nesta abordagem, o cliente ou a API-GW obtém a localização de uma instância de serviço
consultando um Service Registry.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
SERVER-SIDE DISCOVERY
Nesta abordagem, os clientes / API-GW enviam a solicitação para um componente
(geralmente um LoadBalancer) que é executado em um local bem conhecido e esse
componente chama o Service Registry e determina a localização absoluta do
microservice.
INTEGRATING MICROSERVICES (INTER-SERVICE/PROCESS COMMUNICATION)
As soluções de implantação de microservices,
como Kubernetes, oferecem mecanismos de
descoberta (Discovery Service) de service-side.
DEPLOYMENT
Visão geral da implantação dos microservices do
aplicativo de varejo.
Cada instância de microservice é implantada
como um contêiner e existem dois recipientes por
cada host.
Você pode alterar arbitrariamente o número de
contêineres que você executa em um
determinado host.
DOCKER
Quando se trata de arquitetura de microservices, a implantação de microservices desempenha um
papel crítico e possui os seguintes requisitos-chave:
>> Capacidade de implantar / desdobrar independentemente de outros microservices.
>> Deve ser capaz de escalar em cada nível de microservices (um determinado serviço pode obter
mais tráfego do que outros serviços).
>> A falha em um microservice não deve afetar nenhum dos outros serviços.
Docker (permite aos desenvolvedores e administradores de sistemas implantar contêineres de
aplicativos auto-suficientes em ambientes Linux) fornece uma ótima maneira de implantar
microservices e as principais etapas são as seguintes:
>> Coloque o microservice como uma imagem de recipiente (Docker).
>> Implante cada instância de serviço como um contêiner.
>> O dimensionamento é feito com base na alteração do número de instâncias de contêiner.
>> Construir, implementar e iniciar o microservice será muito mais rápido, pois estamos usando
recipientes Docker (é muito mais rápido do que uma VM normal)
OBRIGADO PELA
ATENÇÃO!
AGNI G. B. CAMPOS
http://agni-tech.blogspot.com

Microservices arquitetura parte 2