À-la-carte'dan plan bazlı faturalamaya: 4 fazlı güvenli geçiş
Bir SaaS, özellik bazlı faturalamadan plan bazlı modele expand-migrate-contract yaklaşımıyla dört fazda, kesinti yaşamadan geçirildi. Mühendisler için pratik dersler.
Bir SaaS ürününde her özelliğin ayrı satın alınabildiği à-la-carte faturalama modeli, karmaşık ve hataya açık hale geldiği için plan bazlı tek bir modele taşındı. Sorun teknik olduğu kadar yapısaldı: yetkilendirme mantığı hem özellik bazlı abonelikleri hem de örtük planı kontrol etmek zorundaydı, bu da her erişim kontrolünü iki kaynaklı ve kırılgan yapıyordu. Eski kolonları tek seferde silmek yerine, ekip değişikliği dört ayrı, her biri tek başına deploy edilebilir fazda uyguladı: önce planlar oluşturuldu, sonra erişim kontrolleri plana göre okumaya geçti (yazma tarafı geçiş süresince ikili çalıştı), ardından mevcut organizasyonlar bir plana taşındı, son olarak eski à-la-carte altyapısı kaldırıldı.
Bu yaklaşım, veritabanı şemalarında bilinen expand-migrate-contract desenini iş mantığı seviyesinde uyguluyor: önce yeni model eskisinin yanına eklenir, sonra okuma ve veri aşamalı olarak taşınır, en son eskisi güvenle silinir. Erişim kontrolü tek bir soruya indirgendi: organizasyonun planı bu özelliği veriyor mu? Metrik bazlı özellikler (ör. e-posta gönderimi) için kota kontrolü, iç kullanım için üst düzey planların kalıcı tanımlanması gibi kenar durumlar ayrıca ele alındı.
Faturalama geçişi sırasında ödeme altyapısına özgü küçük ama etkili sorunlar da ortaya çıktı: karakter sınırını aşan sipariş referansları, boş telefon alanı yüzünden başarısız olan ödemeler ve gizlenen doğrulama hataları. Bu tür sorunlar özellikle tüm organizasyonların aynı anda yeniden abone olduğu geçiş anlarında yüzeye çıkıyor.
Asıl mesaj, entitlement (yetkilendirme) mantığını değiştirmenin de tıpkı bir şema migrasyonu gibi ele alınması gerektiği: genişlet, okumaları taşı, veriyi taşı, sonra daralt. Dört aşamalı bu yaklaşımın getirdiği ek efor, herkesin parasını ödediği özelliklere erişemediği bir faturalama kesintisinin maliyetiyle kıyaslandığında oldukça düşük kalıyor.