GH GambleHub

דוגמאות לביאה/מוכנות

2) עקרונות עיצוב

1. סמנטיקה נפרדת.

מוכנות: יכולת חיצונית לשרת בקשות (לוקחת בחשבון תלויות קריטיות).
הבדיקות של מצב ”חשוך מרפא” של התהליך.
2. אל-כשל מהיר, אבל לא מהר-שווא. התאם את פסקי הזמן/סף ” הסף” כך שפרצות קצרות לא יובילו להפעלה מחדש מיותרת.
3. אין מבצעים כבדים בדגימות. הצ 'ק צריך להיות מהיר (100-200 מ "מ) וללא תופעות לוואי.
4. השפלה חיננית. במקרה של אי זמינות חלקית של תלות - מוכנות = אוקיי, אם יש חסימה בטוחה (מטמון/חיתוך).
5. עירוי דטרמיניסטי. סטטוסים תלויים רק במצב הנוכחי, לא במבחנים חיצוניים ”אקראיים”.

3) סמנטיקה של נקודות סוף בריאות

3. גישה 1 HTTP (מומלץ)

'גט/בריאה/לביאה' = 200 אם התהליך הוא ”בחיים” (אירוע-לולאה מסתובב, ג 'י-סי לא תקוע, כלב שמירה ”לב” פועם).
'GET/בריא/מוכנות' = 200 אם המקרה מוכן לתנועה ברמה קריטית. צ 'קים: בריכת חיבור, מטמונים מקומיים, גרעין היגיון עסקי זמין.
'GET/health/startup' = 200 לאחר אתחול (נדודים/מטמון חימום/טעינה מודלים).

כללים:
  • אתה לא יכול ללכת לבסיסי נתונים חיצוניים/API בלביאות - זה יוביל ל ”התאבדויות” במהלך תקריות תלות.
  • במוכנות, אתה יכול לבדוק תלויות קריטיות, אבל עם פסקי זמן והשפלה: אם יש חסיד תקף, אל תוריד אותו.

3. 2 בדיקת בריאות GRPC

השתמש בתקן grpc. בריאות. V1. Health/Check 'עם Service-scoped states (' הגשה ',' Not _ Serving '). עבור Kubernetes - grpc growes (או http proxy).

3. 3 הפעלות פנימיות

Watchdog ”Soft” Stop: עם SIGTERM SET SINDENCE = AFLAC PAC לחכות ל- ”Termination Seconds” סוף, לעבוד על תורים.

4) עיתוי וסיפים (כוונון)

שדות מפתח של דוגמיות קוברנטס:
  • 'Initialally Seconds', ' Seconds', 'Time Out Seconds', 'Experhold',' Senshold'.
המלצות לפרופילי התחלה: Web/API עם התחלה מהירה:
  • תקופה = חמש, פסק זמן = 0. 2–0. 5S, כישלון = 2&fost
  • לביאה: נקודה = 10, פסק זמן = 0. 2–0. 5S, כישלון = 3&fost
התחלה קשה (JIT/מודלים/חימום):
  • סטארט-אפ: תקופה = 5, כישלון = 60 '(עד ~ 5 דקות)
  • מוכנות/לביאה מופעלת לאחר הצלחת הפעלה
אצווה/צרכן:
  • מוכנות משקפת מוכנות לעיבוד (חיבור לברוקר, בין אם יש דלדול DLQ),
  • לביאה - לולאת פעימות לב פנימית.

גיבוי על כשלים: ביישום, להשתמש בגיבוי מעריכי להתחבר מחדש לתלות, אחרת מוכנות ”ראה”.

5) תצורות (מקטעים)

5. 1 קוברנטס, גשושיות HTTP

yaml livenessProbe:
httpGet: { path: /healthz/liveness, port: 8080 }
periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 3

readinessProbe:
httpGet: { path: /healthz/readiness, port: 8080 }
periodSeconds: 5 timeoutSeconds: 1 failureThreshold: 2

startupProbe:
httpGet: { path: /healthz/startup, port: 8080 }
periodSeconds: 5 failureThreshold: 60

5. 2 קוברנטס, מדגם GRPC

yaml readinessProbe:
grpc:
port: 9090 service: my. app. Service periodSeconds: 5 timeoutSeconds: 1

5. 3 כיבוי חינני

yaml terminationGracePeriodSeconds: 30 lifecycle:
preStop:
exec:
command: ["/bin/sh","-c","curl -s localhost:8080/healthz/drain && sleep 5"]

'/בריאה/ניקוז 'בתוך השירות מתרגם מוכנות = נכשל (להפסיק לקבל), נותן זמן כדי להשלים בקשות פעילות.

6) תלויות והשפלה

קריטי (לא ניתן לשרת בלעדיהם): מסד נתונים הרשאה עבור '/התחברות ', שער תשלום עבור '/תשלום'. ניתן לבדוק במוכנות עם פסק זמן, 80% מהדגימות של ”טיים אאוט שניות”.
לא קריטי: אנליטיקה, דוא "ל, שכבת מטמון אם יש עומס. אל תכלול אותם במוכנות; תשתמש בתלבושת.
Feature-flags: אם הוא מושפל חלקית, בטל תכונות תלויות תוך שמירה על מוכנות = אישור.

7) תורים ומפעילי רקע

צרכנים/עובדים:
  • מוכנות = אישור אם מותקן מנוי/חיבור לברוקר ויש משאב לעבד.
  • כאשר DLQ/lag יעלה על גדותיו * מוכנות עשויה להישאר בסדר (אם נקבל ונוסיף), אך SLI ”רעננות/לאג” מאירה - התראה לפי הנתונים.
  • שליטה במחזור הסקרים/פעימות לב, Deathdetector.

האצה התאוששות מלביאה מחדש.

8) סירה/רשת/כניסה

כאשר משתמשים ב ־ Service Mesh (איסטיו/לינקרד), הגשושית יכולה לעבור דרך סירה:
  • אפשר ”לקרוא שער” (K8s) כדי להסביר את מצב הסירה,
  • ודא שהדגימות לא ייפלו בתוך מחסומי mTLS (או יוסיפו יוצאים מן הכלל).
  • Ingress/Envoy/Nginx: Prox '/health z/' מקומית, אל ”תוציא” חלקים פנימיים.

9) ביטחון ופרטיות

נקודות סוף בריאות לא צריכות לחשוף תצורות, גרסאות ספרייה, מחרוזות שגיאה - רק ”OK/FAIL” + קוד סיבה מינימלי.
הגבלת גישה חיצונית (NetworkPolicy/ACL). לציבור - בואו פשוט פינג-לביאה ללא פרטים.
רישומים של בדיקות רפואיות ברמת דבאג, עם מצערת.

10) יכולת תצפית ו ־ SLO

ייצוא מדדים: ”בריאות _ מוכנות”, ”בריאות _ ליבנס”, זמן עיבוד דגימות.
Associate Readness Flagges עם SLOs זמינות (ירידה מנקודות קצה = 5xx/חיבור).

התראות:
  • ”תדיר מחדש על ידי liberess> N/שעה” - סימפטום של קיפאון/הדלפות.
  • ”מוכנות דש> מין X/15” - סימפטום של בעיות התמכרות/רשת.
  • מתאם עם פריסה ("service. גרסה ').

11) בדיקות

Unit/Contract: Endpoints '/health/' relizz/' reside statuses כאשר כל תלות מושבתת.
כאוס: ביטול מסד נתונים/מטמון/ברוקר: מוכנות צריכה ליפול או לאפשר מעקב אך ורק לפי המודל. הלביאה - אינה מעוררת אם התהליך ”חי”.
טעינה/השריה: תחת עומס, נקודות קצה בריאות חייבות להישאר מהירות (לא לדחוף תוכן).
בדוק את יציבות המוכנות לפני הגדלת התנועה.

12) טעויות תכופות וכיצד להימנע מהן

Libeness בודק מסדי נתונים/API חיצוני. התוצאה היא הפעלה מחדש אינסופית של אירועים. הפתרון: להגביל את הלביאות ”לעבד את החיים”.
בדיקות כבדות בדגימות. מוביל לכשלונות שווא. פתרון: בדיקת אור + צגי רקע-בריאות פרטניים.
אין מכשיר הפעלה. התחלות איטיות ”נהרגים” על ידי לביאה. פתרון: הוסף הפעלה עם חלון רחב.
אין כיבוי חינני. נדיר 5xx ב depla. פתרון: Prestop + חוסר איזון.
סופות דש. מפתן אגרסיבי מדי. פתרון: להעלות ” הסף”, להגדיל ”זמן אאוט שניות”, להוסיף גיבוי.
אותן נקודות סוף לכל דבר. ערבוב סמנטיקה. פתרון: ”לביאה/מוכנות/התחלה”.

13) דפוסי יישום קטנים

מפעיל HTTP פשוט (פסאודו-קוד):
python
@app. get("/healthz/liveness")
def liveness():
return 200

@app. get("/healthz/readiness")
def readiness():
ok_core = core_is_ready () # local pools/caches/initialization ok_db = db. ping (timeout = 50 _ ms) # only if the DB is critical return 200 if (ok_core and ok_db) else 503

@app. get("/healthz/startup")
def startup():
return 200 if INIT_DONE else 503

@app. post("/healthz/drain")
def drain():
set_readiness(False); return 200
בריאות GRPC (רעיון):
go
// use google. golang. org/grpc/health/grpc_health_v1 healthServer. SetServingStatus("my. app. Service", SERVING) // or NOT_SERVING
Readimage Gate (נכון עם רשת):
yaml spec:
readinessGates:
- conditionType: "proxy. istio. io/ready"

14) רשימות בדיקה

לפני המכירה

[ ] Libeness/מוכנות/startup endpoints מופרדים, הסמנטיקה שלהם מתוארת.
[ ] לבינס אינה נוגעת בתלות חיצונית; מוכנות בוחנת קריטית רק עם פסקי זמן ועקבה.

מוגדרת 'initialtialHide/timeout/ Threshold' לפרופיל שירות.

[ כיבוי חינני ] מאפשר: 'Prestop' + חוסר איזון.
[ ] מדדי בריאות/יומנים מחוברים; התראות לאתחול/דש.
[ ] כשל תלות ומבחני התחלה איטיים עברו.

מבצע

[ דו "ח שבועי ] על הפעלות מחדש ודגלי מוכנות.
[ ] סף כוונינג לאחר תקריות; חיבור עם שחרור.
[ ] בדיקות כאוס רגילות לנטרול תלות.
[ ] רלוונטיות של סמנטיקה כאשר קריטיות התלות משתנה.

15) FAQ

ש: האם אפשר לסגור הכל עם התמוטטות אחת?
א ': לא רצוי. הפרד בין ”סטארט-אפ”, ”מוכנות”, ”לביאה”, זה מפחית חיוביות שגויה ומאיץ את RCA.

קיו: האם אני בודק את המטמון במוכנות?
א. אם יש מצב נכון (אם כי איטי יותר) ללא מטמון, אל תוריד את המוכנות, פשוט תדליק את ההשפלה.

קיו: מה לעשות עם התחלות מחדש תכופות של לביאה? ‏

א ': לשלול קודם דקטור/דליפה; ואז לשחרר את הסף ולהוסיף כלב שמירה ביישום.

ש: איך אנחנו מסבירים את ריבוי הדיירים?
א. מוכנות צריכה לשקף את היכולת לשרת כל תנועה שכורה. לבעיות פרטיות של דייר מסוים - לא לשנות מוכנות, אבל אות עם התראות SLI/נפרדות.

חומרים קשורים:
  • ”יכולת תצפית: יומנים, מדדים, עקבות”
  • ‏ ”עקבות מבוזרות” ‏
  • ”SLO/SLA ומטרים”
  • ‏ ”ערובות למשלוחים” ‏
  • ”בהצפנת מעבר”
  • ‏ ”ניהול סודי” ‏
Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

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