M365Con 2027 – כנס אונליין חינמי · 11–22 Jan 2027 · 120 sessions→ m365con.net

בלוג · Mirko Peters

שליטה בתהליך העבודה של GitOps: מדחיפת קוד ועד התאמה אוטומטית

By ·

ברוכים השבים, פודקאסטרים ואוהבי טכנולוגיה! אם אתם עוקבים אחרי פרקי האודיו שלנו, אתם יודעים שאנחנו אוהבים לפרק מושגי ארכיטקטורה מורכבים לתובנות מעשיות וישימות. היום אנחנו מרחיבים על אחד הנושאים שהתבקשנו לכסות הכי הרבה: הגישה המודרנית לניהול תשתיות. אם אתם מנהלים סביבות מבוססות קונטיינרים, משאבי ענן או אשכולות Kubernetes, סביר שנתקלתם בלחישות – או בצעקות – על GitOps. אבל איך נראה תהליך עבודה של GitO

Automatically translated with AI from the original post. Read the English original

Cover: Infrastructure as Code - Simply Explained

ברוכים השבים, פודקאסטרים ואוהבי טכנולוגיה! אם אתם עוקבים אחרי פרקי האודיו שלנו, אתם יודעים שאנחנו אוהבים לפרק מושגי ארכיטקטורה מורכבים לתובנות מעשיות וישימות. היום אנחנו מרחיבים על אחד הנושאים שהתבקשנו לכסות הכי הרבה: הגישה המודרנית לניהול תשתיות. אם אתם מנהלים סביבות מבוססות קונטיינרים, משאבי ענן או אשכולות Kubernetes, סביר שנתקלתם בלחישות – או בצעקות – על GitOps. אבל איך נראה תהליך עבודה של GitOps בפועל, מהרגע שמפתח לוחץ על Enter בדחיפת קוד ועד לפריסה האוטומטית הסופית באשכול? בואו נצלול לעומק מחזור החיים המלא של GitOps, נבחן איך השינויים עוברים דרך המערכות ומדוע ההתאמה המתמשכת משנה את כללי המשחק עבור צוותי DevOps בכל העולם.

הבנת GitOps

עקרונות GitOps

GitOps פועל על פי ארבעה עקרונות ליבה שמשפרים את ניהול תשתיות Kubernetes. עקרונות אלה מבטיחים שהפריסות שלכם יהיו עקביות, מאובטחות ויעילות. להלן מבט מקרוב על כל עיקרון:

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

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

תהליך העבודה של GitOps

תהליך העבודה של GitOps מפשט את ניהול תשתית Kubernetes. כך הוא בדרך כלל מתנהל:

  1. אתם מבצעים שינויים בקוד היישום ודוחפים אותם למאגר Git.
  2. שילוב מתמשך (CI) בונה את השינויים, וגרסת התמונה המעודכנת נדחפת לרישום הקונטיינרים.
  3. משימת CI מבצעת commit לשינויים במאגר GitOps, ומעדכנת קובצי YAML כך שישקפו את שינויי קוד היישום האחרונים.
  4. מפעיל GitOps, כגון Argo CD או Flux, עוקב אחר המצב החי של האשכול ומיישם שינויים כך שיתאים למצב הרצוי.

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

יתרונות מרכזיים באימוץ GitOps

אימוץ GitOps מביא עימו מספר יתרונות שיכולים לשפר משמעותית את תהליכי פיתוח התוכנה וניהול התשתיות שלכם. להלן כמה מהיתרונות המרכזיים שתוכלו לצפות להם:

  1. שיתוף פעולה משופר: GitOps מטפח סביבה שיתופית בין צוותי הפיתוח לצוותי התפעול. בזכות שימוש ב-Git כמקור האמת היחיד, הצוותים יכולים לעבוד יחד בצורה יעילה יותר. למעשה, 80% מהחברות שמשתמשות בטכנולוגיות Infrastructure as Code מדווחות על שיתוף פעולה משופר באמצעות פריסות עם בקרת גרסאות.

    סטטיסטיקהתיאור
    80%אחוז החברות המשתמשות בטכנולוגיות Infrastructure as Code, מה שתומך באימוץ GitOps ומשפר את שיתוף הפעולה באמצעות פריסות עם בקרת גרסאות.
  2. התאוששות מהירה יותר: GitOps מייעל את תהליכי ההתאוששות לאחר כשלים בתשתית. בזכות רולבקים אוטומטיים ובקרת גרסאות, ניתן לחזור במהירות להגדרות קודמות. דוחות מהתעשייה מראים שזמני ההתאוששות יורדים באופן משמעותי לאחר אימוץ GitOps. לדוגמה, זמן ההתאוששות ירד מיותר מ-3 שעות לפחות מ-18 דקות.

    מדדלפני GitOpsאחרי GitOps
    שיעור הצלחת פריסה78%99.9%
    זמן התאוששותיותר מ-3 שעות18 דקות
    זמן רולבק45 דקות3 דקות
  3. אבטחה משופרת: GitOps משפר את האבטחה בסביבות ענן באמצעות יישום של מספר שיטות עבודה מומלצות. להלן כמה שיפורים מתועדים:

    • העברת האבטחה שמאלה (Shift Security Left): תיקון פגיעויות במקור, לפני שהן מתפשטות.
    • הימנעות משינויים ידניים: מאגר ה-Git משמש כמקור האמת, ומונע שינויים לא מורשים.
    • רולבק לשינויים: חזרה קלה להגדרות קודמות במקרה שנכנסה בעיית אבטחה.
    • תגובה מהירה: עדכון מהיר של קונטיינרים פגיעים באמצעות pull requests.
    • מעקב: יומני ביקורת נוצרים אוטומטית ומציגים את השינויים ואת מי שביצע אותם.
    • התאוששות מאסון: מאגר ה-Git מכיל את הגדרות היישומים לצורך פריסה מחדש.
    • בקרת גישה: יישום הרשאות ומדיניות לפעולות משתמשים במאגר ה-Git.
    • Linting: בדיקת הגדרות היישומים לאיתור שגיאות תחביר ופרמטרים חסרים.
    • בדיקות: אוטומציה של בדיקות לשינויים באשכול Kubernetes זמני.
    • סריקת פגיעויות: סריקת קונטיינרים לאיתור פגיעויות לפני הפריסה.
    • Policy-as-Code: החלת מדיניות על מניפסטים לבדיקת בעיות פוטנציאליות.
  4. שיפור ממשל ותאימות: GitOps מספק גישה מבוקרת גרסאות לניהול תשתית. התוצאה היא מסלול ביקורת מלא של כל השינויים שבוצעו בקוד, וזה קריטי לתאימות בתעשיות מפוקחות. באמצעות GitOps ו-policy-as-code, ניתן להפוך דרישות תאימות לקוד ולאכוף אותן באופן אוטומטי, כך שהמצב הרצוי נשמר.

אתגריםביישום GitOps

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

  • כשלי סנכרון: לעיתים כלי GitOps מתקשה להחיל הגדרות בהצלחה. הדבר עלול להוביל לפערים בין המצב הרצוי לבין המצב בפועל של התשתית.
  • התנגשויות משאבים: מספר יישומי GitOps עשויים לנהל את אותו משאב, מה שגורם להתנגשויות. מצב זה מסבך פריסות ועלול להוביל להתנהגות בלתי צפויה.
  • בעיות הרשאות: סוכני GitOps דורשים לרוב הרשאות RBAC (Role-Based Access Control) ספציפיות. אם ההרשאות אינן מספיקות, הדבר עלול לעכב את תהליך הפריסה.

בנוסף לאתגרים אלה, ייתכן שתיתקלו גם ב:

  • סטיית תצורה (Configuration drift) בין סביבות.
  • שגיאות פריסה ידניות שעלולות להפריע לפעילות השוטפת.
  • היעדר מסלול ביקורת, שמקשה על מעקב אחר שינויים.

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

  • ייתכן שתצטרכו ללמוד כלים ושיטות עבודה חדשים, וזה דורש הכשרה והטמעה.
  • היכרות עם לולאת ההתאמה (reconciliation loop) ועם תהליכי CI/CD עשויה לקחת זמן.

בעיות כלים עלולות להופיע גם במהלך אימוץ GitOps. להלן כמה בעיות נפוצות ופתרונות אפשריים:

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

מודעות לאתגרים אלה תסייע לכם להכין את הארגון בצורה טובה יותר ליישום מוצלח של GitOps.

תחילת העבודה עם GitOps

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

  • בחרו בענפים במקום במאגרים: הגבילו את מספר המאגרים לאחד לכל צוות. השתמשו בענפים במקום זאת כדי לפשט את התמונה הכוללת של המערכת ולהקל על שיתוף קוד.
  • משיכה במקום דחיפה: השתמשו תמיד בבקשות משיכה (Pull Requests) לקוד חדש. גישה זו מספקת הקשר לשינויים ומסייעת באיתור תקלות.
  • אוטומציה: ודאו שכל המשימות הידניות מאוטומטיות. שלב זה מסייע במניעת טעויות ומבטיח יכולת חזרה על הפריסות.
  • ניטור רציף: עקבו אחר המערכת כדי לזהות ולפתור בעיות במהירות. פרקטיקה זו מאפשרת ביצוע החזרות לאחור אוטומטיות במידת הצורך.

על ידי אימוץ שיטות אלה, תוכלו ליצור סביבת GitOps יעילה ואמינה יותר.

כשמדובר בבחירת כלי GitOps, כמה אפשרויות בולטות. לכל כלי יתרונות ייחודיים שיכולים לשפר את אוטומציית התשתית שלכם:

  • Argo CD: כלי זה נמצא בשימוש נרחב ומציע ממשק משתמש חזק למעקב אחר מצבי יישומים. הוא משתלב היטב עם כלי Argo אחרים.
  • Flux CD: ידוע בהתאמה האישית ובגמישות שלו. Flux CD עשוי לדרוש זמן הגדרה רב יותר, אך מספק יכולות עוצמתיות.
  • Codefresh: כלי זה משפר את Argo CD באמצעות שליטה מרכזית וניראות משופרת, ולכן הוא אידיאלי לצוותים ארגוניים.
  • GitLab: באמצעות שילוב של Flux ל-GitOps, GitLab מציעה גישת אפליקציה אחת לכל מחזור חיי פיתוח התוכנה.
  • Harness: כלי זה תומך בפריסות מבוססות צינורות (Pipelines) ובפריסות מבוססות GitOps, ומשתלב בצורה חלקה עם Argo CD לתכונות ברמה ארגונית.

כדי להעמיק את הבנתכם ב-GitOps, שקלו לעיין במשאבים המועילים הבאים:

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

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

על ידי מעקב אחר שיטות עבודה מומלצות אלה ושימוש בכלים הנכונים, תוכלו ליישם GitOps בהצלחה בארגון שלכם, ולסלול את הדרך לניהול תשתיות יעיל ומהיר יותר.


בסיכום, GitOps מרכז את Git כמקור האמת לניהול התשתית. הוא מקדם תשתית הצהרתית, המאפשרת שחזור באמצעות קבצי YAML. העמודים המרכזיים כוללים צינורות לחיבור מערכות, ניראות לניטור ההשפעות, ובקרה להבטחת התאמה בין המצבים הרצויים למצבים הפועלים. על ידי ייעול ואוטומציה של ניהול התשתית, GitOps משפר את היעילות התפעולית ומפחית טעויות ידניות.

כדאי לשקול הטמעת GitOps בתהליכי העבודה שלכם. בדקו את היתרונות שלו, כמו שיתוף פעולה משופר ואספקת תוכנה מהירה יותר. אמצו את עתיד ניהול התשתיות עם GitOps ותהנו מהיתרונות של תשתית בלתי ניתנת לשינוי.

שאלות נפוצות

מהו GitOps?

GitOps היא גישה מודרנית לניהול תשתית Kubernetes. היא משתמשת ב-Git כמקור האמת היחיד להגדרות, ומאפשרת פריסות אוטומטיות ותהליך התאמה רציף.

איך GitOps משפר את האבטחה?

GitOps מחזק את האבטחה על ידי מניעת שינויים ידניים בתשתית. היא שומרת על נתיב ביקורת, מאפשרת חזרה מהירה לגרסה קודמת, ומטמיעה בקרות גישה לניהול יעיל של פעולות המשתמשים.

אילו כלים נפוצים בשימוש עבור GitOps?

כלי GitOps פופולריים כוללים את Argo CD, Flux CD, Codefresh, GitLab ו-Harness. לכל כלי יש תכונות ייחודיות שמשפרות את אוטומציית התשתית ואת תהליכי הפריסה.

האם ניתן להשתמש ב-GitOps בסביבות שאינן Kubernetes?

למרות ש-GitOps מתמקדת בעיקר ב-Kubernetes, אפשר להתאים את העקרונות שלה לסביבות אחרות. מושגי הליבה של בקרת גרסאות ואוטומציה חלים באופן רחב על סוגי תשתיות שונים.

מהם היתרונות המרכזיים של אימוץ GitOps?

היתרונות המרכזיים כוללים שיתוף פעולה משופר, התאוששות מהירה יותר מכשלים, אבטחה משופרת וממשל טוב יותר. יתרונות אלה מייעלים את ניהול התשתית ומפחיתים את העומס התפעולי.

איך מתחילים עם GitOps?

כדי להתחיל עם GitOps, בחרו כלי GitOps, הגדירו את התשתית שלכם כקוד, והטמיעו שיטות עבודה מומלצות כמו שימוש בענפים (branches) ואוטומציה של משימות. ניטור רציף הוא גם חיוני.

האם יש עקומת למידה ל-GitOps?

כן, המעבר ל-GitOps כרוך בעקומת למידה. ייתכן שתצטרכו להכיר כלים, שיטות ותהליכי CI/CD חדשים, וזה עשוי לקחת זמן, אבל זה משתלם.

איך GitOps מטפל בסחף תצורה (configuration drift)?

GitOps מנטר באופן רציף את המצב החי של התשתית מול המצב הרצוי המוגדר ב-Git. אם מתגלות אי-התאמות, היא מתאמת אותן באופן אוטומטי, ובכך מבטיחה עקביות.


🎧 האזינו לפרק הזה

רוצים הסבר מעשי על GitOps? הפרק הזה מפרק את הנושא בשפה ברורה ומראה מדוע הוא חשוב עבור Microsoft 365, Azure, Power Platform, אבטחה, AI ועבודה מודרנית.

האזינו לפרק הזה אם תרצו:

  • להבין את המושגים המרכזיים מאחורי GitOps
  • לראות כיצד הוא משתלב במערכת הטכנולוגיות הרחבה של Microsoft
  • ללמוד היכן הוא עשוי ליצור ערך מעשי לארגון שלכם

גלו עוד שיחות מעשיות על Microsoft ב-GitOps - Simply Explained.

Entities in this article

GitOps Kubernetes Single source of truth Argo CD Flux Audit logs Configuration drift DevOps Infrastructure as code YAML

Related articles

RSS