לדלג לתוכן

פרויקט מסכם: מועמד לשחרור שאדם אחר מפעיל

נכין release candidate לשירות קיים מן הפרקים הקודמים. העבודה הזאת נפרדת מפרויקט הגמר: כאן בודקים אם אפשר לבנות, לארוז, להתקין, לשדרג ולתפעל מוצר שכבר קיים, בעוד פרויקט הגמר מוסיף אינטגרציה ויכולות חדשות. אין להגיש את אותו ניסוי פעמיים ולספור אותו כשתי עבודות.

בחרו commit קבוע של השירות מפרק 10 או של הבסיס שבניתם, ונעלו toolchain ותלויות. כתבו סקריפט שמבצע build נקי, בדיקות, הכנת חבילה עם unit ותצורה והפקת manifest של hashes וגרסאות. החבילה לא תכיל נתוני משתמש, סודות או cache של סביבת הפיתוח.

בנו מסלול upgrade מגרסה קודמת עם נתונים קיימים. הוסיפו schema migration קטנה עם נקודות כשל, ובדקו rollback או דחייה מפורשת שלו כאשר כבר אין תאימות. הסרה רגילה תשמור את הנתונים לפי החוזה. פעולת מחיקה מלאה, אם קיימת, תהיה נפרדת ומפורשת.

העבירו את החבילה ואת ה־runbook למפעיל שלא השתתף בבנייה. עליו להתקין בסביבה נקייה, להפעיל smoke test, לזהות שגיאת הרשאות שהמנחה מזריק, לבצע backup ו־restore ולתעד את זמן ההתאוששות. אם הוא נדרש לשאול מה היה במחשב המחבר, חסר מידע בתוצר.

מבחן הקבלה דורש build שניתן לשחזר, hashes מתועדים, התקנה בשתי סביבות יעד מוצהרות, upgrade ששומר invariants ו־restore שנבדק על תיקייה נפרדת. ההגשה כוללת רשימת מגבלות אמיתית: מה נבדק ב־runtime, מה נבדק בקומפילציה בלבד ואילו יעדים עוד אינם נתמכים. פרויקט הגמר המלא נמצא בתיקייה פרויקט גמר - פרויקט.