مقدمه
در دهه گذشته، رایانش ابری (Cloud Computing) به سرعت به یکی از اصلیترین عوامل تحول دیجیتال تبدیل شده است. این فناوری باعث افزایش کارائی، دسترسپذیری، مقیاسپذیری و انعطافپذیری در ارتباط با نرم افزار شده است و همچنین به موفقیت کسب و کار کمک مینماید.
در این پژوهش، قصد داریم به عنوان سوال پژوهش تفاوتها، مزایا و معایب معماریهای مبتنی بر ابر را از منظر معماری نرم افزار مورد بررسی قرار دهیم. با مقایسه این معماریها، تلاش میکنیم تا بهترین راهکارها برای تحقق اهداف مختلف سازمانها در حوزه رایانش ابری را شناسایی نماییم. این تحقیق به تشریح مفاهیم کلیدی رایانش ابری، توضیح معماریهای مبتنی بر ابر و ارائه مقایسه جزئیاتی از عملکرد و قابلیتهای آنها خواهد پرداخت.
هدف این پژوهش، ارائه یک دید جامع و منطقی نسبت به مزیتها و محدودیتهای هر معماری برای ارائه دهندگان و مصرفکنندگان خدمات رایانش ابری میباشد.
ادبیات موضوع
انواع معماری مبتنی بر ابر
1- معماری ابر عمومی (Public Cloud): این معماری خدمات را به عنوان یک خدمت عمومی ارائه میدهد که توسط افراد و سازمانهای مختلف به اشتراک گذاشته میشود. - مزایا: هزینه کمتر، انعطافپذیری بالا و دسترسی آسان به منابع. - معایب: کنترل کمتر بر امنیت و حریمخصوصی.
2- معماری ابر خصوصی (Private Cloud): این معماری خدمات را برای یک سازمان یا شرکت خاص ایجاد میکند و توسط آنها مدیریت میشود. - مزایا: کنترل بیشتر بر امنیت و حریم خصوصی، سفارشیسازی بالا. - معایب: هزینههای بیشتر و محدودیت در انعطافپذیری.
3- معماری ابر هیبرید (Hybrid Cloud): ترکیبی از محیطهای ابر عمومی و خصوصی؛ اطلاعات و خدمات بین این دو محیط تبادل میشوند. - مزایا: ترکیب انعطافپذیری و امنیت، مدیریت بهینه منابع. - معایب: پیچیدگی مدیریت بیشتر.
4- معماری ابر اجتماعی (Community Cloud): مختص یک گروه خاص از سازمانها یا صنایع است که نیازها و اهداف مشترکی دارند. - مزایا: به اشتراک گذاری منابع و هزینه بین اعضا، تعامل بیشتر. - معایب:محدودیت در انعطافپذیری و امکانات عمومی.
هرکدام از این معماریها ویژگیها و مزایا، معایب مختصر خود را دارند که میتوان با تحلیل دقیق آنها، انتخاب مناسبی برای نیازهای خاص این پروژه را انجام و به فضای سوال ورود نمود.
معماری ابر عمومی (Public Cloud)
معرفی: این معماری به عنوان یک سرویس عمومی ارائه میشود که توسط ارائهدهندگان خدمات ابر برای استفاده عموم فراهم میآید.
مزایا:
- کارائی: به دلیل به اشتراکگذاری منابع، کارائی بالا می رود
- انعطافپذیری: امکان دسترسی به منابع به صورت پویا و به میزان نیاز مشتری.
- دسترس پذیری: امکان دسترسی به خدمات از هر نقطهای با اتصال به اینترنت.
معایب:
- حریم خصوصی و امنیت: برخی سازمانها ممکن است به دلیل نگرانیهای امنیتی حاضر نباشند که اطلاعات حساس آنها در یک محیط عمومی قرار گیرد.
- قابلیت سفارشیسازی محدود: در مقایسه با معماریهای خصوصی، قابلیت سفارشیسازی محدودتر است.
نمونهها:
- نمونه Amazon EC2 (Elastic Compute Cloud) : ارائه ماشینهای مجازی با اندازهها و خصوصیات متنوع
- نمونه Microsoft Azure Blob Storage : سرویس ذخیرهسازی ابری برای دادههای بزرگ.
- نمونه Google Cloud Networking: ارائه خدمات شبکه برای اتصال به منابع مختلف.
نمونه معماری ابر عمومی Amazon EC2
- از Amazon EC2 می توان برای راه اندازی هر تعداد سرور مجازی و سرور اختصاصی بهره برد.
- در Amazon EC2می توان به راحتی منابع سخت افزاری که به آنها Instance گفته می شود را کم و زیاد نمود که در واقع راهکاری برای پاسخ به مقیاس پذیری در معماری میباشد.
- در Amazon EC2 این قابلیت به معماری داده می شود که در برابر تغییرات ناگهانی مانند روبرو شدن نرم افزار با محبوبیت و بازدید یکباره کاربران و افزایش بار مقاومت نماید.
معماری ابر خصوصی (Private Cloud)
معرفی: این معماری به عنوان یک محیط خصوصی برای یک سازمان خاص یا شرکت ارائه میشود که توسط آنها مدیریت و کنترل میشود. این نوع ابر معمولاً بر روی یک زیرساخت محلی یا دیتا سنترهای خود سازمان ایجاد میشود.
مزایا:
- کنترل بیشتر: سازمان میتواند به صورت کامل کنترل و مدیریت بر منابع محاسباتی خود داشته باشد.
- حریم خصوصی بالا : اطلاعات حساس سازمان در محیط خود سازمان نگهداری میشود.
- سفارشیسازی بالا : امکان سفارشیسازی بیشتر در تنظیمات و خدمات ارائه شده وجود دارد.
معایب:
- هزینههای بالاتر: سرمایهگذاری بیشتر در زیرساخت و نگهداری نسبت به معماریهای عمومی.
- انعطافپذیری محدود: امکان تغییر و تطابق سریع با نیازها ممکن است محدود باشد.
نمونهها:
- نمونه VMware vSphere: ارائه راهکارهای مجازیسازی و مدیریت زیرساخت محیط خصوصی.
- نمونه OpenStack: که پروژه متنباز برای ایجاد و مدیریت ابر خصوصی.
- نمونه Microsoft Azure Stack: یک راهکار مبتنی بر ابر خصوصی بر پایه فناوریهای Azure.
نمونه معماری ابر خصوصی OpenStack
- در OpenStack مجموعهای از سرویسها شامل، خدمات شبکه، خدمات فضای ذخیره سازی، خدمات پردازشی، خدمات تهیه پشتیبان و خدمات تلمتری را فراهم میآورد.
معماری ابر هیبرید (Hybrid Cloud)
معرفی: این معماری از ترکیب محیطهای ابر عمومی و خصوصی برای ارائه خدمات استفاده میکند. سازمانها میتوانند بخشی از منابع خود را در محیط عمومی و بخش دیگر را در محیط خصوصی مدیریت کنند.
مزایا:
- انعطافپذیری: امکان انتقال منابع و برنامهها بین محیطهای مختلف بر اساس نیازهای سازمان.
- کنترل بالا: حفظ کنترل بر روی دادهها و منابع حساس در محیط خصوصی.
- هزینه بهینه: بهینهسازی هزینهها با استفاده از منابع عمومی در مواقع لزوم.
معایب:
- پیچیدگی مدیریت: مدیریت محیطهای مختلف نیاز به راهکارهای مدیریتی پیچیده میکند.
- احتمال افزایش هزینه: استفاده از هر دو محیط عمومی و خصوصی ممکن است به افزایش هزینهها منجر شود.
نمونهها:
- نمونه AWS Outposts: سرویس ابر هیبرید از طریق استفاده از سختافزارهای ابری در محل دیتا سنترهای مشتری.
- نمونه Microsoft Azure Arc: این ابزار به سازمانها اجازه میدهد منابع خود را در محیطهای خصوصی و عمومی مدیریت کنند.
- نمونه Google Anthos: این سرویس امکان مدیریت برنامهها در محیطهای ابری و دیتا سنترهای محلی را فراهم میکند.
نمونه معماری ابر هیبرید Google Anthos
- در Google Anthos این امکان را فراهم میآورد تا بخشی از نرم افزار را در دیتاسنتر مشتری و بخشی را در یک ابر عمومی قرارداده و به کمک امکانات Anthos کنترل و مدیریت بر نرم افزار داشت.
- در این معماری، میتوان بخشی از نرم افزار را برروی ابرهای عمومی دیگر مانند AWS نیز قرار داد و از طریق Anthos برروی آن مدیریت داشت.
معماری ابر اجتماعی (Community Cloud)
معرفی: این معماری مختص یک گروه از سازمانها یا صنایع است که نیازها و اهداف مشترکی دارند. این ابر به اشتراک گذاری منابع و خدمات بین اعضای گروه را تسهیل میکند.
مزایا:
- اشتراک گذاری منابع: کاهش هزینهها و بهینهسازی منابع با اشتراکگذاری بین اعضای گروه.
- تعامل بیشتر: افزایش تعامل و همکاری بین اعضای ابر اجتماعی.
- سفارشیسازی مشترک: امکان سفارشیسازی خدمات و منابع بر اساس نیازهای گروه.
معایب:
- محدودیت در انعطافپذیری: تعداد اعضا و تفاوت در نیازها ممکن است به تعطیلی بخشی از انعطافپذیری منجر شود.
- حفظ امنیت: چالشهای امنیتی در اشتراک گذاری اطلاعات بین اعضا.
نمونهها:
- نمونه IBM Community Cloud: این سرویس به سازمانهایی که علاقه دارند در یک اکوسیستم اجتماعی فعالیت کنند خدمات ابر اجتماعی ارائه میدهد.
- نمونه Salesforce Community Cloud: در سازمانها برای ارتباط با مشتریان، شرکا و اعضای گروه.
- نمونه ESDS Community Cloud: زیرساخت اختصاصی را برای سازمانهایی از یک جامعه خاص با نگرانیهای مشترکی مانند امنیت، انطباق، صلاحیت و غیره ارائه میکند.
نمونه معماری ابر اجتماعی ESDS Community Cloud
- در ESDS پلتفرم ابر اجتماعی است که برای انواع جوامع حاکمیتی، سلامت و آموزش راهکارهای همکاری بین سازمانی مبتنی بر ابر را ارائه مینماید.
پیشینه پژوهش
مقالات پیرامون معماری های مبتنی بر ابر
نحوه بررسی مقالات مرتبط قبلی به عنوان مقدمه ای برای ورود به فضای پاسخ
1- مروری بر ادبیات معماری نرم افزار در ابر
2- مروری بر ادبیات ویژگیهای کیفی معماری در ابر
3- بررسی نمونه مقالات کارایی، مقیاس پذیری، قابلیت استفاده و غیره
4- بررسی نمونه مقالات مقایسه ای پلتفرم ها
مقاله مروری بر ادبیات معماری نرم افزارهای ابری
در مقاله [7] مروری بر پژوهشها در زمینه معماری نرم افزارهایی که میخواهند برروی بسترهای ابری استقرار یابند انجام گرفته است.
این نوع نرم افزارها دارای نیازمندیهای غیرکارکردی خاصی می باشند که باعث تعریف الزامات خاص مقیاس پذیری، قابلیت اطمینان، تحمل خطا و سایر موارد در ابر می گردند.
مقاله مروری بر ادبیات کارائی و مقیاس پذیری در رایانش ابری
در مقاله [3] مروری بر ادبیات کارائی و مقیاس پذیری برروی ابرهای مختلف صورت گرفته است که میزان توزیع شدگی مقالات نشان می دهد تمرکز مقالات برروی کارائی بیشتر بوده اند.
مقاله دسترس پذیری در ابر
در مقاله [1] تحقیق جالبی برروی دسترس پذیری انجام گرفته است و در آن یک تکسونامی به صورت شکل زیر ارائه شده است که دید کاملی در زمینه شاخص های دسترس پذیری به مخاطب ارائه می نماید.
نمونه مقاله ویژگی کیفی کارائی در ابر
در مقاله [13] ویژگی کارائی بر روی 4 پلتفرم ابری آمازون EC2 ، OpenStack، OpenNebula و Eucalyptus مورد بررسی قرار گرفته است. برخی نتایج آن در تصاویر زیر آمده است:
نمونه مقاله ویژگی کیفی قابلیت استفاده در ابر
در [10] به بحث قابلیت استفاده در ابر پرداخته شده است. در این مقاله برخی چالشهای قابلیت استفاده در ابر مطرح شده و سپس تلاش شده است راهکاری برای غلبه بر این چالشها ارائه گردد.
نمونه مقاله ویژگیهای کیفی در پلتفرم OpenStack
در [4] برروی معیارهای کیفیت خدمات در پلتفرم OpenStack پژوهشی صورت گرفته است.
مقایسه پلتفرمهای مبتنی بر Cloud
در این بخش، چند پلتفرم ابری از منظر برخی از ویژگیهای کیفی معماری نرم افزار مورد بررسی قرار گرفته اند.
نتیجه و جمع بندی
با توجه به مقایسه ای که در بخش قبلی صورت گرفت، برخی ویژگیها به دلیل ارزش علمی و پژوهشی، در این مقاله مطرح نگردید و برخی ویژگیها به عنوان کارهای آتی قابل بررسی می باشند.
فهرست منابع
[1] Mina Nabi, Maria Toeroe, Ferhat Khendek, Availability in the cloud: State of the art, Journal of Network and Computer Applications, 2016.
[2] Mohammed Hussain, Hanady M. Abdulsalam, Software quality in the clouds: a cloud-based solution, 2014 DOI 10.1007/s10586-012-0233-8.
[3] Sebastian Lehrig, Hendrik Eikerling, Steffen Becker, Scalability, Elasticity, and Efficiency in Cloud Computing:a Systematic Literature Review of Definitions and Metrics, 2015, IEEE, DOI: 10.1145/2737182.2737185.
[4] Edna Dias Canedo, Italo Paiva Batista, Emilie Trindade de Morais, Aleteia Patricia Favacho de Araujo, An Investigative Analysis of Quality of Service Metrics on OpenStack, Springer ICCSA 2018: Computational Science and Its Applications – ICCSA 2018 pp 337–352.
[5] Stanley Lima, Álvaro Rocha, Licinio Roque, An overview of OpenStack architecture: a message queuing services node, Springer Science+Business Media, LLC 2017, DOI 10.1007/s10586-017-1034-x.
[6] XIMENA GUERRON and Partners, A Taxonomy of Quality Metrics for Cloud Services, IEEE July 14, 2020.
[7] Olesia POZDNIAKOVA, Dalius MAZEIKA, Systematic Literature Review of the Cloud-ready Software Architecture, 2017 http://dx.doi.org /10.22364/bjmc.2017.5.1.08.
[8] Giuseppe Procaccianti, Patricia Lago a, Stefano Bevini, A systematic literature review on energy efficiency in cloud software architectures, 2015 https://doi.org/10.1016/j.suscom.2014.11.004.
[9] Muhammad Aufeef Chauhan, Muhammad Ali Babar, Cloud Infrastructure for Providing Tools as a Service: Quality Attributes and Potential Solutions, August 2012 DOI:10.1145/2361999.2362002.
[10] Pankaj Goyal, Enterprise Usability of Cloud Computing Environments: Issues and Challenges, 2010 Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises.
[11] Ahmad Banijamali, Olli-Pekka Pakanen, Pasi Kuvaja, Markku Oivo, Software Architectures of the Convergence of Cloud Computing and the Internet of Things: A Systematic Literature Review, 24 January 2020, https://doi.org/10.1016/j.infsof.2020.106271.
[12] Abdulrahman Alreshidi and Partners, Software Architecture for Mobile Cloud Computing Systems, Future Internet 2019, 11, 238; doi: 10.3390/fi11110238.
[13] Travis Brummett and Partners, Performance Metrics of Local Cloud Computing Architectures, 2015 IEEE 2nd International Conference on Cyber Security and Cloud Computing.
[14] Vuyyuru Krishna Reddy, Security Architecture of Cloud Computing, September 2011 https://www.researchgate.net/publication/299572565
[15] Sayaka Akioka, Yoichi Muraoka, HPC benchmarks on Amazon EC2, 2010 IEEE 24th International Conference on Advanced Information Networking and Applications Workshops.
[16] Patrick Coffey and partners, Benchmarking the Amazon Elastic Compute Cloud (EC2), March 9, 2011, https://digital.wpi.edu/downloads/5712m8429
[17] Benchmarking AWS and HPC Services, 2020 Amazon Web Services, Inc. or its affiliates.
[18] https://sonidhaval.medium.com/cis-aws-foundations-benchmark-with-aws-security-hub-76cc7c2abe92
[19] Marco Anisetti and Partners, A Security Benchmark for OpenStack, 2017 IEEE 10th International Conference on Cloud Computing (CLOUD), DOI: 10.1109/CLOUD.2017.45
[20] https://www.cisecurity.org/benchmark/google_cloud_computing_platform
[21] Marian Turowski and Alexander Lenk, Vertical Scaling Capability of OpenStack Survey of Guest Operating Systems, Hypervisors, and the Cloud Management Platform, FZI Forschungszentrum Informatik, Friedrichstr. 60, 10117 Berlin, Germany
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است