Tüm projeler
corporate

Taptok — Çok Kiracılı SaaS'ı AWS'de 100K+ Aylık İşleme Ölçeklendirmek

SaaS · Çok Kiracılı · AWS · Veritabanı Parçalama · TDD

Müşteri
Taptok for Business
Endüstri endüstrisi
SaaS / Digital Business Cards
Konum Location
Gulf Region
Yıl Yılı Yıl Yılı Yıl Yılı
2024
Öpücük siteyi

100K+

Monthly transactions handled

on AWS infrastructure

0

Analytical query impact on tx DB

fully decoupled

sub-second

Transactional response time

under any report load

comprehensive

Test coverage (core paths)

TDD enforced

Proje kısa
Müşteri
Taptok for Business
Endüstri endüstrisi
SaaS / Digital Business Cards
Konum Location
Gulf Region
İş dahil
Web Development

Taptok'un dijital kartvizit platformu tek veritabanı mimarisinin limitine yaklaşıyordu. Analitik sorgular işlemsel sorgularla yarışıyordu ve her ikisi de yavaşlıyordu. Kiracı tabanlı veritabanı parçalama inşa ettik, analitiği tamamen ayırdık ve TDD'yi boyunca koruduk — yeniden inşa edilen sistemi güvenle geliştirmeye devam etmeyi mümkün kıldık.

01 / Project Overview

Durum durumu

Taptok, Körfez işletmeleri için dijital kartvizit ve iletişim yönetimi altyapısı sağlar. Her işletme hesabı tamamen izole edilmiştir — kendi kişileri, paylaşım etkinlikleri, analitiği ve profil verileri. Binlerce kiracı genelinde 100K+ aylık işlemle, lansmanda işe yarayan tek veritabanı mimarisi darboğaz olmaya başlıyordu.\n\nSpesifik sorun sorgu türleri arasındaki çekişmeydi. İşlemsel sorgular — iletişim kayıtları oluşturma, kart paylaşımı kaydetme, profil verisi güncelleme — hızlı ve tutarlı olmalıdır. Analitik sorgular — rapor dışa aktarma, toplamalar, kullanım özetleri — ağırdır ve biraz eski olması kabul edilebilir. Paylaşımlı bir veritabanında, uzun süren bir analitik sorgu satırları kilitleyebilir veya aktif kullanıcılar için işlemsel operasyonları yavaşlatabilir.\n\nKiracı tabanlı bir parçalama şeması tasarladık. Kiracılar tutarlı bir hashing stratejisine dayalı olarak parçalara dağıtılır. Uygulama düzeyinde yönlendirme sorgular doğru parçaya şeffaf şekilde yönlendirir. Kapasite eklemek bir parça eklemek anlamına gelir, tek bir sunucuyu dikey ölçeklendirmek değil.\n\nAnalitik tamamen ayrıştırıldı. Olaylar Redis'e akar, toplu işler bunları bir program dahilinde toplar ve sonuçlar işlemsel sorgu yolunda hiç olmayan özel bir raporlama deposuna iner. Aktif kullanıcılar herhangi bir rapor yükü altında bile saniye altı işlemsel yanıtlar görür.\n\nTDD yeniden yapılanma boyunca uygulandı. Her servis sınıfının şipilemeden önce test kapsamı var — ekip güvenle değişiklik yapabilir.

02 / The Challenge

Ne değiştirmeliydi

Tek veritabanı mimarisi kapasiteye yaklaşıyordu. Uzun analitik sorgular I/O ve kilitler için işlemsel sorgularla yarışıyordu — aktif kullanıcılar rapor oluşturma sırasında yavaşlama yaşadı. Test kapsamı olmadan, çekirdek işlem mantığını değiştirmek riskli. Dikey ölçeklendirme pahalı hale geliyordu ve bir tavanı vardı.

03 / Çözümümüz

Ne değiştik

Tutarlı hash yönlendirmeli kiracı tabanlı parçalama — yatay ölçeklenebilir, uygulama şeffaf. Analitik Redis olay hattına → arka plan toplamaya → raporlama deposuna ayrıştırıldı. İşlemsel veritabanında sıfır analitik sorgu yükü. TDD yeniden yapılanma boyunca uygulandı — tüm çekirdek işlem yollarında kapsamlı test kapsamı.

04 / Teslimatlar ve sonuçlar

Müşteri ne kazandı

  • 01 Yatay parçalama — sunucu değil parça ekleyerek ölçeklen
  • 02 Analitik tamamen işlemsel veritabanının dışında
  • 03 AWS (EC2, RDS, Docker) üretim altyapısı
  • 04 Boyunca TDD — değiştirmek güvenli, göndermek güvenli
Bir sonraki kısıtlamayı getirin

Daha net bir şekilde ileriye ihtiyacı olan bir proje var mı?

Projeyi tartışmak