SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
FLÁVIO GOMES DA SILVA LISBOA M.Sc.
www.fgsl.eti.br
Quem sou eu
●
Doutorando na UTFPR
●
Mestre em Tecnologia e Sociedade
●
Especialista em Tecnologia Java
●
Engenheiro e Arquiteto de Software certificado pela Zend
●
Instrutor de cursos de desenvolvimento de software
●
Professor de Análise e Projeto de Sistemas, Linguagem de Programação
para Web, Inteligência Artificial, Sistemas Operacionais, Sistemas
Distribuídos, Sistemas de Bancos de Dados e Frameworks PHP.
●
Monitor de adolescentes aprendizes
●
Analista de desenvolvimento, atualmente trabalhando com software para
PaaS
●
Pai da Koriander
●
Autor de livros sobre programação, quadrinhos e, mais recentemente, de
ficção
Arquitetura de Software
A arquitetura de software de um sistema é o
conjunto de estruturas necessárias para
raciocinar sobre o sistema, que compreende
os elementos de software, as relações entre
eles e as propriedades de ambos.
LEN BASS PAUL CLEMENTS RICK KAZMAN
Arquitetura de Software
[…] ter uma arquitetura de
software é importante para o
modelo de desenvolvimento de
sucesso [...]
LEN BASS PAUL CLEMENTS RICK KAZMAN
Arquitetura de Software
Nem todas as arquiteturas são
boas arquiteturas
LEN BASS PAUL CLEMENTS RICK KAZMAN
Arquitetura Monolítica
https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br
CARA,
O QUE
É
ISSO?
BEM-VINDO A UM TEMPO ANTIGO, MUITO,
TEMPO ATRÁS, QUANDO TÊNIS PLATAFORMA
ERA POPULARES, GAME OF THRONES
ESTAVA, ACHO, NA SEGUNDA TEMPORADA -
- E APLICAÇÕES
MONOLÍTICAS
REGIAM A TERRA!
OH, NÃO!
SOCORRO!
Arquitetura Monolítica
https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br
MONOLITOS TINHAM
CONJUNTOS DE
FUNCIONALIDADES
IMPRESSIONANTES, MAS
MUITAS PARTES
INTERDEPENDENTES,
POR ISSO A INTEGRAÇÃO
E A IMPLANTAÇÃO ERAM
UM PESADELO.
COLOCANDO-OS EM
PROCESSOS INDIVIDUAIS, NO
ENTANTO, APRENDEMOS A
COLOCAR ESTES MONSTROS
SOB CONTROLE
Arquitetura de Microsserviços
Microsserviços podem ser depurados,
atualizados e implementados individualmente
sem necessidade do projeto completo estar
estável, um passo importante no caminho para a
integração e entrega contínuos
https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br
Arquitetura de Microsserviços
A ideia da arquitetura de
microsserviços permite a
construção e manutenção de
uma aplicação com
orquestração de serviços:
Assim como instrumentos em
uma orquestra coordenados
pelo maestro produzem uma
sinfonia, um serviço principal
coordena os demais para
produzirem um resultado
completo.
Arquitetura de Microsserviços
Assim como na orquestra não
se espera que todos os
instrumentos sejam tocados
ao mesmo tempo o tempo
todo, na aplicação com
microsserviços não se espera
que todos os serviços
operem o tempo todo. E
assim como alguns
instrumentos podem fazer
solo, alguns serviços podem
operar sozinhos,
independentes, em alguns
momentos.
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
POD A POD B POD C POD D
COCKPIT-WEB COCKPIT-API COCKPIT-
MONITOR
COCKPIT-DB-
MGR
CADA POD PODE USAR
UMA IMAGEM DOCKER
DIFERENTE, COM UM
S.O. DIFERENTE
CADA POD PODE USAR
UMA IMAGEM DOCKER
DIFERENTE, COM UM
S.O. DIFERENTE
CADA POD PODE ESTAR
EM UMA MÁQUINA REAL
(BAREMETAL)
DIFERENTE, EM UM
LUGAR DIFERENTE
CADA POD PODE ESTAR
EM UMA MÁQUINA REAL
(BAREMETAL)
DIFERENTE, EM UM
LUGAR DIFERENTE
O Estudo de Caso:
a aplicação Cockpit
https://www.serpro.gov.br/tema/edicao-238/estaleiro-a-nuvem-do-serpro
CLUSTERS
Kubernetes: onde hospedar?
https://aws.amazon.com/pt/eks/
Kubernetes: onde hospedar?
https://azure.microsoft.com/pt-br/topic/what-is-kubernetes/
Kubernetes: onde hospedar?
https://www.ibm.com/br-pt/cloud/container-service
Kubernetes: onde hospedar?
https://cloud.google.com/kubernetes-engine?hl=pt-br
O Estudo de Caso:
a aplicação Cockpit
https://docs.mezzio.dev/
O Estudo de Caso:
a aplicação Cockpit
Conheça mais sobre
Mezzio na palestra de Er
Galvão: APIs === HTTP
+ PHP + Mezzio!
Palestra que ele fez
neste mesmo
evento!
Er Galvão
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
D
I
A
G
R
A
M
A
D
E
C
L
A
S
S
E
S
Um microsserviço
reduz a complexidade,
mas não a elimina.
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
O Estudo de Caso:
a aplicação Cockpit
https://github.com/fgsl/swagger-docs
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Autenticação
A classe JwtAdapter fornece autenticação
baseada em Javascript Web Token. Ela foi
projetada para funcionar como provedor de
LaminasAuthentication.
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Middleware
A classe AbstractAuthHandler fornece um
tratamento de HTTP com controle de
autenticação e autorização.
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Middleware
A classe AbstractAclHandlerFactory facilita a
criação de fábricas para manipuladores com
controle de acesso. Esta classe usa o modelo
AclFactory para criar um controle de permissão
baseado no componente LaminasPermissions
Rbac.
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Middleware
A classe AclHandler fornece um manipulador
HTTP para uma página de erro de autorização.
Use AclHandlerFactory para criar instâncias de
AclHandler.
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Middleware
A classe LogoutHandler fornece um manipulador
HTTP padrão para sair de um aplicativo. Use
LogoutHandlerFactory para criar instâncias de
LogoutHandler.
Extensões para o Mezzio
https://github.com/fgsl/microserviceframework
Middleware
A classe SessionMiddleware permite o uso de
sessão para um aplicativo.
Extensões para o Mezzio
Você ainda pode usar, além dos diversos
componentes do framework Laminas, algumas
extensões disponíveis neste projeto:
https://github.com/fgsl/framework
Uso de Mezzio com Swoole
https://www.swoole.co.uk/docs/
Uso de Mezzio com Swoole
https://www.zimuel.it/slides/phpday2018/expressive_swoole#/
Uso de Mezzio com Swoole
https://blog.vivaweb.net/2020/08/25/php-assincrono-e-mais-
rapido-que-nodejs-com-swoole/
Uso de Mezzio com Swoole
https://docs.mezzio.dev/mezzio-swoole/
Uso de Mezzio com Swoole
https://docs.mezzio.dev/mezzio-swoole/
$ ./vendor/bin/mezzio-swoole start
Iniciando uma aplicação Mezzio com
Swoole como servidor web:
Obrigado!
www.fgsl.eti.br

Weitere ähnliche Inhalte

Was ist angesagt?

Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.
Bryan Ollivie
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
jesuinoPower
 

Was ist angesagt? (20)

Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.Desenvolvimento web com groovy e grails.
Desenvolvimento web com groovy e grails.
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Criando componentes e disponibilizando o como opensource em 5 minutos em .NET
Criando componentes e disponibilizando o como opensource em 5 minutos em .NETCriando componentes e disponibilizando o como opensource em 5 minutos em .NET
Criando componentes e disponibilizando o como opensource em 5 minutos em .NET
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livre
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
 
Javafx
JavafxJavafx
Javafx
 
C# 7.0 e .NET Core - Canal .NET Dev Week
C# 7.0 e .NET Core - Canal .NET Dev WeekC# 7.0 e .NET Core - Canal .NET Dev Week
C# 7.0 e .NET Core - Canal .NET Dev Week
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Jugvale
JugvaleJugvale
Jugvale
 

Ähnlich wie Turbinando microsserviços em PHP

Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Ähnlich wie Turbinando microsserviços em PHP (20)

01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 
Construindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppConstruindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor App
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BHCloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
GABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CD
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 

Mehr von Flávio Lisboa

Mehr von Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
 
API PHP para blockchain
API PHP para blockchainAPI PHP para blockchain
API PHP para blockchain
 
Criação ideológica e dialogismo
Criação ideológica e dialogismoCriação ideológica e dialogismo
Criação ideológica e dialogismo
 

Turbinando microsserviços em PHP

  • 1. FLÁVIO GOMES DA SILVA LISBOA M.Sc. www.fgsl.eti.br
  • 2. Quem sou eu ● Doutorando na UTFPR ● Mestre em Tecnologia e Sociedade ● Especialista em Tecnologia Java ● Engenheiro e Arquiteto de Software certificado pela Zend ● Instrutor de cursos de desenvolvimento de software ● Professor de Análise e Projeto de Sistemas, Linguagem de Programação para Web, Inteligência Artificial, Sistemas Operacionais, Sistemas Distribuídos, Sistemas de Bancos de Dados e Frameworks PHP. ● Monitor de adolescentes aprendizes ● Analista de desenvolvimento, atualmente trabalhando com software para PaaS ● Pai da Koriander ● Autor de livros sobre programação, quadrinhos e, mais recentemente, de ficção
  • 3. Arquitetura de Software A arquitetura de software de um sistema é o conjunto de estruturas necessárias para raciocinar sobre o sistema, que compreende os elementos de software, as relações entre eles e as propriedades de ambos. LEN BASS PAUL CLEMENTS RICK KAZMAN
  • 4. Arquitetura de Software […] ter uma arquitetura de software é importante para o modelo de desenvolvimento de sucesso [...] LEN BASS PAUL CLEMENTS RICK KAZMAN
  • 5. Arquitetura de Software Nem todas as arquiteturas são boas arquiteturas LEN BASS PAUL CLEMENTS RICK KAZMAN
  • 6. Arquitetura Monolítica https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br CARA, O QUE É ISSO? BEM-VINDO A UM TEMPO ANTIGO, MUITO, TEMPO ATRÁS, QUANDO TÊNIS PLATAFORMA ERA POPULARES, GAME OF THRONES ESTAVA, ACHO, NA SEGUNDA TEMPORADA - - E APLICAÇÕES MONOLÍTICAS REGIAM A TERRA! OH, NÃO! SOCORRO!
  • 7. Arquitetura Monolítica https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br MONOLITOS TINHAM CONJUNTOS DE FUNCIONALIDADES IMPRESSIONANTES, MAS MUITAS PARTES INTERDEPENDENTES, POR ISSO A INTEGRAÇÃO E A IMPLANTAÇÃO ERAM UM PESADELO. COLOCANDO-OS EM PROCESSOS INDIVIDUAIS, NO ENTANTO, APRENDEMOS A COLOCAR ESTES MONSTROS SOB CONTROLE
  • 8. Arquitetura de Microsserviços Microsserviços podem ser depurados, atualizados e implementados individualmente sem necessidade do projeto completo estar estável, um passo importante no caminho para a integração e entrega contínuos https://cloud.google.com/kubernetes-engine/kubernetes-comic?hl=pt-br
  • 9. Arquitetura de Microsserviços A ideia da arquitetura de microsserviços permite a construção e manutenção de uma aplicação com orquestração de serviços: Assim como instrumentos em uma orquestra coordenados pelo maestro produzem uma sinfonia, um serviço principal coordena os demais para produzirem um resultado completo.
  • 10. Arquitetura de Microsserviços Assim como na orquestra não se espera que todos os instrumentos sejam tocados ao mesmo tempo o tempo todo, na aplicação com microsserviços não se espera que todos os serviços operem o tempo todo. E assim como alguns instrumentos podem fazer solo, alguns serviços podem operar sozinhos, independentes, em alguns momentos.
  • 11. O Estudo de Caso: a aplicação Cockpit
  • 12. O Estudo de Caso: a aplicação Cockpit
  • 13. O Estudo de Caso: a aplicação Cockpit POD A POD B POD C POD D COCKPIT-WEB COCKPIT-API COCKPIT- MONITOR COCKPIT-DB- MGR CADA POD PODE USAR UMA IMAGEM DOCKER DIFERENTE, COM UM S.O. DIFERENTE CADA POD PODE USAR UMA IMAGEM DOCKER DIFERENTE, COM UM S.O. DIFERENTE CADA POD PODE ESTAR EM UMA MÁQUINA REAL (BAREMETAL) DIFERENTE, EM UM LUGAR DIFERENTE CADA POD PODE ESTAR EM UMA MÁQUINA REAL (BAREMETAL) DIFERENTE, EM UM LUGAR DIFERENTE
  • 14. O Estudo de Caso: a aplicação Cockpit https://www.serpro.gov.br/tema/edicao-238/estaleiro-a-nuvem-do-serpro CLUSTERS
  • 19. O Estudo de Caso: a aplicação Cockpit https://docs.mezzio.dev/
  • 20. O Estudo de Caso: a aplicação Cockpit Conheça mais sobre Mezzio na palestra de Er Galvão: APIs === HTTP + PHP + Mezzio! Palestra que ele fez neste mesmo evento! Er Galvão
  • 21. O Estudo de Caso: a aplicação Cockpit
  • 22. O Estudo de Caso: a aplicação Cockpit
  • 23. O Estudo de Caso: a aplicação Cockpit
  • 24. O Estudo de Caso: a aplicação Cockpit D I A G R A M A D E C L A S S E S Um microsserviço reduz a complexidade, mas não a elimina.
  • 25. O Estudo de Caso: a aplicação Cockpit
  • 26. O Estudo de Caso: a aplicação Cockpit
  • 27. O Estudo de Caso: a aplicação Cockpit
  • 28. O Estudo de Caso: a aplicação Cockpit https://github.com/fgsl/swagger-docs
  • 29. Extensões para o Mezzio https://github.com/fgsl/microserviceframework
  • 30. Extensões para o Mezzio https://github.com/fgsl/microserviceframework
  • 31. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Autenticação A classe JwtAdapter fornece autenticação baseada em Javascript Web Token. Ela foi projetada para funcionar como provedor de LaminasAuthentication.
  • 32. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Middleware A classe AbstractAuthHandler fornece um tratamento de HTTP com controle de autenticação e autorização.
  • 33. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Middleware A classe AbstractAclHandlerFactory facilita a criação de fábricas para manipuladores com controle de acesso. Esta classe usa o modelo AclFactory para criar um controle de permissão baseado no componente LaminasPermissions Rbac.
  • 34. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Middleware A classe AclHandler fornece um manipulador HTTP para uma página de erro de autorização. Use AclHandlerFactory para criar instâncias de AclHandler.
  • 35. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Middleware A classe LogoutHandler fornece um manipulador HTTP padrão para sair de um aplicativo. Use LogoutHandlerFactory para criar instâncias de LogoutHandler.
  • 36. Extensões para o Mezzio https://github.com/fgsl/microserviceframework Middleware A classe SessionMiddleware permite o uso de sessão para um aplicativo.
  • 37. Extensões para o Mezzio Você ainda pode usar, além dos diversos componentes do framework Laminas, algumas extensões disponíveis neste projeto: https://github.com/fgsl/framework
  • 38. Uso de Mezzio com Swoole https://www.swoole.co.uk/docs/
  • 39. Uso de Mezzio com Swoole https://www.zimuel.it/slides/phpday2018/expressive_swoole#/
  • 40. Uso de Mezzio com Swoole https://blog.vivaweb.net/2020/08/25/php-assincrono-e-mais- rapido-que-nodejs-com-swoole/
  • 41. Uso de Mezzio com Swoole https://docs.mezzio.dev/mezzio-swoole/
  • 42. Uso de Mezzio com Swoole https://docs.mezzio.dev/mezzio-swoole/ $ ./vendor/bin/mezzio-swoole start Iniciando uma aplicação Mezzio com Swoole como servidor web: