במציאות של היום, ברוב החברות ובמיוחד בחברות טכנולוגיה, יש DevOps במובן כזה או אחר. היום אני רוצה לדבר איתכם על תרבות ה-DevOps ב-Netflix. בעיניי, נחמד מאוד לראות חברה מצליחה כמוה שמייחסת הרבה חשיבות בארגון ל-DevOps. בנוסף, נקודת המבט שלהם על העולם הזה היא מעניינת מאוד.
קצת רקע על Netflix
מדובר על חברה שרובנו מכירים, חברת ענק שעיקר פעילותה – לספק שירותי צפייה דרך רשת האינטרנט. בעזרת אלגוריתמים מורכבים היא מצליחה להתאים לכל צופה את התוכן שהכי רלוונטי עבורו תוך כדי שמירה על מהירות ואיכות.
התשתית של Netflix
התשתית שלה מורכבת משלושה דברים עיקריים:
- Amazon web services: שירותי ה-cloud של Amazon על מנת לאחסן מידע ולנהל את השרתים. אגב, הם עברו ל-Amazon אחרי שהייתה להם שריפה ב-Data Center שלהם.
- Akamai: רשת להעברת תכנים (CDN) כדי לבנות את ה-User Interface עבור הלקוחות.
- Netflix open connect: כדי לאחסן את התכנים ולהנגיש אותם למשתמש בצורה יעילה ומהירה.
כל המערך הזה מורכב מהרבה מאוד Microservices שיודעים לתקשר אחד עם השני.
נתונים במספרים
- מאות Miscroservices.
- אלפי שינויים שעוברים ל-production מדי יום.
- עשרות אלפי שרתים ב-Amazon web services
- יותר מ-200 מיליון לקוחות רשומים.
- Netflix זמינה ביותר מ-190 מדינות בעולם.
מה אבני הבניין של תרבות ה-DevOps ב-Netflix?
הגישה שלהם מאוד מעניינת ולא קונבנציונאלית. ראשית, הם החליטו שהם מתמקדים בחדשנות ושמים את זה במקום הראשון בסדר העדיפויות. מה זה אומר? שהם לא שואפים ל-100% של Uptime בכל מחיר. חדשנות יותר חשובה מבחינתם. מאוד חשוב להם לבטוח באנשים שלהם. כלומר, כל אחד יכול לבקש גישה ל-production, הם מקדשים אחריות אישית וחופש.
כשאני אומר שחשוב להם מאוד חדשנות, אני מתכוון לכך שהם שואפים להוציא כמה שיותר פיצ’רים חדשים. דוגמאות: שיפור חווית הלקוח, הוספת תכנים איכותיים, הרבה ניסויים. אפשר להגיד שהם מאוד מתבססים על העקרונות שדיברתי עליהן כאן.
הם לא מאמינים בכל מיני ניטורים – מבחינתם בכל מקרה יש כל כך הרבה דבירם לנטר עליהם. לכן, לא כדאי לשרוף זמן יקר ביצירת ניטורים כדי שאולי תימצא בעיה.
ניהול ב-Netflix
ברוב החברות תפקידו של המנהל הוא להחליט על המשימות, לחלק אותן ולדאוג שהם יקרו. ב-Netflix המצב שונה: תפקידו של המנהל הוא לוודא שהאנשים מבינים מה קורה במחלקות אחרות ומסונכרנים איתם. כך, הם יוכלו לקבל תמונה כללית ורעיונות חדשים שיועילו לכל הארגון. העניין של service ownership גם מאוד חשוב להם, אם מישהו כתב משהו – הוא אחראי על זה.
כלי DevOps לדוגמא שפותח ב-Netflix
דבר נוסף שמאוד חשוב להם, הוא שמירה על גבולות התפקיד. בעיניהם, אם מפתח של אפליקציית התשלומים צריך להתעסק עם CI לדוגמא, זה לא טוב. הוא עובד כמפתח, בזה הוא טוב ועל זה משלמים לו. לכן כדאי שהוא לא יעשה דברים שפחות רלוונטיים לתפקיד שהוא מועסק בו. לכן, הם דואגים לבנות כמה שיותר כלים שיעזרו באוטומציות של תהליכים ויפשטו אותם עבור כולם. נדבר על אחד כזה עכשיו.
spinnaker
כלי שנועד לפשט את ההעברה של הקוד לענן לסביבת production (מגדירים לו pipeline בקלות שלוקח את הקוד מנקודה א’ לנקודה ב’ ואז יריץ דברים מסוימים כולל בדיקות עליהם).
לאחר מכן, המפתח ידחוף את הקוד שלו ל-master. במידה ואין בעיות ביצועים עם הגרסה החדשה וכל ה הבדיקות עוברים בהצלחה – באופן אוטומטי והדרגתי הוא יעדכן את כל הקוד במקומות הרלוונטיים.
לסיכום, Netflix היא חברה מעניינת גם מבחינת העיסוק שלה ובעיקר מבחינת היחס לעובדים והתרבות שלה. הם שמים דגש על חופש, אחריות, הבנה של העשייה במחלקות אחרות, שיתופיות, פידבקים. שאני רושם את כל המילים האלה עולה לי בראש תרבות DevOps דינמית, חכמה ומעניינת.
חשוב לי להגיש שלכל חברה יש דברים שמתאימים ויש דברים שמתאימים פחות. לדוגמא, העובדה שהניטורים ב-Netflix בקושי קיימים וחדשנות בעדיפות גבוהה יותר על פני Uptime עשויה לא להתאים לחברות מסוימות. לדוגמא, חברה שמייצרת מכשיר רפואי שנדרש לעבוד כל הזמן ולהיות נקי מבעיות.
אם אתם רוצים לשמוע עוד על DevOps in Netflix אני ממליץ לכם לצפות בסרטון הזה.