Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modernizando projetos legados usando APIs

686 views

Published on

Nesta palestra vou mostrar os desafios para modernizar um projeto usando conceitos como API Gateway, Webhooks e eventos. Vou apresentar o caso de sucesso de um de nossos clientes e como resolvemos estes e outros desafios usando Zend Expressive 2, containers e testes automatizados.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Modernizando projetos legados usando APIs

  1. 1. Modernizando projetos legados usando APIs Elton Minetto http://eltonminetto.net @eminetto
  2. 2. Case Winker
  3. 3. Características → Desenvolvido com Yii 1.x e Lumen → ~5 anos de desenvolvimento → ~160k linhas de código → ~70% de cobertura de testes → PHP 5.X → Estrutura usando containers e AWS
  4. 4. Problemas → Crescimento da empresa gera novos desafios de velocidade de entrega → Framework antigo e difícil de manter
  5. 5. Requisitos do projeto → Modernizar a stack → Lançar uma API pública para aumentar o alcance do negócio → Lançar um portal de desenvolvedores → Transformar o projeto em uma plataforma
  6. 6. Arquitetura proposta
  7. 7. "[...]developers have used virtualized machine images or container images with Docker containers to create immutable images of legacy systems and their configurations. The intent is to contain the legacy in a box for developers to run locally and remove the need for rebuilding, reconfiguring or sharing environments" https://www.thoughtworks.com/pt/radar/ techniques
  8. 8. Ferramentas usadas → Zend Expressive 2 → Docker → AWS Elastic Beanstalk → AWS SQS → Bernard - abstração de filas → Fractal - transformação de dados → Monolog + Sentry - centralização de logs
  9. 9. Ferramentas usadas → Doctrine - ORM → API Blueprint → aglio - documentação da API → dredd - testes de API → drakov - mock de API → phpunit - testes unitários/integração → prooph - event bus
  10. 10. Estágio Atual do projeto → Integração entre o legado e a nova API implementada → Lançado o primeiro aplicativo externo conectado à nova arquitetura → Legado rodando com PHP 7
  11. 11. Lições aprendidas → Testes unitários e de integração são cruciais → Containers para isolar as versões tornaram o processo mais fácil → Conflitos entre Amazon Elastic Beanstalk + Docker Compose foram mais complexos do que o esperado → Middlewares (Zend Expressive 2) aceleram o desenvolvimento
  12. 12. Lições aprendidas → Começar pela definição da API foi uma boa decisão → API Blueprint foi uma boa decisão → Bernard foi uma boa decisão → Trabalhar com filas/processamento paralelo é complexo
  13. 13. Próximos passos → Lançamento do Portal de Desenvolvedores → Desenvolvimento do componente Input hooks
  14. 14. Perguntas
  15. 15. Contato http://eltonminetto.net http://coderockr.com http://codenation.com.br http://asemanaphp.com.br

×