Οδηγοί

Τι είναι το serverless; Το serverless computing εξηγημένο απλά

Το serverless είναι ένας τρόπος εκτέλεσης κώδικα όπου δεν στήνεις και δεν διαχειρίζεσαι μόνος σου κανέναν server. Παραδίδεις τον κώδικά σου σε πάροχο cloud, και εκείνος τον τρέχει μόνο όταν τον ενεργοποιήσει κάτι — ένα αίτημα ιστού, ένα ανεβασμένο αρχείο, μια ειδοποίηση πληρωμής — και μετά σταματά. Συνήθως πληρώνεις για τον χρόνο που τρέχει πραγματικά ο κώδικάς σου, και όχι για μια μηχανή που είναι αδρανής.

Γιατί έχει σημασία το serverless όταν χτίζεις με AI

Όταν χτίζεις εφαρμογή με AI και κοιτάς επιλογές φιλοξενίας ή κώδικα, θα συναντήσεις «serverless functions», «edge functions» ή «cloud functions». Πολλές πλατφόρμες φιλοξενίας τα προσφέρουν, και ορισμένοι AI builders αναπτύσσουν backends με αυτόν τον τρόπο. Η κατανόηση του μοντέλου σε βοηθά με τρεις πρακτικές ερωτήσεις:

  • Κόστος. Θα κοστίζει χρήματα η εφαρμογή σου όταν δεν τη χρησιμοποιεί κανείς;
  • Ταχύτητα. Γιατί το πρώτο αίτημα μετά από ήσυχη περίοδο είναι πιο αργό;
  • Όρια. Γιατί μια μεγάλη εργασία — δημιουργία ενός μεγάλου αναφοράς, επεξεργασία βίντεο — έληξε λόγω χρονικού ορίου;

Επίσης βοηθά να ξέρεις τι δεν είναι το serverless: δεν είναι απουσία backend. Εξακολουθείς να έχεις κώδικα στην πλευρά του server· απλώς κάποιος άλλος τρέχει τις μηχανές. Για τα βασικά, δες τι είναι ένας server.

Μια καθημερινή αναλογία

Ένας παραδοσιακός server είναι σαν να έχεις αυτοκίνητο. Είναι πάντα εκεί, έτοιμος να κινηθεί αμέσως, αλλά το πληρώνεις — ασφάλεια, πάρκινγκ, συντήρηση — είτε το οδηγείς είτε όχι.

Το serverless είναι σαν να καλείς ταξί. Πληρώνεις μόνο για τις διαδρομές που κάνεις, και αν εκατό άνθρωποι χρειαστούν διαδρομή ταυτόχρονα, έρχονται εκατό ταξί. Όμως μπορεί να υπάρξει μικρή αναμονή μέχρι να φτάσει το αυτοκίνητο (ένα cold start), κάθε διαδρομή έχει μέγιστη διάρκεια, και ο οδηγός δεν θυμάται εσένα από την προηγούμενη διαδρομή (οι functions είναι stateless).

Πώς λειτουργούν οι serverless functions

Στη συνηθέστερη μορφή, που ονομάζεται functions as a service:

  1. Γράφεις μια function — ένα μικρό κομμάτι κώδικα που χειρίζεται ένα είδος γεγονότος, όπως «χειρίσου ένα POST στο /api/bookings».
  2. Την αναπτύσσεις. Ο πάροχος την αποθηκεύει και τη συνδέει με ένα trigger: ένα URL, ένα πρόγραμμα, ένα νέο αρχείο στο storage, ένα μήνυμα σε ουρά.
  3. Φτάνει ένα γεγονός. Ο πάροχος ξεκινά ένα αντίγραφο της function σου (ή επαναχρησιμοποιεί ένα ήδη ενεργό), την τρέχει και επιστρέφει το αποτέλεσμα.
  4. Μεγαλώνει μόνο του. Αν φτάσουν χίλια αιτήματα ταυτόχρονα, ο πάροχος τρέχει πολλά αντίγραφα παράλληλα, μέχρι τα όρια του λογαριασμού σου.
  5. Μένει αδρανής. Όταν σταματά η κίνηση, τα αντίγραφα κλείνουν. Χωρίς τίποτα να τρέχει, δεν πληρώνεις για υπολογιστική ισχύ.

Μια μικρή serverless function σε JavaScript μπορεί να μοιάζει έτσι:

export default async function handler(request) {
  const { name } = await request.json();
  return Response.json({ message: `Γεια σου, ${name}` });
}

Δεν υπάρχει κώδικας για εκκίνηση server, άνοιγμα θύρας ή διατήρηση διεργασίας σε λειτουργία. Η πλατφόρμα αναλαμβάνει όλα αυτά.

Το «serverless» χρησιμοποιείται επίσης πιο χαλαρά για άλλες διαχειριζόμενες υπηρεσίες που μεγαλώνουν αυτόματα και χρεώνουν ανά χρήση — για παράδειγμα, serverless βάσεις δεδομένων, που σταματούν όταν είναι αδρανείς.

Βασικοί όροι

ΌροςΣημασία
Function (FaaS)Μια μικρή μονάδα κώδικα που τρέχει ο πάροχος όταν χρειάζεται.
Trigger / γεγονόςΑυτό που ξεκινά τη function — ένα αίτημα HTTP, ένα ανέβασμα αρχείου, ένα χρονόμετρο, ένα μήνυμα σε ουρά.
Cold startΚαθυστέρηση όταν πρέπει να ξεκινήσει ένα νέο αντίγραφο της function πριν χειριστεί αίτημα.
WarmΑντίγραφο που τρέχει ήδη και μπορεί να απαντήσει αμέσως.
StatelessΗ function δεν κρατά μνήμη ανάμεσα στις εκτελέσεις. Ό,τι πρέπει να μείνει αποθηκεύεται σε βάση δεδομένων ή storage.
TimeoutΟ μέγιστος χρόνος που επιτρέπεται για μία εκτέλεση. Για παράδειγμα, το AWS Lambda έχει μέγιστο 15 λεπτά· πολλές πλατφόρμες έχουν πολύ μικρότερο προεπιλεγμένο όριο.
Edge functionFunction που τρέχει σε πολλές τοποθεσίες κοντά στους χρήστες, συχνά με πιο αυστηρά όρια.
Scale to zeroΔεν τρέχει τίποτα και δεν πληρώνεις για υπολογιστική ισχύ όταν δεν υπάρχει κίνηση.

Ένα παράδειγμα: ένας μικρός ιστότοπος κρατήσεων

Ο ιστότοπος κρατήσεων ενός studio γιόγκα δέχεται έξαρση επισκέψεων κάθε Κυριακή βράδυ, όταν ανεβαίνει το νέο πρόγραμμα, και πολύ λίγες το υπόλοιπο της εβδομάδας.

  • Σε server που είναι πάντα ανοιχτός, το studio πληρώνει μια μηχανή 24/7, διαστασιολογημένη για την αιχμή της Κυριακής βραδιάς, και είναι σχεδόν αδρανής τις άλλες ώρες.
  • Με serverless functions, τα GET /api/classes και POST /api/bookings είναι functions. Η βραδινή ώρα της Κυριακής ξεκινά αυτόματα πολλά αντίγραφα· σε μια ήσυχη Τρίτη πρωί, σχεδόν τίποτα δεν τρέχει και ο λογαριασμός είναι κοντά στο μηδέν.

Οι συμβιβασμοί εμφανίζονται κι αυτοί. Ο πρώτος άνθρωπος που ανοίγει τον ιστότοπο την Τρίτη πρωί μπορεί να περιμένει λίγο παραπάνω για ένα cold start. Η βάση δεδομένων πρέπει να χειριστεί πολλές σύντομες συνδέσεις από πολλά αντίγραφα functions, πράγμα που μπορεί να απαιτεί connection pooler. Και αν αργότερα το studio θελήσει μια εργασία «δημιούργησε το ετήσιο PDF παρακολούθησης όλων», μπορεί να ξεπεράσει το χρονικό όριο της function και να χρειαστεί να τρέξει αλλού.

Πότε ταιριάζει το serverless — και πότε όχι

Καλή επιλογήΛιγότερο καλή επιλογή
Κίνηση χαμηλή, ξαφνική ή απρόβλεπτηΣταθερή βαριά κίνηση, όπου ένας πάντα ανοιχτός server μπορεί να είναι φθηνότερος
Σύντομες εργασίες αιτήματος/απάντησης: APIs, χειριστές φορμών, webhooksΕργασίες μεγάλης διάρκειας: επεξεργασία μεγάλων βίντεο, μεγάλες εισαγωγές δεδομένων
Μικρές ομάδες που δεν θέλουν να διαχειρίζονται serversΕφαρμογές που κρατούν ανοιχτές ζωντανές συνδέσεις (ορισμένες λειτουργίες chat ή πολλών παικτών), εκτός αν το υποστηρίζει η πλατφόρμα
Διαχείριση γεγονότων: «όταν ανεβαίνει αρχείο, φτιάξε μικρογραφία»Εφαρμογές που χρειάζονται πολλή μνήμη ανάμεσα στα αιτήματα

Συνηθισμένες παρανοήσεις

  • «Το serverless σημαίνει ότι δεν υπάρχει backend.» Σημαίνει ότι δεν υπάρχουν servers για διαχείριση. Εξακολουθείς να γράφεις και να ασφαλίζεις κώδικα backend.
  • «Το serverless είναι πάντα φθηνότερο.» Φθηνό σε μικρό όγκο, αλλά η τιμολόγηση ανά αίτημα μπορεί να μεγαλώσει σε μεγάλο, σταθερό όγκο.
  • «Το serverless κλιμακώνεται απεριόριστα.» Οι πλατφόρμες έχουν όρια ταυτοχρονισμού, και η βάση δεδομένων σου μπορεί να γίνει το εμπόδιο πολύ πριν από τις functions.
  • «Τα αρχεία που αποθηκεύει μια function θα υπάρχουν την επόμενη φορά.» Η τοπική αποθήκευση είναι προσωρινή. Χρησιμοποίησε βάση δεδομένων ή αποθήκευση αρχείων.
  • «Το scale-to-zero είναι το ίδιο με το serverless.» Σχετικά, αλλά όχι ταυτόσημα. Ορισμένες πλατφόρμες τρέχουν την εφαρμογή σου ως συνηθισμένο server που κοιμάται όταν είναι αδρανής και ξυπνά στο επόμενο αίτημα — παρόμοιο όφελος και παρόμοια καθυστέρηση πρώτου αιτήματος, αλλά χωρίς τα χρονικά όρια ανά αίτημα που έχουν οι functions.

Τι να ζητάς από τον AI builder σου

  • «Θα τρέχει αυτό το backend ως serverless functions ή ως πάντα ανοιχτός ή κοιμώμενος server; Τι σημαίνει αυτό για το κόστος;»
  • «Υπάρχουν εργασίες που πιθανώς θα ξεπεράσουν το χρονικό όριο της πλατφόρμας; Αν ναι, πώς πρέπει να τις χειριστούμε;»
  • «Αποθήκευσε όσα πρέπει να μείνουν στη βάση δεδομένων ή στο storage αρχείων, όχι στη μνήμη ή σε τοπικά αρχεία.»
  • «Πώς πρέπει να διαχειρίζονται οι συνδέσεις της βάσης αν τρέχουν πολλά αντίγραφα ταυτόχρονα;»
  • «Ποια είναι η καθυστέρηση στο πρώτο αίτημα αφού η εφαρμογή έχει μείνει αδρανής;»

Πώς φιλοξενεί εφαρμογές το Mythex

Το Mythex δεν περιγράφει τη φιλοξενία του ως serverless functions. Όταν δημοσιεύεις, η εφαρμογή σου τρέχει ως κανονική web εφαρμογή ή container που διαχειρίζεται το Mythex για σένα — δεν υπάρχει φιλοξενία να στήσεις. Είναι scale-to-zero: οι δημοσιευμένες εφαρμογές και οι βάσεις τους κοιμούνται όταν είναι αδρανείς και ξυπνούν στην επόμενη επίσκεψη, μια κοιμώμενη εφαρμογή δεν κοστίζει σε υπολογιστική ισχύ, και επιπλέον μηχανές ξεκινούν μόνο όταν η κίνηση είναι μεγάλη (το Pro επιτρέπει έως 3 ανά υπηρεσία). Η συνδεδεμένη βάση Postgres κοιμάται επίσης μετά από 5 λεπτά αδράνειας και χρεώνεται για τον χρόνο που ήταν ξύπνια. Έτσι παίρνεις μεγάλο μέρος του οφέλους «πληρώνεις ό,τι χρησιμοποιείς», με το ίδιο είδος καθυστέρησης πρώτου αιτήματος μετά από ήσυχη περίοδο. Δες τα όρια φιλοξενίας στην τεκμηρίωση, και τους οδηγούς μας για φιλοξενία ιστού και μείωση κόστους φιλοξενίας.

Ερωτήσεις

Τι σημαίνει serverless με απλά λόγια;

Το serverless σημαίνει ότι δίνεις τον κώδικά σου σε πάροχο cloud και εκείνος τον τρέχει μόνο όταν χρειάζεται — για παράδειγμα, όταν φτάνει ένα αίτημα — χωρίς να στήνεις ή να φροντίζεις κανέναν server. Συνήθως πληρώνεις για τον χρόνο που τρέχει πραγματικά ο κώδικάς σου, και όχι για μια μηχανή που είναι πάντα ανοιχτή.

Υπάρχουν πραγματικά servers στο serverless;

Υπάρχουν servers· απλώς δεν τους διαχειρίζεσαι. Ο πάροχος τρέχει τον κώδικά σου στις δικές του μηχανές, τον ξεκινά όταν φτάνουν αιτήματα, τον μεγαλώνει υπό φορτίο και τον κλείνει όταν μένει ανενεργός.

Τι είναι το cold start;

Το cold start είναι η επιπλέον καθυστέρηση όταν μια serverless function τρέχει μετά από περίοδο αδράνειας, επειδή ο πάροχος πρέπει πρώτα να ξεκινήσει ένα νέο αντίγραφό της. Μπορεί να κυμαίνεται από σχεδόν αόρατη μέχρι ένα δευτερόλεπτο ή και περισσότερο, ανάλογα με την πλατφόρμα, τη γλώσσα και το μέγεθος του κώδικα.

Είναι το serverless φθηνότερο από έναν κανονικό server;

Για εφαρμογές με λίγη ή άνιση κίνηση, συχνά ναι, επειδή πληρώνεις σχεδόν τίποτα όταν είναι αδρανής. Για εφαρμογές με βαριά, σταθερή κίνηση, ένας server που είναι πάντα ανοιχτός μπορεί να βγει φθηνότερος. Εξαρτάται από το μοτίβο χρήσης σου και την τιμολόγηση του παρόχου.

Ποια είναι παραδείγματα serverless πλατφορμών;

Γνωστά παραδείγματα είναι το AWS Lambda, τα Google Cloud Run functions, το Azure Functions, το Cloudflare Workers και οι λειτουργίες functions πλατφορμών φιλοξενίας όπως το Vercel και το Netlify.

Mythex · Pricing · Χτίστε οτιδήποτε με AI · Πρότυπα ιστοσελίδων και εφαρμογών · Το Mythex σε σύγκριση · Γλωσσάρι δημιουργίας εφαρμογών με AI · Δωρεάν εργαλεία δημιουργίας εφαρμογών με AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)