בדף הזה מוסבר על כמה דברים שחשוב לדעת כדי להתחיל לפתח שירות ל-Knative serving.
דרישות לגבי קודים
כשמפתחים שירות, צריך לעמוד בדרישות הבאות:
- השירות צריך להאזין לבקשות.
אפשר להגדיר את היציאה שדרכה נשלחות הבקשות.
בתוך מופעי קונטיינר של Knative serving, הערך של משתנה הסביבה
PORTתמיד משקף את היציאה שאליה נשלחות הבקשות. הקוד צריך לבדוק אם משתנה הסביבהPORTהזה קיים, ואם הוא קיים, להאזין לו כדי למקסם את הניידות. - השירות צריך להיות בלי שמירת מצב. הוא לא יכול להסתמך על מצב מקומי קבוע.
- השירות לא יכול לבצע פעילויות ברקע שלא קשורות לטיפול בבקשה.
פרטים נוספים על המגבלות האלה זמינים בחוזה של Container Runtime.
תמיכה בשפות תכנות
השירות Knative serving מאפשר לכם לכתוב קוד בשפת התכנות שתבחרו.
שימוש בשרת אינטרנט
אפשר להשתמש בשרת אינטרנט כדי להאזין ליציאה הנדרשת, לעבד בקשות נכנסות ולהפנות אותן. לדוגמה, מפתחי Node.js יכולים להשתמש ב-Express.js, מפתחי Python יכולים להשתמש ב-Flask, מפתחי Ruby יכולים להשתמש ב-Sinatra וכן הלאה.
העברת הקוד למאגר
כדי לבצע פריסה ב-Knative serving, צריך לספק קובץ אימג' של קונטיינר. קובץ אימג' של קונטיינר הוא פורמט אריזה שכולל את הקוד שלכם, את החבילות שלו, את כל יחסי התלות הבינאריים הדרושים, את מערכת ההפעלה שבה צריך להשתמש וכל דבר אחר שנדרש להפעלת השירות.
בדרך כלל משתמשים בקובץ בשם Dockerfile כדי להצהיר על אופן יצירת קובץ האימג' של הקונטיינר.
קובצי Dockerfile מתחילים לרוב מקובץ אימג' בסיסי (לדוגמה, FROM golang:1.11). אפשר למצוא קובצי אימג' בסיסיים שמתוחזקים על ידי יוצרי מערכות הפעלה ושפות ב-Docker Hub. Cloud Build בודק אם יש קובצי אימג' במטמון לפני שהוא שולף אותם מ-Docker Hub. אם אתם משתמשים בכלי build של צד שלישי, אתם יכולים להגדיר את שד ה-Docker שלכם כך שיבדוק אם יש תמונות באותו מטמון. אפשר גם למצוא תמונות בסיס שמנוהלות על ידי Google ב-Google Cloud Marketplace.
אם אתם מביאים קבצים בינאריים משלכם, אתם צריכים לוודא שהם עברו קומפילציה עבור Linux ABI x86_64.
במקורות המידע הבאים תוכלו לקרוא מידע נוסף על קובצי Dockerfile:
- במאמר הזה מוסבר על התחביר של Dockerfile.
- במאמר שיטות מומלצות לכתיבת קובצי Dockerfile מוסבר איך קובצי Dockerfile משתלבים זה בזה.
המאמרים הבאים
- אחרי שיש לכם את קוד השירות ואת קובץ ה-Dockerfile, אתם צריכים ליצור קובץ אימג' של קונטיינר ואז להמשיך לבצע איטרציות בבדיקות מקומיות.
- אם אתם מעבירים אפליקציית אינטרנט קיימת, כדאי לעיין במאמר העברת השירות ל-Knative serving.
- במאמר טיפים לפיתוח מפורטות שיטות מומלצות לתכנון, להטמעה, לבדיקה ולפריסה של שירות ב-Knative serving.