DEV Community

Feyza Nur Dandal
Feyza Nur Dandal

Posted on

Priority Neden Vardır? İlk Eşleşen Kural Neden Kazanır?

Policy Engine içinde yüzlerce kural bulunduğunu düşünün.

Peki bir kullanıcı aynı anda birden fazla kurala uyuyorsa ne olur?

İşte bu problemi çözmek için Priority kavramı kullanılır.


Çakışan Kurallar

Örneğin elimizde şu iki kural olsun:

Policy 1

Department = Employee

↓

VLAN10
Enter fullscreen mode Exit fullscreen mode
Policy 2

Department = Employee

AND

Role = IT

↓

VLAN20
Enter fullscreen mode Exit fullscreen mode

Bir IT çalışanı her iki kurala da uyar.

Peki hangisi uygulanacak?


Priority

Her politika bir öncelik değerine sahiptir.

Önceliği daha yüksek olan politika önce değerlendirilir.

İlk eşleşen politika bulunduğunda değerlendirme sona erer.


Neden İlk Eşleşmede Duruyor?

Çünkü performans önemlidir.

Eğer sistem her kullanıcı için yüzlerce politikayı tek tek değerlendirseydi;

  • Gereksiz işlem yapılırdı.
  • Yanıt süresi uzardı.
  • Sunucu yükü artardı.

İlk uygun kural bulunduğunda durmak çok daha verimlidir.


En Özel Kural En Üste

Policy yazarken genel kabul gören yaklaşım şudur:

En özel kurallar önce gelir.

En genel kurallar en sona bırakılır.

Örneğin;

  1. IT yöneticileri
  2. IT çalışanları
  3. Tüm çalışanlar
  4. Misafir kullanıcılar

Bu sıralama hem okunabilirliği artırır hem de beklenmeyen davranışların önüne geçer.


Gerçek Hayattan Bir Örnek

Bir havaalanında önce diplomatik pasaport sahipleri kontrol edilir.

Daha sonra business yolcuları.

En son normal yolcular.

Bunun nedeni de aslında bir öncelik mekanizması olmasıdır.


Sonuç

Priority yalnızca kuralları sıralamak için kullanılan bir sayı değildir.

Doğru kullanıldığında sistem performansını artırır, kural çakışmalarını önler ve yönetimi kolaylaştırır.

Policy Engine tasarımında en kritik kavramlardan biri doğru önceliklendirmedir.

Top comments (0)