תשתית כקוד (IaC) היא תהליך של הקצאה וניהול של תשתית אפליקציות תוכנה באמצעות קוד במקום ממשקי משתמש גרפיים או סקריפטים של שורת פקודה.
הקצאת תשתית לאפליקציה כוללת בדרך כלל הגדרה וניהול של מכונות וירטואליות, חיבורים למסדי נתונים, אחסון ורכיבי תשתית אחרים. ניהול ידני של התשתית הזו הוא תהליך ארוך ומייגע שמועד לשגיאות, במיוחד כשמנהלים אפליקציות בהיקף גדול.
תשתית כקוד (IaC) מאפשרת להגדיר את התשתית באמצעות קובצי תצורה, וכך לבנות, לשנות ולנהל את התשתית בצורה בטוחה וניתנת לשחזור. אתם יכולים להגדיר הגדרות של משאבים שאפשר ליצור להן גרסאות, לעשות בהן שימוש חוזר ולשתף אותן. עם IaC אפשר לציין את המצב הרצוי של התשתית. אחר כך תוכלו לפרוס את אותה תצורה כמה פעמים כדי ליצור סביבות פיתוח, בדיקה וייצור שניתנות לשחזור.
תשתית כקוד (IaC) מאפשרת לכם להתייחס להקצאה ולהגדרה של התשתית באותו אופן שבו אתם מתייחסים לקוד אפליקציה. אתם יכולים לאחסן את הלוגיקה של הגדרת ההקצאה בבקרת מקורות, ולנצל את היתרונות של צינורות עיבוד נתונים של אינטגרציה רציפה (CI) ופריסה רציפה (CD).
יתרונות ה-IaC
שימוש ב-IaC להגדרה ולניהול של תשתית האפליקציה הוא שיטה מומלצת למספר תרחישים נפוצים. Google מנהלת את המערכות שלה באמצעות IaC, והגדירה את זה כשיטת עבודה סטנדרטית פנימית.
היתרונות של IaC:
- אתם יכולים להגדיר את התשתית בהתאם לדרישות שלכם, ולהשתמש באותה הגדרה כדי ליצור כמה סביבות באופן עקבי.
- אתם יכולים להפוך לאוטומטיים את היצירה והניהול של משאבי הענן, כולל סביבות פריסה ובדיקה.
- אתם יכולים להתייחס לשינויים בתשתית כמו לשינויים באפליקציה. לדוגמה, אפשר לוודא ששינויים בהגדרה נבדקים ומאומתים באופן אוטומטי. השיטה המומלצת היא לנהל את סביבות הייצור באמצעות תהליכים מבוקרים לשינויים באמצעות IaC.
- אתם יכולים לשמור היסטוריה של כל שינויי ההגדרות. אפשר לבדוק את השינויים ולבטל אותם.
- אתם יכולים להגדיר מקור מהימן אחד לתשתית הענן שלכם.
כלי IaC ל Google Cloud
Google Cloud משולב באופן הדוק עם הרבה כלים של IaC. בוחרים אחד מהכלים הבאים בהתאם לתרחיש השימוש:
Terraform
באופן כללי, כדי להגדיר ולנהל תשתית באמצעות קוד, משתמשים בספק Terraform עבור Google Cloud . Google Cloud
HashiCorp Terraform הוא כלי IaC שמאפשר להגדיר משאבים בענן ובסביבה מקומית בקובצי תצורה שקריאים לאנשים, שאפשר ליצור להם גרסאות, לעשות בהם שימוש חוזר ולשתף אותם. לאחר מכן תוכלו להשתמש בתהליך עבודה עקבי כדי להקצות ולנהל את כל התשתית לאורך מחזור החיים שלה. מידע נוסף זמין במאמר סקירה כללית של Terraform ב- Google Cloud.
Infrastructure Manager
אם אתם רוצים להפוך את הפריסה של הגדרות Terraform לאוטומטית, אתם יכולים להשתמש ב-Infrastructure Manager (Infra Manager).
Infra Manager מבצע אוטומציה של הפריסה והניהול של משאבי תשתיתGoogle Cloud באמצעות Terraform. Infra Manager מאפשר לכם לבצע פריסה באופן פרוגרמטי ב-Google Cloud, כך שאתם יכולים להשתמש בשירות הזה במקום לתחזק שרשרת כלים אחרת כדי לעבוד עם Terraform ב- Google Cloud. מידע נוסף מופיע במאמר סקירה כללית על Infra Manager.
Terraform Cloud ו-Terraform Enterprise
אם אתם צריכים ניהול שינויים מלא באמצעות Terraform בכל הארגון, אתם יכולים להשתמש ב-Terraform Cloud או ב-Terraform Enterprise.
Terraform Cloud היא אפליקציית תוכנה כשירות (SaaS) שמריצה את Terraform בסביבה יציבה ומרוחקת, ומאחסנת באופן מאובטח את המצב ואת הסודות. Terraform Cloud משתלב גם עם Terraform CLI ומתחבר למערכות נפוצות לניהול גרסאות (VCS) כמו GitHub, GitLab ו-Bitbucket. כשמחברים סביבת עבודה ב-Terraform Cloud למאגר VCS, אפשר להגדיר ששינויים והתחייבויות חדשים יפעילו אוטומטית תוכניות של Terraform. בנוסף, Terraform Cloud מציע API שמאפשר לשלב אותו בתהליכי עבודה קיימים.
בעזרת Terraform Enterprise אפשר להגדיר הפצה של Terraform Cloud באירוח עצמי. הוא מציע הגבלות משאבים שניתנות להתאמה אישית, והוא אידיאלי לארגונים עם דרישות מחמירות של אבטחה ותאימות.
מידע נוסף זמין בדף בנושא מהדורות Terraform במסמכי התיעוד של Hashicorp.
Cloud Development Kit for Terraform
אם אתם רוצים ליצור תשתית באמצעות שפת תכנות למטרות כלליות במקום להשתמש בשפת ההגדרות של HashiCorp (HCL), אתם יכולים להשתמש ב-Cloud Development Kit for Terraform (CDKTF).
CDKTF מאפשר להגדיר את Terraform באמצעות שפת תכנות כדי להגדיר ולספק תשתית, וגם מאפשר להשתמש בשרשרת הכלים הקיימת לתהליכים כמו בדיקות וניהול תלות. Google Cloud
Pulumi
Pulumi הוא כלי נוסף שבעזרתו אפשר להקצות תשתית באמצעות שפות תכנות. אתם יכולים להשתמש ב Google Cloud ספק של Pulumi כדי לכתוב קוד תשתית באמצעות שפות תכנות כמו TypeScript, Python, Go, C#, Java או YAML.
Config Controller ו-Config Connector
כדי לנהל Google Cloud משאבים באמצעות Kubernetes, משתמשים ב-Config Controller וב-Config Connector.
בעזרת Config Controller ו-Config Connector אפשר להגדירGoogle Cloud שירותים ומשאבים באמצעות כלי Kubernetes. אפשר להשתמש בכלים של GitOps כמו סנכרון תצורות, ובממשקי API של Kubernetes, וגם להגדיר ולהשתמש בפרימיטיבים של הנדסת פלטפורמה כמו רכיבי webhook של הרשאות ורכיבי אופרטור.
מידע נוסף זמין במאמרים סקירה כללית של Config Controller וסקירה כללית של Config Connector.
Crossplane
אפשרות נוספת לניהול Google Cloud משאבים באמצעות Kubernetes היא שימוש ב-Crossplane.
Crossplane מקשרת את אשכול Kubernetes למשאבים חיצוניים שאינם Kubernetes, ומאפשרת לצוותי פלטפורמה ליצור ממשקי API מותאמים אישית של Kubernetes כדי להשתמש במשאבים האלה. Crossplane פועל כבקר Kubernetes כדי לעקוב אחרי מצב המשאבים החיצוניים ולספק אכיפת מצב. אחרי שמתקינים את Crossplane באשכול Kubernetes, המשתמשים מתקשרים רק עם Kubernetes. Crossplane מנהל את התקשורת עם משאבים חיצוניים כמו Google Cloud. אם משהו משנה או מוחק משאב מחוץ ל-Kubernetes, Crossplane מבטל את השינוי או יוצר מחדש את המשאב שנמחק.
מידע נוסף מופיע במאמרי העזרה של Crossplane.
Ansible
אם אתם רוצים להפוך לאוטומטיים את תהליכי ההקצאה, ניהול ההגדרות, פריסת האפליקציות, התיאום ותהליכי IT אחרים, אתם יכולים להשתמש ב-Ansible. מידע נוסף זמין במאמר Ansible forGoogle Cloud.
המאמרים הבאים
- מידע נוסף על Terraform
- איך ליצור שרת אינטרנט בסיסי ב-Compute Engine באמצעות Terraform
- איך מאחסנים מצב Terraform בקטגוריה של Cloud Storage