سرویس های ابری SaaS و PaaS ، مزایا و معایب آن و ارتباط آن با API

آشنایی کامل با Software as a Service و Platform as a Service

0 46

رایانش ابری دارای سرویس‌‌های  (PaaS (Platform as a Service و (SaaS (Software as a Service است و یک الگوی جدید در فناوری اطلاعات است که بدون محدودیت مکانی، دسترسی به استخری (Pool) از منابع سیستمی و خدمات سطح بالا را فراهم می‌کند. این موضوع می‌تواند در بستر اینترنت فراهم شود.

رایانش ابری درسال ۲۰۰۶ با خدمات وب آمازون (AWS) معرفی شد و در ادامه شرکت‌های گوگل و مایکروسافت نیز خدمات ابری خود را ایجاد کردند. در سال ۲۰۱۰ شرکت راک اسپیس و ناسا به‌صورت مشترک نرم‌افزار متن‌باز ابری خود را با عنوان اپن‌استک (OpenStack) رونمایی کردند.
خدمات رایانش ابری شامل سه مدلIaaS (Infrastructure-as-a-Service) ،  SaaS (Software-as-a-Service)  و PaaS (Platform as a Service) است و طبق این معماری همه چیز را می‌توان به صورت ابری و بر بستر وب ارائه کرد.

 

معماری رایانش ابری چیست؟

در حالت کلی و جامع ترین نوع معماری ، رایانش ابری شامل ۵ لایه اصلی است.
  1.  کاربر (Client)
  2.  نرم افزار به عنوان سرویس (SaaS)
  3.  بستر به عنوان سرویس(PaaS)
  4.  زیرساخت به عنوان سرویس(IaaS)
  5.  سرور(Servers)

۱. لایه اول رایانش ابری : کاربر(Client)

کاربر در رایانش ابری، سخت افزار یا نرم افزاری است که برای تحویل برنامه‌های ابر فعالیت می‌کند و وظیفه رساندن سرویس به دست User را دارد. به طور کلی به نرم افزار و سخت افزاری که به تنهایی کارایی نداشته و صرفاً یک سخت افزار یا نرم افزار خاموش است ، کاربر گفته می شود. از جمله کاربرهایی که زیاد با آنها مواجه شدید می‌توان به گوگل کروم، نرم افزار گوگل درایو، نرم افزارone Drive و … نام برد.

۲. نرم افزار به عنوان سرویس (Software as a service)

امروزه کسب و کارهای مختلف برای سهولت و سرعت در انجام امور خود مجبور به استفاده از نرم افزارهای مختلف هستند. در گذشته اغلب از نرم افزارهای تحت ویندوز برای این کار استفاده می‌شد اما نرم افزار تحت ویندوز محدودیت های فراوانی داشت و با دنیای تکنولوژی همگام نبود. مثلا برای استفاده از یک نرم افزار تحت ویندوز کاربر باید حتما از سیستمی که نرم افزار روی آن نصب بود استفاده می‌کرد درنتیجه نمی‌توانست از محیطی خارج از محیط کاری به اطلاعات خود دسترسی داشته باشد. اگر سیستم دچار نقص فنی می‌شد تمام اطلاعات ذخیره شده روی هارد دیسک از بین می‌رفت. اما با ورود اینترنت و بدنبال آن ظهور رایانش ابری نرم افزارهای جدیدی به بازار عرضه شد که مشکلات سابق را نداشتند. این نرم افزارها به SaaS یا Software as a Service موسوم هستند. در واقع SaaS یک مدل برای ارائه  نرم افزارهایی است که بر بستر اینترنت به کاربر ارائه می شود. این نرم افزارها به صورت کامل در مالکیت کاربر قرار نداشته و کاربران به صورت اشتراکی از خدمات نرم افزار بهره‌مند می‌شوند. شرکت ارائه دهنده، نرم افزار خود را بر روی بستر یک شرکت ثالث قرار می‌دهند و مدیریت نرم افزار از لحاظ پیش نیازهای سیستمی، به عهده شرکت ثالث می‌باشد. در این مدل، کاربران برای دسترسی به نرم افزار ارائه شده، از اینترنت استفاده می کنند و نیازی به نصب و دانلود آن بر روی سیستم شخصی خود ندارند و شرکت ارائه دهنده اصلی سرویس، مدیریت تمامی مسائل فنی مانند داده‌ها، سرورها و ذخیره سازی اطلاعات را برعهده دارند.

 

 

تاریخچه SaaS

ظهور نرم افزارهای کاربردی برای اولین بار در دهه ۱۹۶۰ متولد شد. در آن زمان شرکت آی بی ام و سایرین برای امور مربوط به کسب و کار خود از روشی با عنوان رایانش همگانی یا Utility Computing  استفاده می‌کردند. دراین روش یک شرکت پشتیبانی همه یا بخشی از امور مربوط به رایانه خود را به شرکت دیگر واگذار می‌کند. SaaS یا نرم افزار به عنوان سرویس در ابتدای پیدایش رایانش ابری مورد توجه کمپانی‌های بزرگ قرار نگرفت حتی شرکت‌هایی مانند مایکروسافت و اوراکل نیز در سالهای اولیه SaaS را نادیده گرفتند. در آن زمان دسترسی به اینترنت و سرعت آن مشکلی بود که اغلب کاربران با آن روبرو بودند و اتصالات اینترنتی حداکثر سرعتی معادل ۵۶ کیلوبیت داشتند در نتیجه نرم افزار SaaS  نمیتوانست مورد استفاده کاربران قرار گیرد.
با توسعه اینترنت در سال ۱۹۹۰ مدلی جدید از محاسبات متمرکز پدیدار شد که ASP نام گرفت. (Application Service Providers)  هدف اصلیASP ها در واقع کاهش هزینه ها در کنار مدیریت متمرکز در کسب و کار بود و SaaS توسعه ی مدل ASP بود.

مزایا SaaS

استفاده از SaaS، مزایای زیادی برای شرکت ها و کارمندانشان به همراه دارد که، به میزان قابل توجهی، زمان و هزینه را صرف کارهای خسته کننده ای مانند نصب، مدیریت و ارتقای نرم افزارها می کنند. با استفاده از این مدل، صرفه جویی زیادی در زمان می شود که می توان آن را صرف پرداختن به سایر مسائل و موضوعات فنی در سازمان کرد.

 

مشخصه ها و ویژگی های SaaS

  •  از یک موقعیت مرکزی مدیریت می شود
  •  روی یک سرور راه دور میزبانی می شود
  •  از طریق اینترنت در دسترس می باشد
  •  کاربر نیازی به بروزرسانی نرم افزاری یا سخت افزاری ندارد(بروزرسانی خودکار).
  •  عدم نیاز به تجهیزات ذخیره سازی
  •  قابلیت ترکیب با برنامه های کاربردی دیگر

 

موارد استفاده از SaaS

  •  چندین وضعیت مختلف وجود دارند که استفاده از SaaS می تواند مفید باشد.
  •  اگر شما یک استارتاپ یا شرکت کوچکی هستید که به سرعت نیاز به استفاده از تجارت الکترونیکی دارید، اما زمانی برای مسائل نرم افزاری و سرور ندارید.
  •  برای پروژه های کوتاه مدت که نیاز به همکاری سایرین دارید.
  •  اگر از برنامه هایی استفاده می کنید که به صورت معمول، مورد استفاده همگان نمی باشند، مانند نرم افزارهای مالیاتی
  •  برای برنامه هایی که نیاز به دسترسی به وب و تلفن همراه دارند.

 

امنیت در نرم افزار SaaS

امروزه امنیت در استفاده از رایانش ابری بطور کل و دراستفاده از نرم افزار SaaS بطور خاص بحث بسیار مهمی است و اغلب کاربران در استفاده از آن دغدغه‌های خاص خود را دارند. راهکاری که توسط مختصصان علوم رایانه ارائه شده این است که داده در ابر باید به صورت رمزنگاری شده ذخیره گردد و برای جلوگیری از دسترسی مستقیم مشتریان به داده های اشتراک گذاری شده می توان از پراکسی و واسطه استفاده کرد.
از نمونه‌هایی که امروزه می توان به آن اشاره کرد سرویس Amazon EC2 ، Azure Platform ، Sun Parascale می باشد.

 

 

۳. لایه سوم رایانش ابری : بستر به عنوان سرویس (Platform as a Service)

 

 این لایه قسمتی از رایانش ابری است که نرم افزارهای SaaS روی آن نصب می گردد و این لایه نرم افزارها را به عنوان یک سرویس بر روی بستر شبکه (اینترنت) ارائه می‌دهد. بستر به عنوان سرویس (PaaS) در اصل یک بسته نرم افزاری جامع است که امکاناتی مانند تجمیع ، تبادل پیغام ، اطلاعات و میان افزار دارد که ارتباط بین لایه SaaS و IaaS را برقرار می کند.
PaaS یک چارچوب (framework) برای توسعه دهندگان فراهم می‌کند که می‌توانند از آن برای ایجاد برنامه‌های سفارشی استفاده کنند. در این مدل تمامی امور مربوط به سرور، ذخیره‌سازی و شبکه توسط یک شرکت یا ارائه دهنده به عنوان واسط، مدیریت می‌شود، در این صورت توسعه دهندگان می‌توانند تنها بر روی توسعه و مدیریت برنامه خود تمرکز کنند.
 PaaS به کاربران این امکان را می‌دهد با استفاده از ابزارهای ارائه شده به وسیله سرویس دهنده، برنامه‌های کاربردی و نرم افزار ایجاد نمایند. این سرویس می‌تواند شامل ویژگی‌های از پیش تنظیم شده‌ای باشد که مشتریان می‌توانند از آن‌ها استفاده کنند و ویژگی‌های مورد نیاز خود را انتخاب و یا ویژگی‌هایی که برای آن‌ها مفید نیستند را حذف کنند. در سرویس ابری Platform as a Service برنامه‌های کاربردی برای کاربران مدیریت و پشتیبانی می‌شوند. سرویس‌ها به صورت مداوم آپدیت و به روزرسانی می‌شوند و ویژگی‌های جدید اضافه خواهند شد.
نحوه ارائه سرویس رایانش ابری در مدل PaaS مشابه Saas می‌باشد، با این تفاوت که به جای اینکه نرم افزار برروی اینترنت عرضه شود، یک بستر برای ساخت و ارائه نرم افزار، در اختیار توسعه دهنده قرار می‌گیرد. این بستر برروی وب ارائه شده و این آزادی را به توسعه دهندگان می‌دهد که تمرکز خود را برروی ساخت نرم افزار قراردهند و نگرانی راجع به سیستم‌های عملیاتی، بروزرسانی نرم افزارها، ذخیره‌سازی و زیرساخت نداشته باشند.
 PaaS به دارندگان کسب و کار این اجازه را می‌دهد که برنامه‌های خود را با مولفه‌های خاصی که بر روی این مدل قراردارد، طراحی و ایجاد کنند. این برنامه ها یا میان افزارها، مقیاس پذیرند و به راحتی در دسترس قرارمی‌گیرند، چون بر پایه مولفه‌های خاصی از Cloud بنا شده‌اند.

 

مزایای PaaS

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

 

ویژگی‌ها و مشخصات PaaS

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

 

موارد استفاده از PaaS

اگر چندین توسعه دهنده برروی یک پروژه یکسان فعالیت می‌کنند و یا درصورتی که سایر فروشندگان بایستی در پروژه سهیم باشند، PaaS می‌تواند سرعت و انعطاف‌پذیری را در کل فرآیندهای اجرایی، بهبود ببخشد. همچنین در صورتی که می خواهید برنامه سفارشی شده خود را ایجاد نمایید، PaaS می تواند برای شما مفید باشد. این سرویس ابری هزینه‌های زیادی را کاهش داده و چالش‌هایی را که در کندی توسعه و پیاده سازی یک برنامه اثر دارند را برطرف می‌سازد.
در اینجا به تعدادی از شرکت ها که از PaaS  به عنوان سرویس استفاده می‌کنند اشاره می‌کنیم.
AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App Engine, Apache Stratos, OpenShift

 

 

۴. زیرساخت به عنوان سرویس  (Infrastructure as a Service)

خدمات زیرساختی رایانش ابری که با نام زیرساخت به عنوان سرویس(به اختصار IaaS)، شناخته می‌شوند، از منابع محاسباتی خودکار و بسیار مقیاس پذیر ساخته شده اند. IaaS خدمات خود را به صورت کامل برای دسترسی و نظارت بر چیزهایی مانند محاسبات، شبکه سازی، ذخیره سازی و سایر سرویس ها فراهم می‌سازد و به کسب و کارها اجازه می‌دهد تا به جای خریداری منابع سخت افزاری ثابت، بر اساس نیاز و تقاضای خود از منابع استفاده کنند. ارائه این لایه به مشتریان در اصل مدل پیشرفته و تکامل یافته عرضه سرورهای مجازی خصوصی است. در مجموع می توان با IaaS ، زیر ساخت کامپیوتر و محیط پلتفرم مجازی سازی را مانند یک سرویس در اختیار کاربران قرار داد.
این سرورهای ابری معمولا از طریق یک داشبورد یا API در اختیار مشتری قرار می‌گیرد و بعد از آن مشتری‌های IaaS، اختیار کاملی بر روی تمامی زیرساخت ارائه شده دارند. IaaS قابلیت‌ها و فناوری‌های مشابهی مانند یک دیتاسنتر سنتی ارائه می‌کند، با این تفاوت که نیازی به مدیریت و نگهداری فیزیکی از سرورها نمی‌باشد. کاربران IaaS می‌توانند برروی سرورها و هاردهای خود دسترسی مستقیم داشته باشند، اما این دسترسی از طریق یک دیتاسنتر مجازی که برروی ابر قرار دارد، انجام می‌شود.
برخلاف SaaS و PaaS، در این مدل، کاربران مسئولیت مدیریت و بررسی مواردی همچون برنامه‌ها، سیستم عامل‌ها، زمان اجرا، میان افزارها و داده‌ها را برعهده دارند. با این حال، ارائه دهندگان IaaS، سرورها، هارد دیسک‌ها، شبکه، مجازی سازی و ذخیره سازی را مدیریت می‌کنند. بعضی ارائه دهندگان نیز خدمات بیشتری خارج از لایه مجازی ساز، مانند پایگاه‌های داده و صف‌های پیام را نیز ارائه می‌کنند.

 

مزایای IaaS

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

 

ویژگی ها و مشخصات IaaS

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

 

موارد استفاده از IaaS

همانند استفاده از SaaS و PaaS، موقعیت‌هایی وجود دارند‌ که استفاده از IaaS مفید واقع می‌شود.
اگر شما یک استارتاپ با شرکت کوچک هستید که نمی‌خواهید زمان و هزینه زیادی صرف ایجاد سخت‌افزار و نرم‌افزاری نمایید، IaaS یک گزینه عالی برای شما محسوب می‌شود. IaaS همچنین برای شرکت‌های بزرگ مفید است که به دنبال دسترسی کامل به نرم افزارها و زیرساخت شان هستند، اما تمایل دارند که فقط در موارد مصرف خود هزینه کنند.
برای شرکت‌هایی که به سرعت در حال رشد هستند نیز IaaS گزینه مناسبی است، چون شما مجبور نیستید که با توجه به تغییرات و نیازهای خود، از یک سخت‌افزار یا نرم‌افزار ثابت استفاده نمایید. همچنین در مواردی که در مورد نیازهای خود مطمئن نیستید، IaaS انعطاف پذیری بالایی از خود نشان می‌دهد و برحسب نیاز شما مقیاس پذیر است.

لایه آخر رایانش ابری : سرور Server

لایه سرور به سخت‌افزار و نرم‌افزارهایی اطلاق می‌شود که به صورت کامل وظیفه پردازش را در ابر به عهده دارند.
به عنوان نمونه می‌توان به پردازنده‌های چند هسته ای موازی و سوپرسرورهای پایه ابر اشاره کرد.
برای درک بهتر این سرویس‌ها آنها را به زبان ساده تر همراه یک مثال بیان می‌کنیم.

 

لایه IaaS یا Infrastructure as a Service

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

 

لایه PaaS یا Platform as a Service

در این حالت خانه‌هایی به صورت خام و پیش‌ساخته (PaaS) در اختیار شما قرار می‌گیرد که در مکان‌های مطمئنی (IaaS) قرار گرفته‌اند. شما آزادید تعیین کنید ساختمان شما چند طبقه باشد و طراحی داخلی آن کاملا در اختیار شما خواهد بود و همچنین هزینه‌ی شما به صورت چشم‌گیری کاهش خواهد یافت.

 

لایه SaaS یا Software as a Service

این قبیل خدمات مانند هتل‌ها می‌مانند، شما هیچ انتخابی در مورد مکان‌ آن‌ها، طراحی و یا ساخت آن‌ها ندارید و تنها حق انتخاب شما در این است که هتلی نزدیک به سلیقه و بودجه خود انتخاب نمایید چرا که همه چیز از قبل در هتل‌ها طراحی و مستقر شده است.

 

API و سرویس های ابری

زمانی که با یک نرم افزار SaaS کار می‌کنید، می توانید به وسیله API  با نرم افزارهای دیگر ارتباط برقرار کنید، به این معنی که نرم افزار قابلیت ترکیب با نرم افزارهای کاربردی دیگری که مورد نیاز کاربر است را داراست.
به کمک سرویسهای ابری می‌توانید سریعا برنامه‌های مختلف بسازید، آنها را گسترش دهید و مقیاس بندی کنید. این برنامه ها می توانند برای وب، موبایل و API باشند. از فناوری های بومی ابری و رویکردهایش مانند نگهدارنده ها، کوبرنتیز، معماری های میکرو سرویس، ارتباطات مبتنی بر API و DevOps استفاده کنید.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.