چگونه Availability را در شبکه محاسبه کنیم؟
یادداشت ویراستار: اصل این مطلب در شهریور 1396 نوشته شده بود و در آذر 1399 دوباره بررسی و بهروز شده است. همچنین در اردیبهشت 1400 توسط کارشناسان سرور و شبکه فالنیک، بررسی و تایید شده است..
شاید در نگاه اول و آنچه همه ما تصور میکنیم، Availability و Uptime هم معنا هستند اما در واقع اینطور نیست. این استانداردها برای اپلیکیشنهای Mission Critical حیاتی هستند مثل ویدئو یا VoIP چرا که حتی ثانیهای قطعی در این سیستمها خسارات مالی و یا حتی جانی را به دنبال دارد. تصور کنید مرکز کنترل خطوط هوایی لحظهای قطع شود و یا سیستم اورژانس دچار اختلال شود. Availability یا دسترسپذیری، به موارد متفاوتی بستگی دارد مثلا طراحی و اهداف کاری شبکه، امنیت و سازگاری تجهیزات. آنچه که مهم است این است که هر ثانیه Downtime میتواند هزینههای گزافی را به شما تحمیل کند.
فرض کنید در حال عیبیابی یک Remote Application هستید: شما باید بدانید که آیا اپلیکیشن Down شده و یا شبکهای که این اپلیکیشن تحت آن به کاربران، از راه دور سرویس میدهد. بیایید این دو استاندارد را بیشتر بررسی کنیم.
- ویدئوی آموزشی: Uptime سرور و هاست به چه معناست؟
- آپتایم – Uptime چیست؟
- دسترس پذیری یا Availability چیست؟
- uptime سرور و هاست به چه معناست؟
- معرفی ابزارهای مانیتورینگ سرور
- محاسبه آپتایم و دسترسپذیری شبکه و سرور
- عوامل موثر بر آپتایم
- چطور آپتام را بهبود بدهیم
- RTO چیست؟
ویدئوی آموزشی: uptime سرور و هاست به چه معناست؟
در ویدئوی آموزشی زیر به طور خلاصه uptime سرور و هاست را تعریف کرده و در مورد ضررهای down بودن سایت صحبت میکنیم:
آپتایم – Uptime چیست؟
Uptime به میزان زمانی اطلاق میشود که یک سرور، یک سرویس کلود و یا هر ماشینی که قابل روشن شدن است، به درستی کار میکند. این معیار، به صورت سال، ماه، دقیقه و ثانیه بیان میشود. مثلا میتوان در تمام کامپیوترهای یونیکس و تجهیزات شبکه مانند سوئیچ، دستور Uptime را اجرا کنیم که خروجی آن به صورت زیر خواهد بود:
user@unix# uptime
10:28:24 <strong>up 16 days, 1:24</strong>, 1 user, load average: 0.16, 0.03, 0.01
switch# show version | include uptime
switch uptime is <strong>2 weeks, 2 days, 2 hours, 30 minutes</strong>
دسترس پذیری یا Availability چیست؟
درصدی از زمان در بازه زمانی خاص است که در طول آن یک سرور، یک سرویس کلود و یا هر ماشینی که قابل روشن شدن است، برای کاربردی که برای آن در نظر گرفته شده، استفاده میشود و به درستی کار میکند.
فرمولی که البته سادهترین فرمول برای محاسبه Uptime است و اغلب از آن استفاده میشود به صورت زیر است:
Availability (%) = Uptime/Total Time
Total Time = Downtime + Uptime
با این فرمول میتوانیم حداکثر میزان Downtime که یک سرویس میتواند داشته باشد تا به Sevice Level Agreement یا SLA خود برسد را بدست آوریم.
معمولا Availability را به صورت 3 تا 9 و یا 6 تا 9 بیان میکنند. در جدول زیر بهترین زمان آپ تایم سرور چه عددی است؟ اگر 6 تا 9 یعنی 99.9999% دسترسپذیری داشته باشیم، در طول سال تنها 31 ثانیه Downtime را تجربه میکنید و که این مساله برای اپلیکشینهای Mission Critical ایدهآل و ضروری است. و اگر 3 تا 9 یعنی 99.9% داشته باشیم، در طول سال، 8.76 ساعت، تجربه Downtime و قطعی را خواهیم داشت.
انترپرایزها و تامینکنندگان سرویس کلود خواستار دستیابی به 5 تا 9 یعنی 99.999% هستند ولی در عمل تنها تعدادی از آنها به این عدد دست مییابند.
uptime سرور و هاست به چه معناست؟
وقتی سرور و هاست در دسترس بازدیدکنندگان و مشتریان شما قرار دارد یعنی با مراجعه به سایت به محتوای موجود در آن دسترسی دارند یعنی سرور و هاست شما آپ است. اما وقتی ساید شما از دسترس خارج شود به معنی دان بودن سایت است و نتایج تلخی به همراه دارد. مثلا رتبه سایت در گوگل پایین میآید، کاربران شما ناراضی خواند شد، مشتریانتان به سرویسها دسترسی ندارند و … در صورت ادامه یافتن این مساله Downtime سایت شما بالا میرود که اصلا مساله خوبی نیست. آپتایم بودن سایت در حفظ و رشد ترافیک سایت و مشتریانتان به شما کمک شایانی میکند و برعکس، دان تایم بالا در آمد شما را تحت تاثیر قرار خواهد داد و حتی منجر به جریمه شدن سایت شما به دلیل نداشتن آپتایم مناسب میشود. این موارد را هزینه دان تایم مینامیم. تامین امنیت سرور و بالا بردن سرعت لود از جمله عوامل موثر بر افزایش و بهبود آپتایم سرور است. به مساله چگونگی بهبود آپتایم، در این مقاله بیشتر میپردازیم. مطالعه محتوای “سرور چیست؟” و “شبکه چیست؛ تعریف کامل انواع شبکه و توپولوژی های آن” در ابتدای کار بسیار به شما کمک خواهد کرد.
در انتخاب هاست اولین موردی که باید مورد توجه قرار دهید میزان آپتایمی است که تامین کننده سرویس برای شما فراهم میکند. با توجه به مواردی که گفته شد تست آپ بودن سایت از جمله مواردی است که باید در برنامه مانیتورینگ سرور و شبکه قرار دهید. سرویس های مانیتورینگ وب سایت، آپتایم بودن سرور شما را تست و بررسی و در صورت بروز خطا به شما هشدارهایی ارسال میکنند. برای تست آپ بودن سایت از ابزارهای مانیتورینگ سرور و شبکه استفاده میشود که در ادامه چند نمونه از آنها را معرفی میکنیم. اما برای آشنایی با مانیتورینگ شبکه، ضرورت و مزایا و چگونگی انجام آن، مطلب “مانیتورینگ شبکه چیست، چه ضرورتی دارد و چگونه انجام میشود؟” را مطالعه کنید.
معرفی ابزارهای مانیتورینگ سرور
نکته قابل توجه این است که شما به صورت دستی و ساعتی نمیتوانید همواره آپ بودن سایت را بررسی کنید. راهکار مناسب برای تست آپ بودن سایت استفاده از ابزارهای مانیتورینگ سرور و شبکه است تا به صورت خودکار زمان آپ تایم سرور و سایت را به شما گزارش دهد. در ادامه برخی از بهترین ابزارهای مانیتورینگ سرور را معرفی میکنیم:
1- Freshping – Formerly Insping
ابزار مانیتورینگ Freshping ابزار قابل اطمینان و رایگانی است که کارایی و آپ تایم را مانیتور میکند. به خصوص برای استارتاپها و شرکتهای کوچک و متوسط، بلاگرها و DevOps و Managed Service providers. مانیتورینگ هر یک دقیقه یک بار و با 30 کاربر از جاهای مختلف قابل انجام است. هشدارها هم از طریق ایمیل و اس ام اس ارسال میشود.
2- Dynatrace
از نظارت هوشمند و خودکار ابزار مانیتورینگ Dynatrace در زمینه کلود و سازمانهای بزرگ استفاده کنید و پیچیدگی این کار را برای خود آسان نمایید. بررسی کارایی اپلیکیشنها، زیرساخت و تجربه تمام کاربران را انجام میدهد و کار برای شما بسیار دقیق و راحت خواهد بود.
3- LogicMonitor
در ابزار پایش LogicMonitor، مانیتورینگ با رشد کسبوکار شما توسعه مییابد و به راحتی میتوانید زیرساختها را نظارت کنید. به راحتی مانیتورینگ را در موارد زیر انجام میدهد: مانیتورینک شبکه، سرور، اپلیکیشن، کلود، کانتینر، دیتابیس و استوریج، زیرساخت آی تی، سیسکو، NetApp و VMware و XenServer و MongoDB و SQL و PostgreSQL و Netscaler و AWS.
4- Datadog
ابزار پایش Datadog برای توسعهگران و ادمینها و تیم امنیت مناسب است. مانیتورینگ Real Time و خودکار زیرساخت و پلتفرم SaaS، مانیتورینگ کارایی اپلیکیشنها و مدیریت لاگها را به Datadog بسپارید. سازمانها و شرکتها در هر ابعادی که باشند میتواند از مزایای این ابزار مانتیورینگ شبکه و سرور استفاده کنند.
5- Uptimerobot
ابزار مانیتورینگ وبسایت Uptimerobot، رایگان است و به ازای هر اکانت امکان مانیتور 50 سایت را فراهم میکند و در صورت قطعی در سایت آن را از طریق ایمیل و اس ام اس اعلام میکند. علاوه بر این با داشتن سنسور سرچ کلمه در صفحه میتواند وجود یا عدم وجود این کلمه را در صفحه بررسی کند. همجنین بر پورتهای SMTP و DNS و POP نظارت دارد.
6- Uptime.com
سازمانها و شرکتهای بزرگ و کوچک میتوانند از این ابزار مانیتورینگ قابل اطمینان به خصوص در Uptime استفاده کنند همچنین در زمینه سلامت عمومی دامین و سرعت سایت به شما کمک میکند و روزانه سایت را از نظر ویروس و بدافزار چک میکند.
7- Status Cake
در نسخه رایگان ابزار مانیتورینگ Status Cake هر 5 دقیقه وب سایت شما را بررسی میکند و محدودیتی در تعداد سایتها برای بررسی ندارد. نقطه ضعف آن عدم اطلاعرسانی هنگام قطعی سایت است ولی در نسخه غیررایگان، این کار به خوبی و دقیق انجام میشود.
8- Pingdom
5 نسخه مختلف از Pingdom وجود دارد. در نسخه رایگان مانیتور یک وب سایت هر دقیقه یکبار، گزارش ماهانه و 20 پیامک هشدار ارایه میدهد. برنامه Pingdom روی اندروید و iOS رایگان نصب میشود. بسته به اینکه از کدام نسخه استفاده میکنید، امکانات متفاوتی خواهید داشت.
9- Monitor Scout
Monitor Scout تست آپ بودن سایت را هر دقیقه انجام میدهد و پیام هشدار را با ایمیل و اس ام اس ارسال میکند. قطعی سایت را اعلام کرده و اطلاعات لازم و کاملی ارایه میدهد.
10- Basic State
Service Uptime دارای 5 نسخه است که در نسخه رایگان آن، مانیتورینگ رایگان هر 30 دقیقه یک بار انجام میشود. بررسی از طریق HTTP و SMTP و FTP و Ping انجام میشود و بنا بر نسخه خریداری شده امکانات مختلفی به شما ارایه میدهد.
محاسبه آپتایم و دسترسپذیری شبکه و سرور
با اینکه فرمول محاسبه دسترسپذیری شبکه – Network Availability ساده است اما باید دید که شامل چه چیزهایی است.
بیایید یک انترپرایز متوسط را در نظر بگیریم که چندین دفتر در جاهای مختلف دارد و با ارتباط اینترنتی خودش کار میکند. هر دفتر از طریق تانل VPN به دفتر مرکزی وصل میشود. هر کاربر باید از طریق VPN به اپلیکیشنهای داخلی دسترسی داشته باشد. برای دسترسی به سرویسهای خارجی نیز ارتباط اینترنتی وجود دارد.
حال تصور کنید، تانل VPN قطع شده (Down) ولی اتصال اینترنت برقرار است. عدد Network Availability چند است؟ اگر اتصال اینترنت قطع شود، این عدد چه تغییری میکند؟
شما میتوانید دسترسپذیری شبکه را بر اساس Uptime اتصال اینترنتی محاسبه کنید زیرا اگر این اتصال قطع شود، هم اپلیکشین داخلی و هم اپلیکیشن خارجی نیز قطع میشوند. از طرفی خرابی در تانل VPN تنها بر روی دسترسی به اپلیکشینهای داخلی تاثیر میگذارد و نه بر اپلیکشینهای خارجی (قطعی نسبی اتفاق میافتد). پس در نتیجه دسترسپذیری شبکه را میتوان از طریق فرمول زیر محاسبه کرد:
Network availability = Weightexternal_apps x Network AvailabilityInternet + WeightInternal_apps x Network AvailabilityVPN
فرض کنید 80 درصد از اپلیکیشنهای کاری، اکسترنال (اینترنت) هستند پس 20 درصد باقی میماند که مربوط به اپلیکیشنهای کاری اینترنال (VPN) است. اگر در طول یک سال قطعی اینترنت نداشته باشیم و تنها یک روز VPN قطع باشد، میزان Network Availability به صورت زیر حساب میشود:
Network Availability = 80% * 100% + 20% * (99.726%) = 99.945%
ضرب ۲۴ ساعت در روز را در ۳۵۶ روز در سال، عدد 8760 به دست میآید که تعداد ساعت در سال است. حال اگر تعداد ساعاتی که شبکه و سرور شما آپ است را بر این عدد تقسیم کنیم، مقدار آپ تایم سرور و شبکه به دست میآید. اگر فرض کنیم فقط یک ساعت در سال سرور ما دان شود، با تقسیم عدد 8759 بر 8760، عدد 0.99988 به دست میآید. با ضرب این عدد در صد، درصد آپتایم و availability شما حاصل میشود: 99.988%.
عوامل موثر بر آپتایم
مهمترین عواملی که بر Uptime و Downtime اثر دارد موارد زیر هستند:
- MTBF (Mean Time Between Failure)
- MTTR (Mean Time To Repair)
- Impacted User Minates (IUM)
- Defects per Million (DPM)
- Performance (e.g latency, drop)
همان طور که گفته شد، فرمول زیر سادترین فرمول برای محاسبه Uptime است:
Availability (%) = MTBF / (MTBF + MTTR)
اگر MTBF برابر با ده هزار ساعت و MTTR برابر با 12 ساعت باشد، Availability چقدر میشود؟
Availability (%) = 10,000 / (10,000 + 12) = 99.88 %
Uptime سالیانه چقدر است؟
Annual Uptime (hrs) = 8,749 hrs/year x (0.9988) = 8,749.5 hrs
Downtime سالیانه چقدر است؟
Annual Downtime (hrs) = 8,760 hrs/year x (1 – 0.9988) = 10.5 hrs
اگر شما بتوانید بلافاصله و بدون هیچ وقفهای تعمیر را انجام دهید، MTTR صفر خواهد بود در نتیجه Availability صد در صدی دارید. این دقیقا کاریست که در HA Clustring سعی در انجامش داریم یعنی بتوانیم MTTR را به صفر برسانیم. چگونه؟ اگر بتوان در صورت خرابی قطعات با نهایت سرعت، به قطعات افزونه سوئیچ کرد. بسته به اینکه معماری اپلیکیشن چیست و یا چقدر سریع میتوان خرابی را تشخیص داد و تعمیر کرد، ممکن است کاربر حتی متوجه این وقفه نشود و انگار هیچ اتفاقی نیفتاده است. و یا میتوانیم سرور دیگری در نظر بگیریم که ریپلیکیشن و ریداندنت را انجام دهد: یعنی به شبکه وصل نیست فقط به سرور وصل است.
خرابی یک قطعه ممکن است تاثیری بر کل سیستم نگذارد در واقع اگر طراحی High Availability به خوبی انجام شود، با استفاده از افزونگی میتوان خرابی را حذف کرد. البته با وجود افزونگی، محاسبه MTBF کاری بسیار پیچیده خواهد بود. اما برای اینکه بتوانید از این فرمول به درستی استفاده کنید، باید بدانید که سرویس شما چیست، خرابی را چگونه تعریف میکنید، قطعات سرویس چگونه با هم مرتبط هستند و اگر یکی از آنها خراب شود چه اتفاقی میافتد.
چطور آپتام را بهبود بدهیم؟
نکاتی که در زمینه بهبود آپ تایم باید مورد توجه قرار گیرد به صورت زیر است:
- تامین و بالا بردن امنیت سرور از جمله نکات مهم در بهبود آپ تایم است چرا که حملات مکرر به سایت نه تنها اطلاعات شما را تهدید میکند بلکه دان تایم را هم افزایش میدهد.
- پیچیدگی، دشمن Raliability است (MTTR) و میتواند در صورتهای مختلفی ظاهر شود:
- پیچیدگی نرمافزاری: نرمافزار پیچیده بیشتر از نرمافزارهای ساده خراب میشوند.
- پیچیدگی سختافزاری: سختافزار پیچیده بیشتر از سختافزارهای ساده خراب میشوند.
- وابستگی نرمافزارها: معمولا یعنی اگر قطعهای خراب شود، کل سرویس ایراد پیدا میکند.
- پیچیدگی، امکان خطای انسانی را افزایش میدهد.
- افزونگی یا Redundancy، دوست Availability است. زیرا امکان ریکاوری سریع را میدهد و باعث بهبود MTTR میشود. Replication کلمه دیگری است که میتوان به جای Redundancy استفاده کرد.
- تشخیص به موقع و سریع خرابی، حیاتی است.
- مولفههای غیرضروری را نباید به حساب آورد زیرا خرابی این مولفهها تاثیری بر دسترسپذیری ندارد. این قطعات ممکن است نرمافزاری، سختافزاری و یا سختافزارهایی باشند که نرمافزاری غیرضروری روی آن اجرا میشود.
برای تکمیل مبحث دسترسپذیری و اهمیت آن در اپلیکیشنهایی که در سازمان و شبکه استفاده میشود، انواع اپلیکیشنها را به سه دسته زیر طبقهبندی می کنیم:
- Mission Critical: اپلیکیشنهایی هستند که حتی یک ثانیه قطع شدن آنها، باعث ضرر مالی و جانی در کشور میشود. پس باید دسترسپذیری صد درصدی داشته باشد. درنتیجه Availability و Downtime مهم است، ولی بودجه مهم نیست.
- Business Critical: اپلیکیشنهایی که قطع شدن آنها، باعث ضرر مالی برای یک سازمان میشود. مثلا قطعی سایت، CRM، سرور تراکنش آنلاین بانک، وب سرور دیجیکالا. سرویس بانکها، سرویس اینترنت. پس سطح بالای Availability احتیاج دارند اما میتوانند قطعی داشته باشند و میزان خیلی کمی Downtime برای آنها قابل قبول است.
- Non-Critical (Archiving): سرور DHCP، AD، وایرلس، پرینت و فایل سرور، ضبط تصاویر مدار بسته.
RTO چیست؟
RTO مخفف Recovery Time Objective hsj است اما ببینیم در دنیای سرور و تجهیزات شبکه چه معنایی دارد. RTO حداکثر زمانی است که یک کامپیوتر، شبکه یا اپلیکیشن بعد از رخ دادن خطا و یا Disaster، میتواند Down باشد و پروسه کاری بعد از این مدت باید به حالت قبل از رخ دادن خطا ریکاوری شود تا به استمرار کسبوکار یا Business Continuity دست یابیم.