پرش به محتوا

استقرار داخلی

از کجا می‌دانید کار می‌کند؟

استقرار داخلی سرِ یک سؤال کسل‌کننده گیر می‌کند — خرابی را چه کسی می‌فهمد؟ جوابِ به‌دردبخور یک نشانی است که هر مانیتوری بتواند بخواندش، از جایی پرسیده شود که قابل جعل نیست، و همان چیزی را گزارش کند که همه یادشان می‌رود بپرسند.

۴ دقیقه مطالعه

سؤالی که در دمو پرسیده نمی‌شود

وقتی شرکتی به اجرای نرم‌افزار روی ماشین‌های خودش فکر می‌کند، همهٔ گفت‌وگو دربارهٔ روز نصب است: چقدر سخت، چقدر طولانی، آخر هفتهٔ چه کسی. روز نصب بخش آسان ماجراست. سؤالی که باید معامله را تعیین کند روزِ دویستم است — سه‌شنبه‌ای که پایگاه داده جواب نمی‌دهد، یا دیسک پر می‌شود، یا یک استقرار نصفه می‌ماند. چه کسی می‌فهمد؟ در بیشترِ استقرارهای داخلی، جواب صادقانه این است: اولین کاربری که شکایت کند.

این استدلالی علیه استقرار داخلی نیست؛ استدلالی است برای اینکه از نرم‌افزار یک چیز مشخص بخواهید: اینکه بشود از خودِ سرور، ارزان و مدام، پرسید که واقعاً سالم است یا نه — با یک ماشین، نه با آدمی که باید یادش بماند نگاه کند.

یک نشانی، پنج واقعیت

جواب پالس‌آپ یک درگاه سلامتِ واحد و بدون ورود است. گزارش می‌دهد که پایگاه داده جواب می‌دهد یا نه، صف کارها جواب می‌دهد یا نه، طرح داده واقعاً روی کدام مهاجرت است، و آخرین پشتیبان چند ساعت عمر دارد — و فقط وقتی «سالم» برمی‌گرداند که پایگاه داده و صف کارها هر دو پاسخ بدهند. کمتر از این، یک کد خطای ساده است که هر ابزار پایشی که تا امروز نوشته شده بلد است رویش هشدار بدهد.

فیلد مهاجرت مهم‌تر از آن است که به نظر می‌رسد: کانتینری که بالا آمده ولی مهاجرت نکرده، ماشینی است که زنده به نظر می‌رسد و بی‌صدا خراب می‌کند. اینجا چنین ماشینی برای مانیتور از ماشین سالم قابل تشخیص است، نه سه هفته بعد برای پشتیبانی.

مبدأ را بپایید، نه CDN را

ظرافتی که حادثه‌های واقعی از آن درمی‌آید: اگر مانیتور شما نشانی عمومی را چک کند و نشانی عمومی پشت CDN باشد، جواب دادنِ CDN هیچ چیزی دربارهٔ سرور شما ثابت نمی‌کند. صفحهٔ کش‌شده به مانیتور لبخند می‌زند، در حالی که سرورِ پشتش مرده است.

پس کاوش به خودِ مبدأ می‌رود و نام میزبان درست را با خودش می‌برد. یک خط پیکربندی است، و فرقِ پاییدنِ محصول است با پاییدنِ کشِ یک نفر دیگر.

پشتیبانی که نمی‌تواند تظاهر کند

خطرناک‌ترین وضعیت در بهره‌برداری، پشتیبانی است که همه به آن باور دارند و هیچ‌کس ندیده‌اش. طراحی اینجا حول امتناع از همین وضعیت ساخته شده: یک نوبت پشتیبان‌گیری فقط وقتی خودش را کامل علامت می‌زند که همهٔ خروجی‌های آن نوبت واقعاً موجود باشند؛ درگاه سلامت، سنِ همان علامت را گزارش می‌کند؛ و پشتیبانی که هرگز اجرا نشده «کهنه» خوانده می‌شود — هرگز «مرتب». آرشیوها بیرون از هر پوشه‌ای می‌مانند که یک استقرار خراب بتواند جارویش کند، و نگه‌داشتن نسخهٔ بیرون از سرورِ عبارتِ رمز، جزئی از قرارداد بهره‌بردار نوشته شده — چون پشتیبان رمزنگاری‌شده‌ای که کلیدش روی همان دیسکِ مرده بود، مراسم است، نه پشتیبان.

دقت کنید این چه چیزی را وعده نمی‌دهد: نمی‌گوید «خیالتان راحت، پشتیبان دارید.» می‌گوید سیستم اجازه نمی‌دهد پشتیبانی ادعای وجود کند وقتی وجود ندارد — و همین وعده‌ای است که از حسابرسی جان به در می‌برد.

باقیِ پوشش

عمداً کسل‌کننده

هیچ‌کدام در دمو نمی‌درخشند. همه‌شان فرقِ نرم‌افزار است با نرم‌افزاری که می‌شود بهره‌برداری‌اش کرد.

  • قفل حساب، شکست‌ها را به ازای حساب می‌شمارد؛ عوض کردن IP شمارنده را صفر نمی‌کند
  • بارگذاری‌ها جریانی و با سقف سخت خوانده می‌شوند و وسط راه رد می‌شوند — نه بعد از اینکه سرور کل فایل را بلعید
  • هر خطای مهارنشده همان پاکت کوچکِ همیشگی می‌شود؛ ردپای پشته هرگز به مرورگر نمی‌رسد
  • پیوند دعوت می‌تواند حسابِ موجود را صندلی بدهد، هرگز واردش نمی‌شود
  • کاری که دو روز گیر کرده بلند شکست می‌خورد، نه اینکه تا ابد چرخ بچرخاند
  • خطای یک نما به همان مسیر محدود می‌ماند: پوسته، ناوبری و جلسهٔ زنده سرِ پا می‌مانند

سؤال‌های بهره‌برداری

  • برای این کار تیم پایش لازم داریم؟
    نه. هر ابزار پایشی — از جمله رایگان‌هایش — که به یک نشانی اشاره کند و روی کد خطا یا کهنه شدن سن پشتیبان هشدار بدهد کافی است. هدفِ طراحی دقیقاً همین بود: کل وضعیت عملیاتی، خواندنی برای ساده‌ترین مانیتوری که دارید.
  • چرا صفحهٔ سلامت این‌قدر کم می‌گوید؟
    چون عمداً عمومی است تا کاوش بدون اعتبارنامه به آن برسد. پنج واقعیت عملیاتی دارد و دیگر هیچ — نه دادهٔ مستأجر، نه اطلاعات عیب‌یابی، نه چیزی که غریبه از آن چیزی بفهمد.

ماشین‌های خودتان را بیاورید

همان محصول در ابر ما یا کاملاً داخل شبکهٔ شما اجرا می‌شود، با لایسنس آفلاین. جزئیات صادقانه در صفحهٔ استقرار داخلی است.