Table of Contents
Azure Container Apps (ACA) הוא פלטפורמה מנוהלת לחלוטין, ללא שרת על Microsoft Azure אשר מפשט את המורכבות של תזמורת Kubernetes, בעוד עדיין מציע יכולות רחבות עוצמה, מונעות אירועים, ונבנה-in תבניות יישומים.זה מיועד לפיתוח יישומים מודרני שבו צוותים צריכים לפרוס מיקרו-שירותי, עבודות רקע, ונקודות קצה ללא מתן או ניהול מכונות וירטואליות, אשכולות, או על ידי תזמורת, תוך כדי לאפשר פשטות של תכנות אבטחה, תוך כדי מיקוד, תוך כדי מיקוד, תכנות אבטחה, תוך כדי מיקוד, תכנות אבטחה, תכנות, וטכניקות אבטחה, תכנות, וטכניקות אבטחה, תכנות, תכנות, וגמישות, תוך כדי מיקוד, תוך כדי מיקוד של פונקציות אבטחה, תכנות, תכנות, תכנות, תכנות, תכנות, תכנות, תכנות, תכנות, תכנות, תכנות, הגדרות אבטחה, וטכניקות אבטחה, הגדרות API ללא צורך.
מה הם Azure Container Apps?
Azure Container Apps פועלת כסביבה מנוהלת עבור הפעלת עומסי עבודה מקוטבים, ישיבה בין Azure App Service (עבור יישומי אינטרנט) ו- Azure Kubernetes Service (AKS) (עבור בקרת אשכול מלאה) היא מספקת חווית Kubernetes פשוטה מבלי לדרוש אינטראקציה ישירה עם שרת ה- API של ה-AP. ACA משתמשת Kubernetes תחת המורכבות התפעולית שלה, מה שהופך אותו אידיאלי עבור קבוצות שרוצה הטבות, ללא כליות, ללא כל משאב, או ניהולי, או משאבים.
כל אחד מהאפליקציות מכיל סביבה מבוססת תיקון שבו ניתן לפרוס מספר תיקונים ולנהל את התנועה פיצול.הפלטפורמה תומכת אדריכלות מונחת אירועים באמצעות שילוב מובנה עם FLT:0KEDAcioFLT:1 (Kubernetes Event-Driven Autoscaling) ו-FLT:2Daprphalph 3 (D) (החלת הפעלה מחדש) עבור יישומים פעילים ל-microreativesiveworks.
תכונות ו Capabilities
אדריכלות ללא תשלום ובדיקה אוטומטית
המודל השרתי של ACA מבטל את הצורך במתן ולנהל VMs או צמתים אשכוליות.הפלטפורמה סולמות באופן אוטומטי על התנועה HTTP, אירוע גורם (למשל, עומק, לוחות זמנים של גולגולת), או מדדים מותאמים אישית באמצעות מקלעים KEDA. Scaling ניתן להגדיר לפיקוי מחדש, ואתה יכול להגדיר מינוס ו max ספירות כאשר idle, ניתן לחסום, , ccer יכול לחסוך משאבים, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני, חסכוני חיסכון יכול להיות חסכוני כדי לחסוך.
תמיכה ב-Dapr
Dapr מספק קבוצה של אבני בניין (ניהול המדינה, פאב / סוב, שירות ייעוד, סודות, מחייב) כי לפשט בנייה מבוזר יישומים. ACA משלב Dapr ברמת הפלטפורמה, כך שתוכל לאפשר לו per Container App ללא ניהול רכב נפרד או תשתיות.זה מקטין קוד רתח ומזרז את הפיתוח של microservices חזקים.
ניהול וסחר פיצול
יישומי Container משתמשים במודל של תיקון דומה ל- Azure App Service: כל קוד או שינוי תצורה יוצר תיקון חדש, בעוד תיקונים ישנים נשארים זמינים.You יכול להגדיר אחוזי תנועה בין תיקונים לביצוע פריסות ירוקות כחולות, A/B, או בדיקות רולוטים ממולאים. Revisions יכול להיות פעיל, מכוונן, או משמש עבור rollback, נותן לך שליטה על פריסה.
◄ דומיינים ותחומי מכס
כל אפליקציה המכילה מקבלת נקודת קצה ייחודית של HTTPS (למשל, FLT:0) באפשרותך להקצות דומיינים מותאמים אישית עם תעודות SSL / TLS, להגדיר ingress כדי לאפשר תנועה פנימית (VNet) או חיצונית, ולהגדיר כללי תנועה עבור חסימה מבוססת נתיב על פני יישומים מרובים.
סביבה ורשת
אפליקציות המכילות חיים ב-FLT:0 (Container Apps EnvironmentofFLT) 1:1, אשר פועל כגבול מאובטח סביב היישומים שלך.הסביבה תומכת באינטגרציה VNet (סביבות פנימיות או פנימיות), המאפשר תקשורת פרטית בין יישומים, מסדי נתונים ושירותים אחרים של Azure.You יכול גם להשתמש נקודות קצה פרטיות וקבוצות אבטחה ברשת כדי לשלוט בתנועה.
ניהול זהות וסודות
ACA תומכת ב- Azure Managed Identities, ומאפשרת לכלי שלך לאמת את שירותי Azure (Key Vault, Storage, SQL Database) ללא אישורים קשיחים.סודות ניתן להפנות ישירות מ- Azure Key Vault, ומשתנים סביבתיים או כרכים ניתן להזרק בזמן ריצה.
עקבו אחרי Azure Container Apps
חלוקת אפליקציית Container כוללת מספר שלבים, החל מהטמעת היישום שלך להגדרה של הסביבה וקביעת כללי הסקאלה.למטה הוא זרימת עבודה מורחבת.
שלב 1: הכינו ודחפו את התמונה
התחל על ידי יצירת דוקרפטה עבור היישום שלך (למשל, .NET, Node.js, Python, Go) לוודא את התמונה הוא אופטימיזציה (שלבים מרובים בונה, תמונות בסיס מינימלי) לדחוף את התמונה למרשם מכולה - באופן אידיאלי: 0 § (ACR) server Container הרישום (ACR)FLT:1 עבור קרבה ואינטגרציה.אם באמצעות מרשם ציבורי כמו docker, מציעה גם את Azure בתוך רשת ACR, אך מהר יותר מהיר יותר.
שלב 2: יצירת סביבת שימוש
לפני פריסת אפליקציה, עליך ליצור סביבת אפליקציות המכילות את היישומים.זה יכול להיעשות באמצעות פורטל Azure, Azure CLI, Bicep, ARM או Terraform. הסביבה מגדירה את האזור, רשת וירטואלית (אופציונלי), ואם זה פנימי או ציבורי. לייצור, לאפשר שילוב VNet לאבטח תנועה ממוקדת ולהשתמש בנקודות קצה פרטיות.
az containerapp env create --name MyEnvironment --resource-group MyRG --location eastusשלב 3: Define and Deploy the Container
השתמש ב הפקודה כדי להגדיר את האפליקציה, להתייחס לדימוי, למשתנים סביבתיים, סודות, הגדרות תוקפנות ותצורה מדרגת.
az containerapp create --name myapp --resource-group MyRG \
--environment MyEnvironment --image myregistry.azurecr.io/myapp:v1 \
--target-port 8080 --ingress external --query properties.configuration.ingress.fqdnזה יוצר תיקון וחשיפת האפליקציה באמצעות FQDN אוטומטי, אתה יכול לעדכן את האפליקציה עם תמונות חדשות, משתנים סביבתיים, או דרוג כללים באמצעות ההרחבה של FLT:4.
שלב 4: סודות ולנהל זהות
אחסון ערכים רגישים (מחרוזת חיבור, מפתחי API) ב- Azure Key Vault והתייחס אליהם כאל סודות באפליקציית Container שלך.אפשר למערכת - כאות זהות מנוהלת או למשתמש, כך שהאפליקציית שלך תוכל לאמת את המפתח ו- Azure משאבים אחרים ללא אישורים בקוד.
שלב 5: קביעת כללים
הגדרת רכב מבוסס על בקשות HTTP, CPU, זיכרון או מקורות אירועים מותאמים אישית (למשל, תורי אוטובוס של Azure Service, קפקא, RabbitMQ) להשתמש KEDA כדי לגרום לדרגות ממערכות חיצוניות.לדוגמה, כדי בקנה מידה על בסיס מספר ההודעות בתור:
az containerapp update --name myapp --resource-group MyRG \
--min-replicas 0 --max-replicas 10 \
--scale-rule-name queue-scaler --scale-rule-type azure-queue \
--scale-rule-auth connection=queue-connection-string \
--scale-rule-metadata "queueName=myqueue" "queueLength=5"ניהול Azure Container Apps
לאחר פרסו, ניהול מתמשך כרוך ניטור, עדכון, ותיקון טוב של קנה מידה וביטחון.
אסטרטגיות ניהול וקידום
השתמש במודל השיפוץ כדי לעדכן את האפליקציה שלך ללא זמן השבתה.כאשר אתה דוחף תמונה חדשה או שינוי תצורה, ACA יוצרת תיקון חדש.על ידי ברירת מחדל, כל התנועה הולכת לשיפוץ האחרון.
- עדכון האפליקציה עם תיקון חדש (לשמור על הישן פעיל).
- שלח אחוז קטן של תנועה לחידוש.
- להגדיל בהדרגה את התנועה תוך מעקב אחר שגיאות ושקיפות.
- אם יציב, תוואי 100% תנועה לשיפוץ החדש ולבטל את הישן.
גישה זו ממזערת את הסיכון ומאפשרת לגלגל מהיר על ידי התנועה לריצה בחזרה לשיפוץ הקודם.
עקבו אחרי Azure Monitor and Log Analytics
אינטגרציה עם Azure Monitor היא אוטומטית.You יכול להציג מדדים (request Count, CPU, זיכרון, ספירת העתק) בפורטל Azure. for יומני מפורט, להגדיר את האפליקציה המכילה שלך לשלוח סטדout / צ'דר ו יומני מערכת ל- Log Analytics Workspace. השתמש בשאילתות Kusto כדי לזהות omalies, שגיאות bug, או לנתח תבניות תנועה. אתה יכול גם לאפשר יישום עבור ביצועים מבוזרים.
Autoscaling in הפקה
בעוד ששימוש במכוניות ברירת מחדל עובד טוב עבור תרחישים רבים, יישומי ייצור דורשים לעתים קרובות קשקשים סטנדרטיים KEDA. Common דוגמאות: קנה מידה מבוסס על ספירת הודעת Azure Service Bus, Azure Event Hubs backlog, או מדד Prometheus מותאם אישית. ודא שאתה מגדיר מצעים מתאימים ומקסים כדי להתמודד עם תנועה בסיסית וקיבולת התפוצצות. השתמש בפורטל Azure או CLI כדי לפקח על ההיסטוריה והתאמה של הסף.
עקבו אחרי Containers and Rolling Back
יישומי Container תומכים בעדכונים של אפס-down בזמן הפעלה מחדש.כאשר אתה מפרסמת תמונה חדשה, התיקון החדש מתחיל במקביל עם הישן.לאחר שהתיקון החדש הוא בריא, התנועה מופנית מחדש.אם בדיקות בריאות נכשלות, ACA יכול לחזור באופן אוטומטי.עבור גלגל ידני, פשוט להגדיר את משקל התנועה בחזרה 100% על התיקון הקודם.
אבטחה Best Practices
ניהול סודיות עבור Azure Resources
מערכת ניתנת להסמכת זהות מנוהלת עבור אפליקציית Container שלך.זה מאפשר לאפליקציית גישה ל- Key Vault, אחסון ומאגרי מידע ללא אחסון של אישורים בדימוי המיכל או במשתנה הסביבה. השתמש בזהות כדי לאמת באמצעות Azure AD.
ניהול חשאי עם Key Vault
לעולם אל תחסנו את כל הנתונים הרגישים ב- Azure Key Vault ותתייחסו אליהם בתצורה של האפליקציה המכילה כהערות חשאיות. ACA באופן אוטומטי מזרקת אותם כמשתנים סביבתיים או ירידות נפח בזמן ריצה.
רשת אבטחה
עבור שירותים פנימיים בלבד, פריסת סביבת היישומים Container שלך עם מוגבלות תנועה חיצונית. השתמש באינטגרציה VNet כדי להגביל את התנועה מחוץ ל / גישה ממוקדת באמצעות קבוצות אבטחה רשת.עבור תנועה בשפע מנקודות קצה ציבוריות, לאפשר הגבלת IP על תוקפנות או להשתמש ב- Azure Front Door או ניהול API מלפנים.
המונחים: own Image Security
השתמש בתמונות בסיס מהימן של Microsoft Artifact הרישום או מקורות מאובטחים אחרים.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.
פיצוי ותעודות
Azure Container Apps יורשים אישורי תאימות של Azure (SOC, PCI DSS, HIPAA, ISO) להבטיח שהסביבה שלך פרוסת באזור שעומד בדרישות תושבות נתונים. השתמש במדיניות Azure כדי לאכוף את הממשל (למשל, המחייב זריקת VNet או רשם תמונות ספציפיות).
אופטימיזציה
תוכנית ייעודית לעומת תוכנית ייעודית
ACA מציעה שני תמחור טיים:0 (CondictureFLT:1) (שלם עבור vCPU-II וזיכרון-II) ו-FLT:2DedicatedFLT 3: (rened vCPU וזיכרון) הוא הטוב ביותר עבור עומסי עבודה משתנים או נמוכים-טרף, תוך מתן עלויות צפויות וביצועים עבור יישומים ייצור יציבים.
סיקור ו-Celf
הצגת העתקים מינימליים ל-0 עבור עבודות רקע או API עם תנועה בלתי צפויה.זה מבטיח לא עלות מקבילה כאשר idle. עבור מסלולים קריטיים הדורשים תגובה מיידית, להגדיר מינימום של 1 כדי להימנע מהתחלות קרות. השתמש בקלפי KEDA להגיב בתור או לטעון ולא תמיד על CPU.
תוכניות תחזוקה וחיסכון
עבור תוכניות ייעודיות, להתחייב לשנה או שלוש שנים למקרים שמורה לחסוך עד 40% בהשוואה לשלם-כפי שאתה-go. Azure Savings תוכניות חלות גם על יישומי Container. Analyze השימוש שלך להעריך צריכת בסיס לפני שמירה על יכולת.
תמונות המכילות שימושיות
תמונות קטנות יותר להפחית את עלויות זמן האחסון. השתמש בדימויים הבסיסים אלפינים או חסרי פשרות, לנקות את החפצים לבנות, ושכבות שכבתיות קפלות בחוכמה.אחסן רק את זמן הריצה בתמונה שלך - keep בונה כלים בשלב בונה נפרד.זה גם משפר את זמן הסטארט-אפ ומהירות הדרגת.
עקבו אחרי Azure services
Azure Container Registry
השתמש ב- ACR כרישום פרטי שלך עבור יישומי Container.It תומך ב- Geo-replication, סריקה תמונה ו-ACR חתימה.חשבון ה-'מנהל' של ACR או השתמש בזהות מנוהלת כדי לאמת את המשיכה באופן מאובטח.עבור פריסות של מחזור, גיאוגרפי-replica התמונות שלך כדי להפחית את הגמישות.
CI /CD Pipelines with Azure DevOps ו- GitHub Actions
פריסות אוטומטיות באמצעות משימות Azure CLI ב- Azure DevOps או GitHub Actions.You יכול לבנות תמונה, לדחוף ל- ACR, ולעדכן את ה- Apper Appvision בצנרת אחת.דוגמה GitHub Actions שלב:
- name: Deploy to Azure Container Apps
run: az containerapp update --name myapp --resource-group MyRG --image myacr.azurecr.io/myapp:latestהשתמש במזלי פריסה (התנועה הזמנית מחולקת) לשלב ולאמת שינויים לפני רולט מלא.
אינטגרציה Event-Driven
חסימה הבניין של מינוף עם Azure Service Bus או Event Hubs כדי decouple microservices. Conform KEDA קשקשים כדי לגרום לדרגות בהתבסס על עומק התור.תבנית זו מצוינת לעיבוד סדר, הודעה, או זרימות עבודה אצווה.
Best Practices for Modern App Development
- (FLT:0) קבל ארכיטקטורה מיקרו-שירותים של אדריכלות: 1 (Feloph) אשר תואמת את התיקון של ACA ואת מודל התוקפנות של כל שירות צריך להיות יישום המכיל משלו עם קנה מידה עצמאי מחזור חיים.
- (FLT:0) צנרת CI/CDFIRLT:1 אשר בונה, בדיקה, סריקה, פריסה באופן אוטומטי. השתמש בתשתיות-קוד (Bicep/Terraform) כדי להגדיר סביבות, הבטחת חזרה.
- (FLT:0)Prioritize SecurityFLT:1 מההתחלה: השתמש בזהויות מנוהלות, כינויי Key Vault, אינטגרציה VNet וסורק תמונות.רוטט סודות באופן קבוע וגישה ביקורתית.
- (ב) ⁇ :0) ,(החלים עלות FLT:1, על ידי בחירת התוכנית הנכונה, הגדרת כורים הגיוניים / מקס העתקים, ושימוש ביכולת שמורה לעומסי עבודה יציבים.
- (FLT:0) observability ObservabilityFLT:1 מוקדם: לשלוח יומני ל Log Analytics, לאפשר תובנות יישומים, ולהגדיר התראות על שיעורי שגיאה, לבקש שקיפות, וספירת העתקה.
- (FLT:0)Use Dapr ו KEDAFIRLT:1) כדי להתמודד עם דאגות חתומות: ניהול המדינה, סלילים, פאב / sub, ומדפיקת האירוע.
- (FLT:0) עיצוב עבור קנה מידה ל- אפסFLT:1ir אם עומס העבודה שלך מאפשר את זה.ההתחלה הקרה היא בדרך כלל מתחת לשתי שניות עבור מכולות פשוטות; אתה יכול להפחית עם בדיקות בריאות ושיכפלי דקות מתאימים.
על ידי ביצוע שיטות אלה ומינוף של Azure Container Apps ללא שרת לרוץ זמן, צוותים יכולים לבנות ולהפעיל יישומים מודרניים כי הם מדרגים, מאובטחים, וחסכוניים. הפלטפורמה מפחיתה את התפעולי מעל פני השטח תוך מתן למפתחים חופש להשתמש בכל שפה, מסגרת, או כלי שפועל במיכל.
(ב) להדרכה עמוקה, התייחס ל-DPRLT:0Zone Container Apps Documentssssquaph:1 (למידע נוסף על דפוסי יישום מבוזרים עם Dapr, בקר ב-FLT:2pr DocumentFLT 3: 3 עבור דוגמאות המונעות אירוע, לבדוק את תיעוד FLT:4KEDA:5