۱۳۸۷ شهریور ۲, شنبه

Cloud Computing و متن‌باز

با گسترش مفاهیمی چون نرم‌افزار به عنوان سرویس یا Software as a Service یا SaaS مفهوم جدیدی مثل Cloud Computing بیشتر و بیشتر رایج می‌شود.
به طور کل Cloud Computing یعنی محاسباتی که با استفاده از کامپیوتر انجام می‌شود (Computing) بر پایه اینترنت (Cloud). به بیان ساده‌تر Cloud Computing یعنی در اختیار قراردادن قدرت محاسبات رایانه‌ایی در هرجایی که دسترسی به اینترنت وجود دارد.
شرکتهای ارائه دهنده خدمات Cloud Computing معمولا شما را بر اساس میزان استفاده‌ایی که از منابع سیستمی کرده‌اید شارژ خواهند کرد، چیزی مثل یک قبض برق. بدین‌ترتیب تقریبا تمامی نگرانیهای Scale up و حتی Scale Down هم رفع می‌شوند، دیگر نیازی نیست که برای در دسترس بودن برنامه تحت‌وب خود در اوقات اوج ترافیک، سخت افزارهایی را خریداری کنید که درمواقع ترافیک پائین بیکار باشند، و یا چون بودجه کافی ندارید، با نذر و دعا برنامه خود را در ساعات اوج ترافیک سرپا نگه دارید.
شرکتهای بزرگی مثل Google و Amazon خیلی پیشتر از آنکه این نیاز واقعا توسط شرکتهای کوچکتر احساس شود معماری خود را بر چنین پایه و اساسی بنا نهادند. وحالا که این نیاز واقعا توسط شرکتهای کوچکتر و بازهم کوچکتر احساس می‌شود، امکان دسترسی عموم را به چنین سرویسهایی فراهم آورده‌اند. هرچند که تکنولوژیهای متن‌بازی نیز وجود دارد که به شرکتهای متوسط این اجازه را می‌دهد که برپایه سخت‌افزارهای موجود خود، در دسترس بودن Computing را جهت رفع نیازهای خود بهبود بخشند.
با توجه به آنچه که گفته شد، ۳ روش متفاوت برای بهره‌مند شدن از امکانات Cloud Computing وجود دارد:
  • استفاده و مدیریت کامل محیط Computing که به صورت مجازی (در Cloud) در اختیار شما قرار داده شده
  • توسعه و ارائه برنامه‌ها بر روی محیطی که هیچ‌گونه کنترلی روی آن ندارید
  • ساخت یک Cloud از پایه
روش نخست بنا به دلایل متعدد بهترین گزینه می‌باشد، نیازی به تهیه سخت‌افزارهای گرانقیمت، امکانات پیشرفته نگه‌داری و مراقبت، دغدغه‌های پهنای باند و ...، هیچکدام وجود ندارند. و در عین حال به شما این اجازه داده می‌شود که محیط را همانگونه که می‌خواهید و با توجه به نیازها و بودجه خود بسازید. معروفترین شرکت ارائه کننده چنین راهکارهایی Amazon با سرویس EC2 هست.

روش دوم مناسب شرکتها و افرادی می‌باشد که نمی‌خواهند حتی دغدغه مدیریت منابع تخصیص داده شده را داشته باشند، ترجیح می‌دهند همه چیز برای اجرا شدن هرچه سریعتر و بهتر برنامه‌های آنها فراهم باشد. بدیهی است که در چنین شرایطی خود شرکت ارائه کننده خدمات اقدام به محدود کردن منابع می‌کند. معروفترین چنین راهکارهایی Google App Engine می‌باشد. در سرویس Google حتی یک چارچوب برنامه‌نویسی مشخص وجود دارد که شما ملزم با پیروی از آن هستید، در چنین شرایطی شما حتی نباید نگران مسائل امنیتی باشید. بهای پرداخت شده به ازای تمامی این امکانات محدود شدن شما می‌باشد.

و در نهایت روش آخر که پیچیده‌ترین و هزینه‌برترین گزینه می‌باشد. در این شیوه بعد از فراهم کردن تمامی امکانات سخت‌افزاری مورد نیاز،‌شما نیاز به یک نرم‌افزار مدیریت کننده دارید. نرم‌افزارهای متن‌باز متعددی جوابگوی این نیاز هستند که بهترین آنها در حال حاضر Hadoop به نظر می‌رسد. Eucalyptus و 10gen گزینه‌های مطرح بعدی هستند.

هیچ نظری موجود نیست:

ارسال یک نظر