Teknoloji dünyasında son 10 yıldır sorgulanamaz bir dogma var: "Eğer modern bir şirket iseniz, altyapınız tamamen Cloud'da (Bulutta) olmalıdır." AWS, Google Cloud (GCP) veya Azure... Şirketler, fiziksel sunucu (Bare-Metal) satın almayı veya standart bir VPS kullanmayı neredeyse çağdışı, ilkel bir yöntem olarak görüyorlar.
Bu pazarlama yalanı o kadar başarılı oldu ki, bugün 3 kişilik bir startup bile, günde 100 kişinin gireceği basit bir web sitesini barındırmak için devasa bulut mimarileri kuruyor. Load Balancer'lar, Serverless (Sunucusuz) Lambda fonksiyonları, yönetilen (Managed) Kubernetes kümeleri ve devasa bulut veritabanları... Her şey "ölçeklenebilir" (scalable) olmak zorunda ya hani?
Peki gerçek dünyada ne oluyor? O 3 kişilik startup, daha doğru düzgün para kazanamadan ay sonu gelen $3.500 dolarlık AWS faturasıyla şoka giriyor.
İşte buna sektörde "Cloud Lock-in" (Bulut Tuzağı) diyoruz. Bulut servis sağlayıcıları (Cloud Providers), ilk başta size binlerce dolarlık ücretsiz kredi verirler. Mimarinizi tamamen onlara özgü olan araçlarla (AWS DynamoDB, AWS SQS, Google Pub/Sub vb.) kurmanızı sağlarlar. Uygulamanız bu araçlara tamamen bağımlı hale gelir. Kredileriniz bittiğinde veya sitenizin trafiği gerçekten artmaya başladığında, o kolayca kullandığınız "Managed" servislerin veri transferi (Egress) ve okuma/yazma (Read/Write) ücretleri astronomik rakamlara ulaşır. Artık oradan çıkmanız da imkansızdır, çünkü kodunuz AWS'ye göre yazılmıştır, başka bir yere taşıyamazsınız.
Suku Tech'i yönetirken ve diğer şirketlere DevOps danışmanlığı verirken yaptığım en büyük işlerden biri, şirketleri bu fatura kâbusundan uyandırmak ve onları "Temellere" döndürmektir.
Gerçek şu ki: Şirketlerin %95'i Netflix veya Uber değil. Sizin saniyelik on binlerce isteği karşılayacak, global olarak dağıtılmış devasa bir serverless mimariye ihtiyacınız yok. İhtiyacınız olan şey, aylık maliyeti sabit olan, güçlü birkaç fiziksel (Bare-Metal) veya kiralık sunucu (Hetzner, OVH, DigitalOcean vb.) ve üzerine kurulmuş düzgün bir Docker mimarisidir.
Bugün aylık 100-200 dolara kiralayacağınız sağlam bir Dedicated Server (Özel Sunucu), AWS'de size binlerce dolara mal olacak bir performansı terlemeden verir. Veritabanınızı (PostgreSQL) kendi sunucunuzda tutmak, kuyruk sisteminizi (RabbitMQ/Redis) kendiniz yönetmek "çağdışı" değil; mühendisliktir. Maliyet optimizasyonudur.
Bulut sistemleri kötüdür demiyorum; esneklik gerektiğinde (black friday gibi ani trafik artışlarında) veya globale açılırken hayat kurtarır. Ancak bulut, bir başlangıç noktası (default) değil, bir ihtiyaç noktası olmalıdır. Sadece ay sonunda faturanın ne geleceğini bilememek bile, bir startup kurucusunun uykularını kaçırmaya yeter. Eğer altyapınızı bulutta tutuyorsanız ve faturanız sizi korkutuyorsa, belki de o "çağdışı" denilen fiziksel sunuculara geri dönmenin (Cloud Repatriation) vakti gelmiştir.