✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

קוברנטיס - הדור הבא

קוברנטיס - הדור הבא
Lior King
|
קלה
|
Sep 16, 2019
alt="facebook"alt="linkedin"להרשמה לניוזלטר

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


אהבה ממבט ראשון


זו הייתה אהבה ממבט ראשון - התעשייה קיבלה את קוברנטיס בהתלהבות. ספקיות הענן מיהרו להציע סביבות קוברנטיס משלהן, וחברות מובילות כמו Red Hat ו-Pivotal הציעו מערכות מבוססות קוברנטיס לארגונים, המאפשרות לנהל ולתפעל קונטיינרים בכל מקום: on premise, בענן, או במודל משולב (היברידי). עבור מערכות שהן stateless (כמו שרתי אינטרנט ואפליקציה), קוברנטיס הפך לשם נרדף לאוטומציה: באינטגרציה, בפריסה (deployment) ובניהול השוטף בפרודקשן. כל שעליכם לעשות הוא לעטוף יפה את הקוד שלכם בקונטיינר כמו שעוטפים מתנת יומולדת, ולשגר אותו לקוברנטיס. רק שבמקום כרטיס ברכה, תוסיפו קובץ בפורמט yaml המכיל הוראות לקוברנטיס לצורך קונפיגורציה ו-deployment. הקוברנטיס החרוץ ישבץ את הקונטיינר בתוך Pod (שהוא מעין תחליף לוגי למכונה וירטואלית) ויפעיל אותו באחד משרתיו או ישכפל אותו ב-10 שרתים שונים לפי ההוראות.


רוצים להוסיף Pods או להוריד Pods? קלי קלות. פשוט משנים קובץ ה-yaml, וקוברנטיס יעבוד בשבילכם. ה-Pod קרס? קוברנטיס ידאג להקים אותו מאשפתות באופן אוטומטי. יתכן מאד שבקושי נרגיש אם יקרוס ה-Pod, או כמו שאמר פעם הרמטכ"ל לשעבר דן חלוץ:  "מכה קלה בכנף".


מכה קלה בכנף?


הבעיה החלה כשרצינו להפעיל קונטיינרים של מערכות מורכבות יותר - מערכות שחייבות לשמור על ה-state כמו מערכות בסיסי נתונים. מערכות אלה הן קריטיות ורגישות ביותר, והן אמורות להבטיח לנו שבשום אופן לא נאבד מידע ושמידע לא יושחת חלילה וחס. במערכות השומרות על state, נדרשות פעולות של "לפני" או "אחרי" ההפעלה של ה-Pod: נדרשים שינויים בקונפיגורציה, שינויים בהגדרות הרשת, אינטגרציה עם פלטפורמת ה-storage, אינטגרציה עם DNS ועוד שלל קללות ונאצות. המשמעות היא שאיש ה-DevOps נאלץ להתערב ידנית ולדאוג להפעיל תהליכים של "לפני" ו"אחרי" מורכבים באצבעותיו המצולקות, אשר עלולות לבגוד בו ולעשות טעויות מביכות.


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


לידתו של האופרטור


הפתרון לבעיה זו החל להתגבש ב-2016 כש-CoreOS (מיני לינוקס פופולרי לקונטיינרים) הביא לעולם את האופרטור. האופרטור מאפשר למפתחי מערכות השומרות על state (כמו יצרני מערכות בסיסי נתונים) להלביש על גבי קוברנטיס קוד משלהן כדי להרחיב את קוברנטיס ולהפוך אותו לחכם יותר ומותאם אישית. בהמשך הושקה ה-Operator Framework והציעה API שבאמצעותו אפשר לשלוט על הרצת אפליקציות מורכבות על גבי תשתית קוברנטיס. בבת אחת קוברנטיס קפץ כיתה - היישר לכיתת המחוננים.

לדוגמה: רוצים להקים בסיס נתונים? הגדירו בקובץ yaml את המשאבים שאתם רוצים להקצות לבסיס הנתונים והאופרטור יעשה בשבילכם הכל: יתקין לכם את התוכנה, יקנפג את הסביבה, יסדר את הגדרות הרשת כנדרש, יספק את ה-storage, ידבר עם ה-DNS ובקיצור - ידאג להכל באופן אוטומטי.

אוטומציה מקיר לקיר


האפשרות לבנות אופרטור ולהרחיב את יכולותיו של קוברנטיס פתחה את עיניהם של יצרני תוכנה רבים לרווחה. הראשונה לשחרר גרסת GA של אופרטור לבסיס נתונים הייתה חברת Couchbase כבר באוגוסט 2018.

Couchbase הוא בסיס נתונים NoSQL מבוזר מבוסס מסמכים. האופרטור של Couchbase יודע לקבל קובץ הגדרות משאבים (CRD) בפורמט yaml ולהרים קלאסטר שלם של Pods אוטומטית ועליהם מותקנת ומקונפגת התוכנה של Couchbase, כולל כל ההגדרות שדורשת סביבת קוברנטיס.

רוצים להרחיב את הקלאסטר ולהוסיף לו Pod? פשוט משנים את מספר ה-Pods בקובץ ה-CRD. האופרטור יקים אוטומטית את ה-Pod החדש, יתקין עליו את התוכנה, יחבר אותו לפודים האחרים בקלאסטר, יגדיר לו את הרשת, הסטורג' ושאר הירקות ויעביר אליו דאטה מה-Pods האחרים כדי לנצל את משאביו של ה-Pod החדש.

האופרטור של Couchbase מוסמך ל-Openshift ולמערכות הקוברנטיס של ספקיות הענן (EKS, AKS, GKE), יודע לעדכן אוטומטית את גרסאות התוכנה של Couchbase ב-Pods ללא Downtime (בזמן שהמערכת ממשיכה לעבור כרגיל), מספק תמיכה ל-Helm Charts, מאפשר חיבור ישירות לקלאסטר מכל כתובת שהיא באינטרנט (בתקשורת מוצפנת) ועוד מגוון רחב של פיצ'רים.


מה הלאה


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


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


מאת: ליאור קינג, Senior Solution Architect בחברת Couchbase

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

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


אהבה ממבט ראשון


זו הייתה אהבה ממבט ראשון - התעשייה קיבלה את קוברנטיס בהתלהבות. ספקיות הענן מיהרו להציע סביבות קוברנטיס משלהן, וחברות מובילות כמו Red Hat ו-Pivotal הציעו מערכות מבוססות קוברנטיס לארגונים, המאפשרות לנהל ולתפעל קונטיינרים בכל מקום: on premise, בענן, או במודל משולב (היברידי). עבור מערכות שהן stateless (כמו שרתי אינטרנט ואפליקציה), קוברנטיס הפך לשם נרדף לאוטומציה: באינטגרציה, בפריסה (deployment) ובניהול השוטף בפרודקשן. כל שעליכם לעשות הוא לעטוף יפה את הקוד שלכם בקונטיינר כמו שעוטפים מתנת יומולדת, ולשגר אותו לקוברנטיס. רק שבמקום כרטיס ברכה, תוסיפו קובץ בפורמט yaml המכיל הוראות לקוברנטיס לצורך קונפיגורציה ו-deployment. הקוברנטיס החרוץ ישבץ את הקונטיינר בתוך Pod (שהוא מעין תחליף לוגי למכונה וירטואלית) ויפעיל אותו באחד משרתיו או ישכפל אותו ב-10 שרתים שונים לפי ההוראות.


רוצים להוסיף Pods או להוריד Pods? קלי קלות. פשוט משנים קובץ ה-yaml, וקוברנטיס יעבוד בשבילכם. ה-Pod קרס? קוברנטיס ידאג להקים אותו מאשפתות באופן אוטומטי. יתכן מאד שבקושי נרגיש אם יקרוס ה-Pod, או כמו שאמר פעם הרמטכ"ל לשעבר דן חלוץ:  "מכה קלה בכנף".


מכה קלה בכנף?


הבעיה החלה כשרצינו להפעיל קונטיינרים של מערכות מורכבות יותר - מערכות שחייבות לשמור על ה-state כמו מערכות בסיסי נתונים. מערכות אלה הן קריטיות ורגישות ביותר, והן אמורות להבטיח לנו שבשום אופן לא נאבד מידע ושמידע לא יושחת חלילה וחס. במערכות השומרות על state, נדרשות פעולות של "לפני" או "אחרי" ההפעלה של ה-Pod: נדרשים שינויים בקונפיגורציה, שינויים בהגדרות הרשת, אינטגרציה עם פלטפורמת ה-storage, אינטגרציה עם DNS ועוד שלל קללות ונאצות. המשמעות היא שאיש ה-DevOps נאלץ להתערב ידנית ולדאוג להפעיל תהליכים של "לפני" ו"אחרי" מורכבים באצבעותיו המצולקות, אשר עלולות לבגוד בו ולעשות טעויות מביכות.


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


לידתו של האופרטור


הפתרון לבעיה זו החל להתגבש ב-2016 כש-CoreOS (מיני לינוקס פופולרי לקונטיינרים) הביא לעולם את האופרטור. האופרטור מאפשר למפתחי מערכות השומרות על state (כמו יצרני מערכות בסיסי נתונים) להלביש על גבי קוברנטיס קוד משלהן כדי להרחיב את קוברנטיס ולהפוך אותו לחכם יותר ומותאם אישית. בהמשך הושקה ה-Operator Framework והציעה API שבאמצעותו אפשר לשלוט על הרצת אפליקציות מורכבות על גבי תשתית קוברנטיס. בבת אחת קוברנטיס קפץ כיתה - היישר לכיתת המחוננים.

לדוגמה: רוצים להקים בסיס נתונים? הגדירו בקובץ yaml את המשאבים שאתם רוצים להקצות לבסיס הנתונים והאופרטור יעשה בשבילכם הכל: יתקין לכם את התוכנה, יקנפג את הסביבה, יסדר את הגדרות הרשת כנדרש, יספק את ה-storage, ידבר עם ה-DNS ובקיצור - ידאג להכל באופן אוטומטי.

אוטומציה מקיר לקיר


האפשרות לבנות אופרטור ולהרחיב את יכולותיו של קוברנטיס פתחה את עיניהם של יצרני תוכנה רבים לרווחה. הראשונה לשחרר גרסת GA של אופרטור לבסיס נתונים הייתה חברת Couchbase כבר באוגוסט 2018.

Couchbase הוא בסיס נתונים NoSQL מבוזר מבוסס מסמכים. האופרטור של Couchbase יודע לקבל קובץ הגדרות משאבים (CRD) בפורמט yaml ולהרים קלאסטר שלם של Pods אוטומטית ועליהם מותקנת ומקונפגת התוכנה של Couchbase, כולל כל ההגדרות שדורשת סביבת קוברנטיס.

רוצים להרחיב את הקלאסטר ולהוסיף לו Pod? פשוט משנים את מספר ה-Pods בקובץ ה-CRD. האופרטור יקים אוטומטית את ה-Pod החדש, יתקין עליו את התוכנה, יחבר אותו לפודים האחרים בקלאסטר, יגדיר לו את הרשת, הסטורג' ושאר הירקות ויעביר אליו דאטה מה-Pods האחרים כדי לנצל את משאביו של ה-Pod החדש.

האופרטור של Couchbase מוסמך ל-Openshift ולמערכות הקוברנטיס של ספקיות הענן (EKS, AKS, GKE), יודע לעדכן אוטומטית את גרסאות התוכנה של Couchbase ב-Pods ללא Downtime (בזמן שהמערכת ממשיכה לעבור כרגיל), מספק תמיכה ל-Helm Charts, מאפשר חיבור ישירות לקלאסטר מכל כתובת שהיא באינטרנט (בתקשורת מוצפנת) ועוד מגוון רחב של פיצ'רים.


מה הלאה


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


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


מאת: ליאור קינג, Senior Solution Architect בחברת Couchbase

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

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Lior King
בואו נעבוד ביחד
support@israelclouds.com
צרו קשר