מסירה הדרגתית עם Argo Rollouts: הגדרה ואוטומציה

כשלים בפריסות Kubernetes מובילים לעיתים קרובות לזמן השבתה ואובדן תעבורה, בעוד שחזרה ידנית אורכת זמן רב מדי. אנו מגדירים Progressive Delivery עם Argo Rollouts, ומבצעים אוטומציה של פריסות canary עם בדיקות metrics בכל שלב. הצוות שלנו מספק את הפרויקט במלואו—מביקורת ועד הטמעה ותמיכה—ומבטיח עדכונים בטוחים ללא פספוס מועדים.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מסירה הדרגתית (Progressive Delivery) באמצעות Argo Rollouts: הגדרה ואוטומציה

פריסה רגילה (Standard kubectl apply) מבצעת עדכון מתגלגל: פודים ישנים מוחלפים בחדשים אחד אחד. אם הגרסה החדשה שבורה, עד שמגלים זאת, 50% מהתעבורה כבר מופנית אליה. לפי סטטיסטיקות, 40% מהתקריות בסביבת ייצור קשורות לפריסות כושלות. אנו משתמשים ב-Argo Rollouts כדי ליישם מסירה הדרגתית (Progressive Delivery) — גישה שבה הגרסה החדשה של האפליקציה מקבלת תעבורה בהדרגה, עם בדיקות מדדים אוטומטיות בין השלבים. זה מקצר את זמן ההתאוששות הממוצע (MTTR) משעות לדקות (ירידה של 93% ל-2 דקות). במקום ניטור ידני, Rollouts מבצע בדיקות אוטומטיות בכל שלב. כאשר חריגת סף השגיאות, הפריסה נעצרת ומתבצע rollback. אתם יכולים לסמוך על המהנדסים המוסמכים שלנו עם 10 שנות ניסיון ב-Kubernetes—השירותים שלכם יעודכנו ללא זמן השבתה ועם סיכון מינימלי. הזמינו ביקורת (audit) על התשתית שלכם—גלו כיצד ליישם מסירה הדרגתית ללא זמן השבתה. עלות ביקורת: $500, יישום מ-$2000 עד $5000.

אילו בעיות Argo Rollouts פותר?

  • MTTR ארוך. ללא rollback אוטומטי, מהנדסים מבלים בממוצע 30 דקות בזיהוי וב-rollback. Rollouts מקצר זאת ל-2 דקות, ומפחית עלויות תקריות ב-60%.
  • חוסר שליטה בתעבורה. עדכון מתגלגל אינו יכול להפנות רק חלק מהתעבורה לגרסה החדשה. פריסת Canary עם משקל של 5% מאפשרת בדיקה על משתמשים אמיתיים, תוך מזעור ההשפעה.
  • שגיאות אנוש. ניטור ידני של מדדים וקבלת החלטות ל-rollback הוא מקור לשגיאות. Rollouts הופך את הניתוח וה-rollback לאוטומטיים בהתבסס על ספים מוגדרים, ומבטל את הסיכון.

כיצד אנו מיישמים מסירה הדרגתית

הצוות שלנו פועל לפי המתודולוגיה הבאה:

  1. ביקורת תשתית. קביעת ה-ingress בשימוש (nginx, Istio, Traefik), המדדים הנוכחיים וההתראות.
  2. התקנת Argo Rollouts. פריסת ה-controller ב-namespace ייעודי, הגדרת RBAC.
  3. העברת השירות הראשון. בחירת שירות בסיכון נמוך, המרת Deployment ל-Rollout עם אסטרטגיה פשוטה.
  4. פיתוח AnalysisTemplate. חיבור Prometheus, כתיבת שאילתות לשיעור שגיאות וזמן השהיה (latency).
  5. בדיקות. ביצוע rollout עם שגיאה מכוונת, אימות rollback אוטומטי.
  6. אינטגרציה עם ArgoCD. הגדרת pipeline של GitOps עם כללי סנכרון.
  7. תיעוד והדרכה. מתן הוראות לצוות וביצוע webinar של שעתיים.

ערימת הטכנולוגיות: Kubernetes 1.29+, Helm 3, Prometheus + Grafana, nginx-ingress או Istio, ArgoCD. כל התצורות מנוהלות בגרסאות ב-Git. דוגמה ל-Rollout מינימלי:

---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: api-service
spec:
  replicas: 10
  strategy:
    canary:
      canaryService: api-canary-svc
      stableService: api-stable-svc
      steps:
        - setWeight: 5
        - pause: {duration: 10m}
        - analysis:
            templates:
              - templateName: latency-and-errors
        - setWeight: 50
        - pause: {duration: 30m}
        - setWeight: 100

מדוע AnalysisTemplate הוא מרכיב האבטחה המרכזי

AnalysisTemplate הוא CRD המגדיר בדיקות מדדים בין שלבי ה-rollout. דוגמה עבור Prometheus:

---
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
  name: latency-and-errors
spec:
  metrics:
    - name: error-rate
      interval: 2m
      count: 5
      successCondition: result[0] <= 0.01
      failureLimit: 2
      provider:
        prometheus:
          address: http://prometheus-operated:9090
          query: |
            sum(rate(http_requests_total{status=~"5.."}[2m])) / sum(rate(http_requests_total[2m]))
    - name: p99-latency
      interval: 2m
      count: 5
      successCondition: result[0] < 0.5
      failureLimit: 2
      provider:
        prometheus:
          address: http://prometheus-operated:9090
          query: |
            histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[2m])) by (le))
---

אם שיעור השגיאות > 1% או זמן השהיה p99 > 500ms פעמיים ברציפות, ה-rollout מתבצע rollback אוטומטית. ללא התערבות אנושית. זה מהיר פי 6 מניטור ידני.

כיצד Argo Rollouts מנהל תעבורה

הכלי תומך בתוספים לניתוב. עבור nginx-ingress, הוא משתמש ב-canary annotations. עבור Istio, הוא משתמש ב-VirtualService עם משקלים. בשני המקרים, ה-controller מעדכן אוטומטית את המשקל בכל שלב. לבדיקות פנימיות, ניתן להגדיר ניתוב מבוסס כותרות (header-based routing): בקשות עם הכותרת apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: api-service spec: replicas: 10 strategy: canary: canaryService: api-canary-svc stableService: api-stable-svc steps: - setWeight: 5 - pause: {duration: 10m} - analysis: templates: - templateName: latency-and-errors - setWeight: 50 - pause: {duration: 30m} - setWeight: 100 מופנות ל-canary ללא קשר למשקל. זה מאפשר ל-QA לבדוק את הגרסה החדשה לפני פריסה רחבה.

קריטריון Deployment רגיל Argo Rollouts
שליטה בתעבורה לא Canary, Blue-Green, מבוסס כותרות
Rollback אוטומטי לא כן, בהתבסס על מדדים
זמן זיהוי בעיות דקות שניות
אינטגרציית CI/CD בסיסי מלא (ArgoCD, Jenkins)

מתי להשתמש ב-Rollout במקום ב-Deployment

אם השירות הוא קריטי לעסק, דורש עדכונים ללא זמן השבתה, או שיש לכם מדדים ב-Prometheus—השתמשו ב-Rollout. עבור שירותים פנימיים פשוטים ללא SLIs, Deployment רגיל מספיק.

ניהול ידני של rollout

ניתן לבטל, לקדם או לבצע rollback ל-rollout באופן ידני:

kubectl argo rollouts abort api-service
kubectl argo rollouts promote api-service
kubectl argo rollouts get rollout api-service --watch

תהליך היישום ולוחות זמנים

שלב תיאור לוח זמנים
ביקורת הערכת תשתית, בחירת שירות ראשון 0.5 יום
התקנה התקנת Argo Rollouts, הגדרת RBAC יום אחד
העברה המרת Deployment ל-Rollout, הגדרת אסטרטגיה יום אחד
AnalysisTemplate כתיבת שאילתות למדדי שירות יום אחד
בדיקות אימות rollout ו-rollback יום אחד
אינטגרציה ArgoCD, תיעוד, הדרכה יום אחד

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

מה כלול

  • תיעוד: הוראות הפעלת Rollout, תיאור AnalysisTemplate, playbook ל-rollback.
  • גישה: מתן גישה למאגר Git עם התצורות, לוחות מחוונים של Grafana.
  • הדרכה: webinar של שעתיים לצוות, הקלטה ושאלות ותשובות.
  • תמיכה: שבועיים לאחר היישום—ייעוץ ותיקוני באגים.

טעויות נפוצות ביישום

  • חוסר ב-failureLimit. ללא מגבלה, מדידה רעה אחת יכולה לבצע rollback ל-rollout. אנו ממליצים על failureLimit: 2 או 3.
  • ספים אגרסיביים מדי. הגדירו תנאים ראשוניים עם מרווח ביטחון, ואז הדקו בהדרגה.
  • התעלמות מניתוב מבוסס כותרות. תמיד כדאי לאפשר לצוות לבדוק canary לפני פתיחת תעבורה.

הקימו מסירה הדרגתית ללא סיכונים בעזרתנו. צוות המהנדסים המוסמכים שלנו עם 10 שנות ניסיון ב-Kubernetes ו-CI/CD יבצע ביקורת על התשתית שלכם ביום אחד. צרו קשר כדי לקבל הצעה מותאמת אישית. הזמינו ייעוץ.