Azure Load Balancer və Azure Traffic Manager işləmə prinisipi.
Azure Load Balancer (ALB)
Azure load balancer 4-cü layer (Transport Layer) də işləyir və balancing xüsusi Hash Algorytm-ləri vasitəsilə həyata keçirilir. Bu algoritmə NSG-də (Network Security Group) olduğu kimi, 5 tip metadata daxildir.
- Source IP – Paketin hansı mənbə İp ünvandan göndərildiyi
- Source Port – Paketin hansı mənbə Portdan göndərildiyi
- Destination IP – Paketin istiqamətləndiyi İP ünvan
- Destination Port – Paketin istiqamətləndiyi Port
- Protocol – Paketin hansı protokol üzrə hərəkət etməsi (TCP/UDP)
Məhz bu məlumatlar əsasında paketlər analiz edilir və uyğun istiqamətlərə yönlədirilir. Unutmayın ki, Load Balancer yalnız eyni Virtual Network daxilində olan resurslar arasında balancing edə bilir.
Azure load balancer-in strukturu da həmçinin 5 komponentdən ibarətdir:
- Front-end Ip configuration
Bu ünvan Load balancer-ə müraciət üçün nəzərdə tutulan İp ünvandır. Front-end İp olaraq bir neçə İp ünvan göstərmək mümkündür.
- Backend Adress pool
Buraya Load balancer-in “arxasında” dayanan İp ünvanlar qeyd olunur. Hansı ki, balanslaşma məhz onların arasında olacaqdır.
- Load balancing Rules
Bu məlumatlar Load balancer-in hansı qaydalar əsasında işləcəyini təyin edir. Yəni məhz bu qaydalar vasitəsilə Load balancer trafiki yönləndirib yönləndirməyəcəyin təyin edir.
- Probes
Probe – vasitəsilə biz backend-də yerləşən VM-lərin vəziyyəti barədə məlumat alırıq. Başqa sözlə desək – Load balancer Probe vasitəsilə hər hansı VM-in işləyib işləmədiyin təyin edir.
- Inbound and outbound NAT Rules
NAT rule-lar sizin şəbəkəyə daxil olan paketlərin front-end İP ünvanından backend-İp ünvana hansı formada çatacağını təyin edir. Outbound Rule sizin VM private İp ünvanını Load balancer-in public ünvanına translate edə bilər.
Azure Load balancer yaradılması
- Azure portala daxil olun.
- “All services” bölməsindən “Load Balancers” seçin.
- Açılmış pəncərədə
- Subscription adı
- Resource Group adı
- Load Balancer-in adı
- Yerləşdiyi region
- Load balancer tipini (İnternal və ya Public)
- SKU (pulsuz və ya standart növdə)
- Tətbiq olunacağı Virtual şəbəkə
- Subnet
- İp adress tipini (dinamik və ya static)
- Redundancy növünü (əgər SKU olaraq Standart seşmisinizsə) qeyd edin
- Uyğun xanaları doldurduqdan sonra “Review + Create” düyməsinə click edin.
Public Load Balancing:
Public Load balancing zamanı, xaricdən gələn bütün informasiya load Balancer vasitəsilə VM-lər arasında, yüklənmə səviyyəsinə görə bölünür və nəticədə Availability qorunur. Ən mühüm məsələlərdən biri isə əgər Public Load Balancer-in arxasında dayanan servislərdən hər hansı dayansa, Load Balancer avtomatik olaraq trafiki digər servisə yönləndirir. Bu səbəbdən servisdə downtime demək olar ki olmur.
İnternal Load Balancing
Internal Load Balancer işləmə prinsipinə görə Public load balancer-ə çox yaxındır. Əsas fərq, xaricdən deyil, daxildən gələn trafikin balanslaşdırılmasındadır.
Global Load Balancing
Internal və Public Load Balancer-lər Availability-ni kifayət qədər artırır. Lakin, məsələ ondadır ki, bu load balancer-lər özləri müəyyən Datacenter çərçivəsində yerləşir. Yəni, “Load Balans” edilən resurslar eyni Datacenter-də olmalıdır.
Əvvəlcə bu məsələ ciddi görünməyə bilər. Azure Datacenter böyük istehsal gücünə sahibdir, külli miqdarda fiziki problemlərin yarandığı halda belə sizin proqramlar Azure fabric əsasında qurulmuş built-in redundancy sayəsində işini davam edəcəklər.
Amma təsəvvür edin əgər qəza nəticəsində Azure regionu və ya Datacenter shutdown olarsa nə baş verəcək… Nümunə üçün, təbii fəlakət nəticəsində uzunmüddətli elektrik kəsintisi və ya fiziki olaraq Datacenter məhv olarsa və sizin virtual struktur tək Datacenter və ya tək region ilə məhdudlaşıbsa, downtime qaçılmazdı.
Belə qəza situasiyalarından qorunmaq üçün, proqramları elə qurmaq lazımdır ki, onlarda cloud-un scalibility xidmətindən istifadə etsin. Azure vasitəsilə biz öz application-larımızı Global səviyyədə qoruya bilərik. Bunun üçün Azure Traffic Manager mövcüddur.
Azure Traffic Manager
Azure Traffic manager DNS əsasında fəaliyyət göstərir və bütün Azure regionları arasında trafiki optimal şəkildə balanslaşdırır. Bu həm Availaility-ni artırır həm də performansa müsbət təsir göstərir.
Azure Traffic Manager trafik yönləndirilməsi üçün 6 metoddan istifadə edə bilir. Bunlar:
- Prioritetə görə (Prority)
Əgər sizin bütün trafik üçün tək Node varsa və backup məqsədilə ikinci Node quraşdırmaq istəyirsinizdə bu metodu seçin. Nəticədə sizin əsas Node-da problem yaranarsa avtomatik olaraq trafik ikinci dərəcəli Node-a yönləndiriləcəkdir.
- Ağırlığa görə (Weighted)
Bütün trafiki bir neçə Node arasında bölüşdürmək üçün istifadə edə bilərsiniz. Bu bölüşdürməni həm bərabər həm də sizin təyin etdiyiniz koefisientlər əsasında reallaşdırmaq olar.
- Performansa görə (Performance)
Sizin müxtəlif coğrafi regionlarda Nodet-lariniz varsa və siz istifadəçilərin onlara ən yaxın olan regiona müraciətin təmin etmək istəyirsinizdə bu metod sizə kömək edə bilər.Qeyd edim ki, “yaxın” dedikdə – daha az latency olan region nəzərdə tutulur.
- Coğrafik (geographic)
Bu metod vasitəsilə siz, istifadəçi trafikin, olduqları coğrafi nöqtəyə nəzərən istiqamətləndirə bilərsiniz. Burada istifadəçinin hansı DNS zonadan müraciət etməsi əsasında lokasiyası təyin edilir.
- Çoxtərəfli (Multivalue)
Bu metod trafiki bir neçə Node-a eyni vaxta yönləndirir və hər bir node-dan cavab eyni vaxtda qayıdır. Əsasən hansısa Node-un keyfiyyətli connection təmin edə bilməməsi zamanı tətbiq olunur.
- Altşəbəkə üzrə (Subnet)
Müraciət olunan subnet əsasında trafikin hansı Node-a yönləndirilməsi təyin olunur.