Kısaca
SaaS (Software as a Service) geliştirme, bir yazılımın birçok müşteriye internet üzerinden abonelikle sunulacak şekilde tasarlanıp geliştirilmesidir. Yeni ürün çıkaran girişimler ve iç araçlarını ürüne dönüştürmek isteyen şirketler içindir. CybUP MVP kapsamını, çok kiracılı (multi-tenant) mimariyi, kimlik doğrulamayı, abonelik altyapısını, bulut kurulumunu, güvenliği ve izlemeyi üstlenir.
SaaS projesine MVP ile mi başlanmalı?
Evet, çoğu SaaS projesi için doğru başlangıç, tek bir sorunu iyi çözen ve gerçek kullanıcıya açılabilen bir MVP’dir (minimum viable product). Amaç ürünün yarısını yapmak değil, ürünün değer önerisini en az özellikle sınamaktır. Kullanıcılar ilk sürümü kullanmadan hangi özelliğe gerçekten ihtiyaç duyduklarını bilemezsiniz.
MVP kapsamını belirlerken her özelliğe “bu olmadan ilk müşteri ödeme yapar mı?” sorusunu soruyoruz. Raporlama ekranı, gelişmiş ayarlar, mobil uygulama genellikle bekleyebilir; kayıt, temel iş akışı ve müşteri verisinin güvenle ayrılması bekleyemez. Kısaltılan şey kapsamdır, kalite değil: MVP’de bile kimlik doğrulama, yedekleme ve kiracı ayrımı sağlam kurulmalıdır, çünkü bunları sonradan değiştirmek çok pahalıdır.
Çok kiracılı (multi-tenant) mimari nasıl kurulur?
Çok kiracılı mimaride tek bir uygulama birçok müşteriye (kiracıya) hizmet verir ve her müşterinin verisi diğerlerinden kesin biçimde ayrılır. OWASP’ın çok kiracılı güvenlik rehberi üç temel yolu sayar: her kiracıya ayrı veritabanı, aynı veritabanında ayrı şema, ya da ortak tablolarda satır düzeyinde ayrım. Ayrı veritabanı en güçlü sınırı verir ama yönetimi zordur; ortak tablo en verimlisidir ama hataya en açık olandır.
Ortak tablo kullanıldığında kiracı ayrımını yalnızca uygulama koduna bırakmıyoruz. PostgreSQL’in satır güvenliği politikalarıyla veritabanı da yalnızca ilgili kiracının satırlarını döndürür; koddaki bir sorguda filtre unutulsa bile başka müşterinin verisi görünmez. Kiracı kimliği önbellek anahtarlarına, dosya depolama yollarına ve arka plan işlerine de taşınır. Büyük bir kurumsal müşteri ayrı veritabanı isterse, karma bir yapıyla bu da sağlanabilir.
“Multi-tenant applications serve multiple customers (tenants) from a shared infrastructure, codebase, and often shared databases.”
Çok kiracılı uygulamalar, ortak bir altyapı, kod tabanı ve çoğu zaman ortak veritabanları üzerinden birden fazla müşteriye (kiracıya) hizmet verir.
Kimlik doğrulama ve abonelik yapısı nasıl tasarlanır?
Kimlik doğrulamada güvenli parola saklama, e-posta doğrulama, iki aşamalı doğrulama ve kurumsal müşteriler için SAML veya OpenID Connect ile tek oturum açma seçenekleri planlanır. Her kiracının içinde de roller vardır: hesap sahibi, yönetici, kullanıcı. Bir kullanıcının birden fazla kiracıya üye olabileceği baştan düşünülmezse sonradan veri modeli değişikliği gerekir.
Abonelik tarafında paketler, kullanıcı veya kullanım bazlı sınırlar, deneme süresi, yükseltme ve iptal akışları tasarlanır. Kart bilgisi uygulamanın kendi veritabanında tutulmaz; ödeme, bu iş için kurulmuş bir ödeme hizmet sağlayıcısı üzerinden alınır ve uygulama yalnızca abonelik durumunu bilir. Hangi sağlayıcının uygun olduğu, müşterilerinizin hangi ülkede olduğuna ve faturalama ihtiyacınıza göre belirlenir.
SaaS altyapısı bulutta nasıl kurulur?
SaaS altyapısını genellikle sizin adınıza açılan bir Azure veya AWS hesabında, yönetilen veritabanı, konteyner tabanlı uygulama servisleri ve nesne depolamayla kuruyoruz. Hesap ve kaynaklar şirketinizin adına açılır, faturası size gelir; ürünün altyapısı başkasının hesabında rehin kalmaz. Bulut tarafındaki kurulum ayrıntılarını Azure ve AWS kurulumu sayfasında anlatıyoruz.
Altyapıyı kodla tanımlıyoruz; böylece test ve canlı ortamlar aynı tarifle kurulur, bir ortam kaybolsa bile yeniden oluşturulabilir. Kod değişiklikleri otomatik testlerden geçtikten sonra yayına alınır. Müşteriniz Türkiye’de kişisel veri işliyorsa verinin hangi bölgede tutulacağı, KVKK açısından mimari kararların başında gelir.
SaaS güvenliği ve ölçeklenme nasıl sağlanır?
SaaS güvenliği, bir müşterinin verisinin başka bir müşteriye hiçbir koşulda görünmemesi ilkesiyle başlar ve klasik web uygulaması güvenliğiyle devam eder. Girdi doğrulama, yetki kontrollerinin her uçta yapılması, sırların kod deposunda değil sır yönetim servisinde tutulması ve bağımlılıkların düzenli güncellenmesi temel adımlardır. Yayından önce ve dönemsel olarak zafiyet taraması yapılmasını, uygulamanın önüne de gerekirse bir WAF konmasını öneriyoruz.
Ölçeklenme için uygulamayı durumsuz (stateless) tasarlıyoruz: oturum bilgisi ve dosyalar uygulama sunucusunda değil, ortak servislerde durur. Böylece yük arttığında aynı uygulamadan yeni kopyalar eklenebilir. Uzun süren işler (rapor üretimi, toplu e-posta, dosya işleme) kuyruğa alınıp arka planda çalıştırılır. Diyelim ki muhasebe bürolarına belge yönetimi sunan bir SaaS ay sonunda yükün katlandığını görüyor; kuyruk ve yatay ölçekleme sayesinde bu yoğunluk diğer müşterilerin arayüzünü yavaşlatmaz.
“However, multi-tenancy introduces critical security challenges: a single vulnerability can expose all tenants' data, misconfigurations can leak data across tenant boundaries, and resource contention can impact availability.”
Ancak çok kiracılılık kritik güvenlik sorunları doğurur: tek bir zafiyet tüm kiracıların verisini açığa çıkarabilir, yanlış yapılandırmalar veriyi kiracı sınırlarının ötesine sızdırabilir ve kaynak çekişmesi erişilebilirliği etkileyebilir.
SaaS ürünü canlıdayken nasıl izlenir?
Canlı bir SaaS ürününde uygulama hataları, yanıt süreleri, veritabanı performansı, kuyruk uzunluğu ve altyapı kaynakları sürekli izlenmelidir. Sorunu müşteriden önce görmek, abonelik işinde güveni korumanın en somut yoludur. Uygulama kayıtlarını merkezi bir yerde topluyor, kiracı bilgisini kayıtlara ekliyoruz; böylece “şu müşteride sorun var” bildirimi geldiğinde ilgili kayıtlar hızla bulunur.
Bulut sağlayıcının kendi izleme araçlarının yanında, altyapının bir kısmı şirket içindeyse Zabbix ile izleme de kurulabilir. Yedeklerin geri yüklenebilirliğini dönemsel olarak test ediyor, kiracı bazında veri dışa aktarma ve hesap kapatıldığında verinin silinmesi için araçlar sağlıyoruz.
- Hata ve yanıt süresi izleme, eşik aşımında bildirim
- Kiracı bilgisi içeren merkezi uygulama kayıtları
- Otomatik yedek ve dönemsel geri yükleme testi
- Kiracı bazında veri dışa aktarma ve silme aracı
Şirket içi aracı SaaS ürününe dönüştürmek mümkün mü?
Mümkün, ama çoğu zaman yeniden yapılandırma gerektirir. Şirket içinde yazılmış bir araç genellikle tek bir şirkete göre kurgulanmıştır: kullanıcılar tek tablodadır, ayarlar koda gömülüdür, müşteri kavramı yoktur. Ürüne dönüştürürken kiracı modeli eklenir, şirkete özel kurallar ayarlara taşınır, kayıt ve abonelik akışları yazılır.
İlk adım, mevcut kodun ve veri modelinin incelenmesidir. Bazen mevcut kod üzerine kiracı katmanı eklemek, bazen çekirdeği yeniden yazmak daha mantıklıdır; kararı inceleme sonucuna göre gerekçeleriyle paylaşıyoruz. Örneğin kendi satış ekibi için özel CRM geliştirmiş bir şirket, bu yazılımı sektöründeki diğer firmalara sunmak isteyebilir. İnceleme ücretsizdir.
Teslim ettiklerimiz
- Onaylı MVP kapsamı, ekran akışları ve veri modeli
- Kiracı ayrımı veritabanı katmanında da uygulanan çok kiracılı uygulama
- Kimlik doğrulama, roller ve abonelik akışları
- Sizin bulut hesabınızda kodla tanımlanmış test ve canlı ortam
- Otomatik test ve yayın hattı
- İzleme, uyarı ve yedekleme düzeni
- Kaynak kodu ve teknik belgeler
Nasıl çalışıyoruz
- 1
Ücretsiz inceleme
Ürün fikri, hedef müşteri, mevcut kod veya araçlar ve takvim beklentisi değerlendiriliyor.
- 2
Kapsam ve mimari
MVP özellikleri, kiracı modeli, kimlik doğrulama ve altyapı kararları yazılı hale getiriliyor.
- 3
MVP geliştirme
Ürün kısa aralıklarla geliştiriliyor, her aşamada sizinle birlikte deneniyor.
- 4
Güvenlik ve yayın
Zafiyet taraması, yük denemesi ve izleme kurulumu tamamlanıp ilk müşterilere açılıyor.
- 5
Ölçekleme ve bakım
Kullanım verisine göre yeni özellikler, performans iyileştirmeleri ve güncellemeler sürüyor.
Sıkça sorulan sorular
MVP ne kadar sürede çıkar?
Kapsama bağlı olarak genellikle birkaç ay içinde ilk kullanıcılara açılabilir. Süreyi en çok etkileyen şey kapsamın ne kadar dar tutulduğudur. Takvimi kapsam belirlendikten sonra aşamalı olarak veriyoruz.
Kaynak kodu ve fikri haklar kime ait?
Sözleşmede kaynak kodu ve ürüne ait haklar size teslim edilecek şekilde düzenleniyor. Bulut hesapları da şirketinizin adına açılır. Böylece ürün tamamen sizin kontrolünüzde olur.
Hangi teknolojileri kullanıyorsunuz?
Teknoloji seçimini ürünün ihtiyacına, ekibinizin ileride devralma ihtimaline ve yaygın destek bulunmasına göre yapıyoruz. Genellikle yaygın, olgun web teknolojileri ve PostgreSQL gibi yerleşik veritabanları tercih ediyoruz. Seçimi gerekçesiyle mimari belgesinde paylaşıyoruz.
Barındırma hizmetini siz mi veriyorsunuz?
Hayır. Altyapıyı sizin adınıza açılan Azure veya AWS hesabında kurup yapılandırıyoruz; kaynakların sahibi ve faturalandırılan taraf sizsiniz. Biz kurulum, yapılandırma ve isterseniz bakım hizmeti veriyoruz.
Fiyatı ne kadar?
Kapsamı inceledikten sonra yazılı teklif veriyoruz; inceleme ücretsiz. Teklif MVP, sonraki aşamalar ve bakım için ayrı kalemler içerir; bulut kullanım ücretleri ayrıca sağlayıcıya ödenir.
KVKK’ya uygun bir SaaS nasıl kurulur?
Verinin tutulacağı bölge, kiracı ayrımı, erişim kayıtları, şifreleme, saklama ve silme süreçleri mimarinin parçası olarak tasarlanır. Sözleşme ve aydınlatma metinleri gibi hukuki tarafı hukuk danışmanınız belirler. Biz teknik tedbirleri kurup belgeliyoruz.
Yayından sonra ürünü siz mi geliştirmeye devam edeceksiniz?
İsterseniz bakım ve geliştirme sözleşmesiyle devam ediyoruz. Kendi ekibinizi kurmayı planlıyorsanız belgeler ve devir süreciyle geçişi kolaylaştırıyoruz.