בלי שינויים אקראיים או תיעוד מיותר: תשתית כקוד מגיעה לענן

עידן מחשוב הענן הביא איתו מהפכה אמיתית בעולם ה-IT, ששינתה את הדרך שבה מגדירים ובונים תשתיות חומרה וירטואליות, ויש לכך הרבה יתרונות מפתיעים

 Tetra Images/ Getty Images Israel

צלם/תמונה: Tetra Images/ Getty Images Israel

מאת שני שירי, DevOps, טל צור, ארכיטקטורה, חברת NICE

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

חדשנות עבור אנשי IT

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

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

אבל מדוע להמשיך בכלל בתהליך הידני? החדשנות לא עוצרת ובשנים האחרונות פעולות אלה מוחלפות בכלי פיתוח ועיצוב אשר מאפשרים את החלפת התהליך הידני בתהליך תוכנתי פרוצדורלי. כעת איש ה-IT יכול "לקודד" את המערכת הנדרשת. זוהי מהפכה אמיתית בעולם ה-IT, שקיבלה את הכינוי "תשתית כקוד", Infrastructure as Code.

כשתוכנה פוגשת חומרה

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

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

לבסוף, ניהול קוד אפקטיבי יבוצע תמיד במערכת לניהול גרסאות, כפי שמתודולוגיית העבודה Continuous Deployment היא מרכזית בפריסת האפליקציה, כך היא משמעותית גם בפריסת תשתיות המערכת. במילים אחרות, הכנסת יכולת חדשה או תיקון תקלה היא רלוונטית הן לפיתוח תוכנה שבה מפתחים לוגיקה עסקית והן לפיתוח תשתית שבה מפתחים משאבי מערכת, בסיסי נתונים, Big Data וכו' – הקוד נבנה ונפרס לסביבת הענן, ומיד לאחר מכן מבוצעות בדיקות ידניות או אוטומטיות על מנת לוודא את תקינותו.

והקוד עוד לפנינו

"תשתית כקוד" מציגה מציאות שבה אין שינויים ידניים אקראיים או תיעוד היסטורי מיותר – כעת הקוד הוא מקור התיעוד ומקור האמת, והוא חייב להיות מדויק כדי שאכן יעבוד. חלק מפתרונות המימוש הם מערכות הרצה גנריות, דוגמת Chef, Puppet או Ansible, שעבורן נדרשים קטעי קוד שמורצים בחסות המערכות ומבצעים את הקמת התשתית בפועל. כלים אלה לרוב מבוססים על שפת Ruby או על שפות תוכנה ייעודיות שפותחו לטובת הכלי. חלק נוסף, הם שירותים "סגורים", אשר מגדרים היטב את גבולות העבודה שלהם, דוגמת Azure Resource Manager של מיקרוסופט או CloudFormation של אמזון. עבורם נדרשים קובצי הגדרה דוגמת JSON או YAML, אשר מכילים סדרת הגדרות והוראות. כך או אחרת, בעבודה עם רוב הכלים הפופולריים נדרשת הגדרת המערכת במצבה המוגמר, "היעד" אליו נרצה להגיע (עם עזרה סביב תלויות וסדר יצירת שירותי המערכת), והכלים הם אלה ש"דואגים" לכך שמה שצריך להתבצע אכן יתבצע.

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

הכתבה בחסות NICE

אנו גאים להיות חברת תוכנה ישראלית העומדת בחזית הטכנולוגיה והחדשנות, ומובילה בתחומי ה- Analytics, ה- Cloud וה-Big Data . מוצרי החברה מספקים פתרונות בתחומי ניהול ואופטימיזציה של מרכזי שירות לקוחות ובתחומי מעקב וניטור של תנועות הון חשודות והלבנות הון, ונמצאים בשימוש של יותר מ-25,000 ארגונים, במעל 150 מדינות (לרבות 80 מתוך 100 החברות הגדולות הנכללות ברשימת ה - Fortune 100). לפרטים נוספים לחצו כאן

כתב אורח

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

הגב

Be the First to Comment!

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
wpDiscuz

תגיות לכתבה: