نکات کلیدی
1. برنامههای بومی ابری از مقیاسپذیری افقی برای کارایی هزینه و مقاومت بهره میبرند
خدمات پلتفرم ابری ساخت برنامههای بومی ابری را ساده میکنند.
مقیاسپذیری افقی اساس معماری بومی ابری است. به جای افزایش قدرت سرورهای فردی (مقیاسپذیری عمودی)، برنامههای ابری گرههای مشابه بیشتری را برای مدیریت بار افزایش یافته اضافه میکنند. این رویکرد چندین مزیت دارد:
- بهبود تحمل خطا: اگر یک گره خراب شود، دیگران میتوانند جایگزین شوند
- کارایی هزینه: فقط برای منابعی که نیاز دارید پرداخت کنید
- مقیاسپذیری بدون وقفه: اضافه یا حذف گرهها بدون توقف
پلتفرمهای ابری خدماتی ارائه میدهند که پیادهسازی مقیاسپذیری افقی را آسانتر میکند، مانند بالانسکنندههای بار، گروههای مقیاسپذیری خودکار و ابزارهای ارکستراسیون کانتینر. این خدمات بسیاری از پیچیدگیها را انتزاع میکنند و به توسعهدهندگان اجازه میدهند بر روی منطق برنامه به جای مدیریت زیرساخت تمرکز کنند.
2. گرههای محاسباتی بدون حالت تخصیص منابع انعطافپذیر و تحمل خطا را ممکن میسازند
یک گره مستقل از دیگر گرههای همنوع خود اطلاعی ندارد.
معماری بدون حالت برای مقیاسپذیری افقی مؤثر حیاتی است. در یک سیستم بدون حالت:
- هر درخواست شامل تمام اطلاعات لازم برای پردازش آن است
- گرهها دادههای خاص کاربر را بین درخواستها ذخیره نمیکنند
- هر گره میتواند هر درخواستی را مدیریت کند
این رویکرد چندین مزیت دارد:
- بهبود مقیاسپذیری: گرههای جدید به راحتی اضافه میشوند
- تحمل خطای بهتر: درخواستها میتوانند در صورت خرابی یک گره هدایت شوند
- بالانس بار سادهتر: درخواستها میتوانند به طور یکنواخت توزیع شوند
برای دستیابی به بدون حالت بودن، برنامهها اغلب از خدمات خارجی برای مدیریت نشست و ذخیرهسازی دادهها استفاده میکنند، مانند کشهای توزیعشده یا پایگاههای داده. این امر به لایه برنامه اجازه میدهد سبک و به راحتی مقیاسپذیر باقی بماند.
3. جریانهای کاری مبتنی بر صف لایهها را جدا کرده و مقیاسپذیری را افزایش میدهند
ایده اصلی ارتباط غیرهمزمان است.
طراحی مبتنی بر صف مقیاسپذیری و قابلیت اطمینان برنامه را با جدا کردن اجزای مختلف بهبود میبخشد. جنبههای کلیدی شامل:
- پیامها نمایانگر کارهایی هستند که باید انجام شوند
- تولیدکنندگان پیامها را به صفها اضافه میکنند
- مصرفکنندگان پیامها را از صفها پردازش میکنند
مزایای این رویکرد:
- بهبود تحمل خطا: پیامها در صورت خرابی یک مصرفکننده باقی میمانند
- مقیاسپذیری بهتر: تولیدکنندگان و مصرفکنندگان میتوانند به طور مستقل مقیاسپذیر شوند
- کاهش اتصال سیستم: اجزا فقط از طریق صفها تعامل دارند
جریانهای کاری مبتنی بر صف به ویژه برای مدیریت عملیات زمانبر یا غیرقابل اعتماد مفید هستند، مانند یکپارچهسازی با خدمات خارجی یا پردازش حجم زیادی از دادهها. پلتفرمهای ابری اغلب خدمات صف مدیریت شدهای ارائه میدهند که پیچیدگیهای پیامرسانی توزیعشده را مدیریت میکنند.
4. مقیاسپذیری خودکار استفاده از منابع را بر اساس تقاضا بهینه میکند
مقیاسپذیری عملی و قابل برگشت به بهینهسازی هزینههای عملیاتی کمک میکند.
مقیاسپذیری خودکار به طور خودکار تعداد منابع محاسباتی را بر اساس تقاضای فعلی تنظیم میکند. اجزای کلیدی شامل:
- سیاستهای مقیاسپذیری: قوانینی که تعیین میکنند چه زمانی باید مقیاس را افزایش یا کاهش داد
- معیارها: اندازهگیریهایی که برای تحریک مقیاسپذیری استفاده میشوند (مانند استفاده از CPU، طول صف)
- دورههای خنکسازی: جلوگیری از نوسانات سریع مقیاسپذیری
مزایای مقیاسپذیری خودکار:
- بهینهسازی هزینه: فقط زمانی که نیاز است برای منابع پرداخت کنید
- بهبود عملکرد: به طور خودکار با افزایش ترافیک مقابله کنید
- کاهش سربار عملیاتی: نیاز به مداخله دستی کمتر
مقیاسپذیری خودکار مؤثر نیاز به تنظیم دقیق سیاستها و معیارها دارد تا پاسخگویی با ثبات متعادل شود. پلتفرمهای ابری خدمات مقیاسپذیری خودکار داخلی ارائه میدهند که با محاسبات و نظارت آنها یکپارچه میشود.
5. سازگاری نهایی بهروزرسانیهای فوری را با عملکرد بهبود یافته مبادله میکند
سازگاری نهایی به معنای بیتوجهی سیستم به سازگاری نیست.
سازگاری نهایی یک مدل سازگاری داده است که در آن اولویت با دسترسی و تحمل تقسیمبندی است تا سازگاری فوری. جنبههای کلیدی:
- بهروزرسانیها ممکن است بلافاصله برای همه گرهها قابل مشاهده نباشند
- سیستم تضمین میکند که همه گرهها در نهایت به یک حالت همگرا میشوند
- خواندنها ممکن است برای مدت کوتاهی دادههای قدیمی را برگردانند
مزایای سازگاری نهایی:
- بهبود دسترسی: سیستم در طول تقسیمبندی شبکه عملیاتی باقی میماند
- عملکرد بهتر: کاهش سربار همگامسازی
- افزایش مقیاسپذیری: توزیع دادهها در چندین گره آسانتر است
سازگاری نهایی اغلب در پایگاههای داده توزیعشده و سیستمهای کش استفاده میشود. این مدل به ویژه برای سناریوهایی مناسب است که ناسازگاری موقت مشکلات جدی ایجاد نمیکند، مانند بهروزرسانیهای شبکههای اجتماعی یا بررسیهای محصول.
6. MapReduce پردازش توزیعشده مجموعههای داده بزرگ را ممکن میسازد
توابع map و reduce میتوانند برای کار بر روی مجموعههای داده بسیار کوچک نوشته شوند و نیازی به تغییر نخواهند داشت زیرا مجموعه داده از کیلوبایت به مگابایت به گیگابایت به پتابایت رشد میکند.
MapReduce یک مدل برنامهنویسی برای پردازش و تولید مجموعههای داده بزرگ به صورت موازی است. اجزای کلیدی:
- تابع Map: دادههای ورودی را پردازش کرده و جفتهای کلید-مقدار تولید میکند
- تابع Reduce: مقادیر مرتبط با هر کلید را تجمیع میکند
چارچوب MapReduce مدیریت میکند:
- تقسیم و توزیع دادهها
- اجرای موازی وظایف map و reduce
- تحمل خطا و مدیریت خطا
مزایای MapReduce:
- مقیاسپذیری: پردازش مجموعههای داده عظیم در چندین ماشین
- مدل برنامهنویسی ساده: تمرکز بر منطق پردازش دادهها
- تحمل خطا: به طور خودکار با خرابی گرهها مقابله کنید
پلتفرمهای ابری اغلب خدمات MapReduce مدیریت شدهای ارائه میدهند، مانند Amazon EMR یا Azure HDInsight، که استقرار و مدیریت وظایف MapReduce را ساده میکنند.
7. شاردینگ پایگاه داده دادهها را در چندین گره برای مقیاسپذیری توزیع میکند
شاردینگ یک استراتژی مقیاسپذیری افقی است که در آن منابع هر شارد (یا گره) به ظرفیت کلی پایگاه داده شارد شده کمک میکنند.
شاردینگ پایگاه داده شامل تقسیم دادهها در چندین نمونه پایگاه داده است. جنبههای کلیدی:
- کلید شارد: تعیین میکند که کدام شارد یک قطعه خاص از داده را ذخیره میکند
- توزیع شارد: چگونگی پخش دادهها در شاردها
- مسیریابی پرسوجو: هدایت پرسوجوها به شارد(های) مناسب
مزایای شاردینگ:
- بهبود مقیاسپذیری: توزیع بار در چندین گره
- عملکرد بهتر: مجموعههای داده کوچکتر در هر گره
- افزایش دسترسی: خرابیها فقط بر زیرمجموعهای از دادهها تأثیر میگذارند
چالشهای شاردینگ:
- پیچیدگی: مدیریت و پرسوجوی دادهها دشوارتر است
- محدودیت تراکنشها: تراکنشهای بین شاردی چالشبرانگیز هستند
- توزیع دادهها: اطمینان از توزیع یکنواخت میتواند دشوار باشد
پلتفرمهای ابری اغلب خدمات پایگاه داده با پشتیبانی شاردینگ داخلی ارائه میدهند، که پیادهسازی و مدیریت پایگاههای داده شارد شده را ساده میکنند.
8. چندمستاجری و سختافزار کالایی اقتصاد ابری را هدایت میکنند
منابع ابری به صورت درخواستی برای اجاره کوتاهمدت به عنوان ماشینهای مجازی و خدمات در دسترس هستند.
چندمستاجری و سختافزار کالایی اساس اقتصاد محاسبات ابری هستند:
چندمستاجری:
- چندین مشتری زیرساخت فیزیکی یکسانی را به اشتراک میگذارند
- منابع به صورت پویا تخصیص داده شده و ایزوله میشوند
- امکان استفاده بالاتر و هزینههای کمتر را فراهم میکند
سختافزار کالایی:
- استفاده از اجزای استاندارد و کمهزینه
- تمرکز بر مقیاسپذیری افقی به جای سختافزار پیشرفته
- بهبود کارایی هزینه و جایگزینی آسانتر
این رویکردها به ارائهدهندگان ابری اجازه میدهند تا به مقیاس اقتصادی دست یابند و منابع محاسباتی را با هزینه کمتری نسبت به مراکز داده سنتی ارائه دهند. با این حال، آنها چالشهای جدیدی نیز معرفی میکنند، مانند:
- مشکلات همسایه پر سر و صدا در محیطهای چندمستاجری
- نرخ خرابی بالاتر اجزای فردی
- نیاز به برنامهها برای مدیریت خرابیهای گذرا به صورت مؤثر
9. مدیریت مؤثر خرابیهای گذرا قابلیت اطمینان برنامه را بهبود میبخشد
مدیریت خرابیهای گذرا برای ساخت برنامههای بومی ابری قابل اطمینان ضروری است.
خرابیهای گذرا مشکلات موقتی هستند که خود به خود حل میشوند، مانند اختلالات شبکه یا محدودیت خدمات. استراتژیهای کلیدی برای مدیریت آنها:
- منطق تکرار: به طور خودکار عملیات را دوباره امتحان کنید
- بازگشت نمایی: افزایش تأخیر بین تکرارها
- قطعکنندههای مدار: به طور موقت تکرار را متوقف کنید اگر خرابیها ادامه یابد
مزایای مدیریت صحیح خرابیهای گذرا:
- بهبود قابلیت اطمینان: برنامهها میتوانند از مشکلات موقتی بازیابی شوند
- تجربه کاربری بهتر: خرابیها اغلب برای کاربران شفاف هستند
- کاهش سربار عملیاتی: نیاز به مداخله دستی کمتر
پلتفرمهای ابری و کتابخانههای مشتری اغلب پشتیبانی داخلی برای مدیریت خرابیهای گذرا ارائه میدهند، مانند بلوک مدیریت خرابی گذرا برای Azure.
10. شبکههای تحویل محتوا تأخیر را برای کاربران توزیعشده جهانی کاهش میدهند
CDN دوام دادهها را به همان روشی که سایر خدمات ذخیرهسازی ابری انجام میدهند، به دست میآورد: با ذخیره هر بایت سپرده شده به سرویس در سه نسخه (در سه گره دیسک) برای غلبه بر خطرات ناشی از خرابی سختافزار.
شبکههای تحویل محتوا (CDN) عملکرد و قابلیت اطمینان تحویل محتوا را با کش کردن دادهها در مکانهای لبهای جغرافیایی توزیعشده بهبود میبخشند. جنبههای کلیدی:
- کش لبه: ذخیره محتوا نزدیکتر به کاربران نهایی
- مسیریابی Anycast: هدایت کاربران به نزدیکترین مکان لبه
- محافظت از منبع: کاهش بار بر روی منبع اصلی محتوا
مزایای استفاده از CDN:
- کاهش تأخیر: تحویل سریعتر محتوا به کاربران
- بهبود دسترسی: توزیع بار در چندین مکان
- کاهش بار سرور منبع: انتقال ترافیک به مکانهای لبه
ارائهدهندگان ابری اغلب خدمات CDN یکپارچهای ارائه میدهند که به طور یکپارچه با ذخیرهسازی و محاسبات آنها کار میکنند، و فرآیند راهاندازی و مدیریت یک CDN را ساده میکنند.
11. استقرارهای چندسایتی دسترسی و تجربه کاربری را بهبود میبخشند
یک برنامه نیازی به پشتیبانی از میلیونها کاربر ندارد تا از الگوهای بومی ابری بهرهمند شود.
استقرارهای چندسایتی شامل اجرای یک برنامه در چندین مکان جغرافیایی است. ملاحظات کلیدی:
- تکرار دادهها: حفظ سازگاری دادهها در سایتها
- مسیریابی ترافیک: هدایت کاربران به سایت مناسب
- بازیابی: مدیریت قطعیهای سایت به صورت مؤثر
مزایای استقرارهای چندسایتی:
- بهبود دسترسی: مقاومت در برابر قطعیهای منطقهای
- عملکرد بهتر: کاهش تأخیر برای کاربران توزیعشده جهانی
- رعایت مقررات: رعایت الزامات محل اقامت دادهها
چالشهای استقرارهای چندسایتی:
- افزایش پیچیدگی: مدیریت چندین محیط
- سازگاری دادهها: مدیریت تعارضات و همگامسازی
- هزینههای بالاتر: اجرای زیرساخت در چندین مکان
پلتفرمهای ابری خدماتی برای سادهسازی استقرارهای چندسایتی ارائه میدهند، مانند بالانسکنندههای بار جهانی، ابزارهای تکرار دادهها و خدمات پایگاه داده چندمنطقهای.
آخرین بهروزرسانی::
نقد و بررسی
کتاب الگوهای معماری ابری نظرات متنوعی را دریافت کرده و میانگین امتیاز آن ۳.۶۰ از ۵ ستاره است. خوانندگان از معرفی مختصر اصول و الگوهای طراحی ابری در این کتاب قدردانی میکنند و آن را بهویژه برای افرادی که تازه با محاسبات ابری آشنا میشوند، مفید میدانند. این کتاب به خاطر توضیحات واضح و مثالهای واقعی مورد تحسین قرار گرفته است. با این حال، برخی منتقدان آن را بیش از حد ساده یا قدیمی میدانند و معتقدند که پوشش کافی از فناوریهای جدید ندارد. بسیاری از خوانندگان این کتاب را نقطه شروع خوبی میدانند، اما آن را برای حرفهایهای با تجربه در حوزه ابری جامع نمیدانند. رویکرد متمرکز بر Azure بهعنوان یک نقطه قوت و در عین حال محدودیت نیز مورد توجه قرار گرفته است.