شب ۳۰: پروژهٔ نهایی آمادهٔ بهرهبرداری¶
بخش ۳۰ از مجموعهٔ آموزش Traefik در ۳۰ شب؛ هر جلسه برای ۶۰ تا ۹۰ دقیقه مطالعه، تمرین عملی، بررسی نتیجه و تمرین رفع خرابی طراحی شده است. مثالها مطابق منبع با Traefik Proxy v3.7 نوشته شدهاند؛ برای محیط عملیاتی نسخهٔ اصلاحی آزمودهشده یا digest مشخصی را ثابت کنید. تمرینها را روی میزبان یا کلاستر آزمایشگاهی اجرا کنید.
فهرست کامل دورهٔ ترافیک در ۳۰ شب
هدفهای یادگیری¶
- نمایش سرویس Traefik قابلبهرهبرداری، فراتر از یک مسیر سالم.
- انتقال طراحی میان دو هماهنگکننده.
- ارائهٔ شواهد آمادگی امنیت، دسترسپذیری، تغییر و بازیابی.
تکلیف عملی¶
یک پیادهسازی نزدیک به محیط عملیاتی روی Compose، Swarm، Nomad یا Kubernetes مستقر کنید. طراحی معادلی برای پلتفرم دوم بنویسید و تفاوت ارائهدهنده، وضعیت، انتشار و مدل دسترسپذیری را توضیح دهید.
حداقل هدف مسیریابی:
# Platform-neutral intent; translate it into labels, tags, CRDs, or Gateway API.
host: capstone.example.test
entrypoints: [web, websecure]
http_redirect: https
tls:
issuer: external-or-controlled
min_version: TLS1.2
middlewares:
- authentication-on-admin-path
- security-headers
- bounded-rate-and-concurrency
service:
instances: 2+
health_path: /health
port: 8080
observability: [json-access-log, prometheus, otlp-traces]
فهرست ساخت¶
- نسخه یا digest دقیق هماهنگکننده، chart و ایمیج را ثابت کنید.
- راهاندازی، مسیریابی، secret و وضعیت گواهی را جدا کنید.
- از کشف با فعالسازی صریح و محدودیت مالکیت یا namespace استفاده کنید.
- فقط پورتهای عمومی و مدیریتی موردنظر را منتشر کنید.
- برای دو نام میزبان، تغییرمسیر HTTP و HTTPS مورد اعتماد ارائه کنید.
- یک مسیر مدیریتی را محافظت و نتیجهٔ درخواست مجاز و غیرمجاز را نشان دهید.
- دستکم دو نمونهٔ پشتصحنه اجرا کنید و یکی را بدون قطعی محسوس برای کاربر از کار بیندازید.
- لاگ دسترسی ساختیافته، متریک و یک trace تولید کنید.
- یک SLI آزمایشی خارجی و آستانههای هشدار تعریف کنید.
آزمون بهرهبرداری¶
# Adapt addresses and CA to the lab.
curl -I --resolve capstone.example.test:80:EDGE_IP http://capstone.example.test/
curl --fail --cacert LAB_CA --resolve capstone.example.test:443:EDGE_IP \
https://capstone.example.test/
openssl s_client -connect EDGE_IP:443 -servername capstone.example.test \
-CAfile LAB_CA -verify_return_error </dev/null
موارد زیر را انجام دهید و ثبت کنید:
- تغییر زندهٔ صرفاً مسیریابی بدون restart پراکسی.
- ارتقای Traefik به نسخهٔ ثابتشده زیر بار آزمایشی.
- canary یا بهروزرسانی عمداً ناموفق و بازگشت از آن.
- ازدسترفتن یا drain یک گره یا نمونهٔ پراکسی با ادامهٔ ترافیک؛ یا محدودیت تکمیزبانهٔ Compose را مستند و طراحی بالادستی یا میزبان دوم اضافه کنید.
- بازیابی روی مقصد موقت پاک از پشتیبان رمزگذاریشده و وضعیت مطلوب.
- چرخش توکن یا گواهی بدون چاپ دادهٔ محرمانه.
خروجی تحویلی: دستورالعمل عملیات¶
service: traefik-edge
owner: platform
dependencies: [dns, load-balancer, orchestrator-api, certificate-issuer]
dashboards: [URL]
alerts: [error-budget-burn, no-ready-replicas, certificate-expiry, provider-errors]
daily: [synthetic-check, health, errors, expiry, disk]
upgrade:
preflight: [migration-notes, render-diff, backup, capacity]
validate: [readiness, routes, tls, error-rate, latency]
rollback: EXACT_PLATFORM_COMMAND
recovery:
rto: 30m
rpo: 24h
backup_location: ENCRYPTED_LOCATION
نکتههای عیبیابی¶
- اگر طراحی فقط با غیرفعالکردن اعتبارسنجی TLS یا اعتبارنامهٔ مدیریتی کار میکند، کامل نیست.
- اگر جابهجایی هنگام خرابی فقط از داخل کلاستر موفق است، مسیر متعادلکنندهٔ بار و DNS خارجی را بیازمایید.
- اگر بازگشت به tag تغییرپذیر یا فایلسیستم task موجود وابسته است، راهبرد انتشار و پشتیبان را بازطراحی کنید.
- اگر طراحی پلتفرم دوم کپی کلمهبهکلمه است، تفاوت ارائهدهنده، شبکه، وضعیت و انتشار را دوباره بررسی کنید.
خودآزمایی نهایی¶
- آیا مدیر دیگری فقط با دستورالعمل شما و دسترسی تأییدشده به secret میتواند استقرار و بازگشت انجام دهد؟
- آیا میتوانید هر پورت منتشرشده، مجوز ارائهدهنده، ارجاع میان namespace یا شبکه و مالک گواهی را توضیح دهید؟
- آیا میتوانید مسیریاب، میانافزار، سرویس، endpoint، لاگ، متریک و trace یک درخواست را شناسایی کنید؟
- آیا بدون تکیه بر فایلسیستم کانتینر، pod یا allocation موجود میتوانید بازیابی کنید؟
- آیا میتوانید ریسک اصلی باقیمانده را نام ببرید و برای رفع آن موعد مشخص تعیین کنید؟
زمانی قبول میشوید که هر پاسخ شاهد داشته باشد، نه صرفاً «بله». به فهرست دوره برگردید، تمرینهای انجامشده را علامت بزنید و تمرین بازیابی و ارتقای فصلی برنامهریزی کنید.