Back-End

16 out, 2017

Laravel Forge + Envoyer + Managed Hosting = Nucleus

Publicidade

Tenho gostado muito de usar o Laravel ultimamente. Um framework moderno do PHP, que vem com filas, um componente CLI, padrões decentes e um ecossistema de pacote incrivelmente grande, não menos importante, pelos rapazes do Spatie que publicam uma tonelada de seu trabalho on-line.

O que sempre me fascinou no ecossistema Laravel, é que o criador, Taylor Otwell, viu o panorama mais alargado do desenvolvimento de aplicativos. Não se trata apenas de escrever código, é sobre a execução de infraestrutura para suportá-lo (Laravel Forge), implantação de código confiável (Laravel Envoyer), gravação de testes de manutenção (Laravel Dusk). Tudo está perfeitamente embalado e disponível.

Forge: uma alternativa de hospedagem gerenciada

Com a Forge, todos podem criar um servidor otimizado Laravel em provedores como: Digital Ocean, Linode ou Ocean em poucos minutos. Uma VM é implantada, uma configuração é escrita e você pode SSH e git clone para começar.

Enquanto eu vejo o apelo, o sysadmin/administrador de sistemas em mim se pergunta;

  • Quem monitora esses servidores? Se MySQL falhar às 23h, quem o conserta?
  • Quem cuida das atualizações? As atualizações de segurança são auto aplicadas (um padrão saudável), mas quem cuida das atualizações do pacote?
  • Quem lida com a segurança das máquinas? Você sabe o que está sendo executado/o que está em funcionamento? Você conhece suas configurações? O que você está expondo? Quais versões você está executando?
  • Quem cuida dos backups dos bancos de dados e arquivos? Quão regularmente eles são armazenados? Eles são copiados offsite/em lugares externos?
  • Quão rápido você consegue se levantar e executar novamente se um servidor falhar? Ou se ele acidentalmente é excluído?

Então, em geral: quem administra esse servidor Forge?

Temo que, para muitos sites implantados via Forge, não há ninguém que esteja gerenciando esse servidor ativamente. Isso é uma pena, porque mesmo que o padrão da Forge esteja OK, um dia você irá desejar que seu site/servidor fosse realmente gerenciado por uma equipe que entendesse de hospedagem e servidores. E é aí onde nós entramos.

No Nucleus, nos especializamos em hospedagem gerenciada e configurações de servidor customizadas. E temos um modelo pré-construído específico para executar aplicativos Laravel. Gerenciamos todas as configurações, cuidamos de backups, suporte 24/7 e intervenções, monitoramento e gráficos de sua capacidade de CPU/memória/disco, relatórios mensais de tempo de atividade, etc.

Se você está procurando por Managed Laravel Hosting/Hospedagem Gerenciada Laravel venha conversar conosco. Nossos servidores otimizados com Laravel já são pré-configurados com tudo o que você precisa, como o PHP 7.1, Redis, o cron/cronograma schedule:run,  trabalhadores de supervisão, uma configuração .env pré-gerada, um script de implantação, compositor/fio pré-instalado, acesso SSH,… Bem, tudo o que você precisa para executar Laravel de forma confiável.

Implante com a facilidade do Envoyer, adaptado aos nossos servidores

Eu admitirei, nossa configuração do servidor é ligeiramente diferente daquela da Forge. Penso que ela é melhor em algumas maneiras críticas, e é por isso que adaptamos o mecanismo de implantação à nossa configuração.

Para iniciantes, executamos o CentOS no último Ubuntu, para a estabilidade. Mas combinamos isso com pacotes modernos, para que você obtenha PHP 7.1, MariaDB 10.2, Redis 4 e todos os outros pacotes atualizados pelos quais você esperaria.

Também executamos vários pools mestre PHP-FPM para melhor eficiência de OPCache, múltiplas instâncias do Redis, firewall rígido, um layout de diretório de opinião (mas comprovado),… Todas as coisas que influenciam levemente sua implantação. Para facilitar isso, publicamos um pacote Laravel simples para ajudar a cuidar de suas implantações.

Para instalar, execute esses dois comandos no seu aplicativo Laravel;

$ composer require nucleus/laravel-deploy
$ php artisan vendor:publish --provider=Nucleus\\Deploy\\DeployServiceProvider

Depois disso, a implantação em seu(s) servidor(es) do Nucleus é tão simples quanto:

$ php artisan deploy

É isso aí.

A implantação lê alguns parâmetros da sua configuração .env (como host, nome de usuário, sua localização do repositório git, etc.) e lida com o resto.
Ela usa o pacote nucleus/laravel-deploy, cuja fonte está no Github. Os comentários são mais do que bem-vindos! É apenas uma versão 1.0 por agora, planejamos ampliar a funcionalidade com hooks HipChat/Slack, notificações melhores, suporte a vários servidores e qualquer outra sofisticação que possamos criar.

Não gosta da forma como se implanta? Mude isso. É um modelo Laravel Blade, fácil de ler, fácil de estender. Baseia-se no script de implantação do Spatie, sintonizado em nossa pilha.

Facilidade de uso + estabilidade + qualidade = Nucleus

Ok, parece um BS de marketing, eu concordo.

 

***

Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/laravel-forge-envoyer-managed-hosting-nucleus/