יום ראשון, 12 באפריל 2009

מעבר שרתים לא בשבת הזו

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

ההחלטה לעבור סופית נפלה ביום רביעי לפני כחודשיים, לאחר שהיה ניתוק נוסף, והפעם הוא לא היה במשך 5 דקות. להזכירכם, בשרת שלנו משתמשים לקוחות, ואין לנו פריבילגיה ל-down time אשר אינו ביום שישי או שבת ומתואם מראש.
אז ביום רביעי ההחלטה נפלה, ותוך 24 שעות כבר היה לנו שרת חדש אשר התחלנו לקנפרג במרתון.
ביום חמישי נשלח אימייל ללקוחותנו, מסביר על שדרוג הגירסה ביום שבת וגם על מעבר השרת. למרות שהמעבר לשרת החדש הוא עניין של כמה דקות, כיוון שאנחנו משנים גם DNS וגם MX Records, למעשה חלקים באפליקציה עלולים לא לעבוד עד 24 שעות מהשינוי. במידה וה-DNS מתעדכן בזמן (בדרך כלל עניין של עד שעה), אז האפליקציה המרכזית יכולה לעבוד.

באימייל הודענו, שאם מישהו חייב לעבוד באותה השבת, אז נוכל לפתור לו את הבעיה (בגדול, שינוי ב-/etc/hosts עד שה-DNSים מתעדכנים), ויום שישי בבוקר החלו הבדיקות של האפליקציה על השרת החדש.

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

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

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

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

0 comments:

הוסף רשומת תגובה