Eski sistemden modern web uygulamasına

Yeniden Yapılandırma ve Modernizasyon

Access, Delphi, VB6 ya da eski PHP ile yazılmış uygulamaları modern web uygulamalarına taşıyoruz. Eski sistem çalışmaya devam ederken geçişi parça parça yapıyoruz.

  • Access, Delphi, VB6 ve eski PHP uygulamaları
  • Strangler yaklaşımıyla adım adım geçiş
  • Veri taşıma ve doğrulama
  • Geçiş döneminde paralel çalışma
eski uygulamayeni web uygulamasıveri taşındıparalel çalışmakademeli geçiş
Tanıdık durumlar

Zorluklarınız

Eski sistemler yıllarca işi taşır. Bir gün güncelleme yapılamaz, kimse koda dokunmak istemez ve şirket o yazılımın etrafında çalışmaya başlar.

01Uygulamayı yazan kişi şirketten ayrıldı, kimse koda dokunmak istemiyor.

Önce sistemi okuyup belgeliyoruz. Ekranları, raporları ve iş kurallarını çıkarıyoruz, yeni sistem bu envantere göre kuruluyor.

02Program yalnızca ofisteki birkaç bilgisayarda çalışıyor.

Uygulamayı tarayıcıdan çalışan bir web uygulamasına taşıyoruz. Ofis dışından, yetki dahilinde, güvenli şekilde erişilebilir hale geliyor.

03Sıfırdan yazma projesi bir kez denendi ve yarıda kaldı.

Tek seferde değiştirmek yerine strangler yaklaşımını kullanıyoruz. Yeni sistem eskinin işlevlerini parça parça devralıyor, her parça canlıda doğrulanıyor.

04Verilerinizin bozulmasından ya da kaybolmasından endişe ediyorsunuz.

Veriyi taşımadan önce temizliyor, taşıdıktan sonra kayıt sayıları ve bakiyelerle doğruluyoruz. Geçiş döneminde iki sistem paralel çalışabiliyor.

Neler yapıyoruz

Kapsamımız

Eski sistemin içinde yıllarca birikmiş iş kuralları vardır. Modernizasyonun asıl işi bu kuralları kaybetmeden yeni sisteme taşımaktır.

Mevcut sistem analizi

Ekranları, raporları, tabloları ve gizli iş kurallarını çıkarıyoruz. Kullanılmayan işlevleri de bu aşamada ayıklıyoruz.

  • İşlev ve rapor envanteri
  • Veri modeli analizi
  • Kullanıcı görüşmeleri

Strangler ile geçiş

Yeni sistem eskinin yanına kurulur ve işlevleri birer birer devralır. Eski sistem son parça taşınana kadar çalışır.

  • Modül bazlı geçiş planı
  • Geçiş katmanı
  • Her adımda geri dönüş imkânı

Veri taşıma

Eski veritabanındaki veriyi temizliyor, dönüştürüyor ve yeni modele aktarıyoruz.

  • Veri temizliği
  • Tekrarlanabilir aktarım betikleri
  • Kayıt ve bakiye doğrulaması

Paralel çalışma

Kritik süreçlerde eski ve yeni sistemi bir süre birlikte çalıştırıp sonuçları karşılaştırıyoruz.

  • Sonuç karşılaştırma raporları
  • Fark analizi
  • Kontrollü kapatma

Modern mimari

Yeni sistemi Java/Spring ya da PHP/Symfony üzerinde, iş kurallarını net bağlamlara ayırarak kuruyoruz.

  • Web tabanlı arayüz
  • Otomatik testler
  • API ile entegrasyona açık yapı

Kullanıcı geçişi

Kullanıcılarınızın alışkanlıklarını gözetiyor, kritik ekranlarda tanıdık akışları koruyoruz.

  • Birim bazlı eğitimler
  • Kısa kullanım kılavuzları
  • Geçiş haftası desteği
Örnek proje

Teslim ettiklerimiz

Vida ve bağlantı elemanı üreten Ares Vida, 2006'dan beri büyüyen ARPR-2021 adlı Access uygulamasını kullanıyordu. Önce üretimin dilini ve iş kurallarını çıkardık, sonra Java ve Spring Boot ile yeni bir web uygulaması kurduk.

Veriyi tekrar tekrar çalıştırılabilen bir hatla taşıyoruz. Access hiç değiştirilmiyor ve geçiş tamamlanana kadar tek doğru kaynak olarak kalıyor. İki sistem bugün yan yana çalışıyor.

  • Mevcut sistemin işlev ve kural envanteri
  • Hedef mimari ve geçiş planı
  • Modül modül canlıya alınan yeni uygulama
  • Doğrulanmış veri aktarımı
  • Paralel çalışma karşılaştırma raporları
  • Eğitim ve dokümantasyon
Ares Vida vaka çalışması
ares-vida/göç-hattı
$ ./run-migration.sh
# kaynak: ARPR-2021 (Access), değiştirilmiyor
✓ hazırlık: başvuru verileri yüklendi
✓ aktarım: tablolar yabancı anahtar sırasıyla
✓ temizlik: Türkçe arama alanları, sayaçlar
✓ rapor: düzeltmeler listelendi
Sözümüz

Taahhütlerimiz

  1. Çalışan sistemi durdurmayız

    Geçiş boyunca işiniz devam eder. Eski sistem, yeni sistem o işlevi tam olarak devralana kadar kapatılmaz.

    • Kesintisiz operasyon
    • Kontrollü kapatma
  2. Önce iş kurallarını kurtarırız

    Eski koddaki kuralları belgelemeden yeni kod yazmayız. Kullanıcılarınızın yıllar içinde öğrendiği istisnalar yeni sistemde de yer alır.

    • Kural envanteri
    • Kullanıcı doğrulaması
  3. Veriyi doğrulayarak taşırız

    Her aktarımdan sonra kayıt sayılarını ve kritik toplamları karşılaştırırız. Farkları açıklamadan bir sonraki adıma geçmeyiz.

    • Tekrarlanabilir aktarım
    • Karşılaştırma raporları
  4. Her adımın geri dönüşü vardır

    Bir modül beklendiği gibi çalışmazsa eski sisteme dönülebilir. Bu sayede her adımın riski küçük kalır.

    • Geri dönüş planı
    • Küçük adımlar
Nasıl çalışıyoruz

Yaklaşımımız

Süreler tipiktir. Eski sistemin büyüklüğüne ve dokümantasyonun durumuna göre değişir.

  1. Analiz ve envanter

    2–3 hafta Teknik lider + kıdemli geliştirici

    Eski sistemi, verileri ve kullanıcı alışkanlıklarını inceliyoruz. İşlev, rapor ve kural envanterini çıkarıyoruz.

  2. Hedef mimari ve geçiş planı

    1–2 hafta Teknik lider

    Yeni sistemin mimarisini ve modüllerin hangi sırayla taşınacağını belirliyoruz.

  3. Parça parça geçiş

    Modül başına birkaç hafta Teknik lider + 2–3 geliştirici

    Her modülü geliştiriyor, veriyi aktarıyor ve canlıya alıyoruz. Kullanıcılar eğitimle birlikte yeni modüle geçiyor.

  4. Paralel çalışma ve kapatma

    2–6 hafta Geliştiriciler + kullanıcılarınız

    Kritik süreçlerde iki sistemi birlikte çalıştırıp sonuçları karşılaştırıyoruz. Farklar kapandığında eski sistemi kapatıyoruz.

Sonraki adımlar

Tamamlayıcı hizmetler

Sık sorulanlar

Modernizasyon hakkında sorular

Sıfırdan yazmak daha hızlı olmaz mı?
Kâğıt üzerinde öyle görünür. Uygulamada eski sistemdeki kuralların çoğu yazılı olmadığı için sıfırdan yazma projeleri sık sık uzar. Parça parça geçiş, her adımda çalışan bir sistem bırakır ve riski dağıtır.
Geçiş sırasında işimiz durur mu?
Durmaz. Eski sistem, yeni sistem ilgili işlevi devralana kadar çalışmaya devam eder. Canlıya geçişleri iş yükünüzün düşük olduğu zamanlara planlıyoruz.
Eski verilerimiz ne olacak?
Geçmiş veriler temizlenip yeni sisteme aktarılır. Aktarımı tekrarlanabilir betiklerle yapıyor, sonuçları kayıt sayıları ve toplamlarla doğruluyoruz.
Eski sistemin kaynak kodu elimizde yoksa ne olur?
Çoğu durumda veritabanı ve ekranlar üzerinden iş kurallarını çıkarabiliyoruz. Kullanıcı görüşmeleri bu durumda daha da önemli hale gelir.
Kullanıcılarımız yeni sisteme alışabilecek mi?
Kritik ekranlarda alışılmış akışları koruyoruz. Her modül canlıya çıkarken ilgili birime kısa bir eğitim veriyor, ilk hafta yakından destek oluyoruz.
Vaka çalışmaları

Eski sistemden yeni uygulamaya

Access tabanlı bir uygulamanın veri kaybetmeden taşınması dahil, projelerimizi baştan sona anlattık.

Tüm referanslar
Başlayalım

Eski sisteminizi birlikte değerlendirelim.

Kullandığınız uygulamayı ve sizi zorlayan noktaları anlatın. Geçişin nasıl planlanabileceğini ilk görüşmede konuşalım.

  • İş durmadan, adım adım geçiş
  • Doğrulanmış veri taşıma
  • Eski sistemin kurallarını koruyan yeni uygulama