Bir yazılımı satmanın en eski yolu, onu müşterinin sunucusuna kurmak ve lisans faturası kesmektir. Son on beş yılda iki kısaltma bu modeli kökten değiştirdi: SaaS ve BaaS. İkisi de çok kullanılan ama sınırları çoğu zaman bulanık kalan kavramlar; bir yatırımcı sunumunda SaaS, bir fintech haberinde BaaS geçer ve ikisinin nerede ayrıldığı nadiren açıklanır. Bu yazı ikisini yan yana koyuyor: ne anlama geliyorlar, ekonomileri nasıl işliyor ve bir yazılım ekibinin çalışma biçimini nasıl değiştiriyorlar.
SaaS: yazılım bir hizmet olarak
Software as a Service, yazılımın satıcının altyapısında çalışması ve müşterinin ona tarayıcı ya da mobil uygulama üzerinden, abonelikle erişmesidir. Kurulum yoktur, sürüm yükseltme yoktur, sunucu bakımı yoktur; hepsi satıcının işidir. Gmail, Slack, Salesforce ve Trello bu modelin en bilinen örnekleri; Türkiye’de Paraşüt ve Logo’nun bulut ürünleri de öyle.
Müşteri için anlamı basit: sermaye harcaması yerine işletme gideri, aylarca süren kurulum yerine dakikalar içinde başlangıç, her zaman en güncel sürüm. Satıcı için ise anlam daha derindir: tek bir kod tabanı yüzlerce müşteriye aynı anda hizmet verir, gelir tek seferlik değil tekrarlayandır ve ürün canlıdayken ölçülür.
SaaS’ı tanımlayan üç teknik özellik vardır:
- Çok kiracılık (multi-tenancy): aynı uygulama örneği birden fazla müşteriye hizmet verir; verileri birbirinden kiracı kimliğiyle ayrılır. Bir müşterinin verisini diğerinin görmesi, SaaS’ta ölümcül hatadır; bu yüzden her sorgu, her dosya yolu, her önbellek anahtarı kiracıya bağlıdır.
- Sürekli teslimat: yılda bir “büyük sürüm” yerine haftada birkaç küçük yayın. Müşteri güncelleme yapmaz, güncelleme ona gelir.
- Kullanım ölçümü: kim hangi özelliği ne kadar kullanıyor, hangi ekran terk ediliyor, hangi müşteri aboneliği yenilemeyecek. SaaS ürünü veriyle yönetilir.
BaaS: bankacılık bir hizmet olarak
Banking as a Service, lisanslı bir bankanın altyapısını, hesap açma, para transferi, kart çıkarma, kredi gibi işlevleri, API’ler aracılığıyla başka şirketlere sunmasıdır. Banka olmayan bir şirket, kendi markasıyla bir finans ürünü çıkarır; düzenleme, lisans ve çekirdek sistem arkadaki bankadadır.
Bir e-ticaret sitesinin müşterisine “şimdi al, sonra öde” seçeneği sunması, bir muhasebe uygulamasının içinden banka hesabı açılabilmesi, bir perakende zincirinin kendi markalı kartını çıkarması: bunların hiçbirinde şirket banka değildir; arkada bir BaaS sağlayıcı vardır. Bu yaklaşıma “gömülü finans” (embedded finance) da denir; finansal hizmet, kullanıcının zaten olduğu uygulamanın içine gömülür.
BaaS’ın teknik yükü SaaS’tan ağırdır çünkü işin doğası farklıdır:
- Düzenleme: her işlem denetime tabidir; müşteri tanıma (KYC), kara para aklamayı önleme (AML), limitler ve raporlama yükümlülükleri API’nin tasarımına gömülüdür.
- Çok kiracılık, bir kat daha: platform hem birden fazla bankaya hem de o bankaların müşterisi olan şirketlere hizmet verir. Kiracı hiyerarşisi iki seviyelidir.
- Uzun ömürlü kayıt: bir kredi on yıl yaşar; bir hesap kapansa bile kayıtları yasal süre boyunca saklanır. Şema değişiklikleri geçmişi bozmadan yapılmalıdır.
Aynı kısaltmanın ikinci bir anlamı da var: Backend as a Service, yani Firebase ve Supabase gibi, mobil ve web uygulamalarına hazır kimlik doğrulama, veritabanı ve dosya depolama sunan platformlar. Bağlamdan hangisinin kastedildiği bellidir; finans konuşuluyorsa bankacılık, uygulama altyapısı konuşuluyorsa arka uç.
Yan yana
| SaaS | BaaS | |
|---|---|---|
| Ne sunar | Kullanıma hazır uygulama | API üzerinden bankacılık işlevleri |
| Kim kullanır | Son kullanıcı ve ekipler | Ürün geliştiren şirketler |
| Gelir modeli | Kullanıcı veya kiracı başına abonelik | İşlem başına ücret, hacim paylaşımı, platform lisansı |
| Kritik risk | Kiracı verisi sızıntısı, kesinti | Düzenleyici uyumsuzluk, yanlış işlem |
| Değişim hızı | Haftalık yayın | Kontrollü sürüm, geriye dönük uyumluluk şart |
| Örnek | Slack, Paraşüt, Tedarik Yönetimi | Bir bankanın açık API platformu, gömülü kart ve kredi |
Bir yazılım ekibi için ne değişir?
İki modelde de asıl değişim şudur: yazılım teslim edilen bir şey olmaktan çıkar, işletilen bir şey olur. Bunun günlük karşılıkları:
- Kesinti bir hata değil, gelir kaybıdır. İzleme, uyarı ve nöbet düzeni ürünün parçasıdır; “canlıda ne oluyor” sorusunun cevabı bir panoda görünmelidir.
- Her değişiklik geriye dönük uyumlu olmalıdır. Müşteri sürüm seçemez; bugünkü yayın dünkü veriyle çalışmak zorundadır. Veritabanı geçişleri iki adımda yapılır: önce eklenir, sonra eskisi kaldırılır.
- Kiracı sınırı her yerdedir. Kimlik doğrulamadan raporlamaya, dosya depolamadan arka plan işlerine kadar her katman “hangi kiracı” sorusunu sorar. Bu sınır baştan çizilmezse sonradan çizilemez.
- Ürün ölçülür. Özellik kullanım oranları, aktivasyon ve abonelik yenileme; bunlar geliştirme önceliğini belirler, sezgi değil.
- Destek, mühendisliğin parçasıdır. Bir müşterinin sorunu çoğu zaman diğer yüz müşterinin görmediği bir hatadır; destek kaydı, iyi bir hata raporu gibi ele alınır.
Küçük bir ekip hangisini seçmeli?
SaaS, küçük bir ekibin taşıyabileceği bir modeldir; Tedarik Yönetimi’ni tam da bu yüzden hem bulutta abonelikle hem de isteyen kurum için kendi sunucusunda Docker ile sunuyoruz. Aynı kod tabanı, iki dağıtım biçimi; kiracı ayrımı ve yapılandırma tabanlı davranış bunu mümkün kılıyor.
BaaS ise bir ekip değil, bir kurum işidir: lisans, sermaye ve düzenleyici ilişki gerektirir. Küçük ekiplerin bu alandaki yeri, BaaS platformlarının üzerine ürün yapmak ya da o platformları geliştiren ekiplerde çalışmaktır. Bankacılık yazılımı geliştirme deneyimimizin büyük kısmı bu ikinci türden geliyor: çok kiracılı, düzenlemeye tabi, uzun ömürlü sistemlerde modül geliştirmek. O sistemlerden öğrendiğimiz disiplin, kendi SaaS ürünümüzü tasarlarken en çok işe yarayan şey oldu.
Özet
SaaS, yazılımı kurulum yerine abonelikle kullandırmaktır; BaaS, bankacılık altyapısını API ile başkalarına açmaktır. İkisinin ortak noktası, yazılımı bir kez teslim etmek yerine sürekli işletmektir. Bu geçişi yapan ekipler için mesele teknolojiden çok alışkanlıktır: kiracıyı her katmanda düşünmek, her değişikliği uyumlu tutmak ve ürünü canlıdayken ölçmek.