Video thumbnail

    Hospedagem para Node.js, dicas e técnicas | Podcast FalaDev #14

    O episódio do podcast FalaDev #14 aborda tópicos cruciais sobre hospedagem de aplicações, focando em Node.js, mas também explorando front-end e aplicativos móveis. Os apresentadores Diego Fernandes, Guilherme Lizote e Igor Ribeiro compartilham suas experiências e opiniões sobre diversas plataformas e estratégias de deploy. Eles discutem a viabilidade e os custos de serviços como Heroku, DigitalOcean, AWS e Google Cloud Platform, oferecendo insights sobre seus prós e contras, especialmente em termos de facilidade de uso, precificação e escalabilidade. O debate também se estende a métodos de deploy "antigos" como FTP, comparando-os com as práticas modernas de CI/CD e containerização, como Docker e Kubernetes.

    Escolha da Hospedagem para Node.js

    A escolha da hospedagem para aplicações Node.js depende muito do tipo de aplicação. Para Igor Ribeiro, o Heroku é a hospedagem ideal, especialmente devido à sua automação e facilidade de uso, que inclui CI/CD integrado e relatórios de alta qualidade.

    O Heroku é uma hospedagem totalmente automatizada que tu quase não precisa fazer trabalho. Já vem com CI pronto, tem altos relatórios bons, o painel é top. O grande problema do Heroku é a precificação.

    Entretanto, o custo é um fator limitante, com o plano básico para Node.js custando cerca de $17 e para PostgreSQL $7, totalizando cerca de $24, o que o torna inviável para iniciantes ou projetos pequenos. O plano gratuito do Heroku derruba o sistema após cinco minutos de inatividade, exigindo um "cold start" para reiniciar.

    Para quem busca alternativas mais acessíveis ou para aprendizado, a DigitalOcean é sugerida, ou qualquer outro servidor que ofereça planos gratuitos como AWS (12 meses) ou Google Cloud Platform ($300 em créditos). Essas plataformas exigem um pouco mais de gerenciamento, mas oferecem um contato valioso com a infraestrutura.

    Hospedagem de Front-end e Back-end

    Para aplicações front-end, as opções são mais simples e diversas. Plataformas como Netlify e Vercel são altamente recomendadas por sua facilidade de uso, integração com Git e CI/CD embutido. Além disso, qualquer CDN (Content Delivery Network), como os servidores de Google ou AWS, é adequada para servir arquivos estáticos, já que o front-end é executado na máquina do cliente e não no servidor, minimizando problemas de desempenho relacionados ao servidor.

    Já para o back-end, a situação é diferente, pois exige uma infraestrutura que permita escalabilidade e suporte a picos de usuários. As plataformas que oferecem planos gratuitos são ótimas para experimentar e verificar se atendem às necessidades do projeto antes de investir financeiramente. O DigitalOcean é elogiado por seu custo-benefício e por ser um excelente plano de entrada para quem busca um ambiente mais gerenciado. A opção de pagar pelo uso, mesmo que por um servidor de $5 por dia, resulta em poucos centavos, tornando-o ideal para testes.

    Hospedagem de Aplicativos Móveis (Mobile)

    Para aplicativos móveis nativos, o único local de hospedagem são as lojas de aplicativos: Google Play Store e Apple App Store. Diferente do deploy web, onde se envia o código para o servidor, no mobile é necessário gerar um pacote executável (APK para Android e IPA para iOS) que é então enviado às lojas. Essas lojas possuem regras rigorosas para aceitação de aplicativos. A Apple, em particular, é conhecida por seu processo de revisão meticuloso, que inclui testes completos do aplicativo e verificação de cada detalhe, como a presença de texto fictício.

    A Apple é chato para caramba, chato às vezes no bom sentido até. O Google libera qualquer aplicativo, tu manda o aplicativo lá. Eu duvido que eles abram realmente e façam a revisão para ver se o aplicativo é funcional. Já a Apple não, eles pedem acesso, e-mail e senha para logar, testam o aplicativo inteiro.

    Entretanto, estratégias como Over-the-Air (OTA) updates, comuns em aplicações React Native, permitem enviar novas versões do código sem a necessidade de uma nova compilação e envio para as lojas, agilizando o processo de atualização. Isso é possível porque o JavaScript é uma linguagem interpretada, não compilada, facilitando a injeção de código novo em tempo de execução. Ferramentas como CodePush da Microsoft e o próprio Expo oferecem essa funcionalidade, que é um grande diferencial para o desenvolvimento mobile com JavaScript.

    Comparativo de Plataformas: Heroku, DigitalOcean, AWS e Google Cloud Platform

    As plataformas de hospedagem oferecem diferentes experiências e custos:

    Plataforma Facilidade de Uso Precificação Recursos Público Alvo
    Heroku Extremamente fácil, automatizado Caro, plano gratuito limitado CI/CD integrado, bons logs, painel intuitivo Projetos sérios, empresas que podem investir
    DigitalOcean Boa, mais gerenciamento Clara, transparente, acessível VPS, focada em desenvolvedores Iniciantes, projetos de pequeno e médio porte
    AWS Difícil, complexo Pouco transparente, difícil de calcular Vasta gama de serviços, para tudo Projetos grandes, equipes com experiência em DevOps
    GCP Fácil como DigitalOcean, vasta como AWS Melhor que AWS, mas ainda complexo Serviços completos, load balancer global Equipes que buscam um equilíbrio entre facilidade e funcionalidade

    Heroku

    O Heroku é o mais fácil de usar, com deploy automatizado e painel intuitivo. No entanto, sua precificação é alta, impedindo seu uso para projetos de aprendizado. O plano gratuito derruba a aplicação após 5 minutos de inatividade, exigindo um "cold start" para reiniciar.

    DigitalOcean

    A DigitalOcean oferece uma precificação clara e acessível, sendo ideal para iniciantes e projetos menores. Apresenta um custo-benefício excelente para quem quer explorar a parte de infraestrutura gerenciada.

    AWS

    A AWS é um "monstro" de serviços, com soluções para Geolocation, transcrição de vídeo e muitos outros. No entanto, é extremamente difícil de usar e sua precificação é complexa, com dezenas de variáveis que dificultam o cálculo do custo final. Não é recomendada para quem está começando, a menos que o projeto seja grande e conte com um profissional de DevOps dedicado.

    Google Cloud Platform

    O Google Cloud Platform (GCP) é visto como um meio-termo entre AWS e DigitalOcean. Oferece a facilidade de uso do DigitalOcean com a imensidão de recursos da AWS. Um diferencial importante é o Load Balancer Global, que distribui a carga e espelha a aplicação em servidores ao redor do mundo, garantindo baixa latência. Além disso, o GCP opera em reais no Brasil, o que facilita a obtenção de notas fiscais e suporte em português, diferente da AWS que não possui escritório no país.

    O Fim do FTP/FileZilla

    Antigamente, era comum o uso de FTP (FileZilla) para deploy de aplicações. No entanto, essa prática é considerada obsoleta e perigosa atualmente. Os servidores modernos não suportam mais deploy via FTP, e a substituição ideal é o SSH, que permite acesso e gerenciamento via linha de comando. As documentações atuais são claras e facilitam o aprendizado de comandos básicos. O uso de FTP era propenso a erros, como arquivos em branco ou perda de dados devido a falhas de conexão.

    Estratégias de Escalabilidade

    A escalabilidade pode ser feita de duas formas principais:

    1. Escala Vertical

      Significa melhorar os recursos de uma única máquina (adicionar mais RAM, CPU). Era a prática comum em servidores físicos.

    2. Escala Horizontal

      Consiste em replicar o número de máquinas e dividir o processamento entre elas, introduzindo o conceito de load balancer. Plataformas como Heroku já faziam isso de forma automatizada, enquanto na AWS exigia mais configuração manual.

    Com o surgimento da containerização (Docker) e orquestração de contêineres (Kubernetes, Docker Swarm), a escalabilidade se tornou mais "palpável" e bem documentada. Essas ferramentas revolucionaram a área de DevOps, permitindo escalar aplicações de forma "à prova de balas". O Kubernetes é considerado uma ferramenta poderosa, oferecendo um leque enorme de estratégias para escalar.

    Disponibilidade e SLA

    A disponibilidade do serviço é uma preocupação fundamental. A maioria dos planos de hospedagem oferece um SLA (Service Level Agreement) de 99.9%, o que geralmente permite até uma hora de inatividade por mês. Problemas como a queda de um DNS (como ocorreu com o Cloudflare) podem afetar a acessibilidade, mas raramente indicam uma queda da própria hospedagem. Com o crescimento da aplicação e a migração para planos mais robustos, é possível alcançar um SLA de 100%, onde a aplicação nunca deve sair do ar. É crucial que as empresas tenham uma equipe de DevOps para lidar com esses problemas e ter um plano B, como o redirecionamento automático de tráfego para outras regiões, em caso de falha em um servidor. A monitoração de recursos e a adoção de estratégias de escalonamento horizontal e orquestração de contêineres reduzem drasticamente as chances de queda do serviço.

    Takeaways

    1. Escolha da Hospedagem: Para Node.js, Heroku é ideal pela automação, mas caro. DigitalOcean é acessível para iniciantes. AWS e GCP oferecem vasta gama de serviços, com AWS mais complexa e GCP buscando equilíbrio entre facilidade e funcionalidade.
    2. Hospedagem de Front-end vs. Back-end: Front-end idealmente hospedado em CDNs ou plataformas como Netlify e Vercel, pois o processamento ocorre no cliente. Back-end exige infraestrutura robusta e escalável, sendo DigitalOcean e GCP boas opções de entrada.
    3. Deploy de Aplicativos Móveis: Aplicativos nativos são distribuídos via Google Play Store e Apple App Store. A Apple tem um processo de revisão rigoroso. Tecnologias como React Native permitem Over-the-Air updates, agilizando o deploy sem precisar passar pelas lojas novamente.
    4. Fim do FTP: O uso de FTP para deploy é obsoleto e inseguro. SSH e práticas de CI/CD são as alternativas modernas e seguras.
    5. Escalabilidade Moderna: A escalabilidade evoluiu da vertical (melhorar um servidor) para a horizontal (replicar servidores). Containerização (Docker) e orquestração (Kubernetes) são as formas mais eficientes de escalar aplicações atualmente, sendo cruciais para a área de DevOps.
    6. Disponibilidade e SLA: A maioria dos serviços oferece SLA de 99.9%, mas o monitoramento ativo e estratégias de DevOps são essenciais para garantir alta disponibilidade, especialmente em projetos em crescimento.

    References

    This article was AI generated. It may contain errors and should be verified with the original source.
    VideoToWordsClarifyTube

    © 2025 ClarifyTube. All rights reserved.