آشنایی کامل با معماری رایانش ابری
معماری رایانش ابری، مبتنی بر ارائه خدمات بهصورت مجازیسازی شده است. با استفاده از کلود کامپیوتینگ (Cloud Computing) در هر مکانی و با هر دستگاهی اگر به اینترنت دسترسی داشته باشید، میتوانید از خدمات این سیستم و شبکه استفاده کنید. افراد و شرکتهای زیادی از رایانش ابری در حداقل قسمتی از کارهای روزانه خود استفاده میکنند.
Architecture کلود کامپیوتینگ مبحثی است که امروز و در این مقاله قرار است تا به بررسی آن بپردازیم. اگر هنوز با سیستم نحوه ارائه خدمات مبتنی بر ابر آشنا نشدهاید یا کنجکاو هستید تا درباره این موضوع اطلاعات بیشتری کسب کنید، پیشنهاد میکنیم تا انتهای مقاله ما را همراهی کنید.
معرفی جامع رایانش ابری
Cloud Computing یا رایانش ابری نامی برای دستهبندی خدماتی است که اغلب توسط شرکتهای فعال در حوزه فناوری ارائه میشود. آیا تابهحال از گوگل درایو استفاده کردهاید؟ این سرویس یکی از معروفترین مواردی است که میتوان گفت تقریبا هرکسی حداقل نام آن را شنیده است.
با ثبتنام در Google Drive (با استفاده از ایمیل خود) میتوانید تا بدون نیاز به تهیه هیچ نوع فلش، هارد، دیسک، دیویدی و… و همچنین بهصورت کاملا رایگان از 15 گیگ فضای ذخیرهسازی (Storage) بهره ببرید. لازم به ذکر است که سرویسدهی ارائهدهندگان computing ابری تنها به این مورد محدود نیست. امروزه انواع مختلفی از رایانش (بهصورت ابری) وجود دارد که در لیست زیر آنها را معرفی کردهایم:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
- Functions as a Service (FaaS)
پس در تعریف نهایی رایانش ابری باید عنوان کرد که به هر نوع خدمات کامپیوتری (فضای ذخیرهسازی، منابع پردازشی، قدرت محاسباتی و…) که در بستر اینترنت ارائه میشود، Cloud Computing میگویند.
لازم به ذکر است که در مقاله آشنایی جامع با انواع سرویس های رایانش ابری جداگانه به تحلیل و بررسی کامل این مبحث پرداختهایم.
معماری رایانش ابری
در ابتدا باید گفت که معماری رایانش ابری ترکیبی از دو معماری SOA (Service Oriented Architecture) و EDA (Event Driven Architecture) است. SOA معماری سرویسگرا و EDA معماری مبتنی بر رویداد طلقی میشود. Architecture کلود کامپیوتینگ از دو قسمت اصلی تشکیل شده است.
- Frontend
- Backend
این دو اصطلاح را در طراحی و توسعه سایت و وب اپلیکیشنها شاید شنیده باشید. زمانی که صحبت از هر نوع زیرشاخه مربوط به شبکه و اینترنت میشود، همواره این دو مورد ظاهر خواهند شد. زیرا که برای برقراری ارتباط یک کاربرد بهعنوان انسان با ماشین و پردازشهای کامپیوتری باید واسطههایی وجود داشته باشد. در ادامه به بررسی دقیقتر Frontend و Backend همراه با ذکر مثالهایی برای درک بهتر آنها پرداختهایم.
Front-End
هر سازهای باید ظاهری داشته باشد تا بتواند با انسان یا بهتر است بگوییم کاربران خود ارتباط برقرار کند. برای مثال یک ماشین را در نظر بگیرید. در دل خودروها چیزی به نام موتور وجود دارد که همان قلب تپنده است و نیروی محرک برای به حرکت درآوردن سازه را تامین میکند. اما چگونه باید این نیرو را کنترل کنیم؟
بله درست است! با استفاده از گاز، کلاج، ترمز و فرمان. این سه المان نشاندهنده بخش Front-End خودرو است. حال در رایانش ابری نیز برای کنترل و مدیریت منابعی (Storage، computing، Ram، Cpu و…) که در اختیار مصرفکنندگان قرار میگیرد، نیاز است تا اهرمهایی وجود داشته باشد.
اهرمهای کنترل در معماری رایانش ابری وبسایتها، اپلیکیشنها، نرمافزارهای میزبان و… هستند. برای مثال مرورگرهای اینترنت (گوگل کروم، موزیلا، اوپرا) در کنار صفحات اینترنتی شرکتهای ارائهدهنده این سرویس، یک Frontend تشکیل میدهد.
Back-End
همواره سازوکار اصلی یک سیستم در قسمت Backend آن اتفاق میافتد. همانند خودرویی که مثال زدیم، موتور، گیربکس، سیلندر، شمع، رادیاتور و… همهوهمه جزئی از پشتصحنه اتفاقاتی هستند که قرار است بیفتد. حال این اتفاق در خودرو حرکت بوده و در رایانش ابری حل مسائل مربوط به کامپیوتر است.
زمانی که یک گوشی هوشمند را در دست میگیریم، با چند حرکت ساده روی اسکرین آن میتوانیم به دنیای از دادهها و اطلاعات در کنار هر نوع سرویسی دست پیدا کنیم و یا هر نوع بازی را اجرا کرده و با هرکسی در هرجای دنیا ارتباط برقرار کنیم. 90 درصد استفادهکنندگان از گوشی هرگز با سلسله رخدادهایی که در پشت پرده رخ میدهد آشنا نیستند و شاید بعضیها حتی روحشان هم از این اتفاقات خبردار نیست.
در معماری رایانش ابری نیز زمانی که برای شما 15 گیگ فضای ذخیرهسازی در نظر گرفته میشود، ممکن است تا میلیونها کد، هزاران کیلومتر کابل، صدها نفر نیروی کاری و بسیاری دیگر از منابع درگیر باشند. تمامی مواردی که در پشت پرده و بهصورت چرخدنده وار دستبهدست هم میدهند تا یک سرویس ابری ارائه گردد، در دستهبندیهای زیر قرار میگیرند.
- Application
- Service
- Cloud Runtime
- Storage
- Infrastructure
- Management
- Security
- Internet
بررسی کامل بخشهای Back-End از معماری رایانش ابری
در پشت پرده معماری رایانش ابری و سلسلهمراتبی که رخ میدهد تا یک سرویس ابری توسط شرکتهای ارائهدهنده به دست مصرفکننده برسد، عملیاتهای متعددی خوابیده است. اشاره کردیم که این عملیاتها و اتفاقات در 8 دستهبندی مختلف قرار میگیرند. حال برای درک بهتر مفهوم Architecture رایانش ابری به بررسی این 8 دستهبندی بهصورت کامل همراه با ذکر مثال میپردازیم.
Application
گفتیم که در قسمت Frontend معماری کلود کامپیوتینگ رابطی وجود دارد تا میان درخواستهای کاربر و ارائهدهنده سرویس پلی ایجاد کند. همین رابط کاربری خود از تعداد زیادی کدهای کامپیوتری مانند CSS، HTML، Java و… تشکیل شده است. همچنین نرمافزاری نیز که با استفاده از آن میتوانیم این کدهای کامپیوتری را بهصورت قابلفهم ببینیم، خود از الگوریتمهای فراوان و میلیونها کد خلق شده است.
اگر یک برگه از سایتی را باز کنید، با فشردن کلیدهای Cntrl + U میتوانید به مجموعه کدهای نوشته شده برای دیدن همان یک صفحه، دسترسی پیدا کنید. برای تبدیل این کدها به صفحهای که الان شاهد آن هستید، مرورگرتان میلیونها کد دیگر نیز اجرا میکند. تمامی این موارد در قسمتی به نام Application Backend قرار دارند.
Service
در قسمت بکند معماری رایانش ابری و بخش Service، خدمات متنوعی مانند زیرساخت بهعنوان سرویس (IaaS)، پلتفرم بهعنوان سرویس (PaaS)، نرمافزار بهعنوان سرویس (SaaS) و… وجود دارد. با استفاده از این سرویسهای مختلف و متنوع است که میتوان طیف گستردهای از مصرفکنندگان را جذب کرد.
برای مثال اگر یک توسعهدهنده اپلیکیشن باشید (مثلا اندروید یا IOS)، شرکتهای ارائهدهنده کلود کامپیوتینگ سرویسی مخصوص برای شما در نظر گرفتهاند که در آن هر نوع زیرساخت برای برنامهنویسی مانند منابع پردازشی، فضای ذخیرهسازی برای دیتابیس، نرمافزارهای برنامهنویسی مانند اندروید استودیو (در آخرین ورژن) و… وجود دارد. تنها نیاز خواهد بود تا هزینه لازم برای اشتراک ماهیانه یا سالیانه آن را پرداخت کنید.
Cloud Runtime
تابهحال VPS تهیه کردهاید؟ ویپیاس که مخفف Virtual Private Server و به معنای ماشین سرور خصوصی است، محیطی مانند یک کامپیوتر شخصی را در اختیار شما قرار میدهد. در VPSها همواره یکزمان با عنوان ران تایم وجود دارد که مدتزمان زندهبودن ماشین مجازی را از زمان تهیه آن نشان میدهد.
این ران تایم در کامپیوترهای شخصی نیز وجود دارد (البته با نام Uptime) و میتوانید با مراجعه به قسمت task manager و قسمت performance آن را ببینید. در نتیجه منظور از Cloud Runtima در معماری رایانش ابری، مدتزمان اجرای محیط پلتفرم خواهد بود.
Storage
یکی از دغدغههای اصلی شرکتهای بزرگ و توسعهیافته که میزان زیادی داده و اطلاعات حیاتی دارند، تهیه زیرساخت مناسب برای نگهداری از آنها در کنار تامین امنیت دادهها است. ازاینرو یکی از اصلیترین بخشهای Backed در معماری Cloud Computing، مربوط به Storage یا فضای ذخیرهسازی است.
مقاله امنیت در رایانش ابری و امنیت شبکه چیست؟ را از دست ندهید.
شرکتهای ارائهدهنده خدمات تحت عنوان رایانش ابری، حجم بالایی از منابع برای نگهداری از دادهها را در اختیار مصرفکننده قرار میدهند که سیاستهای حریم خصوصی در آنها بهصورت جامع و کامل رعایت شده است. همچنین منابع ارائه شده انعطافپذیری بالایی دارد، یعنی در هر زمان میتوان مقدار آن را افزایش داد و یا کم کرد و بر اساس میزان مصرف هزینه پرداخت میشود. تامین امنیت Storage در معماری رایانش ابری از اصلیترین اولویتهای شرکتهای ارائهدهنده است.
بنابراین یکی از اصلیترین بخشهای معماری رایانش ابری، فضای ذخیرهسازی یا Storage است.
Infrastructure
ستون فقرات Architecture رایانش ابری، Infrastructure یا زیرساختها است. تمامی ارگانها و سازمانهایی که دم از ارائه سرویس ابری میزنند، تعداد زیادی سرور در دیتاسنترهای خود دارند که توسط میلیونها کیلومتر کابل به همدیگر و به اینترنت متصل شده است. برای کنترل و مدیریت این حجم از منابع نیاز به نرمافزارهایی مخصوص مانند Hypervisorها است تا مثلا اگر سروری هزار ترابایت فضای ذخیرهسازی دارد، بتوان بهسادگی آن را به تعداد معین و مشخصی تقسیمبندی و سپس مدیریت کرد.
پس منظور از زیرساخت یا Infrastructure در معماری ابری و بخش Backend، سرورها، دیتا سنترها، کابلهای متصلکننده، نرمافزارهای مدیریت و کنترل، دستگاههای شبکه، فضاهای ذخیرهسازی و… است.
مقاله دیتاسنتر چیست؟ را مطالعه کنید.
Management
تمامی موارد ذکر شده در بخش Back-End معماری رایانش بهصورت ابری، باید توسط مؤلفههایی مدیریت شوند. برای مثال همین کابلهای اتصالی برای ایجاد ارتباط میان کاربران و زیرساختها، باید توسط افرادی نصب و نگهداری شوند. یا نرمافزارهای قسمت Application که گفته شد از میلیونها کد و الگوریتم تشکیل شدهاند، باید بر اساس نیاز روز آپدیت و بهروزرسانی شوند.
پس زمانی معماری کلود کامپیوتینگ تکمیل میشود که بخش دیگری تخت عنوان Management در Backend وجود داشته باشد تا مدیریت موارد نامبردهشده را در اختیار گیرد. حال مدیر میتواند یک انسان، یک ربات و یا حتی یک نرمافزار کامپیوتری باشد.
Security
اعتبار یک شرکت ارائهدهنده سرویس ابری در گرو امنیت زیرساختها است. مطمئنا اگر خبر نفوذ و هک به یک سازمان فعال در Cloud Computing توسط رسانهها پخش شود، هیچ شرکت بزرگی از خدمات آن استفاده نخواهد کرد. حتی شرکتهایی استفادهکننده نیز درخواست خروج را خواهند داد.
پس اگر کمپانیهایی مانند گوگل، آمازون، مایکروسافت و… دوست دارند در رقابت تنگاتنگ با رقیبان خود باقی بمانند، باید و باید امنیت منابع و زیرساختهای خود را در اولویت قرار دهند. بهخاطر همین است که در سال شاید بیش از میلیونها دلار صرف بهبود این مورد میکنند. چون بهشخصه خود من از سرویس شرکتی که امنیت ندارد برای ذخیره حتی یک فایل ورد استفاده نخواهم کرد، چهبسا که رایگان باشد.
Internet
دلیل محبوبیت این صنف و درآمدهای کلانی که برای ارائهدهندگان رایانش ابری حاصل میشود، اینترنت است. شاید بیش از 80 درصد استفادهکنندگان از خدمات رایانش ابری، در محلی بهدوراز دیتا سنترها هستند. پس اگر اینترنت وجود نداشت، رایانش ابری نیز در کار نبود.
با استناد بر موارد ذکر شده میتوان نتیجه گرفت که هر شرکتی باید اتصال اینترنت خود را همواره برقرار نگهداری تا خدمات رضایتبخشی برای مصرفکنندگان فراهم آورد. آخرین مورد از بخش Back-End معماری رایانش ابری مربوط به اتصال مداوم اینترنت و همواره آنلاین بودن سرویسها است.
مزایای معماری رایانش ابری
پیادهسازی بخشهای مختلف از Back-End و Front-End معماری رایانش ابری برای شرکتهای فعال در این حوزه مزایای فراوانی دارد که شامل:
- سادهسازی سیستم کلی رایانش ابری: برای اجرای حتی یک نوع سرویس از رایانش ابری نیاز به منابع در حجم بالا همراه با پیکربندی آنها است. ازاینرو معماری رایانش ابری سیستم نصب و پیادهسازی کلود کامپیوتینگ را بسیار راحتتر میکند.
- بهبود نیازهای پردازشات ابری: معماری Cloud Computing اولویتها را مشخص کرده و نیازهای اصلی برای راهاندازی یک سیستم ابری را نمایان میکند. همچنین با پیشرفت و گسترش خدماترسانی میتواند به بهبود نیازهای پردازشات ابری کمک کند.
- تامین امنیت بالا: با تفکیک مناسب بخشها و لایهها در معماری ابری، میتوان امنیت مناسب و سطح بالایی را در کل سیستم برقرار کرد. درنتیجه اعتبار و درآمد شرکت نیز رشد خوبی خواهد داشت.
- اعمال دسترسی بهتر به کاربران: به دلیل جدا بودن بخش Front-End در Architecture ابری از بخش Front-End، میتوان دسترسی بهتری برای کاربران اعمال کرد و روزبهروز نیز آن را بهبود بخشید.
- کاهش هزینههای عملیاتی: با مشخصبودن مسیر و لایههای معماری، در هزینههای زیادی بهمنظور اجرا و پیادهسازی رایانش ابری صرفهجویی خواهد شد.
مطالعه مقاله رایانش مه را پیشنهاد می دهیم.
معایب معماری رایانش ابری
بیایید در ادامه این بخش نگاهش به مهمترین چالشهای استفاده از رایانش ابری بیندازیم:
- در فضای ابری، برنامه شما (کاربران) روی سروری اجرا میشود که همزمان به شرکتهای دیگری که از منابع مشترک استفاده میکنند، خدمات میدهد. هرگونه رفتار حریصانه یا حمله DDOS علیه شرکتهای دیگر میتواند بر عملکردهای مشترک شرکت شما تأثیر بگذارد.
- علیرغم استانداردهای بالای نگهداری، گاهی اوقات ارائهدهندگان خدمات ابری مستعد قطعی و سایر مسائل فنی هستند. مشکلاتی از جمله قطع برق، اینترنت ضعیف، مسائل مربوط به تعمیر و نگهداری خدمات و غیره در فضای ابری کاملا اجتنابناپذیر است.
- متاسفانه بهخاطر تهدیدات امنیتی فضای ابری، هکرها بهراحتی به اطلاعات حساس شرکت دسترسی پیدا میکنند.
- اگر سازمانی از مماری رایانش ابری استفاده کند، در صورت نبود اینترنت به اطلاعات خود دسترسی ندارد. اتصال اینترنتی همیشه پایدار یکی از ضروریات رایانش ابری است.
انواع مختلف ابرها در رایانش ابری
یک کاربر میتواند بر اساس نیازهای کسب و کار خود در یکی از این چهار مدل فضای ابری مشترک شود:
- Private Cloud (ابر خصوصی): در این حالت، استقرار منابع محاسباتی منحصرا و بهطور کاملا اختصاصی تنها برای یک سازمان انجام میشود. شرکتهای بزرگ معمولا برای تعامل بهتر سراغ این نوع ابر میروند.
- Community Cloud (ابر اجتماعی): در این مورد منابع محاسباتی برای جوامع و سازمانها مستقر میشوند. شرکتها از این ابر برای ارائه منابع اطلاعاتی و خدمات به کاربران شبکههای اجتماعی استفاده میکنند.
- Public Cloud (ابر اجتماعی): این نوع ابر منابع را از طریق اینترنت در دسترس عموم کاربران میگذارد. در این حالت اداره منابع محاسباتی معمولا بر عهده یک سازمان تجاری، دانشگاهی یا با مالکیت دولتی است.
- ابر ترکیبی (Hybrid Cloud): این نوع ابر برای انواع مختلف تعاملات مورد استفاده قرار گیرد. همه کسبوکارهای میتوانند با ابر هیبریدی به مشتریان وصل شوند و همه برای برقراری ارتباط میان سازمانها کاربرد دارد. این روش استقرار منابع محاسباتی را با استفاده از ابرهای مختلف به یکدیگر متصل میکند؛ از اینرو ابر ترکیبی نامیده میشود.
رایانش ابری و نگرانیهای امنیتی
دلیل اصلی نگرانی کاربران در مورد رایانش ابری، امنیت آن است. ارائهدهندگان خدمات ابری خود به دادههای رمزگذاری نشده کاربران دسترسی دارند. خواه روی حافظه ذخیره شده باشد، خواه روی دیسک. حتی دادههایی که از دل شبکه منتقل میشوند هم در اختیار آنها قرار میگیرد. این یکی از بزرگترین نگرانیهای سازمانهاست. حتی گاهی دولتها تصمیم میگیرند در دادههای خصوصی کاربران سرک بکشند، بیآنکه کلاینت از این اتفاق بویی ببرد. این مسئله برای سازمانهایی که بینهایت به حریم خصوصی کاربران اهمیت میدهند و در قبال حفظ آن متعهد شدهاند، قابل قبول نیست.
برای مطالعه بیشتری کلاینت چیست را ازدست ندهید.
ارائهدهندگان خدمات ابری برای تامین امنیت دادهها، شبکهها و سیستمها، معمولا با یک سازمان غیرانتفاعی TCG (گروه محاسباتی مورد اعتماد) همکاری میکنند. TCG مشخصات خاصی برای ایمنسازی سخت افزار، بهبود امنیت شبکه و ایجاد درایوهای رمزگذاری خودکار ارائه میدهد. این مشخصات بهعنوان یک سیاست واحد از دادهها در برابر هرگونه بدافزار و روت کیت محافظت میکند.
طراحی بهترین معماری ابری
سازمانها با پیروی از اصول معماری ابری و انتخاب بهترین شیوههای موجود، ضمن آنکه از ارزش تجاری واقعی سرمایهگذاری خود اطمینان حاصل میکنند، از محیط فناوری اطلاعات خود در آینده نیز محافظت میکنند.
- برنامهریزی اولیه: اطمینان حاصل کنید که هنگام طراحی یک معماری ابری نیازهای ظرفیتی سازمانهای مختلف را درک میکنید. همزمان عملکرد معماری را مدام آزمایش و بررسی کنید تا از هرگونه اشکالات غیرمنتظره جلوگیری شود.
- اولویت امنیت: بهعنوان ارائهدهنده خدمات رایانس ابری باید بتوانید از فضای ابری در برابر نفوذ هکرها و کاربران غیرمجاز محافظت کنید. این محافظت میتواند با رمزگذاری دادهها، مدیریت پچها و اعمال سیاستهای سختگیرانه حاصل شود. برای ارائه بالاتری سطح امنیت در انواع ابر ترکیبی یا چند ابری، سراغ مدلهای زیرو تراست (Zero Trust) بروید.
- اطمینان از بازیابی فاجعه (disaster recovery): فرآیندهای بازیابی را به صورت خودکار انجام دهید تا ضمن جلوگیری از خرابیهای پرهزینه، از بازیابی سریع خدمات اطمینان حاصل کنید. نظارت بر ظرفیت و بهکارگیری یک شبکه اضافه میتواند دسترسی معماری شبکه را تا حد قابل قبولی تضمین کند.
- عملکرد حداکثری: با نظارت مستمر بر نیازهای کسب و کار و فناوری، منابع محاسباتی مناسب را به کار بگیرید و آنها را به بهترین شکل ممکن مدیریت کنید.
- کاهش هزینهها: در این بازار رقابتی برای کاهش هزینههای غیرضروری رایانش ابری و جلب مشتریان بیشتر، بهتر است سراغ فرآیندهای خودکار، خدمات مدیریتشده و ردیابی مصرف بروید.
جمعبندی
امروزه اینترنت، تبدیل به بخش جداییناپذیری از زندگی روزمره انسانها شده است. همچنین به دنبال آن شاهد ظهور خدمات و سرویسهای زیادی نیز هستیم. یکی از این خدمات، رایانش ابری یا Cloud Computing است. گوگل درایو یکی از معروفترین سرویسهای رایانش ابری است که کمتر کسی با آن آشنا نیست.
اما برای کسانی که سوال بود که چگونه این نوع خدمات سرو میشوند و در کل معماری رایانش ابری (Architecture of Cloud Computing) به چه صورت است، باید گفت که تمامی اتفاقات در دو بخش Backend و Frontend رخ میدهد. در این مقاله سعی شد تا بهصورت جامع و کامل به بررسی معماری کلود کامپیوتینگ بپردازیم، امید است تا مطالعهاش برای شما مفید بوده باشد.
دیدگاهتان را بنویسید