6 pontos por GN⁺ 22 일 전 | 1 comentários | Compartilhar no WhatsApp
  • Um caso de migração de um blog pessoal para o bunny.net para reduzir a dependência centralizada do Cloudflare
  • O bunny.net é um serviço europeu de CDN com sede na Eslovênia, oferecendo desempenho rápido globalmente e uma rede de PoPs eficiente
  • Para registro de domínio, foi usado o Porkbun, e o recurso “Orange Cloud” do Cloudflare foi migrado para o ambiente do bunny.net
  • A CDN foi configurada por completo com etapas como Pull Zone, política de cache, certificação SSL e Edge Rule
  • Só com recursos básicos como proteção contra DDoS, Origin Shield e Stale Cache, já se mostra estável e pode ser uma alternativa prática ao Cloudflare para usuários individuais

Migrando do Cloudflare para o bunny.net

  • Um resumo do processo e das configurações usadas para migrar um blog pessoal para o bunny.net a fim de reduzir a dependência do Cloudflare e os problemas de centralização
    • O Cloudflare oferece recursos poderosos gratuitamente, mas a dependência de uma única empresa cresce e, em caso de falha, pode afetar a internet como um todo
    • O desconforto com a concentração da internet em empresas dos EUA e várias controvérsias levou à busca por uma alternativa

Visão geral do Bunny.net

  • O bunny.net é uma empresa europeia com sede na Eslovênia que oferece um serviço de CDN capaz de competir com o Cloudflare
    • Apresenta alto desempenho e velocidade no mundo todo, e embora a rede de PoPs seja menor, ela é eficiente
    • Também é visto de forma positiva por apoiar o crescimento do ecossistema tecnológico europeu

Saindo do Cloudflare

  • O Cloudflare era usado como registrador do domínio do blog, mas foi difícil encontrar uma alternativa dentro da Europa
    • O INWX foi descartado por não oferecer privacidade WHOIS gratuita, e foi escolhido o Porkbun
    • O Porkbun usa infraestrutura do Cloudflare, mas a qualidade do suporte é excelente
  • O recurso “Orange Cloud” do Cloudflare (cache automático, ocultação da origem e funções de proteção) foi migrado para o bunny.net

Etapas de configuração do Bunny.net

  • Criação da conta

    • Ao se cadastrar, são oferecidos US$ 20 de crédito por 14 dias, e mais US$ 30 ao registrar um cartão de crédito
    • Após a verificação de e-mail, já é possível configurar o serviço, com cobrança por uso (mínimo de US$ 1 por mês)
    • A estrutura muda para uma em que “o usuário é cliente, não o produto”
  • Criação da Pull Zone

    • É o componente principal para ativar a CDN, conectando o servidor ao definir a Origin URL
    • Se estiver operando vários apps, defina o domínio no cabeçalho Host
    • É possível escolher a camada Standard e configurar Zones com preços diferentes por região
    • Usuários de regiões desativadas são redirecionados para a Zone ativa mais próxima
  • Conectando a Pull Zone

    • Em “Add a custom hostname”, insira o domínio do site
    • Siga as instruções para adicionar um registro CNAME e conectar o caminho da CDN (no formato website.b-cdn.net)
    • Após a propagação do DNS, clique em “Verify & Activate SSL” para concluir a certificação SSL
    • Quando der certo, o site passará a ser servido pela CDN do bunny.net

Configuração de cache

  • Se o site retornar corretamente o cabeçalho Cache-Control, o bunny.net irá respeitá-lo
    • Em “Caching → General”, verifique a opção “Respect origin Cache-Control”
    • Se no-cache estiver definido, não haverá cache
  • Se não houver cabeçalhos de cache, o recurso Smart Cache armazenará automaticamente apenas imagens, CSS, JS etc.
  • Em um blog baseado em Elixir Phoenix, foi adicionado um middleware de cabeçalho de cache customizado ao pipeline public
    • Com a configuração cache-control: public, s-maxage=86400, max-age=0, até as páginas HTML passam a ser armazenadas em cache
    • Ao publicar um novo post, é necessário limpar manualmente o cache da Pull Zone para refletir o HTML mais recente
  • Medições feitas com a ferramenta Larm confirmaram melhora no tempo de resposta em vários locais do mundo

Configurações básicas recomendadas

  • Ative “Force SSL” para forçar todas as requisições a usarem HTTPS
  • A proteção contra DDoS já vem habilitada, e ativar adicionalmente o Origin Shield reduz a carga no servidor
    • Escolha uma localização próxima da origem para centralizar o cache, e os servidores de edge consultarão primeiro o Origin Shield
  • Com as opções “Stale Cache: While Origin Offline / While Updating”
    • o conteúdo em cache continua sendo entregue mesmo se a origem sair do ar
    • durante atualizações, o cache anterior pode ser servido temporariamente
  • Adicione uma Edge Rule para redirecionar o domínio gerado automaticamente da pull zone para o domínio real
    • Nome da regra: “Default domain redirect”
    • Ação: Redirect, código de status 301
    • Condição: ao receber uma requisição para *://<slug>.b-cdn.net/*, redirecionar para https://jola.dev{{path}}

Encerramento e avaliação

  • Esta configuração cobre apenas os recursos básicos do bunny.net, e ainda não aborda Edge Rules, configuração avançada de cache, Security Shield, streaming de vídeo, Edge Scripting e Edge Containers
  • As estatísticas, logs e métricas do painel são muito detalhados, permitindo rastrear por requisição se houve cache e quais problemas ocorreram
  • No futuro, todos os serviços devem ser migrados para o bunny.net, com expectativa pelo lançamento de um storage compatível com S3
  • Mesmo para usuários individuais, é uma opção suficientemente competitiva como alternativa ao Cloudflare

1 comentários

 
GN⁺ 22 일 전
Comentários do Hacker News
  • Se é um post de blog positivo, para haver divulgação transparente, seria bom deixar explícito que todos os links da página apontam para o Bunny Affiliate Program

    • Percebi que tinha colocado links demais e removi alguns. Só adicionei porque achei interessante que a Bunny tem um programa de afiliados, não foi algo escondido de propósito
    • Não sou especialista em direito, mas deixar de divulgar recomendações com compensação pode violar as diretrizes da FTC. Parece que há regras parecidas não só nos EUA, mas também no Reino Unido
  • Eu uso bunny.net para CDN e DNS
    Como sempre existe a insegurança de que serviços gratuitos possam virar pagos algum dia, acho melhor já pagar um valor pequeno desde o começo. Subir de US$2 para US$3 tudo bem, mas passar de grátis para US$20 é arriscado
    Além disso, prefiro empresas pequenas e independentes que se importam com desenvolvedores. Por isso uso bunny.net, transistor.fm e Plausible Analytics

    • Nesses casos, é só migrar para outro provedor. CDN e DNS quase não têm vendor lock-in; basta exportar a configuração e importar em outro lugar
    • Pensando de forma lógica, o mais provável é que a Cloudflare faça apenas ajustes como reduzir a cota gratuita. Na prática, eles tendem a evitar políticas de preço mutuamente destrutivas. Ainda assim, usar empresas pequenas continua sendo uma boa escolha
    • Serviço gratuito no fim acaba ajudando o fornecedor, então o usuário tende a virar o “produto”. Quando você paga, a troca de valor fica clara
    • Mas serviços pagos também podem ter aumentos bruscos de preço ou mudanças de condições
    • Eu também uso bunny.net pelo mesmo motivo. É também para manter a diversidade do ecossistema da internet
  • Eu opero um SaaS com Cloudflare Workers + Pages. A experiência de desenvolvimento é muito boa porque dá para implantar funções serverless e sites estáticos no mesmo repositório
    Mas recentemente enfrentei um problema em que o cache de borda do CDN continuava servindo HTML antigo mesmo depois do deploy. É difícil de depurar, e você fica tendo que adivinhar qual camada de cache está causando o problema
    Ainda assim, para começar no tier gratuito, é excelente. Com Workers, Pages, KV e R2, dá para rodar um app de produção quase de graça

    • A maior vantagem da Cloudflare é o wrangler CLI. Usando com Claude Code, dá para automatizar totalmente configuração e depuração
    • A Bunny tem recursos parecidos também. Oferece API compatível com SQLite e funções de borda. Eu criei a ferramenta gratuita dnsisbeautiful.com/global-http-availability por causa de problemas de depuração por região
    • Eu também tive o mesmo problema de cache, e houve quem compartilhasse um script para resolver isso
    • A Bunny não tem tier gratuito, mas funciona em modelo pré-pago, então não há risco de cobrança surpresa. Gosto do fato de não existir a possibilidade de chegar uma conta de centenas de milhares de dólares por um pico de tráfego
    • Nós configuramos para o CI limpar o cache automaticamente após o deploy. Mesmo assim, por causa do atraso na propagação do cache, conteúdo stale pode acabar sendo armazenado em cache de novo
  • A Cloudflare agora não é apenas um CDN, mas uma plataforma de edge. Se for fácil migrar para a Bunny, então você provavelmente não estava usando os recursos realmente centrais da Cloudflare
    É uma pena que ela não dê suporte adequado a padrões como WinterTC. Usar uma função serve proprietária, como no BunnySDK, é um lock-in proprietário ainda pior

    • Só para constar, a plataforma de edge da Cloudflare também é bastante fechada
    • O WinterTC não especifica a forma de iniciar um servidor HTTP. No mínimo, exige apenas as interfaces Request/Response da Fetch API
  • Nós usamos a Bunny para várias finalidades e estamos muito satisfeitos. Em especial, a qualidade do suporte é excelente. A Cloudflare é boa, mas tem limitações se você não tiver suporte enterprise pago. A UpCloud também tem suporte ótimo

  • A frase “Cloudflare é um ponto único de falha da internet” aparece bastante, mas na prática a questão é mais complexa
    Se serviços menores forem usados de forma mais diversa, a distribuição das falhas pode mudar. Em compensação, pode haver falhas menores com mais frequência
    Além disso, a infraestrutura da Cloudflare não é totalmente centralizada. Alguns serviços são independentes por região

    • Mas usar um único provedor continua sendo um ponto único de falha. Se você quer resiliência de verdade, precisa usar vários provedores em paralelo. Ou seja, operar seu próprio servidor de origem e usar CDN só no mínimo necessário
  • Eu migrei para a Bunny há um ano e estou muito satisfeito. Também gosto de poder oferecer suporte a um CDN baseado na UE, e com o Magic Containers dá para operar uma API escalável globalmente por algo na faixa de US$1 por mês

    • O Magic Containers é especialmente adequado para projetos pequenos. Ele oferece algo parecido com Cloudflare Durable Objects por um custo bem menor
  • Este post pode parecer publicidade, mas na verdade foi apenas um compartilhamento de experiência. Os links de afiliado estavam sinalizados, sem intenção de esconder nada

    • A crítica de que “você saiu de um ponto único de falha para outro” é um mal-entendido. O autor não estava preocupado com o próprio site, mas com a centralização da internet como um todo. A Bunny é uma alternativa a uma estrutura centrada nos EUA
    • Algumas pessoas denunciaram esta thread como spam
  • Uma coisa a se observar é que, em instituições de ensino e afins, o domínio *.b-cdn.net costuma ser bloqueado com frequência

    • Nós também tivemos problemas ao usar Cloudflare R2 como CDN: em alguns órgãos governamentais europeus, os assets eram bloqueados. Depois que migramos para a Bunny, tudo foi resolvido
  • Um ponto negativo é a ausência de hospedagem gratuita. Mesmo com pouco tráfego, é preciso pagar 1 euro por mês (sem VAT)
    Além disso, não há muitos provedores de DNS que suportem CNAME flattening. E a invalidação de cache precisa ser feita duas vezes para refletir corretamente

    • Tem gente que zomba do preço, mas o ponto central não é o valor, e sim a barreira de entrada. O problema é ter que informar um cartão de crédito
    • Também houve reações sarcásticas do tipo “nossa, 1 euro é caro demais”
    • Na verdade, não ter tier gratuito é uma funcionalidade, não um bug. É uma escolha para manter uma estrutura de custos previsível
    • Comparado a serviços gratuitos, mas que caem com frequência, como o GitHub Pages, 1 euro é um valor perfeitamente aceitável
    • No fim das contas, estamos falando de 1,20 euro por mês mesmo