Skip to content

DevOpscore

קהילת ה-DevOps של ישראל

Menu
  • עמוד הבית
  • קצת עליי
  • מבוא
  • העשרה
  • Virtualization
  • IT
  • Learn from incidents
  • DevOps tools
    • Docker
    • Git
    • Ansible
    • Vagrant
    • Kubernetes
    • OpenShift
Menu

קונספטים חשובים

Posted on ינואר 5, 2021ינואר 27, 2021 by DevOpscore

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

(Continuous Integration (CI

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

** CI לא סובב סביב לפתור באגים אלא כדי לגלות אותם יותר במהירות – לפני שמשחררים גרסה.

כדי להמחיש: אחרי כל commit ל-master או לכל branch אחר שנבחר ירוץ ה-CI. כך נזהה בקלות יותר איפה נכשלנו (ב-commit הספציפי שהפעיל את ה-trigger). לכן, מומלץ לדחוף שינויים ל-repo בדחיפות גבוהה.

** מי שלא מכיר את המושגים commit, branch, repo – מוזמן לחפש בגוגל. במידה ותרצו התייעצות או לא הבנתם משהו – מוזמנים לכתוב בתגובות.

(Continuous Delivery (CD

היכולת לדחוף את הקוד ל-Production, כלומר לשמור על כך שה-CI יעבור תמיד. זאת כדי שנוכל להעביר את הקוד ל-Production. הכוונה ב-Production היא לסביבה המבצעית שבה רצה האפליקציה שלנו(שצריך לנסות לשמור עליה ?). בעצם, תמיד נרצה להיות במצב שהקוד מוכן לעבור ל-production.

(Continuous Deployment (CD

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

(Configuration Management (CM

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

Continuous Monitoring

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

לסיכום, נסו לשים לב איך אבני הבניין של ה CAMS model (שעליו פירטתי כאן) ניתנים לביטוי בתוך כל אחד מהעקרונות שפירטתי עליהם במאמר.

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

!Join us on telegram

6 thoughts on “קונספטים חשובים”

  1. ינאי ברקו הגיב:
    ינואר 6, 2021 בשעה 4:41 pm

    תודה רבה! אשמח גם למאמר שעוסק בgit, נראה לי שזה מאד רלוונטי לכאן:)

    הגב
    1. DevOpscore הגיב:
      ינואר 7, 2021 בשעה 7:03 pm

      תודה על הפידבק!
      אכין מאמר מקיף בנושא בקרוב

      הגב
  2. אביתר הגיב:
    ינואר 9, 2021 בשעה 7:20 pm

    מאמר מעולה!
    זה רלוונטי רק למפתחים בווינדוס/לינוקס או גם למפתחי imbedded?

    הגב
    1. DevOpscore הגיב:
      ינואר 9, 2021 בשעה 8:30 pm

      אכן,
      מבחינת CI/CD, זה קצת יותר מאתגר. צריך לדאוג לתשתית חומרתית מורכבת יותר, יותר שרתים בשביל בדיקות שונות(כדי לבצע שינויים ברמת החומרה) ולכן מומלץ מאוד להשתמש בשירותי cloud למיניהם במקרים כאלו. במקרים כאלו יש דגש רב על (CM(Configuration Management, שנובע מהצורך לבצע הרבה קונפיגורציות.

      הגב
  3. אהרן הגיב:
    ינואר 16, 2021 בשעה 8:50 pm

    אם השינוי בקוד דורש גם שינויים בטבלאות sql , האם יש דרך לבצע את זה אוטומטית ואם כן באיזה כלי מומלץ להשתמש?

    הגב
    1. DevOpscore הגיב:
      ינואר 16, 2021 בשעה 9:10 pm

      אכן, יש מגוון דרכים.
      כדי לשנות קונפיגורציות ישנם כלי CM כמו Ansible, Terraform(זה בחלק של ה CD).
      תוכל להריץ סט פקודות בעזרת כלי CM על ה-db (כמו שליפות שיעדכנו לפי הצורך מה שתרצה). תוכל כמובן להתנות שינויים בDB בדברים אחרים.

      הגב

כתיבת תגובה לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

Comment moderation is enabled. Your comment may take some time to appear.

פוסטים אחרונים

  • Deploy static websites with GitLab Pages
  • The DevOps Role – Part 2
  • The DevOps Role – Part 1
  • How to run an application on Openshift
  • ?What is Agile

קטגוריות

  • DevOps tools
    • Ansible
    • Docker
    • git
    • Kubernetes
    • OpenShift
    • Vagrant
  • IT
  • Learn from incidents
  • Virtualization
  • העשרה
  • מבוא
English Hebrew
© 2025 DevOpscore | Powered by Minimalist Blog WordPress Theme