Table of Contents
עקבו אחרי Seamless CI/CD
פיתוח תוכנה מודרני נע במהירות שוברת-הטווח.צוותים צפויים לספק עדכונים, לתקן באגים, ולגלגל תכונות ברציפות תוך שמירה על איכות גבוהה ואבטחה. הגישה המסורתית של מעבר בין אפליקציית צ'אט, לוח נתונים CI /CD, כלי ניטור, ומערכת בקרת גרסאות יוצרת חיכוך ואטים מטה שיתוף פעולה.זה המקום שבו צ'אטאופס נכנס לתמונה: תרגול שמביא את הכלים והתהליכים של פעולות פיתוח ותגובה ישירות לתוך צוותי העבודה שלך, לפלטפורמת העבודה הסגורה, יכול להפוך את כל אחד לפלטפורמת העבודה שלך להורדת, לפלטפורמת העבודה.
במדריך זה, אנו הולכים דרך מה ChatOps באמת אומר, איך זה supercharges צינור CI /CD, ומסגרת קונקרטית, צעד אחר צעד לשלב אותו לתוך הערימה הקיימת שלך.אם אתה משתמש ג'נקינס, GitLab CI, GitHub Actions, או כל כלי CI /CD אחר, עקרונות אלה יעזרו לך לבנות עבודה מונעת צ'אט כי משפר שיתוף פעולה ללא הקרבה או שליטה.
מה זה chatOps? A Practical Definition
צ'אטאופס היה פופולרי על ידי GitHub בסביבות 2013 כאשר הם התחילו להשתמש Hubot, צ'אט קוד פתוח, כדי אוטומטי שירות משימות פריסה בתוך צ'אט קמפ-אש. הרעיון הליבה הוא פשוט: במקום שיש מהנדסים להיכנס לרשת UI או SSH לשרת כדי לבצע ניתוח, הם להקליד פקודה בערוץ צ'אט משותף, ובוט שפקד על שמו של הבוטנים יכול גם ללחוץ על הודעות על אותו ערוץ, לתת הודעות על זהה או להפעיל את זהה, לתת את זהה, לתת את זהה, או להפעיל את זהה בפועל, או להפעיל את זהה, לתת את זהה, או להפעיל את זהה, לתת את זהה, לתת את זהה, לתת את זהה, כדי להציג את זהה, כדי להציג את זהה של צוות תצוגה בפועל, או כותרות בפועל, לתת את זהה, או כותרות בפועל, לתת את זהה, כדי להציג את זהה, כדי להציג את זהה, נותן את זהה, לתת את זהה, כדי להציג את זהה, נותן את זהה, כדי להציג את זהה, כדי להציג את זהה של צוות תצוגה של צוות לוח הבקרה של צוות לוח הבקרה של צוות לוח הבקרה של צוות לוח הבקרה של צוות צ'ט.
יותר רחב, צ'אטאופס הוא מודל שיתוף פעולה הממזג שיחה, אוטומציה, וצייתנות לממשק יחיד.זה עובד כי צ'אט הוא שם מפתחים כבר מבלים הרבה זמן התקשורת שלהם.על ידי ביצוע שרשרת הכלים של CI /CD שלך "chat-מודע", אתה מאפשר לחברי הצוות להפעיל, לבדוק תוצאות מבחן, פריסה, או אפילו לגלול בחזרה שחרור - מבלי להשאיר את חלון הצ'אט שלך זה להפחית את המטענים הקוגניטיביים מרובים, לזכור, וזכור, תוכניות.
למה לגרות צ'אטאופס לתוך זרימת העבודה שלך / CD?
צ'אטאופס לתוך CI /CD עושה יותר מאשר רק להוסיף בוט מגניב.זה משנה באופן יסודי כיצד הצוות אינטראקציה עם הצינור.כאן היתרונות העיקריים עם השפעה בעולם האמיתי:
- (FLT:0) ,Eliminates Context Switching:03F1) מפתחים נשארים בכלי התקשורת שלהם.לא יותר alt-tapping ל- CI כדי לבדוק אם בניין מועבר.הפוסטים של הבוטנים מגיעים ישירות לערוץ הרלוונטי, והמפתח יכול לפעול באופן מיידי.
- (ב) כאשר בניין נכשל או פריסה משתבש, הבוט יכול להודיע מהנדס על-קול, להפעיל אבחון ואפילו לתת להם להתגלגל עם פקודה אחת כמו FLT:0.
- (FLT:0) דמוקרטים: לא לכולם בקבוצה יש גישה לשרתי ייצור או להגדרות CI, אבל הם צריכים להבין מה קורה. ChatOps עושה מידע צינורות גלוי לכולם, לשבור את סילוס בין מפתחים, QA, ומבצעים.
- (FLT:0) אוטומציה של שירות עצמי: FIRLT:1 במקום להסתמך על מהנדס בכיר כדי להפעיל תסריט פריסה, כל חבר צוות יכול לבצע משימות משותפות באמצעות פקודות צ'אט, בתנאי שיש להם את ההרשאה הנכונה.
- (ב) כל פקודה שהוצאה להורג באמצעות הבוט, כל הודעה שנשלחה, מוקלטת בתולדות הצ'אט.זה נותן לך יומן מובנה של מי עשה את מה ומתי, אשר אינו ראוי להודעה ולציות.
- (FLT:0) שיפור תרבות הצוות: 10.10.1 כאשר כולם רואים את אותם עדכונים בזמן אמת על הצינור, הוא מטפח תחושה של אחריות משותפת.
דרישות עבור צ'אטופסיה מוצלחת
לפני שתתחיל לכתוב תסריטי בוט או תצורה של Webhooks, ודאו שהאלמנטים הבאים נמצאים במקום:
- (FLT:0) צינור CI /CD בוגר:FLT:1 צ'אטאופס צריך להגדיל צינור קיים, לא להחליף אותו.אתה צריך כבר לבנות אוטומטית, בדיקות, לפחות אוטומציה בסיסית פריסה.
- (FLT:0) פלטפורמת צ'אט עם תמיכה ב- API:FLT1 Slack, Microsoft Teams, ו-Autord מציעים APIs חזקים לקבלת הודעות ולשלוח הודעות, כמו גם רכיבים אינטראקטיביים כמו כפתורים וצורות.
- (FLT:0) זהות בוט ייעודית: FLT:1 אתה צריך משתמש בוט או נקודת קצה של Webhook שיכול לפעול כמו ממשק בין צ'אט וכלים CI /CD שלך. פלטפורמות רבות נבנות במסגרות בוט (Slack's Bolt, Teams'Bot מסגרת בוט, Teams Bot, Discord.js).
- (FLT:0) גישה ל-CI/CD APIs:BuildFLT:1) הבוט שלך יהיה צורך אסימוני API או סודות Webhook עבור מערכות כמו ג'נקינס, GitLab, GitHub, או ספק הענן שלך.אחסן אותם כמשתנים סביבתיים או מנהל סודות, אף פעם לא בקוד.
שלב-בי-צעד מדריך להחדיר צ'אטאופס לתוך זרימת העבודה CI /CD שלך
השלבים הבאים מספקים מסגרת גנרית שעובדת עם כל פלטפורמה צ'אט מרכזי ומערכת CI /CD. להתאים את הפרטים כדי להתאים את השרשרת הכלים שלך.
בחר את פלטפורמת הצ'אט שלך ו-Bot Framework
בחר פלטפורמה צ'אט הצוות שלך כבר משתמש או המציע את יכולות האינטגרציה הטובות ביותר. עבור רוב הקבוצות, Slack הוא ברירת המחדל בגלל מערכת אקולוגית הבוטבים הבוגרת שלה, פורמט הודעות, ורכיבים אינטראקטיביים עשירים. Microsoft Teams היא אלטרנטיבה חזקה לארגונים כבר במערכת האקולוגית של Microsoft, אם כי פיתוח הבוטני שלה יכול להיות מורכב יותר.דיסקרד הוא פופולרי בקרב קבוצות קטנות יותר ופרויקטים קוד פתוח בשל עלויות נמוכות ותכונות בזמן אמתיות חזקות.
עבור הבוט עצמו, יש לך כמה אפשרויות:
- (ב) ,0) מ"מ"ד: שירותים כמו (FLT:2Slack's Bolt FrameworkveFLT 3), ניתן לכתוב בוטים מותאמים אישית ב Nodejs, Python, או Java ולארח אותם על התשתית או על פלטפורמה ללא שרת.
- (FLT:0) בוטים קוד פתוח: 1FLT:1 Hubot (התחיל אך עדיין בשימוש), Errbot (Python), או Botkit (Node.js) נותנים לך שליטה מלאה ושילובים שנבנו מראש עבור כלים רבים.
- (ב) אינטגרציה:0 (בשיתוף:0) באינטגרציה: חלק מהמכשירים CI/CD יש אינטגרציה צ'אט ילידית.לדוגמה, FLT:2Jenkins' Slackcioph3 יכול לשלוח הודעות ולקבל פקודות ישירות ללא בוט נפרד.
(FLT:0) Recommendation: FLT:1ir אם הצוות שלך משתמש Slack ויש לך Node.js או Python מומחיות, ללכת עם Bolt או בוט מבוסס אינטרנט פשוט שמקבל פקודות slash.
הגדר את הבוט וחיבור אותו לפלטפורמת הצ'אט שלך
צור משתמש בוט בפלטפורמת הצ'אט שלך.ב-Slack, תוכל ליצור אפליקציית Slack, לאפשר את Token Bot, ולספק יקפי OAuth עבור שליחת הודעות, קורא ערוצים, והוראות עיבוד.בצוותים, אתה תרשום בוט באמצעות Azure Bot Service. In Discord, תוכל ליצור יישום ולהוסיף בוט.
לאחר שהבוט נרשם, לפרוס אותו לשרת או לתפקוד חסר השרת (AWS Lambda, Google Cloud Functions וכו ') שיכול לרוץ 24/7 או להתעורר על הביקוש.לוודא שהבוט מקשיב לפקודות ויכול לשלוח הודעות בחזרה לערוצים.
דוגמה: ב-Slack, אתה יכול ליצור פיקוד slash (FLT:1 ; כאשר סוגי משתמשים אשר בערוץ, Slack שולח בקשה POST לנקודת הקצה של הבוט שלך.הבוט יכול לאמת את המשתמש, לחדד את הפקודה, ולגרור פעולה במערכת CI /CD שלך.
שתף את הבוט שלך עם מערכת CI /CD
הבוט צריך להיות מסוגל לקרוא ולכתוב לכלים של CI /CD שלך.השיטה המדויקת תלויה בכלי:
- (ב) [ה]ב]: [ה] [ה] [ה]] [ה]]] [ה]]], [הבוט] שלך יכול לגרום להפקה באמצעות שליחת בקשה ל-FLT:2 עם אסימוני API.
- (ב) .0.GitLab CIIR:FLT:1, ה- API של GitLab מאפשר לך להפעיל צינורות, להציג יומני עבודה, ולנהל פריסות.
- (ב) ,0) פעולות: FLT: 1 השתמש ב-FLT:2GitHub Actions REST APIFLT 3 כדי לגרום לזרימת עבודה, לשלוח אירועים, לבדוק מצבים.
- (FLT:0)CircleCI: FLT:1 CircleCI מספק API מקיף עבור גרימת צינורות וצפייה בפרטי עבודה. השתמש בסימון API אישי או אסימונים ברמת הפרויקט.
עבור כל שילוב, הבוט צריך לאחסן את האישורים הדרושים API באופן מאובטח (למשל, משתנים סביבתיים או קמרון כמו HashiCorp Vault) לעולם אל לבצע אלה כדי לשלוט בגירסה.
4. צור פקודות צ'אט עבור פעולות CI /CD נפוצות
לזהות את הפעולות הנפוצות ביותר הצוות שלך לוקח הצינור.התחל עם קבוצה קטנה ולהרחיב בהתבסס על משוב.
- (ב) ,(ה) ,(ה) , , ⁇ ) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:4) - להפיץ גרסה מסוימת לטיפוח או ייצור.
- (ב) 5) להחזיר את הסטטוס הנוכחי של צינור.
- (FLT:6) - לחזור לגרסה היציבה האחרונה.
- (FLT 7) - לנהל חבילת מבחן ספציפית ותוצאות דואר.
כל פקודה צריכה להיות מיושמת בקוד הבוט, למשל, כאשר משתמשים מסוגים (FLT:8), הבוט צריך:
- אימות לכך שלמשתמש יש הרשאות הנכונות (אפשר לבדוק את תפקידם או את חברות הערוץ).
- הטריגר את הפריסה באמצעות ממשק API של CI /CD.
- תגובה לערוץ עם הודעה כמו "הפצה של ייצור v2.1.0 מופעלת על ידי @username. Monitoring Progress..."
- באופן אופציונלי, להאזין לאירועים של Webhook ממערכת CI /CD ועדכוני מעקב (למשל, "הצלחה של הצלחה" או "הדהור נכשל בשלב X").
השתמש במרכיבים אינטראקטיביים כאשר ניתן.לדוגמה, ב-Slack אתה יכול לשלוח הודעה עם כפתורים המאפשרים למשתמשים לאשר פריסה או יומני תצוגה.זה גורם לבוט להרגיש יותר כמו חבר צוות מאשר קו פקודה.
5.הצבת הודעות בזמן אמת לאירועים פיפיריים
הודעות הן המחצית השנייה של צ'אטאופס.הם שומרים על כולם ללא צורך שמישהו יבדוק לוח זמנים.תגדיר את המערכת CI/CD שלך לשלוח אירועים Webhook לנקודת הקצה של הבוט שלך.הבוט מסמן את האירוע ומפרסם הודעה מעוצבת יפה לערוץ המתאים.
דוגמה הודעות ליישום:
- (ב) [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]], [[1924]]]]]]]], [[1924]]]]]]
- (ב) ,0) החל (השלמה: ⁇ 1) מאמר ל-FLT:10 עם סביבה, גירסה, וקישור ללוח המחוונים.
- (ב) ,0) כישלונות:0 (Testכישלונות: 1) , עיין ב- 1:1 צוות או מפתח רלוונטי עם סיכום של הכישלון.
- (ב) אזהרות סודיות:0 (FLT:1 אם CI /CD משלב סריקה ביטחונית (למשל, Snyk, הסתמכות, בדיקה), הסתברות קריטית לתקשור 11.
הודעות פורמט עם צבעים, אימוג'י וקטעים כדי להפוך אותם למפוזרים.לדוגמה, לבנות כושלת יכולה להיות ראש אדום עם הודעת השגיאה, בעוד פריסה מוצלחת עשויה להיות סימן צ'ק ירוק.
6.הפעלת בקרת גישה וביטחון
צ'אטאופס מביא נוחות, אך גם סיכון אם לא מאובטח כראוי. פקודה זדונית או מקרית עלולה לגרום לפריצת שתן או לחשוף נתונים רגישים.
- (ב) [ה], למשל, [ה], [ה], [ה], [ה],] רק אם תתאפשר ל- 12:12 עבור משתמשים בערוץ AFLT:13 או שיש להם תפקיד ספציפי בפלטפורמת הצ'אט.
- (FLT:0) אישור לפעולות הרסניות.FIRLT:1 לפני ביצוע פריסת רולבק או ייצור, יש את הבוט לבקש אישור שני באמצעות כפתור או פקודה נוספת.
- (FLT:0) אסימונים קצרים של ימי הביניים.IRLT:1; אם הבוטוט שלך צריך להתקשר ל-S CI /CD APIs, השתמש ב אסימוניות כי יפוג או לסובב.
- (ב) כל המצוות, שנאמר (בראשית כ"ד) "כל צוו" (בראשית כ"ד, כ"ד) "וַיָּעָשֶׂה לְךָ" (בראשית כ"ד).
- (FLT:0) לעולם אל תחשוף סודות בצ'אט.FLT:1, הבוט צריך להסתיר פרטים רגישים (מפתחי API, סיסמאות) מהתשובות שלו. השתמש בקוביות כמו "בניין מופעל בהצלחה" ולא להדהד את תגובת ה- API הגולמית.
7.לרכב את הצוות ותהליכי המסמכים
הבוט הטוב ביותר הוא חסר תועלת אם אף אחד לא יודע איך להשתמש בו. להכין גיליון פשוט או פקודה עזרה (ראה pherLT:14) כי רשימות את כל הפקודות הזמינות והשימוש שלהם. החזק צוות קצר דרך מראה כיצד להפעיל בניין, לבדוק מעמד, לפרוס.
צור מסמך חי (לדוגמה, דף wiki) המסביר מה כל פקודה עושה, אילו הרשאות נדרשות, וכיצד הבוט משלב עם ההתקנה הספציפית שלך CI /CD.עדכון זה כמו שאתה מוסיף תכונות חדשות.
Best Practices for a Production-Ready ChatOps אינטגרציה
אינטגרטיבי צ'אטאופס הוא תהליך של פיגורציה.הפרקטיקות הבאות יעזרו לך להימנע ממלכודות נפוצות ולבנות מערכת שהצוות משתמש בה למעשה.
- (ב) ,0) ,[דרוש מקור] ב[[1924]], [[1924]], [[1924]]]] ו[[1924]]]], [[1924]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]] ו[[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]]
- (FLT:0) בריאות בוטים של מוריטור (Monitorבוט 1) הבוט שלך הוא עכשיו חלק קריטי של זרימת העבודה. להגדיר מעקב בזמן ומיקום, כך שאתה יודע אם הבוט הולך לא מקוון.
- [ה]הבא [ה] [ה]] [ה]] [ה]] [ה]] [ה]], [ה]] [ה'] [ה']]]]]] [ה']'[ב']'[ה']'[ה']'[ה']'[ה']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- (ב) נורמות צ'אט מפורטות (FLT:1, Don'tספאם ערוצים עם עדכונים מופרזים.כביש הודעות לערוצים ייעודיים (כמו FLT:17) ולא ערוצים כלליים.
- (ב) [ה]העיקרון]: [ה], [ה], לאחר כמה שבועות, סקר את הצוות: אילו פקודות משמשות בעיקר?
דוגמאות מתקדמות ומציאותיות
לאחר שיש לך פקודות בסיסיות והודעות עבודה, לשקול יישום דפוסים מתקדמים יותר אשר עוד להטביע צ'אטאופס לתוך התרבות שלך:
צ'אט-Driven Deployment Approval Workflows
עבור סביבות הדורשות אישור (כמו ייצור), אתה יכול להשתמש בלחצני צ'אט כדי ליישם את זרימת האישור הרב-שלב. כאשר מפתח מבקש פריסה, בוט מפרסם הודעה בערוץ 18FLT 18 עם כפתורים "Approve" ו "Reject" רק משתמשים עם התפקיד המתאים יכולים ללחוץ על הכפתור.
הוצאה אוטומטית של Runbook Publishing
משימות תפעוליות רבות עוקבות אחר חוברת (למשל, הפעלת שירות, ניקוי מטמון, דרוג מקרים) קידוד חוברות אלה כהוראות צ'אט.לדוגמה, FLT:19 יכול לבצע תסריט אשר בחסד מחדש את השירות ואת הפוסטים את התוצאה.
צ'אט-מבוסס על אירועים
כאשר שריפות ערניות (מ-Prometheus, Datadog וכו '), יש את הבוט באופן אוטומטי ליצור ערוץ ייעודי, להזמין את מהנדס ה- On-call, לפרסם את הפרטים המרשימים, להציע פקודות כמו FLT:20, FLT:21 ו- .
מסקנה
הגדלת צ'אטאופס לתוך זרימת העבודה CI /CD שלך אינה רק על הוספת בוט מגניב לחדר הצ'אט שלך.זה מהלך אסטרטגי שמשפר שיתוף פעולה, מפחית את סליל, ונותן לכל חבר צוות תובנות בזמן אמת לתוך צינור המסירה התוכנה. על ידי הבאת אוטומציה לתוך השיחה, אתה מבטל את החיכוך של מעבר בין כלים, להאיץ קבלת החלטות, לבנות תרבות של בעלות משותפת על תהליך פריסה.
התחל עם בוט פשוט שיכול לנהל עדכוני סטטוס בנייה וסידורי.אז להרחיב על סמך מה הצוות שלך מוצא בעל ערך רב ביותר.עם השלבים והשיטות הטובות ביותר המפורטות כאן, יהיה לך שילוב צ'אטאופס חזק שהופך את הצנרת / ה-CD שלך לנגיש יותר, שקוף ויעיל יותר עבור כולם המעורבים.