Criando aplicações Serverless (AWS) usando PHP!

É importante notar que esse exemplo pode ser melhorado, pois é um exemplo introdutório e pretendo trazer mais conteúdo desse tipo com mais exemplos, consumindo por exemplo recursos dos provedores de nuvem, como SQS pra filas, S3 pra Storange, etc.

As aplicações Serverless estão se tornando cada vez mais populares devido à sua capacidade de escalar automaticamente e reduzir os custos operacionais.

PHP é uma linguagem de programação amplamente utilizada para desenvolvimento web e pode ser usada para criar aplicações Serverless eficientes e escaláveis.

Utilizando desse tipo de abordagem ao prover uma aplicação PHP com Serverless, nós temos um ganho bem grande em tempo, dinheiro e principalmente, escalabilidade.

Contudo, com isso, deixaremos, por exemplo, de pagar um preço fixo em uma hospedagem, com muitas vezes um tamanho fixo e pequeno de recursos, como memória e processamento. Além da configuração ser bem mais trabalhosa e custar bem mais esforço numa hospedagem tradicional.

Meu exemplo utilizará PHP versão 8.1 e o pacote Bref. Também utilizaremos Laravel.

Para dar início, é importante ter o ambiente PHP configurado com Composer, e também o Node.js instalado, para garantir que nosso tutorial flua.

Primeiramente, deveremos instalar o CLI do Serverless Framework, usando o seguindo comando NPM:

npm install -g serverless

É importante notar que o Bref é compatível somente com versões acima da 3 do Serverless Framework(que é a versão atual).

Tenha em mãos as credenciais da AWS para que conseguimos prosseguir com o tutorial, onde terá que configurar o Serverless com suas credenciais com o seguinte comando:

serverless config credentials --provider aws --key <key> --secret <secret>

Com isso, iremos criar um projeto comum com Laravel, usando o comando do create-project pelo composer:

composer create-project laravel/laravel laravel-serverless-boilerplate

Bref

Com seu novo projeto aberto, instale o Laravel Bref usando o composer:

composer require bref/bref bref/laravel-bridge --update-with-dependencies

Agora, com o Bref instalado, você terá disponível dentro de teu vendor, os executáveis do Bref, sabendo disso, iremos rodar o comando de inicialização do Bref:

php artisan vendor:publish --tag=serverless-config

Deploy

Enfim, chegamos até a reta final, a implantação dessa ideia. Para botar no ar, bastará rodar os comandos abaixo:

Não queremos fazer deploy de caches "dev" que foram gerados em nossa máquina (porque os caminhos serão diferentes no AWS Lambda). Vamos dar uma limpada antes de subir:

php artisan config:clear

Ao executar no AWS Lambda, o aplicativo Laravel armazenará automaticamente em cache sua configuração durante a inicialização. Você não precisa executar php crafter config:cache antes de implantar.

serverless deploy

Quando terminar, o comando deploy mostrará a URL do aplicativo.

Saiba que isso é o básico, essa configuração Serverless é mínima e pode ser estendida e adaptada às tuas necessidades. Portanto, se deseja fazer deploy para produção ou aprender mais sobre Serverless, me siga no YouTube para mais conteúdo, (eu desejo criar mais conteúdo relacionado)

Links