A maioria dos apps web pode operar em um único servidor
- A impressão ao acompanhar a cena de desenvolvimento web é que muitos sites e apps não precisam de uma infraestrutura complexa, e a maioria dos sites e apps recebe menos de 10 requisições por segundo, chegando a 50 em dias mais movimentados.
- Ter endpoints espalhados pelo mundo reduz a latência, mas como ainda é preciso acessar os dados, isso perde o sentido se, mesmo com o cliente a 20 ms de distância, o banco de dados estiver a 200 ms desse endpoint.
- Cache é útil, mas isso pode ser obtido com CDN ou com cache HTTP simples. Se você publicar os novos arquivos na CDN após uma atualização, na maioria dos casos o site inteiro pode operar a partir da CDN.
- Alguns endpoints de API podem ser necessários para funcionalidades dinâmicas, mas isso pode ser resolvido, por exemplo, com JavaScript.
- A maioria dos projetos pode rodar em contêineres em um VPS de US$ 5, e isso pode até ser mais rápido.
Opinião do GN⁺
- Este artigo oferece uma visão crítica sobre o uso excessivo de infraestrutura no desenvolvimento de apps web. Ele aponta que muitos apps web, na prática, podem operar perfeitamente com uma infraestrutura simples, lembrando engenheiros de software iniciantes da importância de evitar o uso excessivo de recursos ao montar a infraestrutura e de usar apenas o necessário.
- O artigo também enfatiza a importância de cache e CDN, elementos centrais para melhorar o desempenho de apps web. Isso sugere que desenvolvedores web devem considerar estratégias de cache para otimização de performance.
- Quando um app web é pequeno ou não tem muito tráfego, pode ser mais custo-efetivo considerar um único servidor ou um serviço de nuvem simples, em vez de um sistema distribuído complexo. Isso se aplica especialmente a startups ou projetos pequenos.
- O artigo recomenda que desenvolvedores web sejam criteriosos nas escolhas tecnológicas e selecionem a infraestrutura de acordo com as necessidades reais do projeto. Isso ajuda a não seguir tendências tecnológicas apenas por modismo e a buscar um desenvolvimento voltado para necessidades concretas.
- Sob uma perspectiva crítica, o artigo pode não se aplicar a grandes apps web ou serviços que precisam lidar com tráfego em larga escala. Portanto, é importante reconhecer que a escolha adequada de infraestrutura depende do porte e dos requisitos do projeto.
1 comentários
Comentários do Hacker News
Um usuário confirmou que, quando seu projeto foi para a primeira página do Hacker News (HN), até um droplet de 5 dólares da Digital Ocean conseguiu lidar bem com o tráfego. Ele argumenta que, para a maioria dos projetos, basta distribuir horizontalmente a carga ao longo do tempo usando respostas assíncronas e agendadores/filas. Também critica a nova cultura de DevOps por ter tornado a implantação de apps na nuvem mais complexa e aponta que não há necessidade de escalar em excesso software simples.
O Standard Ebooks entrega um volume considerável de pageviews e ebooks por mês e, mesmo tendo ido para a primeira página do HN de 3 a 4 vezes, lida com tudo em uma única VPS de 4 GB. Diz que só fez upgrade de 2 GB para 4 GB porque precisava de mais RAM para criar o ebook de Decline and Fall of the Roman Empire; caso contrário, um servidor de 2 GB também teria sido suficiente. Forneceu um link para um post no blog sobre isso.
Um usuário comentou que, fora o motivo de ter escolhido k8s para aprender k8s, não havia razão para usar k8s, e reclamou que por causa do k8s ele nem consegue ver os logs do servidor. Ele afirma que um plano de 5 dólares da Cloudflare teria dado conta.
Foi mencionado que o sqlite.org processa mais de 500.000 requisições HTTP por dia e entrega cerca de 200 GB de conteúdo usando um Linode de 40 dólares por mês. O argumento é que, se o seu app não processa mais requisições que o sqlite.org, não há necessidade de pagar mais do que isso.
Um usuário compartilhou que opera vários web apps processando cerca de 10.000 requisições por dia, rodando o backend de graça com o Oracle Free Tier e implementando a integração do frontend gratuitamente por meio de tunelamento e Pages da Cloudflare.
Foi mencionado que uma pessoa roda vários aplicativos em um único servidor de 5 euros, incluindo um site pessoal, dois servidores de jogos multiplayer e frp para tunelamento, e planeja adicionar mais coisas até o servidor não aguentar mais. Também diz que outros aplicativos funcionam bem em VMs de 5 euros.
Um usuário compartilhou a experiência de ter gasto 4 vezes mais tempo com arquivos do Terraform do que escrevendo funcionalidades reais. A empresa em questão recebia menos de 1.000 acessos por dia.
Um usuário mencionou que uma VPS de 4 dólares por mês pode processar milhares de queries por segundo e forneceu um link relacionado.
Foi apontado que a maioria dos web apps pode rodar em uma única máquina, mas a maioria dos clientes espera quase 100% de uptime, e uma única máquina não consegue atender a esses requisitos.
Um usuário discordou no caso de web apps básicos que não precisam de sistemas complexos, afirmando que até empresas como FAANG rodam serviços internos e dashboards em um único binário, mas que, quando downtime se traduz diretamente em prejuízo, passa-se a reconhecer a necessidade de sistemas complexos.