رایانش ابری
رایانش ابری چیست؟
ما اخیراً از تعدادی از افراد در صنعت خود سؤال کردیم و طیفی از پاسخهای جالب و گاهی خودارجاعی دریافت کردیم. به گفته پاسخ دهندگان ما، رایانش ابری به معنای هر چیزی است، از ابر برنامه کاربردی تک مستاجر و چند کاربر (همچنین به عنوان نرم افزار به عنوان سرویس یا “Saas” شناخته می شود) تا ابرهای درخواستی چند مستاجر، با هدف عمومی (گاهی اوقات). پلتفرم به عنوان سرویس یا “PaaS” نامیده می شود).
من فکر میکنم دنیای محاسبات، به طور کلی، در حال دور شدن از رویکرد انجام دادن خودت برای انجام محاسبات مشترک (و منظور از محاسبات، هر چیزی است که به طور کلی به سرورها مربوط میشود) به سمت پذیرش یا، بهتر، قدم گذاشتن در آن است. ابر برای اکثر محاسبات در لبه شبکه نیست.
انتقال از سرورهای اختصاصی و همتا شده به ابر آغاز شده است. خریداران نمی خواهند سرورها، روترها، سوئیچ ها، دراپ های شبکه، رک ها را در اختیار بگیرند. آنها این را از ابر می خواهند.
اما ابر چیست؟
چه نوع کامپیوتر(های) ابری را باید بسازیم یا از فروشندگان انتظار داشته باشیم؟ آیا مسائلی در قفل وجود دارد که باید مشتریان ابرهای SaaS یا ابرهای PaaS را نگران کند؟ مدتی است که به این مشکل فکر می کنم. ابرها باید باز باشند. آنها نباید انحصاری باشند. به طور گسترده تر، من معتقدم هیچ فروشنده ای در حال حاضر هر کاری را که برای خدمات رسانی به مشتریان لازم است انجام نمی دهد. برای چنین ابری چه چیزی لازم است؟ من فکر می کنم یک ابر PaaS ایده آل دارای 9 ویژگی زیر است:
1) پایداری شبکه لایه مجازی
برای اینکه بسیاری از ویژگی های زیر حتی امکان پذیر باشند، رایانه های ابری باید بر روی نوعی فناوری مجازی سازی کار کنند. اما از آنجایی که محاسبات با هدف عمومی از سخت افزار اختصاصی به محاسبات بر اساس تقاضا حرکت می کند، یکی از ویژگی های کلیدی مدل اختصاصی برای برنامه های کاربردی وب، آدرس IP ثابت و ثابت است.
اگر لایه مجازیسازی از بین برود (و این اتفاق میافتد)، زمانی که ابر نمونههای محاسباتی ابری را بازیابی کرد، توسعهدهنده باید بتواند بدون نیاز به تغییر تنظیمات شبکه به کارکرد برنامه وب تکیه کند.
2) API برای ایجاد، حذف، شبیه سازی نمونه ها
توسعه دهندگان باید بتوانند با رایانه ابری تعامل داشته باشند، بدون نیاز به تماس تلفنی با یک فروشنده، یا ارائه بلیط کمک، با آن تجارت کنند. به عبارت دیگر، مشتری باید بتواند در زمان تقاضا، هر زمان که تقاضا کند، محاسبات بر اساس تقاضا را دریافت کند. Joyent این را از طریق Aptana و محصول Aptana Studio خود ارائه کرده است. با این حال، API در این مرحله فقط برای آپتانا در دسترس است.
API باید به صورت عمومی در دسترس همه باشد. یک کارت اعتباری (که کار میکند و متعلق به شماست) ارائه دهید و باید محاسبات، فضای ذخیرهسازی و رم را بهصورت درخواستی دریافت کنید. چالش شرکتهای رایانش ابری این است که اقتصاد بهموقع را رقم بزنند که به ما امکان میدهد زیرساختهای درخواستی را بدون داشتن زیرساختهای زیادی که منتظر استفاده هستند، فراهم کنیم.
من فکر میکنم این بدان معناست که شرکتهای رایانش ابری، درست مانند بانکها، بیش از پیش شروع به «قرض دادن» زیرساختهای یکدیگر برای مدیریت قلهها و درههای خود خواهند کرد، اما برای اینکه این اتفاق بیفتد، به نیاز بعدی نیاز داریم.
مشخصات رایانش ابری
3) قابلیت همکاری لایه کاربردی
رایانههای ابری باید مجموعهای از چارچوبهای برنامه کاربردی را به روشی ثابت پشتیبانی کنند. من پیشنهاد میکنم که رایانههای ابری باید از PHP، روبی، پایتون، جاوا و رایجترین چارچوبها، کتابخانهها، سنگهای قیمتی/افزونهها و سرورهای کاربردی/وب برای هر یک از این زبانها پشتیبانی کنند.
اساساً، یک توسعهدهنده باید بتواند بین Joyent، سرویسهای وب آمازون، Google، Mosso، Slicehost، GoGrid و غیره به سادگی با اشاره کردن «تفنگ مستقر» به سمت ابر (با استفاده از API ذکر شده در بالا برای چرخش نمونهها) حرکت کند. و برو. تغییر DNS، انجام شد. اما، هیچ شرکت محاسبات ابری با ارائه راه حل های لایه کاربردی بهتر، نوآوری نمی کند. ما باید از محبوب ترین زبان ها پشتیبانی کنیم و به جلو برویم. با این حال، برای اینکه یک توسعه دهنده واقعا قابلیت حمل ابری داشته باشد، باید از نیاز دیگری پشتیبانی کنیم.
4) قابلیت همکاری لایه حالت
این مشکل ترین مشکل برای حل در هنگام مقیاس بندی یک برنامه وب است، و در نتیجه، حوزه ای است که شرکت های رایانش ابری در حال نوآوری هستند در حالی که قابلیت همکاری را قربانی می کنند. مسئله این نیست که تصمیم بگیریم همه ما باید از MySQL یا Postgres پشتیبانی کنیم، زیرا متوجه خواهیم شد که نیاز مورد نیاز (“مقیاس بندی خودکار”) عملاً با این ابزارها غیرممکن است.
آمازون با SimpleDB نوآوری می کند، گوگل BigTable را به عنوان راه حل برای این مشکل در نظر گرفته است، اما توسعه دهندگان نمی توانند هر یک از این دو ابر را ترک کنند زیرا نه SimpleDB و نه BigTable در هیچ جای دیگری در دسترس نیستند. آنچه مورد نیاز است، و وقتی این را می گویم، به دنبال نیاز بعدی هستم، یک لایه حالت مبتنی بر XMPP است که می تواند به برخی از فروشگاه های SQL-y منتقل شود. به Tibco منبع باز فکر کنید.
بازارهای مالی سال ها پیش این مشکلات را برطرف کردند. این دیتا استور باید SQL صحبت کند، با استفاده از نرمافزار متنباز و رایگان ساخته شود و توسعهدهندگان آن را آسان کنند. ارزشی که شرکتهای رایانش ابری به توسعهدهندگان ارائه میکنند، لایه حالت را برای آنها اجرا میکند، بدون اینکه توسعهدهندگان از لایه حالت اختصاصی استفاده کنند که ممکن است در صورت موفقیت مقیاسپذیری ارائه دهد یا ندهد و نشاندهنده lock-in باشد.
5) خدمات کاربردی (به عنوان مثال زیرساخت ایمیل، زیرساخت پرداخت)
یک رایانه ابری باید خدمات برنامه های کاربردی مقیاس شده را ارائه دهد که توسط توسعه دهندگان در توسعه و ارائه برنامه های کاربردی خود قابل مصرف باشد. دو نوع خدمات کاربردی وجود دارد. گروه اول با استفاده از پروتکل ها/فرمت های باز تحویل داده می شود. به عنوان مثال می توان به IMAP/SMTP، LDAP/vCARD، iCAL/ICS، XMPP، OpenID، OPML اشاره کرد.
همه ابرها باید این پروتکل ها/فرمت های باز را ارائه دهند تا توسعه دهندگان بتوانند بدون نیاز به بازنویسی برنامه خود بین ابرها حرکت کنند. گروه دوم به عنوان خدمات وب، اغلب اختصاصی به ابر (بنابراین وسیله ای برای تمایز) ارائه می شود و شامل خدماتی مانند پرداخت ها، موجودی می باشد.
← مرکز محاسبات سریع شبیهسازان امیرکبیر →
اینجا کلیک کنید!
6) مقیاس خودکار (استقرار و فراموش کردن آن)
اگر همه چیز برابر باشد، یک توسعهدهنده توانمند باید بتواند در فضای ابری مستقر شود و به پنج میلیارد بازدید از صفحه در ماه برسد، بدون اینکه به «مقیاس» فکر کند. فقط کد را بنویسید، رایانه ابری بقیه کارها را انجام می دهد.
آیا این دست یافتنی است؟ امروز نه. هیچ رایانه ابری به طور خودکار برنامه ها را مقیاس نمی کند. بخشی از مشکل در لایه حالت نهفته است. بخشی از مشکل در معنای مقیاس بندی نهفته است. مقیاس مقیاس چیست؟ پاسخگویی؟ مقیاس بندی لایه حالت (به عنوان مثال پایگاه داده) یک هنر سیاه است. مقیاس بندی لایه کاربردی یا لایه دارایی های ایستا تا حدی به تعادل بار و ذخیره سازی متکی است.
7) تعادل بار سخت افزاری
رایانه ابری باید ابزاری را برای دستیابی به پنج میلیارد بازدید از صفحه در ماه فراهم کند. من آن شماره را انتخاب کردم زیرا بزرگ است. اگر در حال نوشتن برنامه ای هستید و می خواهید بتوانید به مقیاس فوق العاده ای دست پیدا کنید، پاسخ نباید این باشد که از ابر روی ابر «خصوصی» سرورهای اختصاصی خود حرکت کنید.
البته، اگر همانطور که توضیح دادیم رایانه ابری باز است، می توانید ابر خود را بسازید. همچنین درست است که اگر می خواهید زحمت بکشید، می توانید برق خود را از زغال سنگ تولید کنید. اما چرا ناراحتی؟ متعادلکنندههای بارگذاری نرمافزار شما را به هیچکدام از ظرفیت مورد نیاز برای دستیابی به ۵ میلیارد بازدید از صفحه در ماه نزدیک نمیکنند. پیشرفته ترین حالت متعادل کننده بار سخت افزاری است.
8) ذخیره سازی به عنوان یک سرویس
فضای ذخیره سازی باید به عنوان یک سرویس در دسترس توسعه دهندگان باشد. در جایی که امروزه این کار انجام می شود، با استفاده از یک API اختصاصی انجام می شود و نشان دهنده قفل کردن است. سرویس ذخیره سازی باید به مشتریان این امکان را بدهد که مقادیر بی پایانی از فضای ذخیره سازی مصرف کنند و فقط برای آنچه استفاده شده است بپردازند. اشیاء در سرویس ذخیره سازی باید توسط توسعه دهندگان به عنوان اشیاء به جای گره در یک درخت سلسله مراتبی قابل دسترسی باشند. به این ترتیب توسعه دهندگان نیازی به درک سلسله مراتب ندارند.
WebDAV میتواند یک نسخه پروتکل باز از سرویس ذخیرهسازی باشد، اما نمیتواند انتزاع برخورد با اشیاء را بهعنوان اشیا به جای گرهها در یک درخت سلسله مراتبی ارائه کند. در حال حاضر، من معتقد نیستم راه حل معقولی برای مشکل وجود داشته باشد که انحصاری هم نباشد. ما باید برنامه ای را توسعه دهیم که باز و رایگان باشد.
9) “ریشه”، در صورت نیاز
فروشنده رایانه ابری نمی تواند به همه چیزهایی که یک توسعه دهنده یا برنامه ممکن است نیاز داشته باشد یا بخواهد انجام دهد فکر کند. بنابراین ابر باید توسط توسعهدهنده قابل هک و توسعه باشد و این به معنای یک حساب اداری است که به توسعهدهنده اجازه میدهد تا ابر را مطابق با نیازهای خاص خود شکل دهد و قالببندی کند. طبق تعریف، رایانههای ابری باید بر روی نوعی فناوری مجازیسازی ساخته شوند، بنابراین توسعهدهنده هرگز «ریشه» در فضای ابری ندارد، بلکه فقط «ریشه» را در قسمت توسعهدهنده ابر دارد.
سیستم عامل ها برای رایانش ابری مهم نیستند
مردم اغلب «سرزمین کاربری» را با سیستم عامل اشتباه می گیرند. یک سیستم عامل ابزاری را برای ارتباط کاربر با سخت افزار فراهم می کند. سرزمین کاربر، به ویژه در زمینه سرور (مجازی) “جایی که چیزها زندگی می کنند” است. ریشه سند آپاچی کجاست؟ پلاگین ها کجا نصب می شوند؟
در Joyent، ما از Solaris Express به عنوان پایه ای برای توزیع Solaris استفاده می کنیم. دارای یک سرزمین کاربری کاملا ساده شده است که برای برنامه های کاربردی وب طراحی شده است، نه برای رایانه های لپ تاپ، رابط های کاربر گرافیکی، کتابخانه های mp3. توسعه دهندگان به سرزمین کاربر اهمیت می دهند، نه سیستم عامل. عالی نیست اگر وارد فضای ابری خود شوید و ببینید:
/code
/frameworks
/binaries
چگونه این را گسترش دهیم تا ابر کاملاً “RESTful” باشد و همه چیز فقط یک URI باشد؟
انتخاب سیستم عامل (و متعاقب آن فناوری مجازی سازی) برای ارائه دهنده خدمات رایانش ابری حیاتی است. فرقی نمیکند Solaris Zones یا Xen را انتخاب کنیم، VMWare ESX، Linux KVM یا Windows Server 2008 به شما در مورد توانایی رایانه ابری برای مقیاسپذیری قابل اعتماد میگوید. توسعهدهندگان باید به انتخابهایی که فروشنده رایانش ابری آنها انجام میدهد اهمیت دهند، زیرا تا حدی به توانایی ابر در مقیاسپذیری اشاره میکند. اما برای استفاده از ابر، استقرار یک برنامه، تفاوتی ندارد.
مدل های کسب و کار
من صحبت در مورد مدل کسب و کار یک رایانه ابری را کنار گذاشتم، زیرا بهتر است این موضوع به فروشنده واگذار شود. مسائل مربوط به وجود یا عدم وجود قرارداد، اینکه آیا می توان با کارت اعتباری پرداخت کرد، آیا صورتحساب ساعتی یا ماهانه وجود دارد، این موارد برای تعریف رایانه ابری مهم نیست. در این زمینه ها است که فروشندگان می توانند نوآوری و تمایز ایجاد کنند.
معرفی CloudScore
نه عاملی که یک رایانه ابری را تشکیل میدهند، میتوانند توسط شما، خریدار، برای هر رایانه ابری موجود برای تعیین «CloudScore» اعمال شوند. ارائه شده Joyent’s Accelerator در حال حاضر امتیاز CloudScore 7 از 9 را کسب می کند. ما سخت کار می کنیم تا به Cloud 9 برسیم.
دیدگاهتان را بنویسید