M365Con 2027 – כנס אונליין חינמי · 11–22 Jan 2027 · 120 sessions→ m365con.net

בלוג · Mirko Peters

למה צוותי Azure סוף סוף נפרדים מתבניות ARM

By ·

במשך שנים, מהנדסי ענן ומפתחים שעבדו עם Microsoft Azure התמודדו עם מציאות מתוקה-מרה כשאימצו Infrastructure as Code (IaC). מצד אחד, תבניות Azure Resource Manager (ARM) סיפקו דרך מקורית וחזקה להקצות ולנהל תשתית ענן באמינות. מצד שני, כתיבה ותחזוקה של התבניות האלה פירושה היה להתמודד עם קובצי JSON מילוליים, קינון עמוק, מבני קוד נפוחים ו-merge conflicts מעצבנים בכל פעם שחבר צוות נגע במאגר. אם בזבזתם שעות

Automatically translated with AI from the original post. Read the English original

Cover: Bicep - Simply Explained

למרבה המזל, נוף הענן התפתח. צוותי Azure נוטשים בהדרגה תבניות ARM גולמיות לטובת Bicep, שפה ייעודית לתחום שהיא נקייה יותר וידידותית יותר לבני אדם, ונועדה להסתיר את כאבי הראש של JSON מבלי לוותר על האמינות הבסיסית של Azure Resource Manager. במדריך המקיף הזה נבחן מדוע המעבר הזה מתרחש, כיצד Bicep פועל מאחורי הקלעים, ומדוע המעבר יכול להפחית את בסיס קוד התשתית שלכם בעד 60%.

לשמחתנו, נוף הענן התפתח. צוותי Azure נוטשים בהדרגה את תבניות ARM הגולמיות לטובת Bicep, שפה ייעודית נקייה וידידותית יותר למפתחים, שנועדה להפשיט את הקשיים של JSON מבלי לוותר על האמינות הבסיסית של Azure Resource Manager. במדריך המקיף הזה נבחן מדוע המעבר הזה מתרחש, כיצד Bicep פועל מאחורי הקלעים, ומדוע המעבר עשוי לצמצם את בסיס קוד התשתית שלכם בעד 60%.

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

המורכבות גדלה באופן אקספוננציאלי בתבניות ARM מסורתיות. פריסה ארגונית סטנדרטית הכוללת רשתות וירטואליות, תת-רשתות, Key Vaults ו-managed identities הופכת במהרה לקבצים נפוחים שמתפרשים על פני אלפי שורות. מכיוון ש-JSON אינו כולל מבני לולאה מובנים או מודולריות מתקדמת מבעוד מועד, מהנדסים נאלצים לעיתים קרובות לנקוט בפונקציות copy מורכבות ובקינון מבולגן. כאשר חברי צוות רבים מנסים לשתף פעולה על אותו קובץ תבנית מונוליתי, התנגשויות merge הופכות לבלתי נמנעות ולא לחריגה. ניפוי שגיאות בקבצים האלה דומה לחיפוש מחט בערימת שחת דיגיטלית, וזה מוביל צוותים רבים לוותר על IaC אוטומטי לגמרי לטובת לחיצות ידניות בפורטל, שטעונות שגיאות—וזה מבטל לחלוטין את מטרת האוטומציה של DevOps.

מורכבות גדלה באופן אקספוננציאלי בתבניות ARM מסורתיות. פריסה ארגונית סטנדרטית הכוללת רשתות וירטואליות, תת-רשתות, Key Vaults ו-managed identities מתנפחת במהירות לקבצים מנופחים שנמשכים על פני אלפי שורות. מכיוון ש-JSON אינו כולל מבני לולאה או מודולריזציה מתקדמת מובנים, מהנדסים נאלצים לעתים קרובות להשתמש בפונקציות copy מסובכות ובקינון לא מסודר. כאשר חברי צוות מרובים מנסים לשתף פעולה על קובץ תבנית מונוליתי אחד, קונפליקטים במיזוג הופכים לתופעה בלתי נמנעת ולא לחריג. ניפוי שגיאות בקבצים האלה מרגיש לעתים קרובות כמו חיפוש מחט בערימת שחת דיגיטלית, ולכן צוותים רבים מוותרים על IaC אוטומטי לגמרי ופונים לקליקים ידניים בפורטל, שרגישים לשגיאות, וזה בדיוק מנוגד למטרת אוטומציית DevOps.

מתוך הכרה בכאבים הנפוצים האלה של מפתחים, Microsoft הציגה את Bicep כשכבת הפשטה שקופה מעל תבניות ARM. Bicep אינו תחליף ל-Azure Resource Manager; הוא דרך חכמה וקצרה יותר לתקשר איתו. כל מה שאפשר לעשות בתבנית ARM אפשר לעשות גם ב-Bicep, אך בחלק קטן מהעומס הקוגניטיבי.

בלבו, Bicep כולל תחביר פשוט שנקרא כמעט כמו אנגלית רגילה. הוא מסיר את רעש התחביר של JSON—להיפרד מהמירכאות, הסוגריים והפסיקים שאין להם סוף—ומחליף אותו בהצהרות נקיות ודקלרטיביות. מכיוון ש-Bicep היא שפה מקומפלת, הקוד שלכם משמש כמקור האמת, ולאחר מכן הוא מתורגם לתבנית ARM JSON סטנדרטית בשלב הפריסה. הארכיטקטורה החכמה הזו מבטיחה תאימות של 100% למנוע הפריסה הבסיסי של Azure, ובו בזמן משפרת משמעותית את חוויית המפתח היומיומית.

בבסיסו, ל-Bicep יש תחביר פשוט שקרוא כמעט כמו אנגלית רגילה. הוא מסיר את רעש התחביר של JSON – להיפרד מהמירכאות, הסוגריים והפסיקים שאינם נגמרים – ומחליף אותו בהצהרות נקיות ודקלרטיביות. מכיוון ש-Bicep היא שפה מהודרת, הקוד שלכם משמש כמקור האמת, ולאחר מכן הוא מתורגם ל-ARM JSON סטנדרטי בשלב הפריסה. הארכיטקטורה החכמה הזו מבטיחה תאימות של 100% למנוע הפריסה הבסיסי של Azure, ובמקביל משפרת משמעותית את חוויית המפתח היומיומית.

איך Bicep פועל

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

תהליך העבודה פשוט להפליא:

  1. קומפילציה: באמצעות פקודת Bicep CLI bicep build main.bicep, הקוד הנקי שלכם מקומפל לתבנית ARM JSON סטנדרטית.
  2. הידור: באמצעות הפקודה bicep build main.bicep של ממשק שורת הפקודה של Bicep, הקוד הנקי שלכם מהודר לתבנית ARM JSON סטנדרטית.
  3. פריסה: אתם פורסים את התבנית שנוצרה ישירות ל-Azure באמצעות Azure CLI או Azure PowerShell, בדיוק כפי שעשיתם תמיד.

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

יתרונות של Bicep

המעבר מתבניות ARM מבוססות JSON ל-Bicep מניב תועלות מיידיות ומדידות לארגוני הנדסה. קודם כול, מדובר בצמצום דרמטי בנפח הקוד. צוותים מדווחים באופן קבוע על הפחתה של עד 50% עד 60% בקוד, כלומר פחות שורות לכתוב, לסקור ולתחזק.

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

תחילת העבודה עם Bicep

כדי להתחיל לעבוד עם Bicep נדרש מעט מאוד מאמץ. מאחר שה-Bicep CLI קל משקל ומשתלב באופן מובנה עם Azure CLI, תוכלו להתחיל לעבוד ב-Windows, ב-macOS או ב-Linux תוך כמה דקות בלבד.

לתחילת הדרך, ודאו שמותקנים לכם Azure CLI ו-Visual Studio Code. התקינו את התוסף הרשמי של Bicep ל-VS Code כדי לפתוח תכונות מתקדמות כמו השלמת קוד, אימות פרמטרים וזיהוי אוטומטי של סוגי משאבים. לאחר ההגדרה, כתיבת המשאב הראשון שלכם, כמו Azure Storage Account או Virtual Network, תדרוש רק כמה שורות קוד נקיות, במקום עשרות שורות של תבניות JSON צפופות.

מקרי שימוש ב-Bicep

Bicep מבריק במיוחד בשני תרחישים ארגוניים מרכזיים: יישומי Infrastructure as Code בסיסיים ופריסות מרובות סביבות.

בצינורות IaC סטנדרטיים, Bicep משתלב בקלות עם פלטפורמות CI/CD כמו GitHub Actions ו-Azure DevOps, ומאפשר פריסות אוטומטיות לחלוטין וניתנות לחזרה, שמבטלות סחף תצורה. בארכיטקטורות מרובות סביבות, כגון פיתוח, בדיקות, סטייג'ינג וייצור, התמיכה של Bicep בפרמטרים ובתבניות מודולריות מאפשרת לכם לתחזק בסיס קוד אחד ומתוקנן, ובמקביל להזריק בבטחה משתנים והגדרות ספציפיות לכל סביבה בזמן אמת.

שאלות נפוצות

מהו Bicep?

Bicep היא שפה ייעודית, שקופה וקוד פתוח, שנוצרה על ידי Microsoft לפריסת משאבי Azure בצורה הצהרתית, עם תחביר נקי יותר מתבניות ARM המסורתיות.

מה ההבדל בין Bicep לתבניות ARM?

בעוד שתבניות ARM משתמשות בתחביר JSON מילולי וקשה לקריאה ולתחזוקה, Bicep מספק תחביר תמציתי וקריא עם תמיכה מתקדמת בכלים. קבצי Bicep מהודרים לתבניות ARM לפני הפריסה.

האם אפשר להמיר תבניות ARM קיימות ל-Bicep?

כן! אפשר לפרק בקלות תבניות ARM קיימות בפורמט JSON לקבצי Bicep באמצעות Bicep CLI, ומיד להתחיל ליהנות מהתחביר הפשוט שלה.

האם Bicep חינמי לשימוש?

כן, Bicep חינמי לחלוטין וקוד פתוח, ונתמך במלואו על ידי Microsoft כרכיב מן המניין לניהול תשתיות Azure.

האם Bicep תומך במודולריות?

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


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

כדי להעמיק בנושא ולשמוע תובנות מעשיות על האופן שבו צוותים מודרניים מעדכנים את אסטרטגיית הענן שלהם, כדאי להאזין לפרק הפודקאסט הקשור שלנו: Bicep - Simply Explained.

Entities in this article

Bicep JSON Azure Resource Manager ARM template Infrastructure as code Microsoft Azure Azure CLI Visual Studio Code Azure Functions Cognitive load

Related articles

RSS