יחידה 1 / 11

מבוא ל-DevOps ו-Cloud AI: תפקידים, גבולות, אימות, אבטחה וסודות

רווחים:

  • היכולת להבחין היכן בשרשרת DevOps (צינור, תצורה, סקריפט, יומן) בינה מלאכותית חוסכת זמן אמת והיכן החלטות המשפיעות על ההפקה נותרות לבני אדם, בהתאם לרמת הסיכון למשימה.
  • יכולת ליישם דיסציפלינה המאמתת כל פלט AI דרך שלבי חיבורו למקור, הפעלתו יבשה והעברתו דרך מסנן המערכת.
  • יכולת לרכוש את ההרגל שלעולם לא להדביק סודות על בקשות, להסוות אותם ולעבוד למטרות הגנה רק על מערכות מורשות.

לילה אחד בשעה 03:14 הטלפון שלך מצלצל: שירות התשלומים מושבת, כסף ומוניטין הולכים לאיבוד בכל דקה. ביום אחר, פקודה אחת שגויה מאתחלת אלפי שרתים. זה עולמו של איש המקצוע של DevOps - אחריות על כל הצינורות, האוטומציה וה-on call שתוכנה עוברת ממאגר הקוד (שם מאוחסן מקור התוכנה) עד שהיא מגיעה לידי הלקוח. DevOps הוא השילוב של המילים "פיתוח" ו"תפעול": זוהי תרבות ומערכת של שיטות עבודה שמביאות את פיתוח התוכנה והרצתה לזרימה אחת מהירה ואמינה. כל שלב בזרימה זו מייצר פקודה, קובץ תצורה, סקריפט. בינה מלאכותית (AI - תוכנה המחלצת דפוסים מנתונים היסטוריים ומייצרת טקסט, קוד וחיזויים) חוסכת לכם זמן רב בשפע הטקסט הזה.

אבל ההתחלה של המודול הזה ברורה: AI הוא עוזר, מחולל טיוטות וכלי תמיכה להחלטות; אתה זה שאחראי להחליט מה נכנס לסביבה החיה (הייצור, המערכת בה משתמשים לקוחות אמיתיים), מתי ועל איזה כפתור ללחוץ באמצע הלילה. ב-DevOps, העלות של באג היא לא דקות, אלא זמן השבתה, אובדן נתונים והפרת אבטחה. לכן ביחידה הראשונה נתמקד בדיסציפלינה, לא בכלי.

היכן בשרשרת DevOps שימושי בינה מלאכותית?

בואו נחלק את עבודות DevOps לשני אשכולות גדולים. אשכול ראשון: עבודות חוזרות, טקסט ומבנה. כתיבת תיאור CI/CD (Intinuous Integration / Continuous Delivery — צינור שבודק ומשחרר קוד אוטומטית), ניסוח Dockerfile (קובץ מתכונים שאורז יישום לתוך קונטיינר), הסבר על בלוק Terraform מורכב (כלי שמגדיר תשתית כקוד), סיכום של מחסנית יומן (אירוע ורישום של basoma, שרטוט של מערכות). במשימות אלו, AI מפחית דקות לשניות ואינו מתעייף.

אשכול שני: החלטות שגורמות להפרעה, כסף או בטיחות. האם מהדורה תעבור ל-prod, איזה שירות יופעל מחדש באמצע הלילה, איך לאחסן סוד, איזה משאב ייסגר על ידי קיצוץ בעלויות. החלטות אלו דורשות הקשר, ידע מערכת ואחריות. כאן, AI הופכת אפשרויות וסיכונים לגלויים - אבל אתה לוחץ על כפתור "החל".

בואו נבהיר את ההבחנה במשפט אחד: AI חזק בשאלות "מה עושה התצורה הזו ואיך לכתוב אותה"; ההחלטה היא שלך בכל הנוגע לשאלות כמו "האם עלי להחיל זאת על המוצר ומי יעיד על כך?"

טיפ: לפני מיקור חוץ של עבודה לבינה מלאכותית, שאל: "מה אני מפסיד אם הפלט הזה שגוי?" אם התשובה היא "כמה דקות", אתה מוזמן להאציל. אם התשובה היא "הפסקת ייצור, אובדן נתונים או דליפה", תן ל-AI לייצר את הטיוטה ואתה מאמת את ההחלטה והיישום.

שלב אחר שלב: איך עובד עסק DevOps מבוסס בינה מלאכותית?

  1. אסוף הקשר. איזה ענן (AWS, Azure, GCP), איזו גרסת כלי, אילו אילוצים? אם תיתן ל-AI הקשר לא שלם, תקבל פלט לא שלם ומסוכן.
  2. הגדירו משימות ברורות. לא "לכתוב צינור"; אמור, "עם GitHub Actions, כתוב זרימת עבודה בסניף הראשי שפועל ב-push, מריץ בדיקות, בונה את תמונת Docker, אבל לא פורס אותה."
  3. הפק את הטיוטה. תן ל-AI לכתוב את הגרסה הראשונה.
  4. לְאַמֵת. בדוק את התחביר, ראה אם ​​מידע סודי דלף, בדוק ב-dry-run (מצב שלמעשה מראה לאפליקציה מה לעשות).
  5. נסה את זה בארגז חול. לעולם אל תעשה את הניסיון הראשון בפרוד; לרוץ בסביבת בדיקה/ביימה.
  6. יש למרוח בהדרגה ולעקוב. השג את זה בזמן אמת על ידי ניטור מדדים ויומנים.

משמעת אימות: שלושה שלבים

בינה מלאכותית מדברת בשטף ובביטחון; זה לא אומר שזה נכון. בינה מלאכותית מייצרת מדי פעם הזיות - מה שמרכיב דגל פקודה לא קיים, שם שירות ענן או מפתח תצורה כאמיתי. ב-DevOps, דגל מזויף --force יכול למחוק נתונים, בעוד שהרשאת IAM מזויפת (ניהול זהות וגישה) יוצרת פגיעות אבטחה. רפלקס:

  1. חבר אותו למקור. האם כל פקודה ודגל שניתנו על ידי ה-AI באמת בתיעוד הרשמי? שאל "תגיד לי באיזו גרסה מגיע הדגל הזה ושמו במסמך הרשמי"; אם לא בטוח, אל תסמוך על זה.
  2. יבש. ראה מה קורה מבלי ליישם את זה בפועל עם אופנים כמו terraform plan, kubectl --dry-run, --check.
  3. העבירו אותו דרך מסנן המערכת. האם הפלט תואם את הארכיטקטורה, מדיניות האבטחה ושמות המשאבים הזמינים שלך? הידע שלך בתחום הוא המסנן הסופי.
שימו לב: "AI כתב כך" אינו הצדקה. במקרה של הפרעה לדרבן, האחריות אינה של ה-AI, אלא של האדם שמפעיל את הפקודה מבלי לאמת אותה. פקודת בינה מלאכותית לא מאומתת היא מסוכנת בדיוק כמו rm -rf שמבוצע ללא קריאה.

אבטחה וסודות: לעולם אל תדלוף

כלל הפרטיות הקריטי ביותר ב-DevOps הוא על סודות. סוֹד; זהו מידע סודי כגון סיסמה, מפתח API, מחרוזת חיבור למסד נתונים, אישור פרטי, שיכול לפתוח את כל המערכת שלך אם היא נפגעת. אל תדביק סודות אמיתיים בבקשת AI. אם גוש קוד מכיל מפתח גישה ממשי של AWS, התוכן של קובץ .env או סיסמת מסד נתונים של ייצור, מסווה אותם עם מצייני מיקום כגון <AWS_ACCESS_KEY> במקום AKIA... לפני שתמסור אותם ל-AI.

בדוק גם את הקוד שה-AI מייצר: ה-AI מייצר לפעמים דוגמאות המקודדות את הסוד ישירות לקוד מטעמי נוחות. זוהי פגיעות אבטחה. למעשה, סודות נשמרים בכספת סודית (Vault, AWS Secrets Manager, Azure Key Vault) ומוזרקים כמשתני סביבה בזמן הריצה.

מגבלה אתית וחוקית נוספת בתחום זה: שימוש הגנתי. השתמש ב-AI כדי להקשיח את המערכות שלך, לסרוק פגיעויות ולחלץ עקבות של התקפות מיומנים. גישה לא מורשית למערכת של אחר, סריקה לא מורשית או יצירת כלי תקיפה היא בלתי חוקית ומחוץ לתחום הפלטפורמה הזו. עבוד תמיד במערכות שיש לך סמכות לגביהן וקיבלת אישור בכתב באמצעות חוזה.

אילו נתונים נכנסים לאיזה רכב?

סוג נתונים

דוגמה

רכב מתאים

נתונים פתוחים

מסמך רשמי, קוד מקור פתוח

כל רכב

נתונים פנימיים (לא סוד)

דיאגרמת ארכיטקטורה כללית, צינור גנרי

רכב מאושר במוסד

חסוי/רגיש

סוד, פרוד IP/טופולוגיה, נתוני לקוחות

רק רכב בו התקשר המוסד, שנתוניו אינם מגיעים להכשרה; על ידי מיסוך

שלושה מיני תיקים

מקרה 1 - הזמן הושג במקום הנכון. מהנדס DevOps השקיע 6 שעות בהעברת צינור ישן של Jenkins בן 300 קווים ל-GitHub Actions. הוא צמצם את העבודה ל-90 דקות על ידי כך שה-AI יסביר צעד אחר צעד וייצור טיוטה. הוא השקיע את הזמן החסך באימות כל שלב שהופק על ידי הבינה המלאכותית בבימוי, אחד אחד. AI לקח תרגום מכני; האימות נשאר אצל האדם.

מקרה 2 - אימות מנע אסון. צוות ביקש מבינה מלאכותית תסריט ניקוי של Terraform. AI נתן קוד שוטף; אבל כשהמהנדס הפעיל את תוכנית ה-terraform, הוא גילה שהתסריט מתכנן גם למחוק מסד נתונים ייצור בשימוש - ה-AI טעה בהקלדה של מסנן המשאבים. ריצה יבשה מנעה שעות של אובדן נתונים.

מקרה 3 - חזרה מדליפה סודית. בזמן ששאל "למה שגיאת הפריסה הזו" מתמחה הדביק את כל קובץ ה-.env לתוך כלי ציבורי עם סיסמת מסד הנתונים של הייצור בפועל בפנים. המהנדס הבכיר מיד סובב ויצר מחדש את המפתחות. הדרך הנכונה הייתה להסוות את הסיסמה עם <DB_PASSWORD> ולשתף רק את הודעת השגיאה.

ארבע תבניות הניתנות להעתקה

1) הערכת התאמה לעבודה:

תפקידך: יועץ בכיר DevOps/SRE. אני אתאר לך תפקיד. אמור לי (1) האם זו משימת ניסוח/ניתוח שניתן להאציל בבטחה ל-AI, או החלטה קריטית שמשפיעה על המוצר; (2) ספר את התוצאה הגרועה ביותר אם היא משתבשת; (3) ספר את שלבי האימות שצריך לעשות לפני היישום. משימה: [כאן]

2) מתן הקשר מאובטח (מיסוך סודי):

נתח את השגיאה למטה. הסתרתי את כל הסודות עם <PLACEHOLDER>; אתה גם מציע לעולם לא לייצר סוד אמיתי בפתרון, להשתמש במציין מיקום ולהטמיע את הסוד בקוד, לקרוא מהכספת הסודית. שגיאה/יומן: [תוכן מסכה]

3) אימות פקודה:

הסבירו לי את הפקודה הזו: רשמו מה כל דגל עושה, על איזו גרסת כלי הוא חל ותופעת הלוואי המסוכנת ביותר שלו. לבסוף רשום 3 בדיקות שצריך לעשות לפני הפעלת זה בפרודוקציה. פקודה: [כאן]

4) שאילתת למידה/מושג:

אני [קונספט: למשל. הסבר את הרעיון של [פריסה כחולה-ירוק] כאילו אתה מסביר אותו למהנדס DevOps: מה הוא עושה, מתי להשתמש בו, מתי לא להשתמש בו, 2 טעויות אופייניות. תהיה קצר וקונקרטי.

הנחיה חלשה / הנחיה חזקה

חלש: "כתוב לי תסריט פריסה."

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

חזק: "כתוב טיוטה של ​​סקריפט bash שמתפרס על AWS ECS (Elastic Container Service). האזור הוא eu-central-1, התמונה מגיעה מ-ECR. לעולם אל תטמיע סודות בקוד, קרא אותם מ-AWS Secrets Manager. אם יש שגיאה בכל שלב, עצור (הגדר -euo pipefail). כתוב את כל 3 שלבי הסקריפט בפרופורציה לפני הפעלתם."

הבדל: ההנחיה השנייה נותנת את הענן, הכלי, הסביבה, כלל האבטחה ותוחלת האימות - הפלט שימושי ומאובטח ישירות.

טעויות נפוצות

  • הדבקת הסוד האמיתי בהנחיה. הטעות הנפוצה והמסוכנת ביותר. תמיד מסכה.
  • הנחיה חסרת הקשר. מבלי לציין ענן, גרסה, סביבה, הפלט הרצוי שייך לרוב לגרסה שגויה או לארכיטקטורה שגויה.
  • דילוג על ריצה יבשה. יישום ללא תכנון/--dry-run הוא קיצור הדרך היקר ביותר ב-DevOps.
  • עושה את הניסיון הראשון בפרוד. כל פלט AI חדש צריך להיות מופעל תחילה בבדיקה/ביימה.
  • האצלת אחריות עם "AI אמר." האחריות תמיד נשארת אצל מהנדס היישום.
  • סומך על הדגל ההזוי. ביצוע דגל פקודה לא קיים ללא שאילתה.

לסיכום

DevOps ו-AI בענן; זהו עוזר המספק מהירות רבה במשימות עתירות טקסט כגון צינור, תצורה, סקריפט ויומן. אבל האחריות להחלטות המשפיעות על המוצר, הניהול הסודי והיישום הסופי נשארת בידי המהנדס המוסמך. אימות תלת-שלבי (התחבר למקור, התייבש, עובר דרך מסנן מערכת), אף פעם לא דליפת סודות ועבודה למטרות הגנה רק על מערכות מורשות הם העקרונות המנחים של מודול זה.

משימת יישום

בחר משימת DevOps האחרונה מהעבודה שלך (או מפרויקט לדוגמה). (1) תאר את המשימה הזו ל-AI באמצעות התבנית "הערכת התאמה לעבודה" למעלה וקרא את הסיווג שלה. (2) אם הוא מכיל סוד, הכן טקסט הקשר על ידי מיסוך אותו. (3) בדוק את הפלט של ה-AI עם אימות תלת-שלבי ורשום במשפט אחד מה תיקנת בכל שלב.

רשימת בדיקה

  • [ ] סיווגתי את המשימה שלי כ"עבודה ניתנת להאצלה" או "החלטה קריטית".
  • [ ] לא הדבקתי סודות ממשיים בהנחיה; הסתרתי את כולם עם מציין מיקום.
  • [ ] הוספתי הקשר להנחיה לגבי הענן, גרסת הכלי והסביבה.
  • [ ] בדקתי את תפוקת הבינה המלאכותית עם ריצה/תוכנית יבשה לפני שהחלתי אותה.
  • [ ] עשיתי את הניסיון הראשון בסביבת הבדיקה/ביימה, לא בפרוד.
  • [ ] עבדתי רק על מערכות שבהן הייתה לי סמכות, למטרות הגנה.