Emapos — POS sistemleri satan bir firmanın web sitesini modern ve ölçeklenebilir mimariye taşıdım.
Bu, gerçek bir projedir. Gerçek kullanıcılar, gerçek veri, gerçek production trafiği. Sözde değil, üretimde kanıtlanmış bir yeniden yapım çalışması.
Sorun neydi?
Emapos, POS sistemleri satan bir firma. Web siteleri 2010'ların sonunda canlıya alınmıştı. Zamanla büyüyen iş ihtiyaçları nedeniyle kod tabanı karmaşıklaşmış ve geliştirme süreçleri yavaşlamıştı. Başlıca iyileştirme alanları şunlardı:
- Performans Darboğazı: Büyük veri hacmi altında raporlama sayfalarının yanıt süreleri uzuyordu.
- Geliştirme Hızı: Test otomasyonu bulunmadığı için yeni güncellemelerin test ve canlıya alma süreçleri zaman alıyordu.
- Yüksek Maliyet: Sunucu kaynaklarının verimsiz kullanımı nedeniyle altyapı maliyetleri optimize edilmeye ihtiyaç duyuyordu.
- Mobil Arayüz: Yönetici ve saha çalışanları için mobil/tablet optimizasyonu bulunmuyordu.
Eski sistem, artan veri yükü ve karmaşıklaşan yapısı nedeniyle iş görüyordu ancak gelecekteki büyüme hedefleri için yeni bir altyapıya geçiş yapmak daha sürdürülebilir bir yatırımdı.
Sonuçlar
Kesin ölçüm raporu değil — geçiş sonrası gözlemlenen gerçek değişim.
Eski vs. yeni — alan alan
Her kritik alanda ne değişti, kısa ve net.
Tek parça monolitik PHP uygulaması. Tüm iş mantığı tek kod tabanında, bağımlılıklar birbirine girmiş, test yok.
Django ile modüler yapı. Sipariş, stok, müşteri, rapor gibi alanlar birbirinden ayrıldı, net sınırlarla ve test edilebilir hale geldi.
MySQL, indekslenmemiş büyük tablolar, verimsiz sorgular. Raporlama sayfaları yavaş açılıyordu.
PostgreSQL'e geçiş, doğru indeksleme ve sorgu optimizasyonu. Raporlar çok daha hızlı yükleniyor.
jQuery + server-rendered PHP. Her etkileşim sayfa yenilemesi gerektiriyordu, kullanıcı deneyimi yavaştı.
Next.js tabanlı yönetim paneli. Sayfa yenilemeden çalışan, daha akıcı bir arayüz.
Manuel dosya yükleme, hata durumunda geri dönüş zaman alıyordu.
Daha kontrollü ve tekrarlanabilir bir deploy süreci kuruldu.
Teknoloji yığını
Yeni sistemin temel teknolojileri. Hepsi production'da test edilmiş, açık kaynak, Türkiye'de kolay bulunabilen.
Python + Django
Backend & API
PostgreSQL
Veritabanı
Django + Html/CSS/Javascript
Yönetim paneli
Süreç — adım adım nasıl geçti
Eski sistem canlı kaldı, yeni sistem paralel gelişti. Hiçbir zaman işletme çalışamaz hale gelmedi.
Mevcut sistemle tanışma. Modüllerin anlaşılması, darboğazların tespiti.
Yeni sistem mimarisinin planlanması. Modül sınırları, API tasarımı, veritabanı şeması.
Backend ve frontend aynı anda gelişti. Eski sistem bu süre boyunca kesintisiz çalışmaya devam etti.
Verilerin yeni sisteme aktarılması, tip dönüşümleri ve tutarlılık kontrolleri.
Kademeli geçiş. Sorun çıkması durumunda eski sisteme geri dönme imkânı korunarak ilerlendi.
Bu sadece bir anlatı değil — canlısına bak.
Emapos hâlâ production'da çalışıyor. Eğer senin işletmen için de benzer bir sistem kurmamı istersen , iletişime geç
Bu projeden öğrendiklerim
Eski sistemi küçümseme
Çirkin görünse de, eski sistem yıllarca iş yapmış. Onu anlamadan yeni yazmaya kalkma — aynı hataları tekrar edersin.
Paralel çalıştırma altın kural
Yeni sistemi eskiyle birlikte çalıştır. Bir şey olursa geri dönersin. Bu cesaret verir.
Migrasyon > yeni özellik
Müşteri 'yeni özellikler' ister ama asıl ihtiyaç migrasyondur. Önce sağlam temel, sonra hızlı gelişme.
Test olmadan olmaz
Eski sistemde test yoktu, her değişiklik korkuyla yapılıyordu. Yeni sistemde kritik modüller test ediliyor — bir gecede değil, aşama aşama kuruldu.
Benzer bir projen mi var?
Performans veya ölçeklenme sorunları yaşayan mevcut bir sistemi modern mimariye taşımak istiyorsan, doğru yerdesin. Ücretsiz ön görüşme yapalım, uygunluğu birlikte değerlendirelim.