Ruby: Implementar em produção
Implemente código Ruby em produção em minutos com a Stackhero
👋 Bem-vindo à documentação da Stackhero!
A Stackhero disponibiliza uma solução Ruby cloud pronta a usar, que oferece várias vantagens, incluindo:
- Implemente a sua aplicação em segundos com um simples
git push.- Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para maior segurança.
- Desfrute de backups automáticos, atualizações com um clique e uma estrutura de preços simples, transparente e previsível.
- Obtenha performance otimizada e segurança reforçada graças a uma infraestrutura privada e dedicada.
Poupe tempo e simplifique a sua vida: bastam 5 minutos para experimentar a solução de Ruby cloud hosting da Stackhero!
O serviço de cloud hosting Ruby da Stackhero facilita colocar os seus projetos Ruby online em apenas alguns minutos. Beneficia de uma plataforma robusta, desenhada para simplificar o processo de deployment e permitir-lhe focar-se na sua aplicação, não na infraestrutura.
Aqui está o que obtém:
- Implemente o seu código com um simples
git push. - Utilize o seu próprio domínio personalizado, com gestão automática de certificados TLS (HTTPS).
- Execute a sua aplicação numa infraestrutura dedicada e isolada, garantindo segurança e privacidade reforçadas.
- Tire partido de HTTP/2, TLS 1.3 (HTTPS), WebSockets, compressão GZIP e Brotli, suporte a ETag, acesso a portas TCP e UDP, entre outras funcionalidades.
Pré-requisitos
Só precisa de ter o Git instalado no seu computador para começar.
<!--  -->Se pretende poupar tempo ou prefere evitar configurar um ambiente local, pode explorar o Code-Hero da Stackhero.
O Code-Hero é um ambiente de desenvolvimento baseado no browser, compatível com qualquer dispositivo. Baseado num fork do VSCode, já inclui as principais ferramentas pré-instaladas e configuradas, permitindo-lhe começar a programar de imediato, sem qualquer configuração.
Passos para implementar na Stackhero
Implementar a sua aplicação Ruby na Stackhero é simples. Eis o fluxo de trabalho, com cada passo explicado em detalhe abaixo:
- Crie um serviço Ruby na Stackhero.
- Adicione a sua chave pública SSH à configuração do seu serviço Ruby.
- Configure o comando
git pushna sua plataforma de desenvolvimento. - Adicione um Makefile ao seu projeto.
- Implemente o seu código em produção.
Se encontrar algum problema durante o deployment, a documentação de Resolução de Problemas é uma forma rápida de encontrar soluções e continuar o processo.
Configurar o seu serviço Ruby
Se ainda não criou um serviço Stackhero for Ruby, pode fazê-lo no seu dashboard Stackhero em apenas alguns minutos.
Assim que o seu serviço Ruby estiver ativo, o próximo passo é adicionar a sua chave pública SSH. Pode visualizar a sua chave pública executando:
cat ~/.ssh/id_*.pub
Ainda não tem chaves SSH?
Pode gerar uma com:
ssh-keygen -t ed25519
Para adicionar a sua chave SSH, aceda ao seu dashboard Stackhero, selecione o seu serviço Ruby, clique em "Configurar" e cole a sua chave pública na secção "Chaves públicas SSH".
<!--  -->Dica: Para poupar tempo no futuro, pode adicionar a sua chave pública SSH ao seu perfil Stackhero. Novos serviços que criar irão incluí-la automaticamente.
Clique na sua foto de perfil no canto superior direito do dashboard, selecione "O seu perfil" e adicione a sua chave pública SSH.
Configurar o comando git push para deployment
A implementação na Stackhero utiliza o CLI do Git e o comando git push, não sendo necessário instalar ferramentas adicionais.
Pode copiar o comando git remote a partir da página principal do seu serviço no dashboard Stackhero. Normalmente tem o seguinte formato:
git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
Criar um Makefile para deployment na Stackhero
Para indicar à Stackhero como executar a sua aplicação, adicione um ficheiro Makefile na raiz do seu projeto. Este ficheiro define os comandos que a Stackhero irá utilizar durante o deployment.
Se não está familiarizado com Makefiles ou com o comando
make, os passos abaixo irão guiá-lo na criação de um Makefile funcional.
Crie um ficheiro Makefile com o seguinte conteúdo:
run:
rake assets:precompile
rake db:migrate RAILS_ENV=production
RAILS_ENV=production bundle exec puma -C config/puma.rb
O que faz este Makefile:
- A regra
runé obrigatória. A Stackhero procura esta regra como ponto de entrada durante o deployment. Mantenha este nome. - O exemplo utiliza
rakeebundle, mas pode ajustar estes comandos conforme a sua aplicação. - Cada linha de comando deve começar com um carácter de tabulação, não espaços. Se vir o erro
*** missing separator, verifique se está a usar tabs.
No exemplo acima, o deployment irá:
- Pré-compilar assets como JavaScript e CSS para o diretório
public/assets. - Executar as migrações da base de dados.
- Iniciar o servidor Puma para servir a sua aplicação.
Implementar a sua aplicação Ruby
Está pronto para implementar. Pode usar:
git push stackhero main
Durante o primeiro deployment, o Git irá pedir-lhe para confirmar a impressão digital da chave SSH. Escreva "yes" para continuar.
Após alguns instantes, a sua aplicação ficará online.
<!--  -->Aceda à sua aplicação implementada através do URL apresentado no seu dashboard Stackhero. O endereço terá o formato https://<XXXXXX>.stackhero-network.com.
A sua aplicação está agora em produção.
Se encontrar dificuldades durante o deployment, a secção de Resolução de Problemas cobre os problemas mais comuns e respetivas soluções.
Conclusão
Viu como implementar código Ruby em produção utilizando a Stackhero, com um processo pensado para ser simultaneamente poderoso e simples.
Para temas avançados, como implementar diferentes branches, tags ou commits do Git, e gerir múltiplos ambientes como staging e produção, consulte a documentação de Usos Avançados de Deployment. Encontrará também dicas para trabalhar com variáveis de ambiente e outras funcionalidades úteis.
Se surgirem dúvidas ou problemas, a documentação de Resolução de Problemas está sempre disponível para o ajudar a manter o seu workflow de deployment fluido e eficiente.