مشاور زیرساخت. موسس سایت آموزشی DockerMe.ir
سرور ابری مطلوب چه ویژگیهایی دارد؟
حتما شما که دارید این مطلب رو میخونید چندین بار تو انتخاب سرور ابری یا همون VM از کلادهای ایرانی و خارجی دچار مشکل شدید. معمولا این طوری که همه چی تو سایت خودشون خوبه و کلی ازش تعریف میکنند که روالش هم همینطوره اما واقعا کدوم Provider برای ما مناسبتره و یا بهتر بگم وقتی میخواهیم VM بگیریم برای سرویسها خودمون باید به چه مواردی دقت کنیم.
من تو این مطلب تلاشم اینه که بگم وقتی دارید ماشین مجازی میگیرد خوبه که به چه مواردی دقت کنید و اونها رو لحاظ کنید.
ابتدا بررسی و شناخت سرویس خودمون
گام اول: شناخت خوب از سرویس خودمون
ما باید از سرویس خودمون شناخت خوبی داشته باشیم. اینه که قراره چه اتفاقی براش بیافته و اینکه چقدر قرار بزرگ بشه و رفتار مشتریان ما چطور خواهد بود. این دید کلی به شما کمک میکنه که بتونید انتخابها و مسیر رشد سرویس خودتون رو مشخص کنید. مثلا مهمه که رشد سرویس شما نمایی هست یا خطی، یا اینکه مثلا سرویس شما بر اساس یک رویداد برنامهریزی شده که طبیعتا در حین رویداد شما لود فراوانی رو تجربه خواهید کرد و پس از آن لود سرویس شما کاهش پیدا میکند. پس نکتهی اول و مهم اینه که شما بدونید که چه سرویس دارید و رفتار مشتری شما چگونه خواهد بود چون این موضوع تو تصمیمگیری برای اینکه از کدوم پروایدر استفاده کنید مخصوصا تو ایران خیلی موثر میباشد.
گام دوم: مسیر رشد و مقیاسپذری سرویس
در گام دوم باید مسیر رشد برای scale کردن سرویس خودتون رو بدونید. یا بهتر بگم اینکه الان برای چه لودی آمادگی دارید و چه زمانی بر چه اساسی باید منابع به سرویس خودتون اضافه کنید. یه مثال ساده بزنم سال اولی که نمایشگاه کتاب به صورت آنلاین برگذار شد زیرساخت اون رو من پیادهسازی کرده بودم. ما برای یه اسکیل منطقی ۳ تا سرورداشتیم که باهم کلاستر شده بودند. اما اسکیل توسط مدیر پروژه اشتباه ارزیابی شده بود و همون ابتدای نمایشگاه تمام ظرفیت سرورهای ما پر شده بود و پروایدر ما یک روز طول کشید تا به ما سرور بده تا بتونیم اسکیل کنیم. در صورتی که اگر ما لود سرویس رو درست تشخیص داده بودیم از ابتدا برای اون آماده میشدیم و زودتر پروایدر خودمون رو مطلع میکردیم. پس این موضوع خیلی مهمه که بدونیم چه لودی رو میخواهیم تجربه کنیم.
گام سوم: انتخاب مناسب برای سرویس خودمون
به صورت کلی ما ۳ نوع Computaion میتونیم استفاده کنیم. Baremetal، VM یا Container که هر کدوم مزایای خودش رو داره و در جای درست میتونه انتخاب درستی باشه. پروایدرهای مطرح دنیا هر ۳ تای این سرویسها رو ارائه میدهند اما تو ایران متداولترین سرویس همون VM میباشد که تقریبا همه پروایدرها اون رو ارائه میدهند. پس باید انتخاب کنیم که با توجه به محصول خودمون کدوم تکنولوژی برای ما مناسب است تا از اون استفاده کنیم.
حالا بعد از اینکه تکلیفمون با خودمون و سرویسمون مشخص شد و کامل میدونستیم که چی میخوایم میریم سراغ معیارهایی که تو انتخاب پروایدر باید بهش دقت کنیم.
معیار اول: SLA و پشتیبانی
امیدوارم هیچ وقت گرفتار پیگیری SLA نشویدکه کار خیلیپیچیدهای هست. به صورت خلاصه بهتون بگم تقریبا تو همهی قراردادها طوری نگارش شده که هر اتفاقی بیافته باز شما مسئول دیتای خودتون هستید که تقریبا هم اگر دقیق نگاه کنید منطقی هست و شاید تنها بتونید فاکتور یک ماهتون رو پرداخت نکنید. پس به این دقت کنید که نگهداری دیتا و حفظ و سلامت آن به شما مربوط هست و پروایدر فقط میتونه بهتون کمک کنه که ابزار مناسب در اختیارتون قرار بده. کم نداشتیمنمونه رخدادهایی که دیتا کامل پاک شده یا قسمتی از دیتا مشکل پیدا کرده. هم تو ایران و هم خارج از ایران زیاد اتفاق افتاده و شرکتهایی تونستن از اون رخدادها به سلامت بیرون بیان که از قبل براش آماده بودندو اصتلاحا پلن Disaster Recovery درستو حسابی در حد دیتاسنتر داشتند. مورد داشتیم کلا تمام دیتای شرکت به همراه هر چی داشته پاک شده و تنها تونسته فاکتور یک ماهش رو بگیره. پس به این دقت کنید که تنها روی پلنهای خودتون حساب کنید نه SLA پروایدرها که از اونها به نتیجه نخواهید رسید.
نکتهی دیگه پشتیبانیه که البته موضوع بسیار مهمی هست تو خارج از ایران پشتیبانی خیلی خوبی میگیرید اما تو ایران واقعا موضوع متفاوت هست و خوبه که حتما قبل از اینکه به یه پروایدر اعتماد کنید و سرویس خودتون رو به زیرساخت اون منتقل کنید موضوع پشتیبانی رو کامل پیگیری کنید و بدونید تو چه سطحی روی اون میتونید حساب کنید.
من گاها پیش اومده برای سرویسهای مهمی که داخل ایران داشتیم یه کانال کامل اختصاصی با تیم فنی پروایدر ایجاد کردیم که بتونیم پشتیبانی در لحظه و کاملی داشته باشیم.
معیار دوم: قیمت و نحوهی محاسبهی آن
این خیلی مهمه که سرویس ما قیمت مناسبی داشته باشه و نحوهی محاسبهی آن هم منطقی و درست باشد. تو بنچمارکها هموارد قیمت آیتم مهمی هست و یکی از تاثیرگذارترین پارامترها میباشد. نحوهی محاسبهی آن هم اگر Pay as you go باشه خیلی بهتره چون دیگه هر موقعی خواستیم میتونیم VM که گرفتیم رو خاتمه بدیم و یا منابعش رو تغییر بدیم. اگر به این صورت نباشه و فاکتور ماهانه داشته باشه مجبوریم تا انتهای ماه از همون سرویس قبلی خودمون استفاده کنیم.
راستی یه نکتهی مهم که هم تو سرویسدهندههای خارجی و هم داخلی صدق میکنه اینکه VMهای کوچکتر از نظر منابع گرونتر VMهای بزرگتر هستند. یعنی اینکه اگر شما ۵ تا VM ۲ گیگ رم داشته باشید مجموع هزینهی شما بیشتر از یک VM با ۱۰ گیگ رم خواهد بود. پس تو طراحی سرویس خودتون به این نکته توجه کنید.
البته چندین روش دیگه برای محاسبهی قیمت وجود داره اما متداولترینشون همین دو روش هستند.
یه نکتهی دیگه هم بگم برخی از پروایدرهای تقریبا همهی خارجیها یه سری هزینههای پنهان دارند که سر ماه میبینی اون مقداری که مد نظرتون هست نشده کلی هزینهی اضافی برات داره که بیشتر تو بحث نتورک و ارتباط بین دیتاسنتری هست که خوبه سرویسهایی که با هم ارتباط دارن تو یه دیتاسنتر باشن تا این هزنیهها هم کم بشه. خلاصه حواستون به هزینههای پنهان باشه که تو این دیتاسنترها میتونه خیلی زیاد بشه.
معیار سوم: انواع مختلف VMs
`نکته بعدی اینکه Typeهای مختلف و متنوعی داشته باشه که بتونه نیازهای بیشتر شما رو پوشش بده. اینکه علاوه برای VMهای معمولی VM با رم زیاد یا CPU زیاد داشته باشه خیلی مهمه چون معمولا برخی از سرویسها رم خیلی زیادی نیاز دارند در حالی که به همان اندازه به CPU نیاز ندارند و برعکس برای همین مهمه که تنوع خوبی از VM داشته باشه. یه نکتهی دیگه اینکه سیستمعاملهای مختلف رو هم پشتیبانی کنه یعنی از انواع لینوکس سرورها تا ویندوز سرور جز سیستمعاملهایی باشه که در اختیار شما قرار میدهد.
معیار چهارم: تنوع سرویسهای دیگه کنار computation
به صورت کلی شما کنار سرویس VM نیازمندیهای دیگه هم دارید که خوبه پروایدر شما آنها را ارائه کند. در ادامه به برخی از این موارد اشاره میکنم:
- سرویس Object Storage: برای نگهداری Static Fileها مورد استفاده قرار میگیرد.
- سرویس Block Storage: برای استفاده داخل VMها و یا سرویسهای دیگه کاربرد دارد.
- سرویس CDN: که کمک میکنه Static Fileهای سرویس شما سریعتر به مشتری برسد و کلی خدمات دیگه کنارش میتونید داشته باشید.
- سرویس DNS: برای resolve کردن دامنه استفاده میشود.
- سرویس Firewall: برای جلوگیری از حملات و نشت اطلاعات کاربرد دارد.
خوب مشخص هست که هر پروایدر که سرویس کاتالوگ کاملتری به شما ارایه کند امکان بیشتری برای شما فراهم کرده در نتیجه میتونه انتخاب بهتری باشه.
معیار پنجم: مقیاسپذیری VMها
خیلی مهمه که پروایدر شما منابع به اندازهی کافی داشته باشد تا در صورت نیاز بتواند در اختیار شما قرار دهد. در مورد Scaling مهمه که اول میزان منابع و بعد روش آن را بررسی کنید که در صورت نیاز بتونید به راحتی سرورهای خودتون رو بزرگتر کنید یا اینکه تعداد اونها رو بیشتر کنید. این طوری هر زمان که لازم داشتید میتونید سرویس خودتون رو Scale کنید. خوبه که اگر شما از Automation استفاده میکنید که توصیه میکنم حتما بکنید بررسی کنید که پروایدر شما امکان این رو داره که باهاش Integration داشته باشید تا بتونید Auto Scaling رو هم داخل سرویس خودتون پوشش بدید به صورتی که در مواقع پیک میزان منابع بیشتر و در زمانی که لود کمی دارد منابع کمتری مصرف کنید. این طوری خیلی مصرف منابع شما بهینه بشه.
معیار ششم: داشتن سرویسهای مدیریت شده
امروزه خیلی از پروایدرها سرویسهای مدیریت شده همانند دیتابیس (DB as a service) یا رجیستری یا گیت رو به صورت مدیریت شده در اختیار شما قرار میدهند که خیلی به شما میتونه کمک کنه و سربار فنی تیم شما رو کاهش بده. این مدل سرویسها کلی میتونه سرعت شما رو تو توسعه بیشتر کنه و در طول زمان هم هزینهی نگهداری شما رو به شدت کاهش میدهد. پس به صورت کلی اگر پروایدری سرویس مدیرت شده ارائه کند میتونه فرصت خوبی برای شما باشد البته که با رعایت مواردی همچون بکاپ و پلنهای ریکاوری که همواره باید در نظر گرفته شود.
معیار هفتم: در دسترس بودن در چند دیتاسنتر
این معیار تو ایران شاید یکم سخت بشه پروایدر براش پیدا کرد اما در جهان یه معیار مهم هست. اینکه شما از یک پروایدر برای ارائه سرویس خودتون در دیتاسنترهای مختلف استفاده کنید. به این صورت شما با یک بیلینیگ یک اکانتینگ یک پنل یک شرکت در ارتباط هستید و کلا کارتون خیلی راحتتر میشه.
معیار هشتم: مانیتورینگ، لاگینگ و Marketplace
برخی از پروایدرهای سرویس مانیتورینگ و لاگینگ رو در کنار سرویسهای دیگه خودشون ارائه میکنند که این خیلی میتونه فرصت خوبی باشه چون کلی از مشکلات ما رو میتونه برطرف کنه. داشتن Marketplace هم میتونه کمک کننده باشد چون بهمون این امکان رو میدهد که یه سری از سرویسها رو بدون مشکل و راحتتر در اختیار داشته باشیم.
به این نکته توجه کنید:
هر زمان VM یا هر سرویسی از جایی میگیرید حتما با یه مکانیزمی اون رو بررسی و اصتلاحا ولیدیت کنید چون ممکنه چیزی که گرفتید با چیزی که فاکتور میشه متفاوت باشه.به عنوان مثال IOPS دیسک از مواردی هست که تو همهی دیتاسنترها مطرحه و باید قبل از انتقال سرویس خودمون روی VM اون رو با ابزارهایی که هست بررسی و از کیفیت دیسکی که داریم اطمینان پیدا کنیم. کلا ابزار بنچمارک VM زیاد هست خوبه که قبل از استفاده و ارائه سرویس روی اون حتما VM خودمون رو بررسی کنیم.
مطلبی دیگر از این انتشارات
توضیح دستورات داکر – این قسمت docker push, start, stop, version, pause, top
مطلبی دیگر از این انتشارات
سناریوی کامل راهاندازی wordpress با داکر
مطلبی دیگر از این انتشارات
داکر چیست؟