Een wilde eerste maand: Een Mastodon-instance met 25.000 gebruikers schalen op Kubernetes

Toen de Twitter-uittocht begon, greep ik de kans om mijn eigen Mastodon-instance, toot.community, te hosten. Deze post beschrijft de wilde eerste maand van het snel opschalen van 60 naar meer dan 25.000 gebruikers met Kubernetes, de uitdagingen onderweg, en hoe we de setup uiteindelijk open-source hebben gemaakt.

Het is moeilijk te geloven dat er al een hele maand voorbij is sinds ik in de wereld van Mastodon serverbeheer stapte. Zoals veel tech-enthousiastelingen was ik geïntrigeerd toen de overname van Twitter door Elon een massale zoektocht naar alternatieven ontketende. Mastodon, met zijn gedecentraliseerde belofte – waarbij iedereen en niemand eigenaar is van het platform – voelde als de toekomst.

Omdat ik wel houd van een technische uitdaging, besloot ik mijn eigen instance op te zetten. Wat ik niet volledig had voorzien, was de pure snelheid van de uittocht. De eerste week was... intens. Als ik het me goed herinner, verliep het aantal gebruikers ongeveer zo:

  • 4 november: 60 gebruikers
  • 5 november: 600 gebruikers
  • 6 november: 6.000 gebruikers
  • 7 november: 15.000 gebruikers

Het groeide waanzinnig snel. Tegen de 7e voelde het echt als alle hens aan dek. Gelukkig had ik, met mijn dagelijkse werk dat om Kubernetes draait, vanaf dag één besloten om de Mastodon-infrastructuur hiermee op te bouwen. Die beslissing heeft de instance waarschijnlijk gered, maar het betekende niet dat alles vlekkeloos verliep. Een groot deel van die eerste week was een waas van haastig zoeken naar grotere databaseservers, zwaardere node pools en het continu optimaliseren van alles.

Het werd snel duidelijk dat dit te veel was voor één persoon die ook nog een dagtaak heeft. Ik schakelde de hulp in van mijn goede vriend Mijndert Stuij – samen hebben we meer dan 25 jaar ervaring met het beheren van online software op grote schaal, en zijn hulp was van onschatbare waarde.

Toen de boel begon te stabiliseren, wisten we dat we wilden delen wat we hadden geleerd en gebouwd voor mijn instance, toot.community. Mijndert heeft onze infrastructuur-setup nauwgezet vertaald naar Terraform, terwijl ik me concentreerde op het opschonen van de Kubernetes-manifesten zodat ze gemakkelijk deelbaar waren.

Nu, na een volle maand van verfijnen, testen en documenteren, ben ik superblij te kunnen zeggen dat onze infrastructuur en configuratie open-source zijn en klaar voor de wereld:

We hebben ook een meer gedetailleerde post geschreven over het open-sourcing proces op de blog van de instance: blog.toot.community/posts/open-sourcing-toot-community/

Het was een wilde, soms stressvolle, maar uiteindelijk zeer lonende eerste maand. Het draaien van een grote Mastodon-instance op Kubernetes is absoluut haalbaar, en hopelijk helpt het delen van onze setup anderen bij hun eigen schaalavonturen.