עברתי עכשיו את Terraform Associate (004) – מה הלוואי שידעתי
הערות כנות מהיום שאחרי: אילו שאלות עלו, לאן הזמן הולך, מה למדתי בטירוף שהתברר כלא רלוונטי, ומה הערכתי בחסר.
ניגשתי אתמול למבחן Terraform Associate 004 ועברתי בניסיון הראשון. זו לא פוסט "הנה מה ללמוד" – יש מספיק כאלה, כולל הפוסט שלנו. זה הפוסט שהלוואי שקראתי בלילה שלפני, כשכל הדברים עדיין טריים.
להקשר: אני כותב Terraform על AWS כשלוש שנים, בעיקר תשתית יישומים – VPCs, ECS, RDS, ALBs, כרגיל – לפעמים מול HCP Terraform אבל לרוב מול S3 + DynamoDB. ניגשתי ל-003 מזמן בצורה חצי קשובה והנחתי ש-004 יהיה רענון מהיר. זה אכן היה ברובו, אבל עם הערות שוליים.
מה למדתי בטירוף ולא הייתי צריך
היומיים לפני המבחן העמקתי בכמה נושאים שהתבררו כמעט אפסיים במבחן:
- תחביר Sentinel ו-OPA. שיכנעתי את עצמי שאני צריך לזהות חוק Sentinel במבט ראשון. הייתה בדיוק שאלה אחת שנגעה ב-policy-as-code, והיא הייתה מושגית — "איזו תכונה אוכפת מדיניות ארגונית?" — וניתן היה לענות עליה רק בידיעה שהמילה "Sentinel" קיימת.
- גרסאות פרוטוקול של תוספי Provider. אפס רלוונטיות.
- שינון כל פקודת משנה של
terraform state. המבחן שואל עלstate list,state mvו-state rmבתרחישים. אם אתם מבינים מה כל אחת עושה בפשטות, אתם לא צריכים לתרגל את ה-flags. - רמות תמחור של HCP Terraform. לא במבחן. המבחן מתייחס ל-HCP ברמה מושגית.
אם הייתי מקבל בחזרה את זמן ההכנה, הייתי משקיע אותו ביותר תרגולים של for_each מול count.
מה שהפתיע אותי
כמה דברים שלא ציפיתי להם:
החומר החדש של 004 נשאל בצורה מדויקת. ציפיתי לשאלות כלליות בסגנון "מה עושה בלוק moved?"; במקום זאת קיבלתי תרחישים ספציפיים כמו "שיניתם שם של resource וברצונכם לשמר את המצב שלו ללא הפרעה – מהו השינוי המינימלי התקף?" עם אפשרויות תשובה שכללו גם קריאה ל-state mv וגם בלוק moved. עליכם לבחור את הגישה שמתאימה לזרימת העבודה, לא רק לזהות ששניהם קיימים.
מספר שאלות על בלוקי import מול terraform import. הנחתי בעצלתיים שהם שווים. המבחן הזכיר לי שהם לא – הבלוק הוא דקלרטיבי ומשתלב עם plan; פקודת ה-CLI היא אימפרטיבית ומשנה את ה-state באופן מיידי. שתי שאלות בדקו במיוחד האם ידעתי איזה מהם מתאים לזרימת עבודה של CI/CD הניתנת לבדיקה.
שאלות ה-HCL צפופות יותר ממה שמבחני התרגול מציעים. מבחני תרגול רבים נותנים לכם קטע קוד מסודר בארבע שורות. המבחן האמיתי לפחות פעם אחת נתן לי בלוק של חמש-עשרה שורות עם dynamic מקונן בתוך resource שה-for_each שלו הניע את ה-count החיצוני, וביקש ממני לחזות את מספר ה-resources שנוצרו. הייתי צריך לקרוא את זה פעמיים. אל תזלזלו בעומס הקוגניטיבי של קריאת HCL בזהירות תחת שעון של 60 שניות לשאלה.
שתי שאלות על terraform test. כמעט ודילגתי על חלק זה מכיוון שמבחני התרגול בקושי הזכירו אותו. השאלות היו מושגיות — ש-.tftest.hcl קיים, שבלוקי run מכילים אסרציות, ושניתן למק providers עבור בדיקות יחידה. עברו במהירות על דף התיעוד; זה מספיק.
ניהול זמן כמעט הכשיל אותי
57 שאלות ב-60 דקות הן קצת יותר מדקה לשאלה. אני נבחן איטי בתוכן טכני מכיוון שאני קורא קוד בזהירות. סיימתי את הסיבוב הראשון בדקה 52 עם חמש שאלות מסומנות לבדיקה חוזרת. בשתיים מהשאלות המסומנות חשבתי יתר על המידה על הניסוח; קריאה מחודשת ורעננה שינתה את שתי התשובות – אחת יצאה נכונה, את השנייה אני חושב ששיניתי לתשובה הלא נכונה (אין דרך לדעת בדיעבד).
מה שעבד: כל שאלה שבה תפסתי את עצמי קורא את גוף השאלה יותר מפעמיים, בחרתי את הניחוש הטוב ביותר שלי, סימנתי אותה והמשכתי הלאה. אל תשבו על שאלה אחת במשך ארבע דקות. אם אתם לא יודעים אותה אחרי דקה, כנראה שלא תדעו אותה גם אחרי שלוש דקות נוספות.
השאלות האיטיות
קטגוריה ספציפית שגזלה זמן: "בהינתן פלט קובץ ה-state הזה, מה יציג terraform plan?" אלה שאלות איטיות מכיוון שאתם עוברים מנטלית על state diff. בשתיים מהן ויתרתי על ניסיון לדמות, הסתכלתי על אפשרויות התשובה, ובחרתי את הדבר שהכי סביר שהוא שבור (תגית חסרה במקרה אחד, מאפיין שונה באחר). שניהם התבררו כנכונים. זיהוי תבניות עדיף על סימולציה מעמיקה, כשזמן קצר.
מה שהייתי ממליץ בפועל, אם הייתי עושה את ההכנה שלי מחדש
בהתחשב במה שאני יודע עכשיו, הנה התקציב המאוזן מחדש:
- 40% שאלות תרגול. עשו אותן בפועל תחת לחץ זמן, עסקו באמת בתשובות שגויות.
- 25% קריאת דוגמאות HCL לאט. כתבו גם קצת, אבל השטף שאתם צריכים ביום המבחן הוא שטף קריאה, לא שטף כתיבה.
- 15% סמנטיקה של state. מה נמצא בקובץ ה-state, מדוע locking חשוב, מה כל אחד מהבלוקים
moved/removed/importפותר. - 10% התכונות החדשות של 004 בנפרד — אימות משתנים, preconditions, ערכים אפימריים, ארגומנטים לקריאה בלבד, HCP projects,
terraform test. - 10% כל השאר — מושגי IaC, מטרת Terraform, סקירה כללית של HCP.
תקציב לא פרופורציונלי בכוונה. סל ה"כל השאר" מורכב ברובו מדברים שאתם כבר יודעים אם השתמשתם ב-Terraform יותר מכמה חודשים.
דברים שלא ציפיתי שיהיו חשובים, אבל כן היו
- ידיעה ש-
terraform fmtקיים ומה הוא עושה. עלה פעמיים. אחת התשובות השגויות הייתה ש-fmtמשנה את ה-state. - תחביר אילוצי גרסת Provider. ההבדל בין
~> 1.2ל-~> 1.2.0(השני הוא פסימי ברמת ה-patch — מגביל יותר). עניתי על זה נכון אבל שכנעתי את עצמי שזה לא ייבדק. - מה עושה
terraform init -upgradeמולterraform init -reconfigure. נשאלתי באיזו מהן להשתמש לאחר שינוי בלוק backend. התשובה היא-reconfigure. terraform outputעם-json. תרחיש סקריפטים שאל איזו פקודה מייצרת ערכי פלט קריאים למכונה. טריוויאלי אם השתמשתם בה; קל להתעלם אם לא.
אחרי המבחן
PSI מציג מסך עובר/נכשל בסוף (קיבלתי את הסימון הירוק; הקלה). פירוט הציונים המלא לפי תחומים מגיע באימייל כמה ימים לאחר מכן. התג מופיע בחשבון ה-Credly שלכם לאחר שתאשרו אותו. אישורי HashiCorp תקפים לשנתיים, אז שימו תזכורת ביומן.
הדבר שזלזלתי בו לגבי מבחן של ספק הוא כמה מתישים 60 דקות של מיקוד צפוף. אל תקבעו פגישה אחרי. חזרתי הביתה ובהיתי בקיר במשך שעה.
אם אתם קרובים לתאריך המבחן שלכם, הריצו בלוק קר מבנק השאלות של CertLabPro 004. אל תייעלו לציון גבוה בתרגול – תייעלו ללכידת הקטגוריות שבהן אתם חלשים כל עוד יש זמן לתקן אותן.