کتاب Cloud Application Architecture Patterns: Designing, Building, and Modernizing for the Cloud (الگوهای معماری برنامههای ابری: طراحی، ساخت و مدرنسازی برای ابر) یک راهنمای عملی برای معماران و توسعهدهندگان ارشد است که قصد دارند برنامههایی را برای محیطهای ابری طراحی کنند، بسازند و یا برنامههای موجود خود را برای استفاده از فناوریهای ابری مدرنسازی کنند.
کتاب Cloud Application Architecture Patterns با ارائه الگوهای معماری اثباتشده و تشریح مزایا و معایب انتخابهای مختلف معماری در بستر ابر، به خوانندگان کمک میکند تا درک عمیقتری از چگونگی ساخت برنامههای کارآمد و مقیاسپذیر در ابر به دست آورند.
در ادامه مقدمهای از کتاب Cloud Application Architecture Patterns را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Cloud Application Architecture Patterns:
این کتاب درباره چگونگی معماری برنامهها است به گونهای که به خوبی در محیط ابری اجرا شوند. این کتاب مبتنی بر هیچ فناوری یا محصول خاصی نیست، بلکه برای معماران برنامههای کاربردی طراحی شده است که از انواع پلتفرمها و فناوریهای ابری استفاده میکنند.
از آنجایی که مفاهیم کتاب Cloud Application Architecture Patterns بیطرفانه نسبت به محصول و فروشنده هستند، حتی با تکامل فناوریها و منسوخ شدن محصولات قدیمی و جایگزینی آنها با محصولات جدیدتر و بهتر، مفاهیم آن همچنان مرتبط خواهند ماند. کتابی که بر یک محصول واحد تمرکز دارد، با منسوخ شدن آن محصول، قدیمی میشود، اما کتابی که بر مفاهیم معماری تمرکز دارد، تا زمانی که آن معماری وجود دارد، مرتبط باقی میماند و حتی ممکن است عمر مفید پلتفرمهایی که میزبان آن معماری هستند نیز طولانیتر باشد.
از آنجایی که تمرکز کتاب Cloud Application Architecture Patterns بر طراحی برنامهها برای استقرار در ابر است، ما مجموعهای اساسی از فناوریها را فرض میکنیم که به یک پشته فناوری استاندارد بالفعل تبدیل شدهاند و برنامهها برای بهرهمندی از محاسبات ابری از آنها استفاده میکنند. این فناوریها شامل لینوکس، کانتینرها و هماهنگکنندههای کانتینر هستند. این فناوریها و موارد مشابه در این کتاب مورد اشاره قرار گرفتهاند.
برای شروع بحث، توضیح خواهیم داد که چرا کتاب Cloud Application Architecture Patterns را نوشتیم و مخاطب هدف ما چه کسانی هستند. پذیرش ابر یک موضوع بسیار گسترده است، بیش از آنکه در یک کتاب جای بگیرد، بنابراین درباره آنچه میتوانید یاد بگیرید، موضوعات پوشش داده شده و مواردی که خارج از محدوده این کتاب هستند، بحث خواهیم کرد. در نهایت، یک نمای کلی از ساختار مطالب این کتاب ارائه خواهیم داد.
چرا کتاب Cloud Application Architecture Patterns را نوشتیم؟
از طریق تجربه خود با صدها برنامه کاربردی، متوجه شدهایم که تعداد برنامههایی که در ابر اجرا میشوند بیشتر از برنامههایی است که به خوبی در ابر اجرا میشوند. این ممکن است به این دلیل باشد که معماران متوجه نیستند که برنامهها باید برای ابر متفاوت از فناوری اطلاعات سنتی طراحی شوند، یا اینکه آنها نیاز را درک میکنند اما نمیدانند چگونه این کار را انجام دهند. منظور ما از فناوری اطلاعات سنتی، برنامههایی هستند که برای اجرا در محیطهای داخلی با استفاده از فناوریها و روشهایی نوشته شدهاند که برای واقعیت محاسبات قبل از معرفی ابر بهینه شده بودند.
ما (نویسندگان) تجربه گرانبهایی در به خوبی کار کردن برنامهها در ابر به دست آوردهایم، معمولاً از طریق اشتباه کردن و در نتیجه درک اینکه چه چیزی کار میکند و چه چیزی کار نمیکند. ما همچنین با موفقیت این درسها را به دیگران آموختهایم و آن تجربه را در کتاب Cloud Application Architecture Patterns ثبت کردهایم. امیدواریم بتوانیم شما را متقاعد کنیم که ابر با رویکردهای سنتی متفاوت است و به شما آموزش دهیم که چگونه برنامههای خود را متفاوت معماری کنید، و در نتیجه پذیرش ابر را برای شما بسیار آسانتر از آنچه برای ما بوده است، سازید.
چه کسانی باید کتاب Cloud Application Architecture Patterns را بخوانند؟
این کتاب برای معماران و توسعهدهندگان برنامههای کاربردی است که میخواهند شیوههای اثباتشده در مورد چگونگی طراحی برنامهها برای ابر را بیاموزند. معمارانی که میخواهند برنامههایشان به خوبی در ابر اجرا شوند، باید این شیوههای اثباتشده را بدانند و از آنها استفاده کنند.
این شیوهها برای هر برنامهای که در ابر اجرا میشود، کاربرد دارد. ما فرض میکنیم که بیشتر توسعهدهندگان در حال نوشتن برنامههای تجاری برای شرکتهای تجاری هستند—بیایید واقعبین باشیم، پول در آنجاست—اما این تکنیکها به طور یکسان در سایر زمینهها مانند تحقیق و علم، دولت، سازمانهای غیرانتفاعی—هر زمینهای که کاربران نیازهایی برای عملکرد یک برنامه دارند و سازمان میخواهد برنامههای خود را در ابر مستقر کند—کاربرد دارند.
آنچه خواهید آموخت:
کتاب Cloud Application Architecture Patterns به طور خلاصه توضیح میدهد که ابر چیست و توجیه تجاری استفاده از ابر را ارائه نمیدهد. ما فرض میکنیم که خواننده از قبل میخواهد از ابر استفاده کند، بنابراین ما بر چگونگی توسعه برنامههایی که به خوبی در ابر اجرا میشوند تمرکز میکنیم. شما با درک موارد زیر، نحوه معماری برنامهها برای ابر را خواهید آموخت:
- مزایا و محدودیتهای معماری محاسبات ابری در مقایسه با معماری فناوری اطلاعات سنتی و پیامدهای آن برای معماری برنامه
- چگونه یک برنامه را بومی ابری کنیم تا به خوبی در ابر اجرا شود
- چگونه یک برنامه میتواند شامل میکروسرویسهای همکار باشد و چگونه مجموعهای از میکروسرویسها را برای یک دامنه عملکردی خاص طراحی کنیم
- چگونه چندین میکروسرویس و سایر اجزای نرمافزاری میتوانند با یکدیگر همکاری کنند، هم از طریق ارکستراسیون و هم از طریق کورئوگرافی
- چگونه تکنیکهای توسعه چابک را در طراحی یک برنامه ابری به کار ببریم
- استراتژیهای انتقال و تغییر پلتفرم یک برنامه فناوری اطلاعات موجود برای اجرا در ابر، و بازسازی یک برنامه موجود در حین اجرا در محیط عملیاتی این درک به شما این امکان را میدهد که برنامههای ابری بهتری ایجاد کنید.
آنچه کتاب Cloud Application Architecture Patterns پوشش میدهد:
این کتاب حدود 70 روش را در 10 موضوع زیر سازماندهی میکند:
- برنامههای ابری (فصل 1)
- یک برنامه ابری را طوری معماری کنید که از نقاط قوت محاسبات ابری بهره ببرد و در عین حال محدودیتهای آن را اجتناب کرده و جبران کند.
- معماری برنامه (فصل 2)
- همانطور که زیرساخت فناوری اطلاعات سنتی تکامل یافته است، معماری برنامههای آن نیز تکامل یافته است.
- برنامه بومی ابری (فصل 3)
- همانطور که فناوری اطلاعات سنتی به ابر تکامل یافت، معماری برنامه نیز برای کارکرد خوب در ابر تکامل یافت.
- معماری میکروسرویس (فصل 4)
- یک برنامه بزرگ را به چندین برنامه کوچک تقسیم کنید تا هر کدام مسئولیت جداگانهای را انجام دهند.
- طراحی میکروسرویس (فصل 5)
- تعاملات درون برنامه را تجزیه و تحلیل کنید تا مشخص شود کجا یک مسئولیت به خوبی کپسولهشده به پایان میرسد و مسئولیت دیگری شروع میشود.
- معماری رویداد-محور (فصل 6)
- اجازه دهید اجزا به طور غیرمستقیم از طریق روابطی که به صورت پویا کشف شده و به عنوان کورئوگرافی مدلسازی شدهاند، تعامل داشته باشند.
- ذخیرهسازی بومی ابری (فصل 7)
- پایگاههای داده جدیدتری را ادغام کنید که دادهها را به طور انعطافپذیرتری مدلسازی میکنند، نحوه دسترسی برنامهها به دادهها را سادهتر میکنند و عملکرد بهتری در ابر دارند.
- مشتریان برنامه ابری (فصل 8)
- به کاربران امکان دهید از طریق رابطهای کاربری که نصب و بهروزرسانی آنها ساده است، از انواع دستگاهها به برنامه ابری دسترسی داشته باشند.
- انتقال و مدرنسازی برنامه (فصل 9)
- با انتقال یک برنامه موجود از فناوری اطلاعات سنتی به ابر و بهروزرسانی آن برای کارکرد خوب در ابر، یک برنامه ابری توسعه دهید.
- خفه کردن یکپارچه (مونولیت) (فصل 10)
- به تدریج یک برنامه را از فناوری اطلاعات سنتی به ابر تبدیل کنید در حالی که آن را در محیط عملیاتی در حال اجرا نگه دارید.
با این شیوهها، شما آمادهاید تا طراحی برنامهها برای فناوری اطلاعات سنتی را متوقف کرده و در عوض آنها را برای ابر طراحی کنید.
آنچه کتاب Cloud Application Architecture Patterns پوشش نمیدهد
این کتاب درباره معماری برنامههای کاربردی، به طور خاص برای برنامههای ابری است. ممکن است این تصور پیش بیاید که وقتی معماری یک برنامه را طراحی کردید، کارتان تمام شده است. اما در واقع، معماری تنها آغاز راه است. معماری، شالوده توسعه برنامهها برای ابر است، اما کارهای بسیار بیشتری وجود دارد که فراتر از محدوده کتاب Cloud Application Architecture Patterns است.
پس از استقرار معماری و طراحی یک برنامه، کارهای بیشتری برای قابل استفاده و مفید ساختن آن لازم است. باید توسعه داده شود تا برنامه از طراحی آن ایجاد شود و سپس مستقر شود تا به یک برنامه در حال اجرا تبدیل شود. این برنامه به یک محیط سفارشی تعریفشده در پلتفرم ابری نیاز دارد تا برنامه در آن مستقر شود، محیطی که ممکن است از نظر جغرافیایی توزیع شده باشد تا برنامه بتواند مقیاسپذیرتر و قابل اطمینانتر باشد.
آن برنامه در حال اجرا در محیط عملیاتی باید نظارت و مدیریت شود تا به کار خود ادامه دهد و اطمینان حاصل شود که به درستی کار میکند. برنامه عملیاتی به بهروزرسانیهایی برای رفع اشکالات و افزودن ویژگیها نیاز دارد. همه اینها فراتر از معماری و طراحی برنامه است و خارج از محدوده این کتاب قرار دارد.
کتاب Cloud Application Architecture Patterns بر روی ابرمقیاسدهندههای پلتفرم ابری خاص تمرکز نمیکند؛ بلکه بیطرفانه نسبت به فروشنده، محصول و زبان است. برای فناوریهای خاص، بر روی استانداردهای متنباز پرکاربرد تمرکز دارد که اکثر فروشندگان در پلتفرمها و ابزارهای خود ادغام میکنند. برخی از مثالها به زبانها و محصولات خاص اشاره میکنند، اما فقط برای نشان دادن چگونگی استفاده و کاربرد الگو، نه چگونگی پیادهسازی آن.
به این ترتیب، کتاب Cloud Application Architecture Patterns یک آموزش برای محصولات، پلتفرمها یا حتی فناوریهای متنباز خاص نیست. این کتاب بر تصمیمات طراحی متمرکز است که در استفاده از هر یک از آنها، هم مواردی که در حال حاضر وجود دارند و هم بسیاری از مواردی که ممکن است در آینده اختراع شوند، کاربرد دارند.
ساختار کتاب Cloud Application Architecture Patterns چگونه است؟
همانطور که از عنوان پیداست، بیشتر مطالب این کتاب به صورت الگوها ساختار یافته است. الگوها یک تکنیک اثباتشده و کارآمد برای متخصصان هستند تا دانش خود را ثبت کرده و آن را به افراد مبتدی منتقل کنند و آنها را قادر سازند تا به سرعت تخصص کسب کنند.
الگوها دانش را به عنوان راه حلهای قابل استفاده مجدد برای مشکلات رایج کپسوله میکنند و نامهای به یاد ماندنی به آنها داده میشود تا بتوان از آن راه حلها برای بحث واضح و مختصر درباره گزینههای طراحی استفاده کرد. از آنجایی که دانش قابل استفاده مجدد به ندرت برای همه موارد یکسان است، الگوها نه تنها آنچه باید انجام شود، بلکه زمان و دلیل انجام آن را نیز ثبت میکنند—و خواننده را قادر میسازند تا هر بار که از الگو استفاده میکند، کاربرد آن را سفارشی کند.
الگوها از تجربه و موفقیتهای اثباتشده به دست آمدهاند و نه تنها بر اساس نظر یک فرد، بلکه بر اساس اجماع بین متخصصان صنعت هستند. خوانندگانی که در این زمینه تخصص دارند، قبلاً این شیوهها را درونی کردهاند و بنابراین باید الگوها را بسیار آشنا بیابند.
افراد مبتدی با این الگوها آشنا نیستند، اما یادگیری آنها به مبتدیان کمک میکند تا به سرعت دانش خود را ارتقا دهند. یک متخصص ممکن است یک مبتدی را به این کتاب ارجاع دهد تا به عنوان یک راه کارآمد برای یادگیری اصول اولیه بدون نیاز به سالها تجربه یک متخصص باشد.
کتاب Cloud Application Architecture Patterns الگوهای خود را در یک زبان الگو سازماندهی میکند—که الگوها را به هم متصل میکند تا مسیرهایی برای ترکیب چندین الگوی مرتبط برای حل مشکلات پیچیدهتر ایجاد کند. الگوهای موجود در یک زبان الگو، فراتر از یک فهرست ساده از راه حلها در یک فضای مسئله یکسان، بر اساس یکدیگر ساخته میشوند و ترکیبی را ایجاد میکنند که خواننده آن را برای یک طراحی خاص سفارشی میکند.
مجموعههای الگوها به یک موضوع مشترک میپردازند و ما هر یک از آن مجموعههای الگوهای نزدیک به هم را در یک فصل سازماندهی کردهایم. یک الگو در زبان الگو ممکن است به الگوهای دیگر در فصلهای دیگر نیز اشاره کند، اما عمدتاً به الگوهای دیگر در همان فصل اشاره میکند زیرا همه آنها به مشکلات مربوط به یک موضوع واحد میپردازند.
سرفصلهای کتاب Cloud Application Architecture Patterns:
- List of Patterns
- Foreword
- Preface
- Introduction
- 1. Cloud Applications
- 2. Application Architecture
- 3. Cloud-Native Application
- 4. Microservices Architecture
- 5. Microservice Design
- 6. Event-Driven Architecture
- 7. Cloud-Native Storage
- 8. Cloud Application Clients
- 9. Application Migration and Modernization
- 10. Strangling Monoliths
- Conclusion
- Index
- About the Authors
جهت دانلود کتاب Cloud Application Architecture Patterns میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.