SODOO. El Kitabı

IX · Yönetim · Bölüm 31

Mimari ve kurulum

Sistemin parçaları, çok alan adlı kurulum, modüllerin yüklenme düzeni ve bir kurulumun neye benzediği.

Kime: sistem yöneticisiOkuma: 13 dk

Parçalar

        Ziyaretçi / kullanıcı
                 │
        ┌────────▼────────┐
        │  Ters vekil     │  TLS sonlandırma, alan adı yönlendirme
        │  (Nginx)        │
        └───┬────────┬────┘
            │        │
   ┌────────▼──┐  ┌──▼──────────────┐
   │  Uygulama │  │  Ofis sunucusu  │
   │  (Odoo)   │◄►│  (Docker)       │
   └────┬──────┘  └─────────────────┘
        │
   ┌────▼───────┐   ┌──────────────┐
   │ PostgreSQL │   │  Filestore   │  ek dosyaların baytları
   └────────────┘   └──────────────┘

Dört bileşen, dört ayrı sorumluluk:

  • Ters vekil — TLS, alan adı ayrımı, statik dosya sunumu, zaman aşımları.
  • Uygulama sunucusu — iş mantığı, ORM, HTTP uçları, arka plan görevleri.
  • Veritabanı — kayıtlar.
  • Filestore — ek dosyaların baytları. Veritabanı yalnız işaretçiyi tutar.

Çok alan adlı kurulum

Tek bir uygulama sunucusu birden fazla veritabanına hizmet edebilir. Hangi alan adının hangi veritabanına gideceğini ters vekil bir HTTP başlığıyla söyler; uygulama tarafında bunu okuyan küçük bir modül yüklüdür ve sunucu genelinde etkindir.

İki kural bunun düzgün çalışması için gerekli:

  • Uygulama vekil arkasında çalıştığını bilmeli (proxy_mode).
  • Veritabanı adı ve filtresi yapılandırmada sabitlenmemeli; kararı başlık verir.

Yeni bir kurulum çıkarmak

  1. Veritabanını oluşturun; var olan bir kurulumdan çoğaltılacaksa hem veritabanını hem filestore dizinini kopyalayın.

  2. Kopyalanan filestore'un sahipliğini uygulama kullanıcısına verin.

  3. Ters vekil yapılandırmasını yazın: kök konum, websocket konumu, servis çalışanı konumu ve veritabanını seçen başlık.

  4. Sertifikayı alın ve yapılandırmayı etkinleştirin.

  5. Erişimi doğrulayın: sayfa açılıyor mu, doğru veritabanına bağlanıyor mu, sert yenilemede 404 var mı?

Modüller ve yükleme

Özel modüller ayrı bir dizinde durur ve çekirdek dosyaları hiç değiştirilmez. Bir modül kurulur ya da güncellenir; güncelleme veri dosyalarını yeniden okur ve gerekiyorsa göç kodunu çalıştırır.

Ders

Modül güncellemesi arka uç kaynaklarını yeniden üretmez

Belirti
Güncelleme hatasız bitiyor ama tarayıcıda eski arayüz çalışmaya devam ediyordu.
Kök neden
Derlenmiş arayüz paketleri ayrı bir yerde saklanır ve modül güncellemesi onları geçersiz kılmaz.
Ders
Arayüz değişikliği içeren her yükseltmeden sonra paketler temizlenip yeniden üretilir. Ayrıca yayımlanan paketin içinde yeni kodun bulunduğu doğrulanır; "yükseltme hatasız bitti" bunu kanıtlamaz.

Dosya sahipliği

Sunucuya dosya kopyalarken sahipliğin uygulama kullanıcısında olması gerekir. Yanlış sahiplikle kopyalanan bir modül "manifest bulunamadı" hatasıyla sessizce atlanır — modül orada durur ama sistem onu göremez.

Arka plan görevleri

Zamanlanmış görevler (cron) bakım işlerini yürütür: indeksleme, temizlik, hatırlatma, denetim.

Neyi ölçmeli

Bir kurulumun sağlıklı olduğunu söyleyen dört ölçü:

ÖlçüNereden
Servis ayakta mıServis yöneticisi
Hata var mıUygulama günlüğü
Disk doluyor muFilestore ve veritabanı dizini
Yedek alındı mı ve geri yüklenebiliyor muYedekleme yordamı

Dördüncüsü en çok atlanandır: geri yüklenmemiş bir yedek, yedek değildir.