پایداری بالا (High Availability) در سرویس های اینترنتی
در این مقاله میخوانید
سرویس اینترنتی با افزایش تقاضا برای زیرساختهای قابل اطمینان و کارامد جهت سرویس دهی به سیستمهای حساس در حوزه اینترنت، مفاهیم ارتقاپذیری سختافزاری (Scalability) و پایداری بالا (High Availability)
بیش از گذشته مورد توجه قرار گرفتهاند و شرکتهای ارائهکننده زیرساخت فناوری اطلاعات (IT) در تلاش هستند که هر چه بیشتر کیفیت خدمات ارائه شده خود را در این زمینه افزایش دهند.
از تنظیم و کنترل افزایش زمان لود سیستم گرفته، تا کاهش زمان قطعی (Downtime) و کاهش خطر خرابی به دلیل ارائه خدمات از یک نقطه، مواردی هستند که در این مفاهیم دارای اهمیت میباشند.
این اهمیت در مورد سیستمهای دارای تراکنشهای زیاد یا دارای حساسیتهای بالا چندین برابر میگردد، بنابراین در نخستین گام مشورت با متخصصان این بخش از الزامات کار میباشد.
در ادامه معنی اصلی پایداری بالا و تاثیر آن بر افزایش اطمینانپذیری زیرساخت توضیح داده خواهد شد.
منظور از پایداری بالا و اندازهگیری آن
در حوزه خدمات اینترنتی، اصطلاح پایداری به دورهای که سرویس فعال می باشد، اطلاق میگردد، مانند زمان مورد نیاز برای پاسخدهی به درخواستهای ارسال شده از سوی کاربر.
پایداری بالا میزان کیفیت کارکرد عملیاتی سیستم یا مؤلفههای آن در این زمان است.
پایداری بیشتر به صورت درصدی که از زمان عملکرد مطلوب سیستم بیان میشود. برای نمونه مقدار 99% نشاندهنده این است که سیستم تنها در 1% دوره زمانی در دسترس نبوده است.
در یک بازه یک ساله این میزان برابر 3.65 روز می باشد.
در واقع پایداری بالا به عنوان یک مکانیزم شناسایی و پیشگیری از خرابی پاسخدهی برای زیرساخت عمل میکند.
روش کارکرد آن معمولا ساده بوده و پیادهسازی آن از طریق برخی نرمافزارهای ویژه این کار و تنظیم آنها انجام میپذیرد.
اهمیت پایداری بالا
زمانی که شما یک سیستم بزرگ را راهاندازی میکنید، کمینه کردن میزان قطعی و وقفههای سرویس دهی از اولویتهای اصلی شما میباشد.
صرف نظر از اینکه چه میزان سیستم و نرمافزار شما قابل اطمینان است، باز هم مشکلی میتواند سبب اختلال در برنامه یا سرور شما شود.
پیادهسازی و توجه به پایداری بالا برای زیرساخت میتواند یک راهبرد مناسب برای کاهش تاثیر اتفاقات ناخواسته باشد.
سیستمهای با پایداری بالا میتوانند به صورت خودکار در این زمانها درخواستهای ارسالی به سرور را پوشش داده و پشتیبانی کنند.
پایداری بالا با چه چیزی ایجاد میشود؟
یکی از اهداف پایداری بالا کاهش خطر خرابی به دلیل ارائه خدمات از یک نقطه میباشد. ارائه خدمات تنها از یک موقعیت میتواند به دلیل در دسترس نبودن،
سبب ایجاد وقفه در سرویسدهی سیستم شود. هر مؤلفهای از سیستم شما که لازم است عملکرد مناسبی داشته باشد ولی تنها از یک بخش ارائه میشود
میتواند با خطر خرابی به دلیل ارائه خدمات از یک نقطه مواجه شود.
برای جلوگیری از این مشکل، هر لایه از سیستم شما باید برای افزونگی (Redundancy) آماده شده باشد.
برای نمونه تصور کنید شما دارای زیرساختی شامل دو وبسرور هستید. در حالت عادی ترافیک کاربران بین سرورها تقسیم میشود
و در صورتی که یکی از سرورها با مشکل مواجه گردد، ترافیک به سرور سالم تغییر مسیر داده خواهد شد.
در این مثال خطر خرابی به دلیل ارائه خدمات از یک نقطه در لایه وبسرور، به دلایل زیر مشاهده نمیشود:
مولفههای افزونه ( Redundant ) برای یک بخش در نظر گرفته شدهاند
مکانیزمی بر روی این لایه (وبسرورها) اندیشیده شده است (متعادل کننده بار ترافیکی یا load balancer)
که توانایی شناسایی خطا در مؤلفهها و ایجاد ساز و کاری جهت جلوگیری وقفه در آن را دارد اما چه اتفاقی خواهد افتاد اگر متعادل کننده بار ترافیکی با اختلال روبرو شود؟
در این سناریور خود متعادل کننده بار ترافیکی در معرض خطر خرابی به دلیل ارائه خدمات از یک نقطه میباشد.
حتی در صورتیکه متعادل کننده دیگری نیز اضافه شود، باز هم مشخص نیست در لایه بالایی آن با این مشکل مواجه نگردد. بنابراین افزونگی به تنهایی نمیتواند تضمینی برای پایداری بالا باشد.
مؤلفههای سیستم که باید در پایداری بالا در نظر گرفته شود
چندین مؤلفه باید به دقت برای پایداری بالا در نظر گرفته شوند، افزون بر پیادهسازی نرمافزار، پایداری بالا وابسته به فاکتورهای زیر است:
محیط
در صورتیکه همه سرورهای شما در یک موقعیت جغرافیایی قرار داشته باشند، عوامل محیطی مانند زمینلرزه یا بهمن میتوانند تمام سیستم را مختل نمایند. داشتن سرورهای افزوده در موقعیتها و دیتاسنترها ( Datacenter ) گوناگون میتواند سبب افزایش اطمینانپذیری سرویس شود.
سختافزار
زیرساخت سختافزاری سرورها میباید دارای امکان ارتقاپذیری و پیادهسازی سیستمهای افزوده برای مواجه با حالاتی که خرابی سختافزاری روی میدهد، باشد.
نرمافزار
تمام لایههای نرمافزاری از جمله سیستمعامل و خود نرمافزار باید برای حل خطاهای غیرمنتظره آماده شده باشند. برای نمونه قابلیت ریستارت سرور و دسترسی از طریق روشهای جایگزین.
دادهها
از بین رفتن دادهها و نااستواری آنها میتواند سبب ایجاد چندین مشکل شود. این مورد تنها به مشکلات ناشی از خرابی هارد دیسکها محدود نمیشود. در پایداری بالا باید برای امنیت داده در زمان بروز مشکلات اندیشه شده باشد، برای نمونه نگهداری بکاپها در هارد دیسک دیگر.
شبکه
قطعی برنامهریزی نشده شبکه میتواند با خطر خرابی به دلیل ارائه خدمات از یک نقطه مواجه شود. بسیار مهم است که راهبری برای شبکه افزونه برای این منظور در نظر گرفته شده باشد.hb برای نمونه استفاده از شبکه انتقال محتوا یا سی دی ان ( Content Delivery Network ؛ به اختصار CDN ).
پایداری بالا زیرمجموعهای از مهندسی اطمینانپذیری میباشد که بر تضمین عملکرد کارا و در سطح بالای سیستم و مؤلفههای آن در یک بازه زمانی مشخص متمرکز شده است. در نگاه نخست پیادهسازی آن بسیار پیچیده به نظر میرسد، با این حال، پیادهسازی آن مزیتها و ویژگیهای بسیاری برای سیستمی که نیاز به افزایش اطمینانپذیری دارد به وجود میآورد.
جمع بندی
استفاده از سرویس های اینترنتی کارآمد و مورد اطمینان برای بهبود مواردی چون ارتقاپذیری سختافزار و پایداری بالا در سیستم هایی که تراکنش های زیاد دارند و حساسیت آن ها بالاست اهمیت بسیاری دارد. پایداری بالا امری مهم در ارائه ی خدمات به کاربران است. شرکتهای ارائه دهنده زیرساخت فناوری اطلاعات، با بهبود مواردی چون تنظیم و کنترل افزایش زمان لود سیستم، کاهش زمان قطعی و کاهش خطر خرابی و … به شما کمک می کنند تا بتوانید خدمات با کیفیت تری را به کاربران تان ارائه دهید.
سوالات متداول
منظور از پایداری بالا و اندازهگیری آن چیست؟
اصطلاح پایداری به دوره ای که در آن سرویس فعال باشد میگویند.مثل مدت زمان لازم از سوی کاربر برای پاسخ به درخواست های ارسال شده.
اهداف پایداری بالا چیست؟
یکی از اهداف پایداری بالا میتواند کاهش خطر خرابی به دلیل ارائه خدمات از یک نقطه میباشد
چند مورد از مؤلفههای سیستم که باید در پایداری بالا بررسی شود؟
محیط،سخت افزار،نرم افزار،داده ها،شبکه