PIPES & FILTERS

שאלות שבהן נעסוק:

  1. עולמות של סקריפטים
  2. PIPELINES – מה זה ?
  3. PIPELINES בעולמות של DEVOPS  – GIT *העשרה
  4. FILTERS – מה זה?
  • סקריפט הוא אוסף של פקודות רצופות בשילוב מניפולציה על ידע/מערכות.
  • הרעיון המרכזי של הסקריפט הוא לענות על צורך ספציפי בארגון בצורה אוטומטית.
  • על פי רוב סקריפטים נכתבים במגוון שפות (PYTHON' java c+ javas)

אבל הם רצים על אחת משתי מערכות הפעלה : WIN או LINUX.

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

מושג זה ( PIPELINE  ) רווח מאוד בסביבות ענן כמו AZURE , AWS , GCP וכולי….

  • אז מה זה בעצם PIPELINE ולמה הוא כזה רווח בתחום שלנו?

PIPELINE – מה זה?

נתחיל מ – PIPE.

איך רושמים PIPE כשורת קוד ?

במקלדת יש כפתור שנראה ככה: (l)

הוא נראה כמו קו ארוך מאונך שנקרא:

PIPE ותפקידו להגיד למערכת שהפקודה מורכבת משני חלקים או יותר כאשר מה שמשמאל ל – PIPE יהיה הקלט עבור מה שמימין ל – PIPE

  • הסימון PIPE יכול לחזור על עצמו אינסוף פעמים באותה השורה – ככל שהמשתמש רוצה וצריך לשלב אותו בסקריפט
  • באופן תיאורטי – כל סקריפט יכול להירשם כשורה אחת ארוכה מאוד שאת חלקייה מפריד הסימן PIPE למשל:
  • אם ככה, מה זה PIPELINE ?

ההסבר הבא רלוונטי לסביבות ענן:

  • במשמעות "העננית"  – PIPELINE הוא מעין "סקריפט" שנכתב ע"י המשתמש אבל הוא רץ על מכונה חיצונית שלמשתמש אין גישה אליה והסקריפט מבצע פעולות על הסביבות הענניות.
  • בדרל כלל מדובר על סקריפט מורכב שמשלב גם פקודות של הזדהות מול הענן וגם פקודות של שינויים בהגדרות של רכיבים בתוך סביבת הענן
  • והנה השרטוט להחשה
  • PIPELINE בעולמות של DEVOPS:
  • כאשר אנחנו כמשתמשים מעוניינים לכתוב סקריפט שירוץ כ – PIPELINE אנחנו נרצה על פי רוב לעדכן מידי פעם את הסקריפט ( כלומר את הקוד של הסקריפט )
  • בכל פעם שנעדכן אנחנו רוצים לשמור על האפשרות לחזור אחורה לקוד שהיה לפני העדכון או בקיצור : אנחנו רוצים את האפשרות לנהל גרסאות
  • הדרך הטובה ביותר לניהול גרסאות קוד נקראת טכנולוגיית GIT.
  • GIT הוא ספרייה של אוסף פקודות שעוסקת בניהול הקוד מול ה – REPOSITORY

ל – GIT יש 3 פקודות עיקריות שהמשתמש יכול להריץ בכל פעם שהוא רוצה לדחוף את הקוד ל – REPOSITORY או למשוך את הקוד הקיים מה – REPOSITORY:

  1. GIT PULL  – פקודה שמושכת את הקוד מהREPO.
  2. GIT COMMIT – פקודה שמריצים לפני שדוחפים את הקוד ומטרתה לתאר מה השינוי שהתבצע בקוד.
  3. GIT PUSH – פקודה שדוחפת את הקוד ל – REPOSITORY.

PIPES הם אוסף של פקודות רצופות אחת אחרי השנייה כאשר אחת היא הקלט עבור זו שאחריה בין כל פקודה לפקודה יש סימן | שמפריד.

PIPE-הדרך "לארגן" כמה פקודות בצורה רציפה כאשר החלק שמשמאל ל PIPE מייצר פלט שמשמש כקלט עבור החלק שמשמאל ל-PIPE.

  *התפקיד של ה-PIPE  הוא להפריד את 2 הפקודות "ולהגיד" לשנייה לקחת את התוצאה של הראשונה כקלט. 

*תאורטית ומעשית ניתן לכתוב סקריפטים ארוכים בשורה אחת עם הפרדות ע"י PIPES.     

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

FILTERS:

FILTER– דרך לשלוט על מה שהפקודה אמורה לפלוט ע"י ההגדרה של תוכן מסויים מתוך אותו פלט.

כלומר:אם הפלט אמור להיות "1,2,3,4," ניתן לבקש מראש שהפלט שיוצג יכלול רק את 2 הספרות הראשונות.

או למשל את הספרה האחרונה או רק את הספרות הזוגיות וכו'.

במילים אחרות:

FILTER "מסנן" עבורנו מראש את הפלט לפי דרישה ספציפית.

כתיבת תגובה