Teklif al

Sistem Mimarisi · İzmir

İzmir markaları için Sistem Mimarisi

Yayında duran bir sistemde mimari kararın ilk sınırı kapatma izni oluyor. İhracat hedefiyle çalışan bir markanın kataloğu gece de okunuyor; iş, okuma sürerken yapılıyor. O yüzden soru 'yeniden mi yazalım' değil, 'yükü hangi katman taşıyor' oluyor. KGM SsangYong'un kurumsal sitesinde yükü taşıyan yerleri tek tek ele aldık ve müdahale orayla sınırlı kaldı.

Sistem Mimarisi — İzmir

İzmir'de üretim ve perakende ihracat siparişine çalıştığında marka kendi kataloğunu gece de açık tutuyor. Markanın kendi kataloğu satışın önündeki ilk kapıysa bakımın o kapı kapanmadan yapılması gerekiyor. İkinci sınır bakımın kimde kalacağı: sistemi sürdürecek ekip markanın kendi tarafındaysa, mimari karar yeni bir bağımlılık getirmemek zorunda. Bu ilin sektör profiline en yakın işimiz KGM SsangYong kurumsal sitesi. Nerede örtüşmediğini de yazalım: iş otomotiv kurumsal sitesi tarafında duruyor, ihracat evrakı, gümrük süreçleri ve bayi ağı yönetimi için gösterecek işimiz yok. Yığın olduğu yerde kaldı: Laravel, Tailwind ve jQuery setinin dışına çıkmadık, okuma yükünü Redis üstlendi, MySQL yalnız veri değiştiğinde devreye girdi.

  • Katalog okumaları Redis önbelleğinden karşılanıyor; aynı sorgu her ziyaretçi için baştan çalışmıyor, MySQL yalnızca veri değiştiğinde devreye giriyor.
  • Araç görselleri tek bir adlandırma ve klasör düzenine taşındı; hangi modelin hangi dosyayı kullandığı artık kod okunmadan görülüyor, yeni model eklemek dosya arama işi olmaktan çıktı.
  • Karar bakımı devralacak tarafa göre verildi: Laravel, Tailwind ve jQuery setinin dışına çıkmadık; yığına eklenen tek parça önbellek katmanı oldu.

Neden Algoriel

  • Parçalar aynı yerden okur

    Tahlil.com'da site, yönetim paneli ve mobil uygulama aynı bilgiyi okuyor; üçü ayrı sistem gibi davranmıyor.

  • Ne nerede çözülür, baştan belli

    Hangi işin hangi katmanda çözüleceğine kod yazılmadan karar veriliyor; sonradan yer değiştiren iş pahalıya geliyor.

  • Özet elle güncellenmiyor

    Günlük Hava Durumu'nda iklim özeti arşiv büyüdükçe kendini yeniliyor; kimse aylık tabloyu elle yazmıyor.

  • Dosya düzeni bir kurala bağlı

    KGM SsangYong'da dosyanın nereye ve hangi adla yazıldığı tek bir düzene bağlandı; yükleme kodu bu düzeni izliyor.

Ne inşa ediyoruz

Sistem Mimarisi
  • Verinin hangi sınırda duracağı

    Birden fazla kurumun aynı sistemi kullandığı kurulumda her kurum kendi alan adından girer; öğrenci, veli ve ödeme kaydı o kurumun sınırının içinde kalır. Bu düzene çok kiracılı kurulum deniyor.

  • Kaydın neye bağlanacağı

    Servis geçmişinin kişiye mi adrese mi cihaza mı yazılacağı koddan önce belirlenir. Bu karar sonradan değişirse o güne kadar biriken geçmişin tamamı yeniden bağlanır.

  • Yetkinin veri modelinde durması

    Öğretmen, veli ve kurum yöneticisi aynı ders programı kaydına kendi yetkisi kadar erişir. Yetki ekranda kapatılan bir görünüm değil, kaydın kendi tanımının parçası.

  • Okuma yolunun ayrılması

    Hangi ekranın hazır tutulan bir kopyadan, hangisinin doğrudan veritabanından okunacağı ilk kayıttan önce belirlenir. Vipkurum'da sık açılan ekran kopyadan geliyor, veritabanına yalnız kopyası olmayan okuma düşüyor.

  • Tek sisteme bağlanan arayüzler

    Tahlil.com'da üç arayüz tek sisteme bağlı: hasta sitesi, hekim paneli ve mobil uygulama aynı kaydı okuyor, arayüz başına ikinci bir veri modeli yazılmıyor.

  • Depolama düzeninin ilk günde kurulması

    Dosyaların hangi adlandırma ve klasör düzeninde duracağı en baştan belirlenir; sonradan kurulan düzen taşıma işine dönüşür.

Buna benzer çalışmalar

Sistem Mimarisi · Vaka çalışması

KGM SsangYong kurumsal sitesi — yükü taşıyan katmanlar, büyümeyen yığın

Devraldığımız Laravel kurumsal sitede iki karar verdik. Birincisi okuma yolu: katalog okumaları Redis önbelleğinden karşılanıyor, aynı sorgu her sayfa açılışında MySQL'e düşmüyor. İkincisi depolama düzeni: araç görsellerini tek bir adlandırma ve klasör düzenine taşıdık, hangi modelin hangi dosyayı kullandığı kod okunmadan görülüyor. Model sayfalarında görsel boyutlarını ve jQuery ile yapılan istekleri elden geçirdik. Müdahale sayfa yükünü taşıyan yerlerle sınırlı kaldı; yığın da öyle, Laravel, Tailwind ve jQuery setinin dışına çıkmadık.

Vaka çalışmasını okuyun →

İzmir ekipleriyle uzaktan çalışmak

Ofisimiz yok; bu şehirdeki işleri de uzaktan yürütüyoruz ve yerinde destek vermiyoruz. Ne yapıldığı ve neden öyle yapıldığı yazılı duruyor. Ortaklıkla geliştirdiğimiz işler proje sayfalarında işaretli.

  • İlk sürüm çalışan bir parçayla çıkar, ek yetenekler sonra eklenir.
  • Bildiğimiz müşterilerimizin tamamı Türkiye'de.
  • Kararlar yazılı duruyor, ilerleme çalışan ekranlardan görünüyor.

Sık sorulan sorular

  • Sistem yayında ve durduramıyoruz. Böyle bir işte nereden başlıyorsunuz?

    Yükü nerenin taşıdığından. SsangYong kurumsal sitesinde bu iki yerdi: her ziyaretçi için baştan çalışan katalog sorgusu ve dosya düzeni belirsiz görsel klasörü. İkisi de yayına ara vermeden ele alınabilecek yerlerdi.

  • Sıfırdan yazmak daha temiz olmaz mı?

    Olmayabilir. Çalışan bölümleri yeniden yazmak, yükü taşımayan yerlerde risk üretmek demek. Biz okuma yolunu ve depolama düzenini değiştirdik, geri kalanı yerinde bıraktık.

  • Bakımı kendi ekibimiz sürdürecek. Yığın büyür mü?

    Büyütmedik. Laravel, Tailwind ve jQuery setinin dışına çıkmadık; yığına eklenen tek parça önbellek katmanı oldu ve bakımı devralacak ekibin çalıştığı araçlar aynı kaldı. Mimari kararın ömrü, onu sürdürecek ekibin tanıdığı araç kadar oluyor.

  • İhracata dönük bir katalogda okuma yolu neden bu kadar önemli?

    Alıcı sizi sayfadan tanıyor ve o sayfa gün içinde defalarca açılıyor. Aynı katalog sorgusu her açılışta veritabanına düşerse yük ziyaretçi sayısıyla birlikte artıyor. Önbellekten karşılandığında ise okuma sayısı yükü büyütmüyor.

Verinin hangi sınırda duracağına koddan önce karar verelim.