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.
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
Veritabanını oluşturun; var olan bir kurulumdan çoğaltılacaksa hem veritabanını hem filestore dizinini kopyalayın.
Kopyalanan filestore'un sahipliğini uygulama kullanıcısına verin.
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.
Sertifikayı alın ve yapılandırmayı etkinleştirin.
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.
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 mu | Filestore ve veritabanı dizini |
| Yedek alındı mı ve geri yüklenebiliyor mu | Yedekleme yordamı |
Dördüncüsü en çok atlanandır: geri yüklenmemiş bir yedek, yedek değildir.