התחלתי להתעניין בענן כאשר מייקרוספוט יצאו עם azure. אני חייב להודות שבהתחלה התייחסתי לזה כבדיחה די גרועה. גודל בסיסיי הנתונים שניתן היה לבנות אז היה מאד קטן (אם אני זוכר נכון בהתחלה היתה מגבלה של 10MB) , חלק אדיר של הfeatures כלל לא נתמכו, ומהר מאד ירדתי מזה. חזרתי להתעסק בעננים לאחר מספר שנים בגלל צורך אירגוני. היום אני עובד באירגון שיש לו שילוב של בסיסיי נתונים onprem ובענן.
הקושי העיקרי הוא כמות השינויים. הענן הוא דינאמי ומשתנה במהירות. נעשים עדכונים לתשתית ולfeatures הנתמכים במהירות. לפעמים יותר מידי מהר וזה יכול לגרום לתקלות. אני לא זוכר את הפרטים, אבל בזמנו נפלה לנו אפליקציה, כי מייקרוסופט ביצעו שינוי כלשהוא, שלא נעשה לו QA כמו שצריך, ופתאום אפליקצייה שעבדה ללא בעיות הפסיקה לעבוד. דוגמא אחרת שלא השפיע עלינו אבל השפיעה כמובן על אחרים היא, שמייקרוסופט גילתה שיש לה בעיה בשילוב של CLR ועבודה בענן, והודיע שבתוך מספר ימים אין יותר תמיכה בעבודה עם CLR, ושכל אחד ימצא פתרון. מצד שני היום features חדשים נכנסים קודם כל לענן ורק אח"כ לגרסת onprem. זה מאפשר ללמוד אותם כמו שצריך וכמובן מאפשר שימוש במשהו שלא קיים בonprem, יוצא שיש לשינויים התכופים צדדים טובים וצדדים פחות טובים.
התחום הולך וגדל, והוא רק יצבור תאוצה. אי אפשר להשוות את היכולות שיש לazure היום לעומת היכולות שהיו לו לפני שנים. השינויים נעשים בכל התחומים – תוספות של features, תוספות של אפשרויות תמחור וכד'. בעבר למשל כל feature יצא קודם כל בonprem ורק אח"כ בענן. היום לעומת זאת feature חדש יוצא קודם כל בענן, ולאחר מכן בonprem. היום גם יותר קל לשלב עבודה של onprem עם azure. למשל היום יש כבר stretch database שיש בו טבלאות שחלקן נמצאות onprem וחלקן בענן. ברור לי שיהיו תחומים שבטווח הזמן הקרוב לא יכנסו לענן (לפחות לא במערכות התפעוליות העיקריות שלהם למשל בנקים, חברות ביטוח וכד'), אבל הרבה תחומים כן יכולים לעבוד בענן ללא בעיות רגולציה. אצלינו למשל יש דברים שאסור לנו לשים בענן, אבל עדיין יש לנו מעל מאה בסיסיי נתונים בענן.
הליווי של מייקרוסופט מאד הדוק. היו לנו מספר פעמים בעיות, פתחנו קריאה במייקרוסופט וקיבלנו עזרה תוך דקות. מייקרוסופט גם הטיסה מספר מנהלים טכנים שלנו לסיאטל לפגישה עם האנשים הטכנים מצוותי azure. המנהלים שלנו קיבלו שם ידע נוסף לגבי אפשרויות שהיום קיימות בסביבת azure וגם לגבי תוכניות עתידיות של מייקרוסופט לגבי הסביבה.
אין משהו אחד שהוא עדיף ונכון. זה מאד תלוי בשימוש ובצורך. יש דברים שבוודאות עדיף ענן. הדוגמא שנתתי קודם לגבי הקמת בסיס נתונים זמני לטסטים זאת דוגמא קלאסית לשימוש בענן. דוגמא נוספת הקמת בסיס נתונים במהירות לצרכי פיתוח של פרוייקט חדש. לעומת זאת בסיס נתונים ששומר מידע שהרגולציה לא מאפשרת לשמור בענן חייב להיות onprem. כמובן שיש עוד דוגמאות באמצע עם שיקולים לכאן או לכאן.
נראה לי שבסופו של דבר זאת שאלה של עלות לעומת תועלת. העלות של החזקת השרתים, כח האדם שמתחזק את השרתים, קניית הרשיונות והברזלים לעומת העלות של הקמת בסיסיי הנתונים והחזקתם בAzure. אצלינו ההנהלה הגיע למסקנה שהעלות של סביבת azure זולה יותר מהעלות של הקמת ואחזקת כל בסיסיי הנתונים onprem. ברור שיש גם עקומת למידה. יש דברים שאי אפשר לעשות בazure. למשל בסביבת PaaS לא ניתן להפעיל פרופיילר או server side trace. למעשה אין לנו שום גישה למערכת ההפעלה או לדיסק. לא ניתן לבצע קינפוגים שאפשר בסביבת onprem. לפעמים צריך למצוא דרכים שונות מהדרכים שאנחנו מכירים. חלק מהDMVs שונים, וקיימות כמובן פקודות שלא נמצאות בשרת onprem, כי הם לא רלוונטים לשרתים האלו (לדוגמא alter database שמבצע שינוי לtier של בסיס הנתונים). בגדול לא מדובר על משהו ענק שאי אפשר ללמוד. צריך רק להיות מודעים לך שיש עקומת למידה.