ניטור מתקדם של Docker ו-Microservices
כתב: כריס קליין, סגן נשיא לאסטרטגיית DevOps ב-CA Technologies
אין זה מפתיע כי ה-Docker שולט ללא עוררין בפלטפורמות container. הפלטפורמה נמצאת במרכז שלושת ההיבטים של הפיתוח המודרני: המעבר לענן, microservices ו-DevOps. הצלחתה של הפלטפורמה היא גם בגלל העיתוי: ה-Docker הגיע בזמן שבו ארגונים חיפשו אמצעים "רזים" יותר לפריסת אפליקציות, מעבר לטכנולוגיה של מכונות וירטואליות.
עסקים מונחי-תוכנה
הסיבה שה-Docker הוא מלך הפיתוח היא המהפכה המתרחשת בעסקים. כמעט כל עסק הופך את עצמו לעסק תוכנה, כגון בנקים, חברות תעופה, חברות טלקומוניקציה ורשתות קמעונאות. המהפכה הדיגיטלית דורשת חדשנות הן בהיבט המהירות והן בשיטות שבהן מפתחים שירותים. ה- Docker מספק לארגונים אג'יליות, גמישות ויעילות הדרושים להם כדי ליצור שירותים חדשניים במהירות המאפיינת את העולם העסקי.
פיתוח מבוסס containers (וה-microservices הקשורים לכך), שה-Docker נמצא במרכזו, חיוני ל-"מפעל התוכנה המודרני". הוא מאפשר למפתחים לארוז אפליקציה עם כל הרכיבים הנדרשים, כגון ספריות ודברים אחרים, ולספק זאת בחבילה אחת.
מאפליקציות מונוליטיות ל-microservices
Containers מהווים קפיצת דרך. בשנות ה-90 האפליקציות המונוליטיות והשירותים שלהן היו קשורות בקשר הדוק ולא סבלו שינויים – ובכך בלמו אג'יליות. לדוגמה, שינוי שבוצע בחלק קטן של האפליקציה, עשוי היה לדרוש פריסה של גרסה חדשה לגמרי. ה-scalability דרשה לעתים קרובות scaling של היישום כולו – לא רק של הרכיבים הספציפיים.
יש לחשוב על שירותים מונוליטיים אלה כעל עוגת חתונה. בחתונה, כולם מקבלים עוגה באותו זמן, עם אותו טעם, והכל מסונכרן. אולם, את ה-microservices ניתן להשוות לקאפקייקס. הן קשורות בצורה רופפת, הן אג'יליות, וכל אחת היא עוגה נפרדת בפני עצמה. הקאפקייקס נמצאות אמנם על אותה צלחת, אך כל אחת נפרדת. ניתן לקחת עוגיה כזו בכל פעם שרוצים, לבחור איזה טעם שרוצים, וניתן להחליף קאפקייקס ללא קשר בין אחת לשניה. זהו העולם המודרני של containers.
containers ו-microservices מציעים יתרונות משמעותיים יותר מווירטואליזציה. הם חולקים משאבי מערכת מסוימים, דבר ההופך אותם ל-"רזים" ומפחית את תקורת המערכת. לעומת שירותים וירטואליים, ניתן לבצע spin-up של containers ולהעתיקם במהירות, וכתוצאה מכך ה-scaling מהיר וקל יותר. לבסוף, כמעט כל ההיצע של ה-Containers העיקריים מבוסס על קוד פתוח, דבר המונע תלות בספק אחד.
האתגר של ניטור Docker
כמו בכל הזדמנות, גם ל-Docker יש אתגרים – במיוחד כשמדובר בניטור של רמות שירות וביצועי אפליקציות בסביבת Docker. ראשית, Docker מציג שכבה חדשה בין hosts ואפליקציות, אשר כלים מסורתיים אינם מכסים. חוסר נראות זה יכול לחשוף את העסק לבעיות ביצועים והשבתות בלתי צפויות. בתגובה, ארגונים צריכים לבצע ניטור מיוחד של Docker hosts ו-Containers.
שנית, containers ו-microservices אלה הם קצרי ימים ונועדו להזרק במהירות. דבר זה, יחד עם תקשורת ממוקדת-API, גורם לעלייה מאסיבית ב-objects ,dependencies ו-metrics, ומאתגר גישות ניטור מסורתיות, כגון topology mapping ו-instrumentation.
בנוסף, ברוב הארגונים כבר יש כלים לניטור התשתיות הקיימות. תוספת של פלטפורמות ניטור ספציפיות ל-Docker גורמת לכלי ניטור מרובים, אשר יכולים להוביל במהירות להתראות מקוטעות, עיכוב באיתור וטיפול בבעיות, וקשיים בהקצאת workloads.
לבסוף, למרות שסביבות Docker עשויות לספק scalability מסיבית לפי דרישה, הדבר עלול להביא לסביבות מאוד דינאמיות שקשות לניהול. אם הניטור אינו עומד בקצב, צוותי ה-IT מסתכנים בפערים בנראות, אשר יכולים בסופו של דבר לגרום להשבתה או לבעיות אחרות.
מה צריך לחפש בפתרונות לניטור Docker?
● מהירות, פשטות וקלות שימוש.
יש לאתר גישות agentless המזהות, מגלות, מבצעות מידול וממפות containers ו-clusters. יש לוודא כי ניטור בקנה מידה מלא כבר משולב באפליקציות Docker וכי הוא מספק תכונות אוטומטיות של Docker ופרספקטיבות Docker.
● תובנות ניטור עמוקות, ברות ביצוע.
יש לבחור טכנולוגיית ניטור המספקת תובנות לגבי הבריאות והביצועים של containers, יחד עם ביצועים וניתוחים מעמיקים של אפליקציות. יש לוודא כי הטכנולוגיה יכולה לזהות ולבודד באופן אוטומטי מוצרים כדי לתקן את שכבות האפליקציה.
● היפר-ביצועים
יש להתמודד עם "צפיפות הנתונים" – צבירה של מיליוני נתונים, כך שניתן לזהות ולאבחן במהירות בעיות ב-containers ,clusters, אפליקציות, חוויות משתמש ותשתיות. לשם כך, פתרון הניטור חייב לספק מבט מקיף על הביצועים, ולשתף תובנה זו בקרב צוותים רב-פונקציונליים.
אסור לטעות. Docker containers הם קלים, פועלים על כל מחשב ועל כל תשתית, בכל ענן, והם אידיאליים ל-microservices. עם זאת, כדי להביא לחדשנות במהירות גבוהה יותר, ולהאיץ את הטרנספורמציה הדיגיטלית, יש צורך בפתרון מהיר וקל יותר לניטור Docker, פתרון המספק תובנות שניתן לפעול לפיהן, אשר עובד בצורה חלקה ב-workflows הקיימים תוך תמיכה בכל טכנולוגיות ה-container הרלוונטיות.
זה המקום שבו הגישה המודרנית של מפעל התוכנה יכולה לסייע עם ערכת כלים משולבת לבניה, בדיקה, ניטור ואבטחת containers.
המטרה היא להפוך את חייהם של המפתחים לקלים יותר לאורך מחזור החיים של פיתוח התוכנה ולסייע לצוותי DevOps / Ops לספק חוויית משתמש יוצאת דופן.
NessPRO, קבוצת מוצרי התוכנה של נס, היא מפיצת מוצרי CA Technologies בישראל.