4 סיבות שכדאי להשתמש בקוברנטס

Sirish Raghuram הוא מייסד ומנכ"ל חברת Platform9 Systems.

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

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

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

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

סרטון קשור: מה זה קוברנטס?

בסרטון זה בן 90 שניות, למדו על Kubernetes, מערכת הקוד הפתוח לאוטומציה של יישומים המיכלים, מאחד מממציאי הטכנולוגיה, ג'ו בדה, מייסד ומנהל ה- CT ב- Heptio.

מסגרת תשתית להיום

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

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

Kubernetes מבטלת נעילת תשתית על ידי מתן יכולות ליבה למכולות ללא הטלת מגבלות. זה משיג זאת באמצעות שילוב של תכונות בפלטפורמת Kubernetes, כולל Pods and Services.

ניהול טוב יותר באמצעות מודולריות

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

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

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

פריסה ועדכון תוכנה בקנה מידה

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

בקר הפריסה מפשט מספר משימות ניהול מורכבות. לדוגמה:

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

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

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

בניגוד להצעות PaaS מסורתיות הכוללות הכל, Kubernetes מספק רוחב רחב לסוגי היישומים הנתמכים. הוא אינו מכתיב מסגרות יישומים (כגון Wildfly), אינו מגביל את זמן ההפעלה השפה הנתמכת (Java, Python, Ruby), אינו מתייחס ליישומי 12 גורמים בלבד או מבדיל "אפליקציות" מ"שירותים ". Kubernetes תומך במגוון רחב של עומסי עבודה, כולל עומסי עבודה חסרי מדינה, סטטוס ועיבוד נתונים. אם יישום יכול לרוץ במיכל, הוא אמור לפעול היטב ב- Kubernetes.

הנחת היסוד לאפליקציות שמקורן בענן

לא מפתיע לאור ההתעניינות במכולות, כלי ניהול ותזמור אחרים צצו. החלופות הפופולריות כוללות את Apache Mesos עם מרתון, Docker Swarm, AWS EC2 Container Service (ECS), ואת Nomad של HashiCorp.

לכל אחד מהם היתרונות שלו. Docker Swarm משולב בחוזקה עם זמן הריצה של Docker, כך שמשתמשים יכולים לעבור בקלות מדוקר ל- Swarm; Mesos עם מרתון אינו מוגבל למכולות, אלא יכול לפרוס כל סוג של יישום; AWS ECS קל יותר לגשת למשתמשי AWS הנוכחיים. עם זאת, אשכולות Kubernetes יכולים לפעול ב- EC2 ולהשתלב בשירותים כגון Amazon Elastic Block Storage, Elastic Load Balancing, Auto Scaling Groups וכן הלאה.

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

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

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