6 points par GN⁺ 22 일 전 | 1 commentaires | Partager sur WhatsApp
  • Exemple de migration d’un blog personnel vers bunny.net afin de réduire la dépendance centralisée à Cloudflare
  • bunny.net est un service CDN européen basé en Slovénie, offrant de bonnes performances mondiales et un réseau de PoP efficace
  • L’enregistrement du domaine passe par Porkbun, et la fonctionnalité « Orange Cloud » de Cloudflare est migrée vers l’environnement bunny.net
  • Le CDN est configuré de bout en bout via des réglages étape par étape comme la Pull Zone, la politique de cache, le certificat SSL et les Edge Rules
  • Avec ses fonctions de base comme la protection DDoS, Origin Shield et Stale Cache, le service est déjà stable et peut constituer une véritable alternative à Cloudflare pour les particuliers

Migration de Cloudflare vers bunny.net

  • Présentation du processus et de la méthode de configuration utilisés pour migrer un blog personnel vers bunny.net afin de réduire la dépendance à Cloudflare et les problèmes de centralisation
    • Cloudflare propose gratuitement des fonctions très puissantes, mais cela renforce la dépendance à une seule entreprise et, en cas de panne, l’impact peut s’étendre à une large partie d’Internet
    • Le malaise face à la concentration d’Internet autour d’entreprises américaines, ainsi que diverses controverses, a conduit à chercher une alternative

Présentation de bunny.net

  • bunny.net est une entreprise européenne basée en Slovénie qui propose un service CDN capable de rivaliser avec Cloudflare
    • Le service affiche de bonnes performances et une grande rapidité à l’échelle mondiale, et même si son réseau de PoP est plus réduit, il reste efficace
    • Le fait qu’il contribue à la croissance de l’écosystème technologique européen est perçu positivement

Sortir de Cloudflare

  • Cloudflare était utilisé comme bureau d’enregistrement du domaine du blog, mais il était difficile de trouver une alternative en Europe
    • INWX a été écarté faute de confidentialité WHOIS gratuite, et Porkbun a donc été choisi
    • Porkbun utilise l’infrastructure de Cloudflare, mais la qualité du support est excellente
  • La fonctionnalité « Orange Cloud » de Cloudflare (mise en cache automatique, masquage de l’origine, fonctions de protection) est migrée vers bunny.net

Étapes de configuration de bunny.net

  • Création du compte

    • À l’inscription, 20 dollars de crédit pendant 14 jours sont offerts, avec 30 dollars supplémentaires en enregistrant une carte bancaire
    • La configuration est possible après validation de l’adresse e-mail, avec une facturation à l’usage (minimum 1 dollar par mois)
    • Passage à un modèle où « l’utilisateur devient un client, et non le produit »
  • Création d’une Pull Zone

    • Élément central pour activer le CDN, permettant de connecter le serveur en indiquant l’Origin URL
    • Si plusieurs applications sont exploitées, il faut définir le domaine dans l’en-tête Host
    • Après avoir choisi le niveau Standard, il est possible de définir des zones aux tarifs variables selon la région
    • Les utilisateurs situés dans une région désactivée sont redirigés vers la zone active la plus proche
  • Connexion de la Pull Zone

    • Saisir le domaine du site web dans « Add a custom hostname »
    • Ajouter ensuite un enregistrement CNAME conformément aux instructions pour relier le chemin CDN (de la forme website.b-cdn.net)
    • Une fois la propagation DNS terminée, cliquer sur « Verify & Activate SSL » pour finaliser le certificat SSL
    • En cas de succès, le site web est alors servi via le CDN de bunny.net

Configuration du cache

  • Si le site web renvoie correctement un en-tête Cache-Control, bunny.net le respecte
    • Vérifier le réglage « Respect origin Cache-Control » dans « Caching → General »
    • Si no-cache est défini, aucun cache n’est appliqué
  • En l’absence d’en-têtes de cache, la fonction Smart Cache met automatiquement en cache uniquement les images, CSS, JS, etc.
  • Sur un blog basé sur Elixir Phoenix, un middleware personnalisé d’en-tête de cache a été ajouté au pipeline public
    • Avec cache-control: public, s-maxage=86400, max-age=0, même les pages HTML sont mises en cache
    • Lors de la publication d’un nouvel article, il faut vider manuellement le cache de la Pull Zone pour refléter le HTML le plus récent
  • Les mesures effectuées avec l’outil Larm ont confirmé une amélioration des temps de réponse depuis plusieurs emplacements dans le monde

Réglages de base recommandés

  • Activer « Force SSL » pour forcer toutes les requêtes en HTTPS
  • La protection DDoS est fournie par défaut, et l’activation supplémentaire de Origin Shield permet de réduire la charge sur le serveur
    • En choisissant un emplacement proche de l’origine, le cache est centralisé et les serveurs edge consultent d’abord Origin Shield
  • Avec les options « Stale Cache: While Origin Offline / While Updating »
    • le contenu mis en cache continue d’être servi même si l’origine est indisponible
    • pendant une mise à jour, l’ancien cache peut aussi être servi temporairement
  • Ajouter une Edge Rule pour rediriger le domaine de pull zone généré automatiquement vers le vrai domaine
    • Nom de la règle : « Default domain redirect »
    • Action : Redirect, code d’état 301
    • Condition : pour toute requête vers *://<slug>.b-cdn.net/*, rediriger vers https://jola.dev{{path}}

Conclusion et évaluation

  • Cette configuration ne couvre que les fonctions de base de bunny.net ; elle n’aborde pas encore Edge Rules, la configuration avancée du cache, Security Shield, le streaming vidéo, Edge Scripting ni Edge Containers
  • Les statistiques, logs et métriques du tableau de bord sont très détaillés, au point de permettre le suivi du cache et des problèmes à l’échelle de chaque requête
  • Une migration progressive de tous les services vers bunny.net est en cours, avec l’attente de la sortie d’un stockage compatible S3
  • Même pour les particuliers, il s’agit d’une option tout à fait compétitive comme alternative à Cloudflare

1 commentaires

 
GN⁺ 22 일 전
Commentaires sur Hacker News
  • S'il s'agit d'un billet de blog positif, il vaudrait mieux indiquer, par souci de transparence, que tous les liens de la page renvoient vers le Bunny Affiliate Program

    • Je me suis rendu compte que j'avais mis trop de liens et j'en ai supprimé certains. Je les ai ajoutés uniquement parce que je trouvais intéressant que Bunny ait un programme d'affiliation, pas pour le cacher volontairement
    • Je ne suis pas juriste, mais ne pas divulguer une recommandation rémunérée pourrait enfreindre les directives de la FTC. Il semble qu'il existe des règles similaires au Royaume-Uni aussi
  • J'utilise bunny.net pour le CDN et le DNS
    Comme je crains qu'un service gratuit finisse un jour par devenir payant, je pense qu'il vaut mieux payer une petite somme dès le départ. Passer de 2 $ à 3 $, ça va, mais passer de gratuit à 20 $, c'est risqué
    En plus, je préfère les petites entreprises indépendantes qui se soucient des développeurs. C'est pour ça que j'utilise bunny.net, transistor.fm et Plausible Analytics

    • Dans ce cas, il suffit de migrer vers un autre fournisseur. Le CDN et le DNS impliquent très peu de dépendance fournisseur : on exporte la configuration et on l'importe ailleurs
    • Logiquement, Cloudflare a surtout de fortes chances de simplement réduire un peu son offre gratuite. En pratique, les acteurs cherchent à éviter des politiques tarifaires mutuellement destructrices. Utiliser une petite entreprise reste un bon choix
    • Les services gratuits finissent souvent par aider davantage le fournisseur, et l'utilisateur devient facilement le « produit ». Quand on paie, l'échange de valeur est plus clair
    • Mais même les services payants peuvent procéder à des hausses de prix soudaines ou modifier leurs conditions
    • J'utilise aussi bunny.net pour la même raison. C'est aussi une manière de préserver la diversité de l'écosystème Internet
  • J'exploite un SaaS sur Cloudflare Workers + Pages. Le fait de pouvoir déployer des fonctions serverless et un site statique depuis le même dépôt offre une expérience développeur très agréable
    Mais récemment, j'ai eu un problème où le cache edge du CDN servait encore un ancien HTML après le déploiement. C'est difficile à déboguer, et il faut deviner quelle couche de cache pose problème
    Malgré tout, pour démarrer avec l'offre gratuite, c'est ce qu'il y a de mieux. Avec Workers, Pages, KV et R2, on peut faire tourner une application de production quasiment gratuitement

    • Le plus grand atout de Cloudflare, c'est le CLI wrangler. Avec Claude Code, on peut automatiser entièrement la configuration et le débogage
    • Bunny propose des fonctionnalités comparables. Ils fournissent aussi une API compatible SQLite et des fonctions edge. J'ai créé un outil gratuit appelé dnsisbeautiful.com/global-http-availability à cause de problèmes de débogage selon les régions
    • J'ai eu le même problème de cache, et quelqu'un avait aussi partagé un script pour le résoudre
    • Bunny n'a pas d'offre gratuite, mais fonctionne en prépaiement, donc il n'y a pas de risque de facturation soudaine. J'aime le fait qu'un pic de trafic ne puisse pas générer une facture de plusieurs centaines de milliers de dollars
    • De notre côté, nous avons configuré la CI pour purger automatiquement le cache après le déploiement. Mais à cause des délais de propagation du cache, du contenu stale peut être remis en cache
  • Cloudflare n'est plus un simple CDN, c'est désormais une plateforme edge. Si on peut migrer facilement vers Bunny, c'est qu'on n'utilisait pas vraiment les vraies fonctionnalités de Cloudflare
    C'est dommage qu'ils ne prennent pas correctement en charge des standards comme WinterTC. Utiliser une fonction serve propriétaire comme dans BunnySDK relève d'une dépendance propriétaire encore pire

    • À noter que la plateforme edge de Cloudflare est elle aussi assez fermée
    • WinterTC ne spécifie pas la manière de démarrer un serveur HTTP. Au minimum, il exige seulement les interfaces Request/Response de la Fetch API
  • Nous utilisons Bunny pour plusieurs usages et nous en sommes très satisfaits. En particulier, la qualité du support est excellente. Cloudflare est bien, mais il y a des limites tant qu'on n'a pas un support enterprise payant. UpCloud offre aussi un excellent support

  • On entend souvent dire que « Cloudflare est un point de défaillance unique pour Internet », mais dans la réalité c'est plus complexe
    Si de petits services sont utilisés de manière plus variée, la répartition des pannes peut changer. En contrepartie, il peut aussi y avoir des pannes plus fréquentes mais de plus petite ampleur
    Par ailleurs, l'infrastructure de Cloudflare n'est pas entièrement centralisée. Certains services sont indépendants selon les régions

    • Mais utiliser un seul fournisseur reste malgré tout un point de défaillance unique. Si l'on veut une vraie résilience, il faut utiliser plusieurs fournisseurs en parallèle. Autrement dit, il faut exploiter son propre serveur d'origine et réduire l'usage du CDN au strict minimum
  • Je suis passé chez Bunny il y a un an et j'en suis très satisfait. J'apprécie aussi le fait de pouvoir proposer un CDN basé dans l'UE, et grâce à Magic Containers, on peut exploiter une API extensible à l'échelle mondiale pour environ 1 $ par mois

    • Magic Containers est particulièrement adapté aux petits projets. Il offre des fonctionnalités similaires à Cloudflare Durable Objects à un coût bien inférieur
  • Cet article peut donner l'impression d'être une publicité, mais il s'agissait en réalité d'un simple partage d'expérience. Les liens d'affiliation étaient signalés, sans intention de les dissimuler

    • La critique du type « on est passé d'un point de défaillance unique à un autre » repose sur un malentendu. L'auteur ne s'inquiétait pas pour son propre site, mais de la centralisation de l'Internet dans son ensemble. Bunny représente une alternative à une structure centrée sur les États-Unis
    • Certains ont signalé ce fil comme du spam
  • Un point à surveiller : dans certains établissements éducatifs, etc., le domaine *.b-cdn.net est souvent bloqué

    • Nous aussi, nous avons utilisé Cloudflare R2 comme CDN et avons rencontré des problèmes où les ressources étaient bloquées dans certaines administrations européennes. En migrant vers Bunny, tout a été résolu
  • Ce qui est regrettable, c'est l'absence d'hébergement gratuit. Même avec peu de trafic, il faut payer au moins 1 euro par mois (hors TVA)
    En outre, il n'y a pas beaucoup de fournisseurs DNS qui prennent en charge le CNAME flattening. Et il faut invalider le cache deux fois pour que ce soit correctement pris en compte

    • Certains se moquent du prix, mais l'essentiel n'est pas le montant : c'est la barrière à l'entrée. Le vrai problème, c'est qu'il faut saisir une carte bancaire
    • Il y a aussi eu des réactions sarcastiques du genre : « 1 euro, c'est trop cher maintenant ? »
    • En réalité, l'absence d'offre gratuite n'est pas un bug mais une fonctionnalité. C'est un choix pour garder une structure de coûts prévisible
    • Comparé à un service gratuit mais souvent en panne comme GitHub Pages, 1 euro est largement un montant acceptable
    • Au final, cela revient simplement à 1,20 euro par mois