Você está aqui: Página Inicial > Tema > Artigos & Opiniões > Microservices com Zend Expressive

Notícias

Microservices com Zend Expressive

Artigo

Flávio Gomes da Silva Lisboa é analista de desenvolvimento do Serpro, em Curitiba
Exibir carrossel de imagens Flávio Gomes da Silva Lisboa é analista de desenvolvimento do Serpro, em Curitiba

Flávio Gomes da Silva Lisboa é analista de desenvolvimento do Serpro, em Curitiba

Segundo Richardson (2016), “a ideia da arquitetura de microservices é projetar aplicações grandes, complexas e duráveis em um conjunto coeso de serviços que evoluem ao longo do tempo. O termo microservices sugere fortemente que os serviços sejam pequenos”. Essa arquitetura apresenta diversas vantagens, entre elas: a redução de complexidade das unidades de implementação com consequente aumento de produtividade dos desenvolvedores; a independência de implantação de cada serviço; a independência de cada serviço em aumentar a escala de número de requisições; a possibilidade de atuação independente de vários times de desenvolvimento; a facilitação do isolamento de falhas; e a eliminação de compromisso de longo prazo com a pilha de tecnologia.

A última vantagem abre espaço para os desenvolvedores usarem a melhor tecnologia para cada serviço, no lugar de se restringirem a uma só como são obrigados na implementação de aplicações monolíticas. O foco principal deve ser atender ao cliente com as ferramentas mais adequadas para cada serviço e não tentar ajustar o serviço ao cliente por restrição da ferramenta.

É claro que não se pode jogar as aplicações monolíticas fora de uma hora para outra e deixar o cliente esperando pelos serviços em uma nova arquitetura. Mas é possível implantar microservices de forma lenta, gradual e segura implementando novas funcionalidades como serviços independentes e integrando as funcionalidades existentes a componentes que atuam como interfaces de serviço.

A arquitetura de microservices constitui-se em uma forma adequada de ajustar os recursos para cada serviço de acordo com a necessidade. Em consonância com o modelo de manufatura enxuta, ela permite construir e implantar serviços obtendo a qualidade total imediata (serviços pequenos são mais fáceis de corrigir), a minimização de desperdício (cada serviço usa somente o que precisa), melhoria contínua (cada serviço pode ser evoluído de forma independente), direção dos processos (o serviço pronto é entregue ao cliente e não precisa esperar os outros) e flexibilidade (é possível mudar um serviço sem afetar os demais).

Uma ferramenta livre e aberta que permite não somente a construção de serviços como a sua integração com o padrão de arquitetura API Gateway é o Zend Expressive. Ele permite criar middlewares rapidamente, que tratam requisições a serviços com a implementação mais enxuta possível e permitem agregar funcionalidades complexas em interfaces amigáveis.

Zend Expressive é construído sobre padrões abertos escritos e publicados pelo PHP-FIG, que permitem ao desenvolvedor focar o desenvolvimento nas interfaces, sem ficar prisioneiro de implementações específicas e de seus fornecedores.

Zend Expressive tem quatro pilares para desenvolvimento de serviços e middlewares de integração: roteamento de requisições de forma enxuta, injeção de dependências para fácil manutenção e evolução, construção de interfaces visuais baseadas em templates e gerenciamento de erros por componentes especializados.

A ferramenta permite aplicar os princípios da manufatura enxuta ao não obrigar o desenvolvedor a utilizar todos os 60 componentes que possui. Os times podem construir serviços que contenham apenas os componentes necessários e que consumam apenas os recursos que irão ser utilizados no atendimento das demandas do cliente.

Embora disponha de uma ampla gama de componentes para uso imediato, como autenticação e autorização, cache, captcha, criptografia, acesso a bancos de dados, envio e recebimento de e-mails e webservices, Zend Expressive não está limitado a eles. Pelo fato de seguir os padrões do PHP-FIG, ele é facilmente integrável com qualquer componente disponível no repositório do Composer, o packagist.org, que possui mais de 600 mil pacotes de componentes.

A figura abaixo mostra como a atuação de Zend Expressive é ampla no contexto da implantação de uma arquitetura de microservices.

As atuações de Zend Expressive na arquitetura de microservices


Para saber mais sobre o Zend Expressive, acesse a página do projeto: https://zendframework.github.io/zend-expressive

Para saber mais sobre o Composer, acesse a página: https://getcomposer.org
 

Referências:

  • Richardson, C. Microservices: Decomposição de Aplicações para Implantação e Escalabilidade. Disponível em <https://www.infoq.com/br/articles/microservices-intro>. Acesso em 25/10/2016.

  • WIKIPEDIA. Lean Manufacturing. Disponível em <https://pt.wikipedia.org/wiki/Lean_manufacturing>. Acesso em 25/10/2016. 

 

Flávio Gomes da Silva Lisboa é analista de desenvolvimento do Serpro, em CuritibaFlávio Gomes da Silva Lisboa
É bacharel em Ciência da Computação, especialista em Aplicações Corporativas usando Orientação a Objetos e Tecnologia Java, Zend Certified PHP Engineer, Zend Framework Certified Engineer, Zend Framework 2 Certified Architect, autor pela Novatec Editora, professor de testes unitários na Unicesumar, analista de desenvolvimento da Superintendência de Suporte e Dados e dono do blog romocavaleirodoespaco.blogspot.com.