מעבר ל-Micro Service - סקירת Azure Service Fabric

בשנים האחרונות, יצאו לשוק מספר מערכות (PaaS - (Platform as a Service, שבאות לחסוך את הפיתוח היקר והחוזר על עצמו בחברות השונות. אחת מהמערכות שנחשפו לאחרונה היא Azure Service Fabric, מבית מיקרוסופט, ובמאמר זה נסקור מקצת מהיכולות של מערכת זו

startup getty images

קרדיט תמונה: Getty Images Israel

מאת יונתן ליאונוב, Head of Production Operations, TGS

חברות תוכנה רבות המפתחות שירותים בעלי יכולות רבות ומגוונות בוחרות לפתח בארכיטקטורת מוכוונת שירותים (SOA), ובזמן האחרון מתמקדות בתוך תחום זה ב-Micro-Services – שירותים זעירים. ארכיטקטורה זו מציעה גמישות רבה המושגת על ידי ניתוק בין התחומים השונים שבשליטת כל רכיב במערכת ויצירת פרוטוקולים פשוטים לתקשורת בין השרותים השונים.

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

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

בשנים האחרונות, יצאו לשוק מספר מערכות (PaaS – (Platform as a Service, שבאות לחסוך את הפיתוח היקר והחוזר על עצמו בחברות השונות. חלק ממערכות אלו הוצעו כשירות ענן בלבד, חלקן להתקנה בחוות הלקוח (On Premise) ולאחרונה אף במשולב.

אחת מהמערכות שנחשפו לאחרונה היא Azure Service Fabric, מבית מיקרוסופט, ובמאמר זה נסקור מקצת מהיכולות של מערכת זו.

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

המערכת נותנת, בין היתר, את השירותים הבסיסיים הבאים:

• אשכול שרתים מנוהל (Managed Cluster) ומאובטח
המספר המינימלי להרצה תקינה הוא חמישה שרתים, ואשכול אחד יכול לנהל מאות שרתים.
אבטחת הגישה לניהול יכולה להתבצע בעזרת תעודת אבטחה (SSL Certificate) או בעזרת Azure AD.

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

TGS

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

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

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

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

• ממשק ניהול גרפי
בנוסף ליכולות הניהול המבוססות על Powershell, המערכת חושפת כלי ניהול גרפי מבוסס Web.
בממשק ניתן לעקוב אחרי תקינות האשכול, האפליקציות השונות, ולמבצע מגוון פעולות.

TGS2

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

• סביבת הרצה מקומית עבור מפתחים
במקום להצריך את המפתח להתקין אשכול על חמישה שרתים ערכת הפיתוח מתקינה תהליכים שמדמים חמישה שרתים (ללא וירטואליציה) שכולם רצים על המחשב המקומי של המפתח. ניתן לנפות (Debug) ישירות מתוך Visual studio תהליכים שרצים בתוך המערכת.

• שירותי זיהוי (Discovery) ותקשורת בין רכיבים

• ניהול State מבוזר

• תבניות Visual studio מוכנות עבור מגוון ארכיטכטורות
ניתן להתחיל ולהתנסות במערכת בסביבת פיתוח על ידי התקנת Azure Service Fabric SDK על גבי מחשב עם Visual Studio.

TGS3

חשוב להריץ את סביבת הפיתוח בעזרת "Run as Administrator" כדי שהסביבה תוכל להתקין ולהפעיל את אשכול השרתים. על מנת להעלות שירות לתוך Service Fabric, יש צורך ליצור קובץ Manifest שמצהיר על כל ההגדרות הנדרשות, וזאת תוך שימוש בהררכיה הבאה:

Application
הרמה העליונה שמגדירה אוסף של שירותים (Services). בנוסף לרשימת השירותים, יש להגדיר ברמה זו כמה יחידות (Instances) יש לפרוס עבור כל שירות. ניתן כמובן להגדיר ששירות יפרס על כל השרתים באשכול.

Service
מגדיר את חבילת הקוד (כולל את קובץ האתחול ואופציונלית גם קובץ התקנה), חבילת הקונפיגורציה וחבילת מידע (במידה ויש צורך).

Partition
במידה שבונים שירות שמחזיק נתונים בתוכו (Stateful Service), ניתן לפצל את הנתונים למחיצות (Partitions) נפרדות כדי להקטין את כמות המידע המוזק על ידי כל יחידה.

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

למרות שמדובר במערכת שנחשפה לציבור רק בשנה האחרונה, היא מגיעה עם בשלות מסויימת כיוון שמיקרוסופט עשתה בה כבר שימוש פנימי ניכר עבור שירותים כגון: Skype for Business, Intune, Azure Event Hubs, Azure Data Factory, Azure DocumentDB, Azure SQL Database, and Cortana.

הכתבה בחסות TGS

חברת TGS מפתחת פלטפורמת חיפוש, ניהול מלאי ומכירות עבור שוק ה-Travel העולמי, אנו משרתים מעל 2,500 לקוחות מכל קצוות הגלובוס ביניהם Priceline ,Booking.com ,Expedia ,Agoda ועוד...
אנו שייכים לארגון גלובאלי אמיתי (Travel Holdings) המונה מעל 1000 עובדים הפזורים ב-39 משרדים ברחבי העולם, למרות עובדה זו, במרכז הפיתוח הישראלי אנו מונים כ-100 עובדים ומתחזקים אווירה משפחתית וסטארטאפיסטית עם ביטחון של חברה יציבה הקיימת מעל 20 שנה ומגלגלת 1.5 מיליארד דולר בשנה תוך כדיי שמירה על אותו DNA ייחודי וחדשנות טכנולוגית.
בימים אלו מתרחב מרכז הפיתוח הישראלי הממוקם בפתח תקווה בעקבות מהלך אסטרטגי שמטרתו לבנות מחדש את מערכות החברה וזאת הזדמנות חד פעמית להיכנס לחברה ולפתח קוד מאפס, להיות שותפים בהחלטות ולהיות בעלי השפעה בבניית מערכת חדשה ולהיות בחזית הטכנולוגיה.
עכשיו עזבו אתכם מהכל, מה יותר כיף מלעבוד בתחום התיירות, לבנות מערכת שמגשימה חלומות למיליוני משתמשים בדרך לחופשה הבאה שלהם? לחצו כאן והצטרפו ל-TGS!

כתב אורח

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

הגב

4 Comments on "מעבר ל-Micro Service - סקירת Azure Service Fabric"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
הדר
Guest

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

צילי
Guest

למה מייקרוספט ממשיכים להתעקש לכתוב תוכנה?…

אלעד
Guest

גדול :-)

עידו
Guest

לצערם של אנשי ה JVM,
C# כבר מזמן לא סופרת ה java. לא מבחינת השפה, ולא מבינת ביצועים.
ב Java 1.8 ניסו להעתיק דברים מ C#, אבל עשו אותם כל כך רע, שכבר עדיף לא לעבוד איתם.
ועכשיו בעידן ה core CLR, אין יותר את התירוץ ש C# לא רץ על Linux.
בנוסף, קהילת ה Open source, תורמת המון (כולל Microsoft עצמה)

wpDiscuz

תגיות לכתבה: