نکات کلیدی
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. استقرارهای چندسایتی دسترسی و تجربه کاربری را بهبود میبخشند
یک برنامه نیازی به پشتیبانی از میلیونها کاربر ندارد تا از الگوهای بومی ابری بهرهمند شود.
استقرارهای چندسایتی شامل اجرای یک برنامه در چندین مکان جغرافیایی است. ملاحظات کلیدی:
- تکرار دادهها: حفظ سازگاری دادهها در سایتها
- مسیریابی ترافیک: هدایت کاربران به سایت مناسب
- بازیابی: مدیریت قطعیهای سایت به صورت مؤثر
مزایای استقرارهای چندسایتی:
- بهبود دسترسی: مقاومت در برابر قطعیهای منطقهای
- عملکرد بهتر: کاهش تأخیر برای کاربران توزیعشده جهانی
- رعایت مقررات: رعایت الزامات محل اقامت دادهها
چالشهای استقرارهای چندسایتی:
- افزایش پیچیدگی: مدیریت چندین محیط
- سازگاری دادهها: مدیریت تعارضات و همگامسازی
- هزینههای بالاتر: اجرای زیرساخت در چندین مکان
پلتفرمهای ابری خدماتی برای سادهسازی استقرارهای چندسایتی ارائه میدهند، مانند بالانسکنندههای بار جهانی، ابزارهای تکرار دادهها و خدمات پایگاه داده چندمنطقهای.
آخرین بهروزرسانی::
FAQ
What's "Cloud Architecture Patterns" by Bill Wilder about?
- Focus on Cloud-Native Applications: The book is centered on developing cloud-native applications, which are designed to leverage specific engineering practices for scalability and efficiency.
- Patterns for Scalability: It introduces patterns that have been successfully adopted by large web properties to achieve unprecedented scalability and efficiency.
- Impact on Architecture: Each pattern discussed impacts the architecture of applications, with some having minor effects and others major.
- Lowering Risk and Cost: The book explains how cloud platforms reduce the risk and cost of implementing these patterns by handling much of the complexity.
Why should I read "Cloud Architecture Patterns" by Bill Wilder?
- Understanding Cloud Architecture: It provides a comprehensive understanding of cloud architecture, especially for those involved in software architecture discussions.
- Practical Patterns: The book offers practical patterns that can be applied to modern applications to improve scalability and efficiency.
- Vendor-Neutral Approach: While examples use Windows Azure, the patterns are applicable to any cloud platform, making the book relevant regardless of the specific cloud service used.
- Educational Resource: It serves as a starting point for deeper learning, with references for further reading provided in the appendix.
What are the key takeaways of "Cloud Architecture Patterns" by Bill Wilder?
- Cloud-Native Characteristics: Cloud-native applications should leverage platform services for scalability, handle failures gracefully, and optimize costs.
- Horizontal Scaling: The book emphasizes the importance of horizontal scaling over vertical scaling for cloud-native applications.
- Patterns and Primers: It includes both patterns and primers, with patterns addressing specific challenges and primers providing necessary background.
- Automation and Efficiency: The book highlights the role of automation in achieving operational efficiency and cost optimization in cloud environments.
What is the significance of the Horizontal Scaling Compute Pattern in "Cloud Architecture Patterns"?
- Efficient Resource Utilization: This pattern focuses on efficiently utilizing cloud resources by using stateless autonomous compute nodes.
- Operational Efficiency: It emphasizes leaning on cloud services for automation to reduce complexity in deploying and managing nodes.
- Reversible Scaling: The pattern supports reversible scaling, allowing resources to be added or removed as needed, optimizing costs.
- Stateless Nodes: Stateless nodes are crucial for maintaining flexibility and efficiency, as they can be easily added or removed without affecting the application state.
How does "Cloud Architecture Patterns" by Bill Wilder address the Queue-Centric Workflow Pattern?
- Decoupling Tiers: This pattern is used to decouple communication between the web tier and the service tier, allowing for asynchronous processing.
- Reliable Queues: It relies on reliable cloud queue services to ensure messages are processed at least once, even in the event of failures.
- Idempotent Processing: The pattern requires idempotent processing to handle repeat messages without adverse effects.
- User Experience: It improves user experience by allowing the web tier to remain responsive while processing happens in the background.
What role does the Auto-Scaling Pattern play in "Cloud Architecture Patterns"?
- Cost Optimization: The pattern automates scaling to optimize resource usage and reduce costs by adjusting resources based on demand.
- Proactive and Reactive Rules: It involves setting rules that can be proactive (scheduled) or reactive (based on environmental signals).
- Operational Efficiency: Automation reduces the need for manual intervention, improving operational efficiency and reducing errors.
- Scalability: The pattern ensures that applications can scale efficiently to meet varying demand levels without manual adjustments.
How does "Cloud Architecture Patterns" explain Eventual Consistency?
- CAP Theorem: The book uses the CAP Theorem to explain the trade-offs between consistency, availability, and partition tolerance in distributed systems.
- Eventual Consistency Benefits: It highlights how eventual consistency can lead to better scalability, performance, and cost-effectiveness.
- Examples and Applications: The book provides examples, such as DNS, to illustrate how eventual consistency works in practice.
- Business Decision: Choosing eventual consistency is presented as a business decision, balancing the need for consistency with scalability and performance benefits.
What insights does "Cloud Architecture Patterns" offer on the MapReduce Pattern?
- Data Processing Model: MapReduce is presented as a model for processing large data sets in parallel, using map and reduce functions.
- Hadoop Integration: The book ties MapReduce to Hadoop, explaining its capabilities and how it simplifies distributed data processing.
- Use Cases: It discusses use cases for MapReduce, such as web log processing and data mining, highlighting its scalability.
- Cloud Service Benefits: Using MapReduce as a cloud service allows for cost savings by renting instances only when needed.
How does "Cloud Architecture Patterns" address Database Sharding?
- Horizontal Scaling: Sharding is presented as a method for horizontally scaling databases by distributing data across multiple nodes.
- Integrated Sharding Support: The book discusses how cloud platforms offer integrated sharding support, reducing complexity for applications.
- Shard Keys and Distribution: It explains the importance of shard keys in determining data distribution across shards.
- When to Shard: The book advises on when sharding is appropriate, emphasizing the need for a database model that supports it.
What is the significance of Multitenancy and Commodity Hardware in "Cloud Architecture Patterns"?
- Cost-Efficiency: Multitenancy and commodity hardware are used by cloud platforms to optimize for cost-efficiency.
- Impact on Applications: The book explains how these choices impact application architecture, particularly in handling failures.
- Security and Performance: It addresses concerns about security and performance management in multitenant environments.
- Failure Handling: Applications must be designed to handle failures, as commodity hardware is more prone to failure than high-end hardware.
How does "Cloud Architecture Patterns" explain the Busy Signal Pattern?
- Handling Transient Failures: The pattern focuses on how applications should handle transient failures when a service responds with a busy signal.
- Retry Policies: It discusses different retry strategies, such as immediate retry, retry after delay, and exponential backoff.
- User Experience Impact: The book emphasizes the importance of handling busy signals to maintain a positive user experience.
- Logging and Analysis: It suggests logging busy signals to analyze failure patterns and improve application reliability.
What are the best quotes from "Cloud Architecture Patterns" by Bill Wilder and what do they mean?
- "Cloud-native applications leverage cloud-platform services to cost-efficiently and automatically allocate resources horizontally to match current needs." This quote highlights the core principle of cloud-native applications: using cloud services to dynamically adjust resources based on demand.
- "The most important conversations about the cloud are more about architecture than technology." This emphasizes the book's focus on architectural patterns rather than specific technologies, underscoring the importance of design in cloud applications.
- "Practical, reversible scaling helps optimize operational costs." This quote underscores the value of reversible scaling in the cloud, allowing applications to scale resources up or down as needed to minimize costs.
- "Failure is routine, but downtime is rare." This reflects the cloud-native approach to handling failures, where applications are designed to continue operating despite individual component failures.
نقد و بررسی
کتاب الگوهای معماری ابری نظرات متنوعی را دریافت کرده و میانگین امتیاز آن ۳.۶۰ از ۵ ستاره است. خوانندگان از معرفی مختصر اصول و الگوهای طراحی ابری در این کتاب قدردانی میکنند و آن را بهویژه برای افرادی که تازه با محاسبات ابری آشنا میشوند، مفید میدانند. این کتاب به خاطر توضیحات واضح و مثالهای واقعی مورد تحسین قرار گرفته است. با این حال، برخی منتقدان آن را بیش از حد ساده یا قدیمی میدانند و معتقدند که پوشش کافی از فناوریهای جدید ندارد. بسیاری از خوانندگان این کتاب را نقطه شروع خوبی میدانند، اما آن را برای حرفهایهای با تجربه در حوزه ابری جامع نمیدانند. رویکرد متمرکز بر Azure بهعنوان یک نقطه قوت و در عین حال محدودیت نیز مورد توجه قرار گرفته است.
Similar Books









