Flávio Gomes da Silva Lisboa apresenta suas qualificações e experiência, incluindo doutorando na UTFPR, mestre em Tecnologia e Sociedade, especialista em Java, instrutor de cursos de desenvolvimento de software e professor universitário. Ele também fala sobre seu trabalho atual com software para PaaS e como autor.
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
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.
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
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: