Mimari Prensipler

Denomas mimari prensipleri — API-First, Infrastructure as Code, Zero Trust, modülerlik

Mimari Prensipler

Denomas'ın tüm ürünleri ve altyapısı aşağıdaki mimari prensipler üzerine inşa edilir. Mimari, "Önce Teknik Temel (Foundation First)" felsefesine dayanır. Müşteriye sunulacak özellikler geliştirilmeden önce tüm geliştirme ve otomasyon altyapısı mükemmelleştirilir.

Teknoloji Yığını (Technology Stack)

BileşenTeknolojiVersiyon / DetayGerekçe
Ana PlatformOdoo18.0+ (Python 3.10+)CRM, satış, faturalandırma, muhasebe için zengin özellik seti
Backend FrameworkPython / Django4.2+ LTSMikroservisler ve harici API'ler için
MikroservislerPython (FastAPI)0.100+Yüksek performanslı API güdümlü servisler
VeritabanıPostgreSQL15+Nesne-ilişkisel, ölçeklenebilir, güvenilir
Önbellek / KuyrukRedis7+Session, cache, Celery broker
Web SunucuCaddyReverse proxy, SSL termination, load balancing
Kaynak Kod YönetimiGitLab (Self-Hosted)code.denomas.com ve code.ilimteknoloji.com
CI/CDGitLab CI/CDMevcut GitLab Runner'lar ile entegre pipeline
Ön Yüz (Frontend)Odoo Owl JS FrameworkOdoo ekosistemi içinde sorunsuz entegrasyon
Bilişsel AltyapıNode.js tabanlı MCP SunucularıModel Context Protocol (Yapay Zeka Asistanı erişimi)
KonteynerizasyonDocker, Docker ComposeTutarlı, izole ve tekrarlanabilir ortamlar
IaCAnsible / TerraformKonfigürasyon yönetimi ve cloud provizyon
İzlemePrometheus + GrafanaMetrik toplama ve görselleştirme
LoglamaWazuhMerkezi log yönetimi

1. API-First

Her ürün ve hizmet, önce API olarak tasarlanır. UI, API'nin bir tüketicisidir.

  • Tüm API'ler OpenAPI 3.0+ spesifikasyonu ile dokümante edilir
  • API versiyonlaması zorunludur (/api/v1/, /api/v2/)
  • Rate limiting ve authentication her endpoint'te bulunur
  • API tasarımı, implementasyondan önce review edilir

Gerçek Örnek — Siber Sigorta Tarama API:

POST /api/v1/security_scan
Content-Type: application/json

{
  "target_url": "https://example.com",
  "scan_type": "quick",
  "callback_url": "https://odoo.internal/api/scan_callback"
}

Bu endpoint, Odoo Controller tarafından Güvenlik Tarama Servisi'ni (Docker konteyner) tetikler. Sonuçlar JSON olarak döner, Odoo risk skoru hesaplar ve otomatik olarak crm.lead kaydı oluşturur.

2. Infrastructure as Code (IaC)

Tüm altyapı, kod olarak tanımlanır ve versiyon kontrolünde tutulur.

  • Ansible — Konfigürasyon yönetimi ve deployment
    • Standart Ansible rolleri: denomas-base, denomas-monitoring, denomas-security, denomas-backup
    • Tüm roller code.denomas.com/ansible/roles/ altında versiyon kontrolündedir
    • Playbook'lar idempotent olmalı ve molecule ile test edilmelidir
  • Terraform — Cloud kaynak yönetimi (AWS, Proxmox, VMWare provizyon)
  • Docker / Docker Compose — Konteynerizasyon
    • Başlangıç mimarisi: Docker Compose ile tek sunucu
    • Ölçeklenme planı: Kubernetes'e geçiş (auto-scaling, self-healing)
  • Makefile — Karmaşık geliştirici ortamını basit komutlarla yönetir (make setup, make start, make test)
  • Manuel altyapı değişikliği yapılmaz; tüm değişiklikler MR üzerinden gelir
# Örnek: Yeni ortam başlatma
make setup          # Bağımlılıkları yükle, .env oluştur
make start          # Docker Compose ile tüm servisleri başlat
make test           # Tüm testleri çalıştır
make deploy-staging # Staging ortamına deploy

3. Zero Trust

Ağ içerisinde bile güven varsayılmaz. Her istek doğrulanır.

  • mTLS ile servisler arası iletişim
  • RBAC ile en az yetki (least privilege) prensibi — Odoo'nun standart ACL ve Record Rules yapısı en katı şekilde uygulanır
  • Tüm erişim logları merkezi olarak toplanır (Wazuh)
  • Düzenli erişim denetimleri yapılır
  • Sır Yönetimi (Secrets Management):
    • API anahtarları, veritabanı parolaları asla kodun içinde (hardcoded) yer almaz
    • Geliştirme ortamı: .env dosyaları (.gitignore'da zorunlu)
    • CI/CD ortamı: GitLab CI/CD Variables (Protected + Masked)
    • Canlı ortam: HashiCorp Vault veya GitLab CI/CD Variables
  • Otomatik Kalite Kapısı, SQL injection ve XSS gibi bilinen açıkları koda girmeden engeller

4. Modülerlik

Ürünler bağımsız modüllere ayrılır:

  • Her modül bağımsız deploy edilebilir
  • Modüller API üzerinden iletişim kurar
  • Gevşek bağlı, sıkıca tanımlanmış arayüzler
  • 700+ modül bu prensiple yönetilir

Hibrit Odoo Çekirdeği Mimarisi

Platform, Hibrit ve Genişletilebilir Odoo Çekirdeği Mimarisi üzerine kuruludur:

KatmanSorumlulukÖrnekler
Odoo ÇekirdeğiMerkezi veri ve iş mantığı hub'ıres.partner, sale.order, account.move, project.task
Özel Odoo ModülleriDenomas'a özel iş mantığıilim_ekosistem_base, ilim_hr_skills, ilim_compliance_bgrehber, ilim_strategy_management
MikroservislerOdoo'nun çekirdek yeteneklerini aşan görevlerEvrensel Provizyon Motoru, Otonom Fırsat Motoru, Siber Güvenlik Tarama Servisi
MCP SunucularıYapay Zeka Asistanı erişim katmanımcp-odoo, mcp-file-search, mcp-git

Multi-Tenant Mimari

Çoklu müşteri izolasyonu için:

  • Her müşteri için izole veritabanı şeması (PostgreSQL schema-based isolation)
  • RBAC ile tenant bazlı erişim kontrolü
  • Tenant-aware API middleware
  • Partner portalı ve bayi portalı ayrı Odoo Website instance'ları olarak çalışır

5. Mimari Karar Süreci (Architecture Decision Records)

Her teknik karar, "Mimari Analiz ve Karar Verme Süreci (SOP v6.0)" belgesine uyularak verilir. Bu süreç, "Kullan > Yükselt > Genişlet > İnşa Et" hiyerarşisini zorunlu kılar.

Karar Hiyerarşisi

ÖncelikYaklaşımAçıklama
1KullanOdoo çekirdek veya güncel OCA modülü olduğu gibi kullanılır
2YükseltKurumsal arşivdeki eski versiyon modül güncellenir
3GenişletMevcut modül üzerine özel geliştirme yapılır
4İnşa EtSıfırdan modül geliştirilir (son çare)

Kantitatif Karar Matrisi

Her mimari karar için docs/decisions/decision_log_[konu].md dosyasında şu matris doldurulur:

SeçenekPRD Uygunluk % (Ağırlık: 40%)Geliştirme Eforu (1-10) (Ağırlık: 30%)Bakım Riski (1-10) (Ağırlık: 20%)Best Practices Uyumu % (Ağırlık: 10%)Nihai Mimari Puanı
Odoo Çekirdek[Puan][Puan][Puan][Puan][Hesaplanan]
OCA Modülü[Puan][Puan][Puan][Puan][Hesaplanan]
Sıfırdan İnşa100%[Puan][Puan][Puan][Hesaplanan]

Alınmış Mimari Kararlar Örnekleri

KararSeçenekGerekçe
Yapılandırılabilir ÜrünlerOCA product-configurator + genişletmeOtomatik provizyon mantığı eklendi
Sözleşme YönetimiOCA contract + agreement_legal + genişletmeUyumluluk ve Denomas Yetkinlik Çerçevesi modelleri bağlandı
Denomas Yetkinlik Çerçevesi & Uyumluluk KatmanıSıfırdan inşaStandart çözüm bulunamadı, Odoo best practices ile geliştirildi

6. Resilience (Dayanıklılık)

Sistemler, arızaya hazır tasarlanır:

  • Circuit breaker pattern
  • Graceful degradation
  • Otomatik retry mekanizmaları
  • Canary deployment ve otomatik rollback
  • Evrensel Connector Mimarisi — Bir sağlayıcıda sorun yaşandığında başka bir sağlayıcıya geçişi kolaylaştıran esnek yapı

7. Gözlemlenebilirlik (Observability)

Her sistem, izlenebilir ve hata ayıklanabilir olmalıdır:

  • Prometheus metrikleri — Odoo ve PostgreSQL için özel exporter'lar
  • Yapılandırılmış loglama — Tüm bileşenler loglarını JSON formatında stdout'a yazar
  • Merkezi log toplama — Fluentd ile Docker/Kubernetes log'ları toplanır ve Wazuh'a gönderilir
  • Dağıtık tracing (OpenTelemetry)
  • Grafana panoları — Veritabanı bağlantı sayısı, yavaş sorgular, aktif kullanıcı sayısı gibi kritik metrikler
  • Alerting ve on-call süreçleri

8. Ölçeklenebilirlik

FazMimariDetay
BaşlangıçDocker ComposeTek sunucu, kolay yönetim, hızlı başlangıç
BüyümeKubernetesOtomatik ölçeklenme, self-healing, rolling updates

Kubernetes'e geçişte kazanılacak yetenekler:

  • Auto-scaling — Yoğun saatlerde Odoo web sunucusu pod sayısı otomatik artar
  • Self-healing — Çöken servisler otomatik yeniden başlatılır
  • Rolling Updates — Sıfır kesinti ile güncelleme

İlgili Sayfalar