O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Turbinando microsserviços em PHP

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 43 Anúncio

Turbinando microsserviços em PHP

Baixar para ler offline

Apresentação feita na 2ª edição do evento Micro Serviços Macro Negócios. Esta palestra irá mostrar como criar uma arquitetura de uma aplicação para microsserviços em PHP usando o microframework Mezzio. Para tanto, será apresentado um estudo de caso de uma aplicação PHP baseada em microsserviços, construída para um ambiente distribuído usando Kubernetes. O estudo de caso mostrará como microframework Mezzio facilita a construção de microsserviços a partir do conceito de middleware”. Serão apresentados ainda extensões para o Mezzio e seu uso combinado ao framework Swoole.

Apresentação feita na 2ª edição do evento Micro Serviços Macro Negócios. Esta palestra irá mostrar como criar uma arquitetura de uma aplicação para microsserviços em PHP usando o microframework Mezzio. Para tanto, será apresentado um estudo de caso de uma aplicação PHP baseada em microsserviços, construída para um ambiente distribuído usando Kubernetes. O estudo de caso mostrará como microframework Mezzio facilita a construção de microsserviços a partir do conceito de middleware”. Serão apresentados ainda extensões para o Mezzio e seu uso combinado ao framework Swoole.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Turbinando microsserviços em PHP (20)

Anúncio

Mais de Flávio Lisboa (20)

Mais recentes (20)

Anúncio

Turbinando microsserviços em PHP

  1. 1. FLÁVIO GOMES DA SILVA LISBOA M.Sc. www.fgsl.eti.br
  2. 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. 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. 4. Arquitetura de Software […] ter uma arquitetura de software é importante para o modelo de desenvolvimento de sucesso [...] LEN BASS PAUL CLEMENTS RICK KAZMAN
  5. 5. Arquitetura de Software Nem todas as arquiteturas são boas arquiteturas LEN BASS PAUL CLEMENTS RICK KAZMAN
  6. 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. 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. 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. 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. 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. 11. O Estudo de Caso: a aplicação Cockpit
  12. 12. O Estudo de Caso: a aplicação Cockpit
  13. 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. 14. O Estudo de Caso: a aplicação Cockpit https://www.serpro.gov.br/tema/edicao-238/estaleiro-a-nuvem-do-serpro CLUSTERS
  15. 15. Kubernetes: onde hospedar? https://aws.amazon.com/pt/eks/
  16. 16. Kubernetes: onde hospedar? https://azure.microsoft.com/pt-br/topic/what-is-kubernetes/
  17. 17. Kubernetes: onde hospedar? https://www.ibm.com/br-pt/cloud/container-service
  18. 18. Kubernetes: onde hospedar? https://cloud.google.com/kubernetes-engine?hl=pt-br
  19. 19. O Estudo de Caso: a aplicação Cockpit https://docs.mezzio.dev/
  20. 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. 21. O Estudo de Caso: a aplicação Cockpit
  22. 22. O Estudo de Caso: a aplicação Cockpit
  23. 23. O Estudo de Caso: a aplicação Cockpit
  24. 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. 25. O Estudo de Caso: a aplicação Cockpit
  26. 26. O Estudo de Caso: a aplicação Cockpit
  27. 27. O Estudo de Caso: a aplicação Cockpit
  28. 28. O Estudo de Caso: a aplicação Cockpit https://github.com/fgsl/swagger-docs
  29. 29. Extensões para o Mezzio https://github.com/fgsl/microserviceframework
  30. 30. Extensões para o Mezzio https://github.com/fgsl/microserviceframework
  31. 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. 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. 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. 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. 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. 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. 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. 38. Uso de Mezzio com Swoole https://www.swoole.co.uk/docs/
  39. 39. Uso de Mezzio com Swoole https://www.zimuel.it/slides/phpday2018/expressive_swoole#/
  40. 40. Uso de Mezzio com Swoole https://blog.vivaweb.net/2020/08/25/php-assincrono-e-mais- rapido-que-nodejs-com-swoole/
  41. 41. Uso de Mezzio com Swoole https://docs.mezzio.dev/mezzio-swoole/
  42. 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:
  43. 43. Obrigado! www.fgsl.eti.br

×