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

یه سوال خیلی مهم که تو همایش آینده وب و موبایل و نمایشگاه شهر هوشمند مشهد
پرسیده می‌شد راجع به ماهیت پلتفرم‌های ابری بود! اینکه پلتفرم ابری دقیقا چیه و چرا باید از سکو استفاده کنیم؟
راحت ترین جواب به این سوال میتونه تعریف ماهیت پلتفرم ابری باشه!

پلتفرم ابری

PaaS is a set of services aimed at developers that helps them develop and test apps without having to worry about the underlying infrastructure. Developers don't want to have to worry about provisioning the servers, storage and backup associated with developing and launching an app. They want to write code, test the app, launch the app, and be able to continually make changes to it to fix bugs.

Sacha Labourey, president, CloudBees

"پلتفرم ابری" مجموعه ای از ابزارها و سرویس‌ها رو برای شما آماده می‌کنه
تا بتونید با استفاده ازاون‌ها به سادگی سرویس خودتون رو توسعه بدید، از لایه‌های مختلف سرویس‌تون(کد، فایل ها و یا تنظیمات) پشتیبان تهیه کنید و به‌ صورت اتوماتیک تست هاتون رو انجام بدید.
یکی از مهم‌ترین ویژگی‌ها در پلتفرم ابری این هست که میزان تخصیص منابع به صورت کاملا اتوماتیک به میزان نیاز سرویس شما انجام می‌شه.
شما دقیقا به میزانی که از منابع استفاده می‌کنید، پرداخت می‌کنید و نه بیشتر!

البته باید بدونین همه ی این مواردی که گفتم به صورت رسمی تعریف PaaS یا پلتفرم ابری به عنوان سرویس نیست!
چون در واقع هیچ تعریف کاملا استانداردی برای پلتفرم ابری وجود نداره.
اما این توضیحات به عنوان یه تعریف پذیرفته شده بین فعالین این حوزه استفاده میشه.
عملا یه ارائه دهنده سرویس ابری وقتی حرف از پلتفرم ابری میزنه باید یک سری حداقل هارو داشته باشه!

پلتفرم ابری در ایران

متاسفانه اکثر پلتفرم‌های ابری یا بهتره بگیم تو حالت کلی اکثر سرویس‌های ابری بزرگ و معتبر جهانی به دلیل اینکه IP کاربران ایرانی روی این سرویس‌ها بلاک شده برای ما که داخل ایران هستیم قابل استفاده نیستند!

پلتفرم های ابری معروف

همین مسئله باعث شده شرکت‌های ایرانی به سمت توسعه سرویس‌های مشابه برای پوشش خلاء موجود برن که در بین این سرویس‌دهنده‌ها، گاها به خاطروجود نداشتن تعریف استاندارد برای پلتفرم ابری -چه عمدا و چه سهوا- سوءاستفاده‌هایی صورت گرفته.

این شرکت‌ها عملا تعریف پلتفرم رو محدود به اجرای کانتیرهای داکر کردند! هرچند که این سرویس هم به عنوان یک سرویس ابری کاملا رایج وجود داره و با نام
"Container as a Service" شناخته میشه، اما پلتفرم به معنای پذیرفته شده نیست! (ارتباط بین IaaS، CaaS و PaaS یه موضوع جالبه که اگه فرصت بشه حتما راجع به اون هم می‌نویسم)

این مسئله، توضیح مدل قیمت گذاری Pay-as-you-go رو برای ما به‌ شدت سخت کرده بود.
اکثر کاربران، پلتفرم رو با اجرای کانتینر داکر روی منابع فیکس شده از نظر میزان رم و cpu مقایسه می‌کردن و به یک نتیجه گنگ از نحوه محاسبه هزینه می‌رسیدن!

مدل قیمت گذاری و نحوه اختصاص منابع تطبیق پذیر(کشسان)

مدل قیمت گذاری مناسب برای ابر با عنوان Pay-as-you-go شناخته میشه و راحت‌ترین توضیح برای این مدل از قیمت‌گذاری می‌تونه به این صورت ارائه بشه:

شما به ازای هر واحد زمانی (که به‌ طور رایج ۱ ساعت در نظر گرفته میشه) دقیقا به میزان منابع مصرفی تو همون ساعت پرداخت می‌کنید!

به عنوان مثال ساعت ۱۰:۰۱ تا ۱۱:۰۰ سرویس شما با توجه به میزان ریکوست دریافتی نیاز به 2GB رم و ۴ هسته از CPU داشته و از ساعت ۱۱:۰۱ تا ساعت ۱۲:۰۰ به خاطر مراجعه بیشتر کاربران و تعداد ریکوئست بالاتر این میزان منابع به 4GB رم و ۸ هسته از CPU رسیده!

مدل قیمت‌گذاری pay as you go در پلتفرم ابری

در این حالت شما برای ساعت اول فقط به میزان ۲ گیگابایت رم و ۴ هسته CPU پرداخت می‌کنید و برای ساعت دوم هزینه ۴ گیگابات و ۸ هسته CPU!
در مقایسه با حالت سنتی شما برای ازدست ندادن پیک مشتریان در ساعت فشار روی سرورهاتون، مجبور بودید همیشه به میزان پیک (در مثال ذکر شده ۴گیگابایت رم و ۸ هسته CPU) پرداخت کنید.

یه مثال جالبی که یکی از مراجعه کنندگان به غرفه سکو بعد از توضیحات بهش رسید:
مثال استفاده از لامپ بود، که خب کاملا مثال درستی هست!

با این توضیحات، چیزی که من فهمیدم سکو مثل استفاده از چراغ برای روشناییه، هروقت که بریم توی یکی از اتاق‌های خونه چراغ اونجا روشن میشه روی هزینه حساب میشه و هر وقت هم به اون چراغ نیاز نباشه خاموش میشه و هزینه ای براش پرداخت نمیشه!

ابر‌های خصوصی


ابر خصوصی به ابری گفته میشه که تمام زیرساخت اون، کاملا متعلق به یک سازمان باشه و اکثر سرویس‌های ابری توسط خود اون سازمان استفاده بشه!

ابر خصوصی یکی دیگه از مواردی بود که زیاد مورد سوال بود، بعضی از شرکت‌ها درخواست بارگذاری پلتفرم سکو روی سرورهای خصوصی درون سازمانی را داشتند! این سوال مطرحه که ابر خصوصی راهکار مناسبی هست یا نه؟
که جوابش هم می‌تونه آره باشه و هم نه!

توی اکثر موارد استفاده از ابر خصوصی راه حل مناسب برای سازمان شما نیست!
اگه سازمان تمایل داشته باشه ابر رو بر روی سرورهای خودش اجرا کنه، دو مورد از ویژگی های اصلی پلتفرم ابری رو از دست میده!

سرور پلتفرم

مورد اول و مهم‌تر، کاهش هزینه‌های زیر ساختیه.
در صورتی که سازمان شما بخواد سرور‌ها رو خودش تامین کنه عملا باید میزان منابع ثابت و مشخصی رو خریداری کنه که باعث میشه مدل قیمت گذاری ابر بی معنی بشه چون تمام منابع سرور رو اجاره کرده و قابلیت کشسانی پلتفرم، کمکی به کاهش هزینه نمی‌کنه!

پلتفرم

مورد دوم هزینه نیرو‌های پشتیبانی از بستر ابر هست! در حالت کلی پلتفرم‌ها به سازمان‌ها کمک می‌کنن که بخش عملیات و بارگذاری از روی دوش اون‌ها برداشته بشه.
اما ابر خصوصی نه تنها به این مورد کمکی نمی‌کنه بلکه هزینه های پشتیبانی از لایه ابر رو هم به هزینه‌های عملیات پشتیبانی اضافه می‌کنه!

"سکو" به عنوان یه پلتفرم ابری عمومی فعالیت می‌کنه، اما هسته‌ی سکو این قابلیت رو داره که در آینده به عنوان یه راه حل ابری کامل، روی زیرساخت خصوصی یه سازمان بارگذاری بشه.

کجا از ابر خصوصی استفاده کنیم؟

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

راه حل های مناسبی از جمله Openshift OKD, Flynn و... برای ایجاد و مدیریت ابرهای خصوصی وجود داره که ما امیدواریم در آینده نزدیک بتونیم "سکو" رو به عنوان یک پکیج کامل برای ابرهای خصوصی هم ارائه بدهیم.