מדריך הגירה של מתחרה
העבר מ-Bun.serve ל-Webship ללא סגירה עיוורת.
להפריד בין קוד היישום לתפקידי הקצה: לשמור על Bun כמקור בעוד ש-Webship לוקח על עצמו TLS, מסירה סטטית, HTTP/3, הגנה וניתוב בקשות.
הגדר את גבול ההעברה לפני שינוי התעבורה.
התחל על ידי העברת ההתנהגות שהWebship בלבד יכול לשכפל ולאמת. השאר את אימות היישום, גילוי השירותים, הסקריפטים וכללי המטמון המיוחדים במקור הקיים עד להצלחת הבדיקות בסביבת ייצור.
תרגם את מסלול הייצור הקטן ביותר תחילה.
קטע המקור מזהה את רעיון ההגירה; קטע Webship מראה את הצורה היעד. החלף דומיינים לדוגמה, כתובות, תעודות, מגבלות ודרכי בריאות בערכים שנבדקו עבור הסביבה שלך.
Bun.serve({
port: 443,
tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem") },
routes: {
"/": new Response(Bun.file("./public/index.html")),
},
});listen = "0.0.0.0:443"
workers = 4
[[sites]]
domain = "app.example.com"
root = "/srv/app/public"
listen = "0.0.0.0:443"
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"
[sites.protocols]
h1 = true
h2 = true
h3 = trueמפה מושגים, לא תחביר.
הוראות טכניות אינן תמיד תואמות אחד לאחד. השתמש בטבלה זו כדי לאתר את אזור התצורה Webship המקביל, ואז אמת את התצורה האפקטיבית ואת התנהגות זמן הריצה.
| מושג או הוראה נוכחיים | מטרת תצורת Webship |
|---|---|
listener / virtual host | listen + [reverse_proxy.protocols] |
document root | [[sites]].root |
host matcher | [[reverse_proxy.routes]] |
certificate and private key | [reverse_proxy.tls] / [[sites]] cert + key |
השתמש במעבר הפיך בחמישה שלבים.
החזק את המאזין הישן מוכן עד ש-Webship עבר את שערי הדיוק, קיבולת, אבטחה, נראות וביטול על תנועה מייצגת.
- 1
התנהגות ניתנת לצפייה במלאי
רשום מאזינים, דומיינים, נתיבים, upstreams, תעודות, כתיב מחדש, אימות, כללי מטמון, בדיקות בריאות, מגבלות ואינטגרציות תפעוליות.
- 2
תרגם גבול אחד
העבר מארח אחד או מסלול ל-TOML קפדני. שמור על מודולים ספציפיים לספק ולוגיקת יישום מאחורי Webship עד שהחלופות הנפרדות יוכחו.
- 3
אמת באופן לא מקוון ומקומי
הרץ --check-config ו- --print-effective-config, בדוק את התוצאה המצונזרת, בחן את הבריאות באופן מקומי, והפעל TLS גם על TCP וגם על UDP כאשר HTTP/3 מופעל.
- 4
תעבורת Canary אמיתית
שלח חתיכת תנועה קטנה וניתנת לצפייה ל-Webship. השווה קודי מצב, כותרות, גופים, חביון, בריאות upstream, התנהגות מטמון, יומנים והחלטות אבטחה.
- 5
קדם עם אפשרות חזרה לאחור מוכנה
הגדל תנועה בשלבים הנמדדים. שמור על המטרה הקודמת בריאה וניתנת לניתוב מיידי עד חלון הצפייה והשערי העומס המוסכמים יעברו.
אמת קודם. חזור אחורה באמצעות ניתוב, לא על ידי עריכת חי.
אמת את קובץ המועמד, בדוק את התצורה המאופשרת שהוסתרה, וחקור את המאזין הפרטי לפני שינוי התעבורה. שמור את הקובץ הבינארי הישן, התצורה, המאזין, ויעד ה-DNS או מאזן העומס עד שסוגרים את חלון התצפית.
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:443/health