2019

ארכיטקטורת ענן לאפליקציות SaaS

מאת: רוברט דן ינוביץ'
 
בשנים האחרונות אנו חוזים בעלייתם המטאורית של יישומים המבוססים על העיקרון של תוכנה כשירות (Software as a Service). מאמר זה מפרט מהם שלושת האתגרים של פיתוח יישומים כאלו, וכיצד שימוש נכון ביכולות הענן יכול לסייע.
העיקרון המנחה של יישומי תוכנה כשירות הוא שתוכנות אלו אינן מותקנות על ציוד שבאחריות הלקוח, אלא בענן, והמשתמשים ניגשים למערכת דרך הרשת. למודל זה יתרונות משמעותיים: צמצום עלויות תשתית, התקנות קלות, שדרוגים מהירים, נגישות מקסימלית ויכולת הרחבה כמעט אינסופית.
 
עם זאת, קיימים שלושה אתגרים משמעותיים שעימם נאלצים להתמודד אדריכלי ומפתחי התוכנה. האתגר הראשון נובע מהעובדה שמדובר במערכת אחת המשמשת מספר לקוחות שונים בעת ובעונה אחת. אסור שמשתמש אחד ייחשף לתכנים של משתמש אחר, או יבצע פעולות שהוא אינן מורשה לבצע. בנוסף, יש שיקולים של רמת הרגישות המידע ודרישות רגולטוריות של אבטחת מידע ופרטיות.
 
אתגר שני הוא שמירה על רמת גבוהה של ביצועים עבור כלל המשתמשים. מעצם טבעה של המערכת כמרכזית, יש סכנה שכשל הקשור למשתמש מסוים ישפיע על ביצועי המערכת אצל משתמשים אחרים.
 
האתגר השלישי נובע מתמיכה בריבוי של משתמשים, כלומר יש צורך לתת מענים מסוגים שונים לסוגי משתמשים שונים , באזורים שונים של העולם, ואפילו בסביבות תפעול שונות לחלוטין. רכיבי המערכת הם משותפים, וחלק מרכיבי המערכת מוקצים ללקוח ספציפי או לשירות/מוצר ספציפי ועל כן יש להבטיח כי גורמי התפעול מסוגלים – בכל תקלה – להבין אילו שירותים/לקוחות ספציפיים מושפעים ממנה.
 
אופן ההתמודדות עם כל אחד משלושת האתרים הללו נובע מארכיטקטורת המערכת, וליתר דיוק – מרמת ההפרדה הקיימת במערכת. קיימים חמישה מודלים של הפרדה, בשכבות השונות של הארכיטקטורה: בשכבת החשבון, בשכבת הרשת , בשכבת תת-רשת , בשכבת המיכל (קונטיינר) ובשכבת היישום . ככל שההפרדה מיושמת יותר קרוב לאפליקציה, עולה המורכבות והאתגרים של הפרדה ברמת אבטחת המידע , ביצועים וכו'. יחד עם זאת, המשתמשים מנצלים משאבים משותפים ולכן נוצר חיסכון בעלויות תשתית ותחזוקה.
 
יש כלים לפתיחה מהירה של מספר רב של חשבונות מסוגים שונים בצורה אוטומטית. הכלי שמציע AWS נקרא Landing Zone Provisioning, של Azure זה מתבצע דרך ה- Active Directory.
בנושא ביצועים ניתן לבצע מדידה של עומס על רכיבי התשתית בעזרת כלי ניהול ומדידה כמו Cloud Watch של AWS או המקבילה שלו ב- Azure, Azure Monitor. ושימוש ביכולת המאפשר הגדלה דינאמית של משאבים בעזרת Auto Scaling Group של AWS או Azure Autoscale.
 
לתמיכה במספר רב של משתמשים חברות הענן מספקות אפשרות להשתמש ב Tagging אשר נותן יכולת להפרדה ובקרה על פעילות שמבוצעת בכל סביבת לקוח. תוכלו להשתמש ב- resource tagging in Azure או AWS Tagging Strategies.
 
ניהול תהליכי התקנה אוטומטיים והרצת תהליכים בעזרת הכלי של AWS, AWS System Manager, יתן לכם את האפשרות לשליטה ועבודה יעילה על תשתיות הענן.
 
ספקי הענן המובילים בשוק כגון AWS ו-Azure מציעים שורה של כלים שמסייעים למפתחי אפליקציות SaaS ליישם את ההפרדה בשכבות השונות. בנוסף, ספקי הענן מציעים כלים משלימים שהם חיוניים ליישומי SaaS כגון מנגנון רישום משתמש חדש ורישום דייר (Tenant) חדש, מנגנוני הצפנה, הזדהות ואימות, כלי ניהול, ניטור מתקדם ומדידה ("בריאות המערכת"), חיובים (Billing) ותיוג המשתמש בלצורך חיובים.
 
לסיכום, בשל העובדה שקיימים מספר אתגרים וכן שיקולים מגוונים המכתיבים את הצורך של מפתחי האפליקציה מחד, וכן שורה של כלים ויכולות המוצעים ע"י ספקיות הענן מאידך, מומלץ להיעזר להתייעץ עם גוף שיכול לשלב כבר בשלבי התכנון והארכיטקטורה את הכלים/יכולות של הענן ומצד שני אל ארכיטקטורת התוכנה ליישום SAAS אפקטיבי.

<< חזרה לדף חדשות

img