No mundo acelerado do desenvolvimento de software, os profissionais de programação estão sempre em busca de ferramentas e práticas que possam tornar seu trabalho mais eficiente e produtivo. Nesse contexto, realizar deploys rápidos e confiáveis de aplicações backend é uma necessidade fundamental. Nesse artigo vou te apresentar a plataforma Cyclic que oferece diversas soluções de PaaS (Platform as a service ou Plataforma como serviço) como alternativa a Heroku, que deixou de fornecer planos gratuitos e era uma das plataformas mais utilizadas para deploy de aplicações grátis.
Introdução à Cyclic: o que é e por que escolher essa plataforma de deploy
Seja para testar aplicações em ambientes de produção ou até mesmo para uso profissional de hospedagem, a Cyclic conta com vários planos para cada solução desejada, inclusive um plano gratuito que você pode realizar deploys de aplicações backend, frontend, banco de dados não relacional, bots para slack ou discord e até mesmo 1GB de Storage no Amazon S3.
Alguns benefícios da Cyclic
- Automação simplificada: A Cyclic permite automatizar todo o processo de deploy, eliminando tarefas manuais e repetitivas. Isso resulta em menos erros humanos e maior confiabilidade no deploy das suas aplicações.
- Integração contínua: Com a Cyclic, você pode configurar pipelines de integração contínua (CI) que se integram facilmente ao seu repositório de código. Isso significa que cada vez que você fizer um push para o seu repositório, a cyclic.sh pode acionar automaticamente o processo de build e deploy da sua aplicação.
- Escalabilidade e disponibilidade: A Cyclic suporta o dimensionamento horizontal automático, permitindo que sua aplicação seja escalada de forma dinâmica para lidar com aumentos repentinos de tráfego. Além disso, ela possui recursos de monitoramento avançados para garantir a disponibilidade da sua aplicação.
Pré-requisitos: preparando seu backend para o deploy na Cyclic
Apesar da Cyclic disponibilizar diversos serviços, esse artigo tem como objetivo te auxiliar no deploy de uma aplicação backend utilizando NodeJS.
Todo processo de deploy da Cyclic é automatizado via Github e por isso você precisa ter uma conta no Github, onde o projeto a ser deployado deve estar. O exemplo que utilizarei neste artigo, pode ser encontrado no Github da Cubos Academy e você pode realizar um fork para testar a vontade. A aplicação foi construída utilizando TypeScript e a Cyclic possui suporte para realizar o build da aplicação para JavaScript no momento do deploy, basta que todos os scripts estejam configurados corretamente como mostraremos a seguir.
Configuração da conta na Cyclic
Como todo processo da Cyclic é integrado ao Github, para criar uma conta é necessário que se conecte via Github. O processo é bem simples e basta você autorizar no Github que a sua conta será criada e vinculada ao Github automaticamente. Apesar de vincular a sua conta do Github ao seu cadastro na Cyclic, você tem a opção de autorizar o acesso apenas a repositórios específicos ou a todos os seus repositórios. Veremos esses detalhes a seguir.
Passo a passo do deploy do backend na Cyclic: instruções detalhadas
Ao realizar o login em sua conta na Cyclic, você terá acesso a sua dashboard com todas as informações sobre seus Apps. Cada App representa uma aplicação distinta, deployada na plataforma. Para iniciar o deploy de uma aplicação basta clicar no botão "Deploy Now" ou "New App" conforme imagem abaixo:
A seguir, você terá a opção de escolher um boilerplate da própria Cyclic ou selecionar um projeto diretamente do seu Github. Para selecionar um projeto pessoal da sua conta do Github deve acessar a aba "Link Your Own". Essa será a forma em que usaremos para realizar o deploy do nosso backend.
Ao selecionar a aba "Link Your Own" você terá que encontrar o projeto que deseja deployar no campo de busca. Eventualmente, apenas repositórios públicos ou autorizados por você irá aparecer na lista. Caso ao digitar o nome do repositório, o mesmo não seja encontrado, aparecerá um link para ser adicionado e autorizado pela sua conta do Github, conforme imagem abaixo.
Basta clicar em "Add a private repo…" e abrirá uma janela do Github solicitando para que seja concedido permissão ao repositório desejado ou a todos os repositórios. Apesar de poder conceder permissão para todos os repositórios sugiro que a permissão seja concedida apenas para repositórios que serão deplyados, conforme imagem abaixo.
Ao selecionar o repositório que deseja conceder permissão, basta clicar em "Approve and install". A janela do Github fechará e o repositório pode ser localizado em sua conta na Cyclic. Agora, basta selecionar o repositório e será encaminhado para a página de configurações antes de iniciar o deploy.
É possível definir algumas configurações antes de iniciar o deploy como a versão do Node ou da linguagem que deseja usar para rodar a aplicação, variáveis de ambiente, branch que será mapeada no deploy, entre outras configurações, clicando em "Advanced".
Para o projeto em questão não precisamos de nenhuma configuração adicional, basta clicar em "Connect Cyclic" e o deploy irá começar. Esse procedimento costuma ser rápido, mas o tempo total depende da complexidade de cada aplicação. Durante o processo do deploy, você pode acompanhar cada ação através do console conforme imagem abaixo.
Todo deploy de aplicações backend utilizando o NodeJS, a Cyclic executa por padrão dois scripts que deve existir no arquivo "package.json" da aplicação deployada. Primeiro o script "build", caso sua aplicação seja construída com TypeScript, para transpilar o código para JavaScript e em seguida o script "start" para inicializar a aplicação. Veja o exemplo dos scripts da aplicação deployada a seguir:
"scripts": {
"start": "node ./dist/index.js",
"build": "tsc -p ."
}
Quando o deploy for concluído, a Cyclic irá gerar uma URL (domínio) para que o projeto seja acessado de qualquer lugar com acesso a internet. A URL é randômica, mas é possível registrar um domínio e configurar na aplicação deployada.
Todas as informações da aplicação poderá ser acessada em uma dashboard específica para cada App e para que qualquer alteração na aplicação seja atualizada no deploy, basta realizar os commits e consequentemente o push para a branch deployada que o processo de deploy acontece automaticamente.
Conclusão
Realizar deploys de aplicações backend com Node.js pode ser um processo complexo, mas com a Cyclic, esse processo pode ser simplificado e automatizado gratuitamente. Neste artigo destacamos seus benefícios e as etapas práticas necessárias para configurar e iniciar o deploy. Ao adotar essa plataforma em seu fluxo de trabalho, você poderá economizar tempo, reduzir erros e aumentar a eficiência do seu desenvolvimento.
Perguntas Frequentes:
- Como faço o deploy do meu backend na Cyclic?
Para fazer o deploy do seu backend na Cyclic, você precisa criar uma conta na plataforma e seguir as instruções fornecidas pela documentação. Você precisará fornecer o código do seu backend, configurar as dependências e escolher as opções de implantação adequadas. - Quais tecnologias de backend são suportadas pela Cyclic?
A Cyclic suporta uma variedade de tecnologias de backend, incluindo Node.js, Python, Java, Ruby e Go. Você pode escolher a linguagem que melhor se adequa ao seu projeto e implantá-la na plataforma. - A Cyclic oferece suporte a bancos de dados?
Sim, a Cyclic oferece suporte a uma variedade de bancos de dados, incluindo MySQL, PostgreSQL e MongoDB. Você pode configurar e conectar seu backend ao banco de dados de sua escolha durante o processo de implantação. - Como a Cyclic lida com o dimensionamento e o gerenciamento de tráfego?
A Cyclic oferece recursos de dimensionamento automático, o que significa que sua aplicação pode lidar com um aumento no tráfego de forma escalável. A plataforma monitora o desempenho e a carga do seu backend e ajusta automaticamente os recursos conforme necessário. - Quais são as opções de monitoramento e registro de logs na Cyclic?
A Cyclic fornece ferramentas de monitoramento e registro de logs para ajudá-lo a acompanhar o desempenho e o comportamento do seu backend. Você pode acessar os logs em tempo real e configurar alertas para receber notificações sobre eventos importantes. Além disso, a plataforma oferece métricas detalhadas para análise e solução de problemas.