Çoxkirayəçili və isolated arxitekturaların anlayışı: müqayisəli təhlil
Aydın məsələdir ki, proqram təminatının arxitekturası sahəsində ən başlanğıcda verilən qərarlar ciddi nəticələrə səbəb ola bilər. Bu qərarlardan biri çoxkirayəçili (multi-tenant) və ya isolated (multi-instance) arxitekturalarının seçimini etməkdir. Hər iki yanaşmanın özünəməxsus güclü və zəif tərəflərinin olduğuna görə, onlar əsaslı şəkildə fərqli layihələndirmə yollarını təmsil edirlər.
Çoxkirayəçili arxitektura
Sadə sözlə desək, bir neçə müştəriyə xidmət göstərmək üçün bir örnəkdən ibarət olan sistem. Faktiki olaraq, hər bir müştəri məntiqlə digərlərindən təcrid olunur, əslində isə hər kəs eyni resurslara müraciət edirlər.
Çoxkirayəçili arxitekturada verilənlər bazası, serverlər və tətbiqin özü kimi resurslar bütün müştərilər arasında paylanılır. Bu da, resurslardan daha səmərəli istifadəyə gətirib çıxarır.
Resurslar paylandığına görə, infrastrukturun saxlanması dəyəri adətən bir çox fərdi konfiqurasiya edilmiş sistemlərdən daha aşağı olur. Bu da xərcləri minimuma endirmək istəyən müəssisələr üçün əhəmiyyətli bir üstünlükdür. Həmçinin, yenilənmələr və texniki xidmətlər mərkəzləşdirilmiş şəkildə həyata keçirilə bilər ki, bu da ümumi inzibati yükü azaldır.
Üstünlüklərə gəldikdə isə
Xərclərdə qənaət
Resursların paylanması infrastruktura və texniki xidmətə qənaət etməyə imkan verir.
Miqyaslaşma
Sistemi asanlıqla genişləndirmək olar, çünki ümumi resurslar tələbatdan asılı olaraq dinamik şəkildə paylanılır.
Xidmət
Yeniləmələr və texniki xidmət tapşırıqları bütün müştərilərə ümumilikdə tətbiq edilir, bu da tələb olunan vaxt və səyləri azaldır.
Tətbiqetmə
Çox güman SaaS "Software as a Service" xidməti haqqında eşitmisiniz, bu xidmət çoxkirayəçili arxitekturasına əsaslanır. Niyə? Tamamilə doğrudur. Çünki bu xidmət, bir neçə müştəriyə müxtəlif fərdiləşdirmə dərəcələri ilə eyni tətbiqə daxil olmağı imkan verir.
Isolated arxitektura
Paylanan resursların üstünlüklərinə baxmayaraq, təcrid olunmuş resursların daha çox müsbət məqamları var.
Təcrid olunmuş, yəni multi-instance, arxitekturada hər bir müştərinin öz resursları ilə yanaşı ayrıca öz tətbiq örnəyi olur. Bir daha, bu, hər bir müştərinin bir-birindən ayrı təcrid olunmuş şəkildə fəaliyyət göstərməsi deməkdir. Belə izolyasiya daha yüksək dərəcədə təhlükəsizlik və fərdiləşdirməyə imkan verir.
Hər bir örnəyə ayrı-ayrı resurslar ayırmaqla, bu, fərdi müştərilər üçün təkmilləşdirilmiş performansla nəticələnir. Amma. Çoxsaylı örnəkləri idarə etmək qat-qat çətin olur, çünki hər biri ayrıca resurslar, yeniləmələr və texniki xidmət tələb edir.
Üstünlüklər
Fərdiləşdirmə
Müştərilər öz örnəklərini daha çevik şəkildə konfiqurasiya etmək imkanına malikdirlər ki, bu da bu arxitekturanı müştərilərin unikal tələblərinin olduğu hallar üçün uyğun edir.
Təhlükəsizlik
Təhlükəsizlik riskləri fərdi örnəklərlə məhdudlaşır və müştərilər arası xəta ehtimalını minimuma endirir.
Performans
Performans daha təxmin edilə bilən və davamlı olur.
Tətbiqetmə
Bu halda nisbətən daha çox misallar var. Müştərilərin fərdi tənzimləmə və məlumatların məxfiliyi tələbindən tutmuş xüsusi proqram versiyalarına qədər.
Hibrid yanaşmalar
İstənilən konseptual məsələdə və metodoloji müzakirələrdə həmişə hər iki tərəfin mənfi cəhətlərini endirərək üstünlükləri maksimuma çatdırmaq üçün hər iki tərəfin birləşməyini təklif edən və bəlkə də məcbur edən bir kəs olur.
Hibrid arxitektura həm çoxkirayəçili, həm də isolated yanaşmaların xüsusiyyətlərini birləşdirir. Bu, effektivlik və fərdiləşdirmə arasında balans yaradaraq, paylanan resursların və xüsusi örnəklərin birləşdirilməsinə imkan verir.
Bəs bunu harada tətbiq etmək olar?
Məsələn xüsusi örnəkləri olan çoxkirayəçili yanaşma
Bu yanaşma ayrı müştərilərin unikal konfiqurasiya və ya təhlükəsizlik ehtiyacları üçün xüsusi örnəklərə malik olması imkanı ilə ümumi tətbiqin çoxkirayəçili əsaslı olmasını nəzərdə tutur.
Və ya məlumatların ayrılması əsaslı variant
Bu hibrid modeldə verilənlər bazası kimi bəzi resurslar müştərilər arasında paylanılır, digərləri isə konkret örnəklərə ayrılır. Bu, resurs səmərəliliyi və fərdiləşdirmə arasında balans yaratmağa imkan verir.
Bir ara kütləvi istifadə olunan mikroservis arxitekturası
Sistemi daha kiçik, müstəqil servislərə bölməklə, müxtəlif servislər üçün müxtəlif arxitekturaları tətbiq etmək olar. Məsələn, bəzi servisləri çoxkirayəçili, digərlərini isə isolated yanaşmanın üzərində qurmaq olar.
Yogi Berranın dediyinə görə
Nəzəriyyədə nəzəriyyə ilə təcrübə arasında heç bir fərq yoxdur. Təcrübədə isə var.
Suvorovun isə bu məsələyə fərqli yanaşması var idi
Təcrübəsiz nəzəriyyə cansız, nəzəriyyəsiz təcrübə isə kor olar.
Kor qalmamaq və arxitekturanı davamlı olaraq tətbiq etmək üçün gələcəkdə məqalədə təsvir olunan yanaşmaları praktiki olaraq təsvir etməyi planlaşdırıram. Təsvirlərin hamısı ASP.NET Core əsasında qurulacaq.
Diqqətinizə görə təşəkkürlər