Jamil Sultanli.
← Ana Səhifəyə Qayıt

Serverless (Server-siz) Texnologiyası Nədir? Bulud Xərclərini 80% Azaltmağın Yolları

·12 dəqiqə

Müasir rəqəmsal dünyada startaplar və böyük texnologiya şirkətləri üçün ən böyük çağırışlardan biri infrastruktur xərclərinin idarə edilməsi və tətbiqlərin sürətli miqyaslanmasıdır. İllər boyu proqram təminatçıları fiziki serverlərin idarə edilməsindən virtual serverlərə (VPS) və bulud (Cloud) infrastrukturuna keçid etdilər. Lakin bu texnologiyalar belə, serverlərin daimi işləməsini, yenilənməsini və istifadə olunmayan resurslar üçün ödəniş edilməsini tələb edirdi.

Məhz bu nöqtədə texnologiya dünyasında yeni bir inqilab baş verdi: Serverless (Server-siz) Arxitektura. Serverless, adından göründüyü kimi serverlərin tamamilə yox olması demək deyil; bu, sadəcə olaraq server idarəetməsinin tamamilə bulud provayderinin (AWS, Google Cloud, Microsoft Azure və s.) üzərinə keçməsi deməkdir. Bu yazıda Serverless arxitekturasının nə olduğunu, necə işlədiyini, onun biznesinizə necə qənaət gətirə biləcəyini və praktiki tətbiq yollarını dərindən təhlil edəcəyik.


BUNLARI DA OXUYUN

Sıfırdan Sayt Hazırlamaq Bələdçisi: Kod Yazmadan Professional Veb Sayt Necə Qurulur?

Kod yazmadan professional veb sayt hazırlamaq istəyirsiniz? WordPress, Webflow və Shopify ilə addım-addım sayt qurmaq bələdçisi və ən yaxşı platformalar.

Oxumağa davam et

Serverless (Server-siz) Arxitektura Nədir? (Mif və Həqiqətlər)

Serverless arxitekturası haqqında ən böyük yanlış anlaşılma, proqramların arxa fonda heç bir server olmadan işlədiyini düşünməkdir. Əslində isə serverlər mövcuddur, lakin siz onları görmürsünüz, konfiqurasiya etmirsiniz və idarə etmirsiniz.

"Serverless arxitektura proqram təminatının hazırlanmasında inqilabi bir addımdır. O, tərtibatçıları infrastruktur qayğılarından azad edərək, yalnız koda və biznes dəyərinə fokuslanmağa imkan verir." - Werner Vogels, Amazon-un Baş Texnologiya Direktoru (CTO)

Serverless arxitekturası əsasən iki yerə bölünür:

  1. FaaS (Function as a Service - Xidmət kimi Funksiya): Tətbiqinizin biznes məntiqini kiçik, müstəqil kod parçalarına (funksiyalara) bölürsünüz. Bu funksiyalar yalnız müəyyən bir hadisə (event) baş verdikdə işə düşür və işini bitirdikdən sonra sönür.
  2. BaaS (Backend as a Service - Xidmət kimi Arxa Fon): Verilənlər bazası (məsələn, Firebase, Supabase), autentifikasiya (məsələn, Auth0) və ya fayl saxlama (məsələn, AWS S3) kimi xidmətlərin hazır API-lar vasitəsilə istifadə edilməsidir.

Ənənəvi sistemlərdə serveriniz 24/7 aktiv qalır və istifadəçi gəlsə də, gəlməsə də siz həmin serverin resursları (CPU, RAM) üçün sabit aylıq ödəniş edirsiniz. Serverless-də isə sistem yalnız sorğu gəldikdə aktivləşir və milisaniyələr daxilində işini tamamlayaraq sönür. Siz yalnız həmin aktiv işləmə müddəti üçün ödəniş edirsiniz.


Ənənəvi Serverlər (VPS/Dedicated) və Serverless Arasındakı Fərqlər

Layihəniz üçün düzgün infrastrukturu seçmək üçün ənənəvi serverlər ilə Serverless arasındakı fərqləri yaxşı başa düşməlisiniz. Aşağıdakı cədvəldə bu iki yanaşmanın əsas parametrlər üzrə müqayisəsi verilmişdir:

XüsusiyyətƏnənəvi Server (VPS / Dedicated)Serverless (FaaS - AWS Lambda və s.)
Ödəniş ModeliAylıq və ya illik sabit ödəniş (İstifadədən asılı olmayaraq)Milisaniyəlik aktiv işləmə müddətinə görə ödəniş
Miqyaslanma (Scaling)Manual və ya mürəkkəb Auto-scaling qaydaları tələb edirTamamilə avtomatik və dərhal (Sonsuz miqyaslanma)
İdarəetməƏməliyyat sistemi, təhlükəsizlik yeniləmələri sizin tərəfinizdən idarə olunurProvayder tərəfindən tam idarə olunur (Sıfır idarəetmə)
Soyuq Başlanğıc (Cold Start)Yoxdur (Server həmişə aktivdir və dərhal cavab verir)Mövcuddur (İlk sorğuda bir neçə milisaniyəlik gecikmə ola bilər)
Maksimum İşləmə VaxtıLimitsiz (Server daimi işləyir)Limitlidir (Məsələn, AWS Lambda üçün maksimum 15 dəqiqə)
İnkişaf Sürətiİnfrastruktur qurulması vaxt aparırÇox sürətli (Yalnız kodu yazıb yükləyirsiniz)

Serverless Arxitekturanın Əsas Üstünlükləri

1. İnanılmaz Xərc Optimizasiyası

Serverless-in ən cəlbedici tərəfi maliyyə qənaətidir. Əgər sizin gün ərzində yalnız müəyyən saatlarda aktiv olan bir tətbiqiniz varsa, ənənəvi serverə pul ödəmək büdcənizi boşa xərcləməkdir. Serverless-də tətbiqinizə heç bir sorğu gəlmədikdə xərciniz tam olaraq 0 AZN təşkil edir.

2. Avtomatik və Sonsuz Miqyaslanma

Təsəvvür edin ki, bir e-ticarət saytınız var və "Black Friday" kampaniyası zamanı saytınıza eyni anda 100,000 istifadəçi daxil olur. Ənənəvi serverlər bu yük altında çökə bilər və ya siz əvvəlcədən böyük pullar ödəyərək server gücünü artırmalısınız. Serverless isə gələn hər bir sorğu üçün yeni bir funksiya instansı yaradır. 1 sorğu gəlsə də, 1 milyon sorğu gəlsə də sistem eyni performansla işləyir.

3. Tərtibatçı Məhsuldarlığının Artması

Tərtibatçılar (developers) artıq Linux yeniləmələri, port konfiqurasiyaları, firewall tənzimləmələri və ya SSL sertifikatları ilə vaxt itirmirlər. Onlar yalnız biznes məntiqini yazmağa və məhsulu təkmilləşdirməyə fokuslanırlar. Bu da məhsulun bazara çıxış sürətini (Time-to-Market) əhəmiyyətli dərəcədə artırır.


Serverless-in Çətinlikləri və "Cold Start" Problemi

Hər bir texnologiyada olduğu kimi, Serverless-in də özünəməxsus çətinlikləri və mənfi tərəfləri var. Bunları bilmək, layihənizin memarlığını düzgün qurmaq üçün vacibdir.

  • Cold Start (Soyuq Başlanğıc): Əgər bir Serverless funksiyası uzun müddət çağırılmayıbsa, bulud provayderi onun resurslarını sərbəst buraxır. Yeni bir sorğu gəldikdə, provayder həmin funksiya üçün konteyneri yenidən işə salmalı olur. Bu proses "Cold Start" adlanır və ilk sorğunun cavab müddətini 100 milisaniyədən 2-3 saniyəyə qədər uzada bilər. Bunu aradan qaldırmaq üçün funksiyaları "isti" saxlamaq (warm-up) və ya provayderlərin təqdim etdiyi "Provisioned Concurrency" xidmətindən istifadə etmək lazımdır.
  • Vendor Lock-in (Provayder Asılılığı): Əgər siz tətbiqinizi tamamilə AWS Lambda, DynamoDB və Cognito üzərində qursanız, gələcəkdə Google Cloud və ya şəxsi serverinizə keçmək olduqca çətin və xərcli olacaq. Çünki yazdığınız kodlar birbaşa həmin provayderin daxili xidmətlərinə inteqrasiya olunur.
  • Debugging və Monitorinq Çətinliyi: Lokal kompüterinizdə bütün Serverless mühitini simulyasiya etmək çətindir. Xətaların izlənilməsi (debugging) üçün xüsusi alətlərdən (məsələn, AWS CloudWatch, Datadog və ya Sentry) istifadə etmək məcburiyyətindəsiniz.

Praktiki Tətbiq: İlk AWS Lambda Funksiyanızın Yazılması

Serverless dünyasına addım atmaq üçün ən populyar FaaS xidməti olan AWS Lambda üzərində sadə bir Node.js funksiyası yazaq. Bu funksiya istifadəçidən gələn API sorğusunu qəbul edəcək, məlumatları emal edəcək və JSON formatında cavab qaytaracaq.

Addım-addım Tətbiq Planı:

  1. AWS Konsoluna daxil olun və Lambda xidmətini seçin.
  2. "Create function" düyməsini sıxın və funksiyanıza ad verin (məsələn, myFirstServerlessFunction).
  3. Runtime olaraq Node.js 18.x və ya daha yeni versiyanı seçin.
  4. Aşağıdakı kodu redaktora əlavə edin və "Deploy" düyməsini sıxın.
// AWS Lambda funksiyası nümunəsi (Node.js)
// Bu funksiya istifadəçi məlumatlarını qəbul edir və emal edir

exports.handler = async (event) => {
    try {
        // API Gateway-dən gələn sorğunun gövdəsini (body) oxuyuruq
        const body = event.body ? JSON.parse(event.body) : {};
        const username = body.username || "Qonaq";
        
        // Biznes məntiqi: İstifadəçiyə salamlaşma mesajı hazırlayırıq
        const message = `Salam, ${username}! Serverless dünyasına xoş gəlmisiniz.`;
        
        // Uğurlu cavab qaytarırıq (HTTP 200)
        return {
            statusCode: 200,
            headers: {
                "Content-Type": "application/json",
                "Access-Control-Allow-Origin": "*" // CORS dəstəyi üçün
            },
            body: JSON.stringify({
                success: true,
                message: message, 
                timestamp: new Date().toISOString()
            })
        };
    } catch (error) {
        // Hər hansı xəta baş verdikdə HTTP 500 qaytarırıq
        return {
            statusCode: 500,
            body: JSON.stringify({
                success: false,
                error: "Daxili server xətası: " + error.message
            })
        };
    }
};

Bu funksiyanı aktivləşdirmək üçün AWS API Gateway vasitəsilə ona bir HTTP URL təyin edə bilərsiniz. Beləliklə, hər dəfə bu URL-ə sorğu göndərildikdə funksiyanız milisaniyələr ərzində işə düşəcək və yalnız işlədiyi müddətə görə sizdən ödəniş tutulacaq.


Bulud Xərclərini Serverless ilə Necə Hesablamaq Olar? (Riyazi Model)

Serverless-in maliyyə üstünlüyünü anlamaq üçün gəlin sadə bir riyazi hesablama aparaq. Ənənəvi server ilə Serverless arasındakı xərc fərqini hesablamaq üçün aşağıdakı düsturdan istifadə edə bilərik.

Serverless Xərc Düsturu:

Ümumi Serverless Xərci = (Sorğu Sayı * Bir Sorğunun Qiyməti) + (İcra Müddəti * Ayrılmış RAM * GB-Saniyə Qiyməti)

Təsəvvür edək ki, sizin kiçik bir API-nız var və o, ayda 1,000,000 (1 milyon) dəfə çağırılır. Hər bir çağırış orta hesabla 200 milisaniyə (0.2 saniyə) çəkir və funksiyaya 512 MB RAM ayrılıb.

  • Sorğu xərci: AWS Lambda-da ilk 1 milyon sorğu pulsuzdur (Free Tier). Sonrakı sorğuların hər milyonu təxminən 0.20 ABŞ dollarıdır.
  • Hesablama (Compute) xərci:
    • Ümumi saniyə = 1,000,000 sorğu * 0.2 saniyə = 200,000 saniyə.
    • GB-Saniyə çevrilməsi = 200,000 saniyə * (512 MB / 1024 MB) = 100,000 GB-Saniyə.
    • AWS Lambda-da 1 GB-Saniyə qiyməti təxminən 0.0000166667 dollardır.
    • Hesablama xərci = 100,000 * 0.0000166667 = 1.66 dollar.

Cəmi Aylıq Xərc: Təxminən 1.86 ABŞ dolları.

Eyni tətbiqi 24/7 işləyən və aylıq ən azı 15-20 dollar ödənişi olan ənənəvi VPS serverində saxlasaydınız, həm daha çox pul ödəyəcəkdiniz, həm də serverin təhlükəsizliyi və idarə edilməsi ilə özünüz məşğul olmalı idiniz. Bu nümunə Serverless-in kiçik və orta miqyaslı layihələrdə niyə 80%-ə qədər qənaət təmin etdiyini aydın şəkildə göstərir.


Hansı Hallarda Serverless Seçilməlidir? (Və Hansı Hallarda Seçilməməlidir?)

Serverless möhtəşəm bir texnologiya olsa da, hər bir layihə üçün uyğun deyil. Düzgün qərar vermək üçün aşağıdakı ssenariləri nəzərdən keçirin:

Serverless üçün Ən Yaxşı Ssenarilər:

  • API və Mikroxidmətlər (Microservices): Tez-tez çağırılan, lakin qısa müddətdə cavab verən RESTful API-lar.
  • Arxa Fon Tapşırıqları (Cron Jobs): Gündə bir dəfə və ya müəyyən saatlarda işləyən verilənlər bazası təmizlənməsi, hesabatların hazırlanması.
  • Fayl və Şəkil Emalı: İstifadəçilər şəkil yüklədikdə onların ölçüsünü avtomatik kiçildən və ya formatını dəyişən funksiyalar.
  • IoT (Əşyaların İnterneti) Data Axınları: Sensorlardan gələn anlıq məlumatların qəbulu və emalı.

Serverless-dən Qaçınmalı Olduğunuz Ssenarilər:

  • Uzunmüddətli Hesablamalar: Məsələn, böyük video faylların render edilməsi və ya ağır Maşın Öyrənməsi (Machine Learning) modellərinin öyrədilməsi. Serverless funksiyaların maksimum işləmə vaxtı limitli olduğu üçün bu tip işlər yarımçıq qala bilər.
  • Daimi və Yüksək Trafikli Monolit Tətbiqlər: Əgər tətbiqiniz 24/7 fasiləsiz olaraq saniyədə minlərlə sorğu qəbul edirsə, Serverless-in milisaniyəlik ödəniş modeli ənənəvi serverlərdən daha baha başa gələ bilər.

Nəticə və Gələcəyin Texnologiya Trendləri

Serverless arxitekturası sadəcə keçici bir trend deyil, bulud texnologiyalarının təbii təkamül mərhələsidir. O, startaplara minimal büdcə ilə qlobal miqyasda rəqabət aparmaq imkanı verir. İnfrastruktur qayğılarını arxa plana ataraq, yalnız istifadəçilərinizə dəyər qatan məhsul xüsusiyyətlərinə fokuslana bilərsiniz.

Əgər yeni bir layihəyə başlayırsınızsa və ya mövcud infrastrukturunuzun xərclərini azaltmaq istəyirsinizsə, Serverless texnologiyasını mütləq sınaqdan keçirin. AWS Lambda, Google Cloud Functions və ya Vercel kimi platformalarla kiçik addımlarla başlayaraq, həm vaxtınıza, həm də büdcənizə böyük qənaət edə bilərsiniz.

JS
YAZAR

Jamil Sultanli

Rəqəmsal marketinq, SEO və startuplar üzrə məsləhətçi. Datanın tətbiqi ilə işlərin miqyaslanması (Scaling) və inkişaf (Growth) strategiyalarının idarə olunması haqqında yazır.

Bunları da oxuyun