« לעמוד הראשי

הקלטה חדשה: סיפור לקוח – Terraform Cloud בחברת ZoomInfo

terraform cloud webinar

אתמול (24/1/2021) אירחתי את טל היבנר לוובינר מעניין על השימוש שהם עושים ב- Terraform Cloud בחברת ZoomInfo .
יצא לי להיחשף קצת לצורת השימוש שלהם במוצר וכיצד הוא תורם להם לבניית תשתית, וחשבתי שזה יכול לעניין עוד אנשים רבים.
ביקשתי מטל לארח אותו ולשתף אנשים נוספים, ולשמחתי הוא הסכים.

טל הציג למעשה סיפור לקוח ויספר מדוע בחרו דווקא ב- Terraform ומדוע דווקא בגירסת ה- Cloud שלו (ולא ה- on-premises).
במהלך המפגש עם ענינו טל ואני לשאלות (טל על שאלות טכניות ואני בנוגע להיבטים של רשיונות ומחירים)
הוובינר כלל גם רקע קצר על Terraform לאלו שאינם מכירים עדיין את המוצר.

why-terraform-cloud-screenshot

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

ההקלטה המלאה זמינה לצפיה מיידית בהשארת פרטים:

    * שם פרטי ומשפחה:

    * אימייל:

    * האם כבר משתמשים אצלך בחברה ב- Terraform?

    תמליל ההקלטה זמין גם הוא בהמשך הפוסט.

    תקציר ההקלטה:

    0:00 הקדמה (תמיר)

    2:48 – הקדמה של טל. התחיל ללמוד רפואה. אבל רצה אקשן והלך ללמוד פיתוח תוכנה. היה מתכנת ולאחר מכן עבר ל- DevOps.  כיום עובד ב- ZoomInfo בקבוצת התשתיות

    8:55 –  הסבר קצר על Terraform ולמה זה טוב + הסבר קצר מה זו שפת HCL

    11:55  הסבר על Execution Plans

    15:40  – טל מסביר על הכח של Terraform במובן של "cloud agnostic" – לא נעול ב- cloud אחד , ויכול לממש multi-clouds  ,  ובנוסף בניה של תשתית ואוטומציה עם עבודה מול מעל 100 providers

    18:20  – מה היה האתגר של ZoomInfo
    (בקצרה:  רצו להשתפר בעבודה בסקייל גבוה של מאות מפתחים , מאות micro-services ועבודה בכמה איזורי זמן , ולתת כלי בשירות-עצמי ( self-service) למפתחים

    27:30 – מדוע בחרו ב- Terraform Cloud ובפרט Business.  טל הזכיר גם את היתרונות ב Terraform מול כלים מתחרים.


    חברת ALM-Toolbox מייצגת רשמית את חברת HashiCorp (יצרנית Terraform ומוצרים נוספים) בישראל ובאירופה, ומציעה יעוץ, רשיונות Enterprise / Cloud , הדרכות ושירותים מנוהלים. 
    לפרטים נוספים פנו אלינו: hashicorp@almtoolbox.com או טלפונית 072-240-5222

    קישורים רלוונטים:

     

    תמליל (Transcription):

    בוקר טוב לכולם,
    בהמשך נעשה משהו כזה גם באנגלית. אני טל היבנר, בעלים של החבוב פה מימין, אימצתי אותו בגיל 2. גיק, קצת יותר בשנים האחרונות. גם הייתי בכנס בניו יורק של New York ComiCon. אז זה נחמד עוד איזשהו תחביב מעבר לעבודה עבודה. אני מנוי על מכבי ת"א. לא השנה בגלל הקורונה. אבל כבר כמה שנים. ואני יכול להגיד את זה השנה בקול רם אחרי הניצחון על ריאל מדריד ביום חמישי, לפני זה לא הייתי אומר בקול רם, אז עכשיו כן.
    אני מאסטר Diver, כוכב שלישי. צללתי בתאילנד, בסיני, במלדיביים. תחביב גם שפיתחתי בזמן הלימודים.
    יש לי מהלך חיים-לימודים מעניין, לימודי ומקצועי, שהתחלתי בעולם הרפואה התחלתי ספציפית במדעי הרפואה, לטובת מחקר רפואי. לא רציתי להיות רופא, אבל מאוד אהבתי ועדיין אוהב את עולם הרפואה.
    אז למדתי מדעי הרפואה בירושלים, פרשתי אחרי 3.5 סמסטרים כי ידעתי מה אני רוצה להיות כשאהיה גדול אחרי שעבדתי שנה במעבדה לחקר המוח וראיתי בעצם מה זה מחקר. והבנתי שאני חייב אקשן. אם במחקר אתה יכול לעבוד שנה על פיפס קטן ובסוף יהיו לך תוצאות שלילות, עם תוכנה אתה יכול לקבל תוך כמה דקות או שעות תשובה כן/לא. אז באמת עברתי עשיתי סוויץ רציני, עברתי לבן גוריון, מדעי המחשב, ואז התחלתי כמתכנת.

     

    אז מה זה Terraform?

    Terraform זה כלי מדהים ל- provisioning.
    אתם יכולים לבנות ארכיטקטורה. אם זה אפליקציה, Data center שלם, כי tf אפשר גם on-prem לאו דווקא cloud. ובעצם אתם עושים versioning ל-infrastructure שלכם כדי לדעת מה היה לפני, מה היה אחרי,  ואז אתם יכולים להתמודד עם איזה DRP ובעיות כאלה ואחרות.
    אז כמו שאמרתי ה-כוח של tf שאם כל הפתרונות נותנים לכם לעשות קונפיגורציה ב-yamlים, שיש מוגבלות מסוימת בעולם הזה של yamlים, ובכלל בעולם הזה של קונפיגורציה, פה בעצם TF לקחו איזושהי שפה שקוראים לה  (Hashicorp configuration language) HCL, שהיא לא תורה מסיני, יש למידה קטנה להבין מי נגד מי, אבל הכוח שלה מאוד גדול כי יש תנאים (if), כל מיני conditions, לולאות שאפשר להשתמש, סטטי/דינמי, עצם זה שכותבים את הדברים כקוד זה הכוח הגדול ונותן את כל החופשיות.

     

    סיבה נוספת, ברגע שאתם כותבים עם Terraform אתם מקבלים איזשהו blueprint של כל האפליקציה שלכם, איזה קומפוננטות, ממש מסודרות ב-scope-ים, להבדיל מכל דבר אחר שלפחות אני מכיר, זה פחות יפה, זה פחות קריא. זה יותר קשה להיכנס להבין מי נגד מי.
    פה, בגלל שזה למעשה סוג של פונקציות או קלאסים, מהעולם הזה שאתם מכירים של קוד, object oriented תקראו לזה איך שאתם רוצים, זה הרבה יותר קריא, הרבה יותר קל לתחזוק, יותר קל לעשות שינויים קטנים וגם versions והכי חשוב – קוד, אפשר לשתף. אפשר לשים ב- GitHub, וכשמדברים פה על כמה אנשי DevOps זה הופך הרבה יותר קל כשיש לך מקום מרכזי שאתה ניגש אליו, וכמה אנשי DevOps בו זמנית יכולים לטפל בו, ולא locally על המחשב שלי. אני עשיתי את זה וזהו.

     

    עוד כוח נוסף שיש ל-Terraform זה ה-Execution plans, בעצם יש שני steps. Step הראשון הוא plan, וה-step השני הוא Execution או Run ובעצם ה-plan מראה לכם מה ה-Execution בסופו של דבר יבנה, מה בעצם יקרה בפועל ב-Google Cloud, AWS או אצלכם ב-Data center. אתם תראו בדמו שאני אראה לכם, רואים רשימה מאוד ברורה של מה הולך לקרות, מה לא הולך לקרות, כלומר יש change, יש Add ויש Destroy וזה מאוד חשוב כי הרבה פעמים, אנחנו בקבוצה, בצוות, היינו צריכים לעשות איזשהם שינויים ופתאום המערכת עשתה Destroy, מה Destroy? אני אמרתי לו להרוס את הרכיב הזה והזה? מה פתאום, אם אנחנו עכשיו הולכים ל-production מה קורה פה? אז זה כוח שבעצם לא קיים אצל המתחרים, שאפשר לחלק את ה-flow ל-2. כל העניין הזה של state, שהוא בעצם הליבה של TF, state file והוא בעצם בתוך המנוע והוא אומר לכם כל פעם מה ה-state של הסביבה שלי, מה ה-state של כל התשתיות שלי. כלומר, מה קיים עכשיו. וכל planning הוא מסתכל מה ה-state הקודם, ומה הוא רוצה להשיג עכשיו, מה ה-desired. אז זה הכוח פה.

     

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

     

    אז בעצם כיסינו הכל. ועכשיו אני רוצה לגעת בדבר, הכוח הכי גדול שאני רואה ב-Terraform .
    שאם היום אתם רוצים להרים תשתית ב- AWS אתם משתמשים ב-CloudFormation. אנחנו, ב-ZoomInfo חלק מה-Legacy, אנחנו משתמשים ב-GDM, למה GDM? כי אצלנו רוב התשתיות הן בגוגל Cloud, ו-GDM זה בעצם ה-Terraform של גוגל Cloud. והיום אנחנו עוברים ל-TF. למה אנחנו עוברים ל-TF? כי זה מאפשר הרבה יותר רק כדוגמא, יש מעל 100 provider-ים תכף אני אגיד מה הכוח של זה.
    אז זה הכוח, עצם זה שיש לי שפה אחת שאני יכול לכתוב בה לכמה provider-ים שונים, זה מאפשר לי סוג של Cloud agnostic כי בעצם אני לא מחויב ל-Cloud אחד, אני לא מחויב להיות ב-Cloud. אני יכול לקחת את הקוד ולהעביר אותו למקום אחר. ואני יכול לעבוד עם כמה provider-ים, אני לא חייב רק עם גוגל Cloud או רק עם אמזון, כי לגוגל Cloud יש את XX שזה סרוויס נפלא, אני יכול לקחת אותו, ואני יכול לקחת בנוסף את EKS מחליט שהוא יותר טוב, סתם דוגמה לשלב בין סרוויסים. אז בעצם הכוח פה ש-TF נותן לי, לא רק לשלב בין כמה provider-ים, אני יכול גם לשלב בין סרוויסים של provider-ים שונים. אני לא צריך לפרט כמה זה עצום.

     

    כל זה נעשה בעזרת API-ים. TF הוא כלי אוניברסלי שמנהל כל דבר שיש לו API, והרעיון הוא אם רוצים לעשות אינטגרציה עם Jira, יכולים לעשות אינטגרציה עם NewRelic, אתם יכולים לעשות אינטגרציה עם Datadog בשביל מטריקות מסוימות, אתם יכולים לעשות קישור ל-API של Dropbox אפילו, כלומר, זה לאו דווקא Cloud, לאו דווקא סרוויס מסוים, זה יכול להיות גם security של AKAMAI (XX), זה יכול להיות צ'קפוינט, הכוח הוא מאוד גדול. מעל 100 provider-ים, כל הprovider-ים נותנים את ה-API לסרוויסים שלהם, זה כוח עצום.

     

    אז כמו שאמרתי, יש פה את כל ה-Cloud הקיימים, אפילו Oracle ו-Alibaba. יש Active directory של  ,Microsoft, יש את קונסול שזה עדיין בעולם של Hashicorp יש פה בהמשך את AKAMAI, יש את Jfrog Artifactory, כל תחום – Database, Security, מה שאתם רוצים, ואז אנחנו מגיעים לסיבה שלשמה התכנסנו היום – מה הבעיה ב-ZoomInfo? במה התקשינו כל כך?

     

    ב-ZoomInfo היום יש מעל 200 מיקרו סרוויסים, מעל 280 מפתחים, וקבוצת התשתיות צריכה לספק להם סביבות יציבות גם ב-staging, גם production, לספק כל מיני כלים, support בין השאר וגם ידע מסוים. זה אומר ארכיטקטורות ודברים כאלה.
    אנחנו רצינו לגשר על הפער. יש פה איזשהו פער של איך נעבוד יותר טוב? יותר מהיר, נוציא פיצ'רים יותר בקלות, ואז חשבנו, אוקיי, יש פה מעל 25 אנשי DevOps, אנחנו קבוצה שמחולקת ל-5 צוותים, כל צוות מתעסק בדברים אחרים, אנחנו ב-2 אזורי זמן, הפרש של 7 שעות, לפעמים 10 שעות, אבל לפעמים מפתחי DevOps בישראל נמצאים באותו Time zone, אז איך אנחנו יכולים לנצל את הכוח של Terraform של להרים תשתיות אבל ברגע שמדובר באנשי DevOps שמתעסקים על אותם פלטפורמות, אותם מיקרו סרוויסים, כי בסופו של דבר, אם מיקרוסרוויס צריך להוסיף לו איזו הרשאה אנחנו לא נחכה לאיש DevOps מסוים שיכול להיות שהוא בבית, אי אפשר לדעת מה קורה איתו. אנחנו נרצה שתהיה פה סביב השעון איזו תמיכה מסוימת, ובגלל זה אנחנו צריכים איזה מקום משותף, כנראה מרוחק, ובעצם Terraform Cloud (ספוילר), נותנת את אחת האפשרויות האלה, משלים לנו, וגם אנחנו רוצים שיהיה איזה best practices שכל פעולה תתבצע בצורה מאובטחת, כי אם אדם עובד על המחשב שלו ואז בא ומעביר את זה לאנשהו, צריך שתהיה איזה בקרה, וגם בקרה שאם אני נותן חלק מהכוח בהמשך למפתחים, ששוב, מפתחים אין להם ידע בתשתיות ברמה שלנו של DevOps. אז אני רוצה להיות שקט שהם עושים את זה בצורה מאובטחת, בצורה שלא תפגע באבטחה של ZoomInfo בכל צורה אפשרית, באף מיקרוסרוויס.
    והכי חשוב – אני רוצה שתהיה איזו אינטגרציה ב-CI/CD כי בעצם המפתחים היום עובדים עם GitHub, יש להם איזשהו flow מסוים, עובדים גם עם Jenkins, אני רוצה שזה יהיה פשוט, בצורה אוטומטית ממש משולבת ב-Development workflow של המפתחים. 

    והמטרה הכי גבוהה שהיא בגדר פנטזיה, היא להביא איזושהי פלטפורמה למפתחים שהיא self-service. זו השאיפה. תיכף נגיע ל-discussion, אז השאיפה היא להביא פלטפורמה שהמפתח יבוא ובמקום שימלא לי איזה שאלון באיזה קובץ גוגל, הוא ילחץ על כמה כפתורים ואז מאחורה יהיה איזשהו back end שירים באופן אוטומטי את ה-TF. 

     

    ואז באמת אנחנו מתחברים ל-Discussion. אני עשיתי איזה POC, התייעצתי עם אנשים, יכול להיות שחלקם פה בקהל, וקיבלתי המון תובנות נפלאות, גם בפייסבוק, ובעצם כל המטרה היתה, כמו שאמרתי קודם, איזושהיא שכבה מאוד פשוטה שאני יכול לתת למפתחים או לאנשי DevOps שכרגע אין להם ידע ב-TF וזה יהיה שקוף להם מה קורה מאחורה, מאחורה יהיה איזשהו back-end וזה לא יהיה קופסה שחורה, כי שוב, תראו ב-demo, TF Cloud הוא לא קופסה שחורה, וזה גם חלק מהדרישות שהיו לנו.

     

    אחת מהאופציות היתה ליצור איזשהו פתרון in-house. הייתי לפני חצי שנה באיזשהו מיטאפ של Liveperson והם סיפרו על איזשהו תהליך גדול שהם עברו כשהם צריכים לשרת המון מיקרו סרוויסים, גלובליים, ב-scale מאוד גבוה,  והם פיתחו בדיוק את מה שאני שאפתי אליו, איזושהי שכבה, איזשהו UI. הם קראו לפרויקט שלהם Toga. לצערי הם לא מפרסמים את זה open-source בגלל לקוחות שלהם, אבטחה וכל מיני עניינים, אבל זאת היתה השאיפה.
    הבעיה? התייעצתי עם המון אנשים, שניסו את זה, עברו את זה. זה יכול ליצור over מטורף על ה-DevOps, יכול ליצור עיכובים מטורפים למפתחים, כי בסופו של דבר, מפתחים, בדגש אצלנו, כל ה-discussion הזה הוא גם מותאם לצרכים של ZoomInfo בסופו של דבר אני מסתכל על כמה מפתחים, איזו הכשרה יש להם, איזה ידע יש להם. אני עובד איתם ביום-יום, בעצם אני בתור מי שהיה בעבר מפתח אני יודע מה אני יכול לדרוש ממפתח ומה לא, או מה אני צריך להעביר לו ב-training ולשבת ולהסביר לו מקצה לקצה. 

    ו-inhouse solution יכול ליצור עוד overhead של training, עוד overhead של לתחזק את המערכת הזאת, It won't scale לפחות במקרה שלנו שה-scale באמת גבוה, אנחנו מדברים על מאות מיקרו סרוויסים, על כמעט 300 מפתחים. לסטארטאפים זה יכול לעבוד טוב. לחבר'ה של 30 מפתחים, 2 אנשי DevOps, זה יכול להיות פתרון נפלא. שוב, עם Jenkins, יש כאלה בפייסבוק שהציעו את S3, השאלה היא מה ה-scale.

     

    ניסיתי לבדוק כל מיני 3rd-party solutions. אני לא רוצה להגיד כל מיני שמות פה, לא להחמיא וזה, יש באמת פתרונות נפלאים, אבל לנו הם לא התאימו. כי רוב הפתרונות הביאו שכבה שאנחנו כבר מטפלים בה, אנשי ה-DevOps. הם לא החצינו לנו שכבה שאני יכול עכשיו לחשוף למפתחים. כי רוב הכלים שלי יצא לראות דורשים ידע בתשתיות, ידע ב-Security, בכל מיני נדבכים, שאתה תצטרך צוות של מהנדסי תשתיות.

    ברגע שכרגע רוב המפתחים אצלנו הם מפתחי application או מפתחי Data אצלנו יש את ה-Gap הזה, ואנחנו חיפשנו פתרון End-to-end, ואם אני בא להשוות בין כל המוצרים אז הפתרון של TF Cloud מביא לי את זה.

    אז למה להמציא משהו מחדש? למה ללכת למתחרים וסליחה שאני "משחיר", מתחרים שעשו משהו מעל Terraform ולא ללכת למי שפיתחו את Terraform , שעבדו על זה שנים וכנראה יפתחו פתרון Cloud שיהיה הרבה יותר תאם למנוע של Terraform . הם המומחים. עכשיו לא רק זה, אם אני בוחר בפתרון של Terraform Cloud אני ממשיך עם Terraform כמובן, אני לא צריך לזרוק את כל הקוד שעשינו במשך שנה. את כל המודולים, וגם יש לי פה תמיכה גם של פרטנרים, גם של קהילה כ"כ גדולה, שכל הזמן עושה update כל הזמן משפר דברים ו-provider-ים מצטרפים ומצטרפים וזה כוח אין מה לעשות. Community זה כוח. 

     

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

    למה Terraform ?

    יש הרבה פיצ'רים נפלאים.

    אני לא אגע בפיצ'רים שהם מאוד בסיסיים אלא בפצ'רים ש TC מביא – בעיקר TCB – שאני חושב שקודם כל אנחנו כבר עובדים איתם – חלקם אנחנו לא עובדים – אבל בהחלט בתכנון – כי זה יתן לנו כח מטורף – ולכן הצטרפנו ל BUSINESS . 

    Module Registry (בוידאו 28:37)

    יש את ה- Module Registry – שזה כמו כל opensource קיים – זה בעצם registry של מודולים של כל ה- providers האפשריים והסרביסים שלהם. פשוט שתוכלו לקחת ולהשתמש. מישהו בקהילה בא ופיתח והשתמש ב- production ויתנו לכם הערות איך להשתמש ולמה. זה כח גדול כי לא צריך ליצור משהו מאפס . וזה נוגע באמת באחד הדברים הבסיסים שדיברנו בהתחלה על TF – ה- sharing. אתה עושה כל הזמן שימוש בקוד ולא צריך להמציא את הגלגל מחדש. אתה יכול לעשות reuse כי המודול הוא כמו class ותיכף נראה בדמו.

    VCS Integration

    הכח המטורף שתראו בדמו זה החיבור לכל VCS . אנחנו ספציפית עובדים עם GitHub. 

    אם תרצו לשמוע על GitLab תוכלו לדבר אחכ עם תמיר.

    זה כח ענק כי אתם שמים את הקוד שלכם ב GitHub. משותף לכל החבר'ה ואתם יודעים מה קרה למפתחים. כל אחד יכול לראות בצורה ברורה את הקומפוננטות. הוא לא צריך ללכת עכשיו ל Google Cloud ללכת לראות "אוקי, פה יש את זה ואת זה ". ב AWS בכלל קשה לעקוב אחרי ה IAM שם. פה אתם פותחים את ה GIHUTB, רואים את הקוד (נוח לראות את הקוד) , וכמו שנראה בהמשך אתם יכולים לעשות REVIEW בצוות, לפתוח PR  . אני קובע אנשים שהם מורשים לעשות לי REVIEW ולאשר. אני יכול לשלוח להם איזשהו קוד שיוכלו לראות ואני יכול להעביר TESTIM כמו שאתם רואים באמצע – all checks have passed . אני אראה לכם תיכף איך אנחנו עושים את הז אצלנו.

    RICH REST API

    דיברנו על זה – בכלל שיש כ"כ הרבה partners ו- providers – אני יכול איטנטרצגיה עם JENKINS ועם GITHUB ועם עוד רבים. 

    עוד כח זה ניהול של יוזרים ושל צוותים. כמו שאמרנו מקודם – אם אני רוצה עכשיו פלטפורמה ואני רוצה לחשוף אותה לדרגות מסויימות של דרגות בחברה – נגיד את ההרשאות המסוימות להביא לאנשי SECURITY והרשאות אחרות לאנשי app והרשאות אחרות לאנשי data, אז TFC  מביא את היכולות לעשות ה- division הזה.

     

     

    עדכון אחרון: 18.03.2021