کتاب Bootstrapping Microservices, 2nd Edition: With Docker, Kubernetes, GitHub Actions, and Terraform (بوت استرپینگ میکروسرویسها، ویرایش دوم: با Docker، Kubernetes، GitHub Actions و Terraform) به هزاران توسعهدهنده کمک کرده است تا اولین برنامههای کاربردی میکروسرویس خود را بسازند.
ویرایش دوم کتاب Bootstrapping Microservices که کاملاً بازنگری شده است، ابزارهای استاندارد صنعتی و مهارتهای عملیای را که برای هر برنامهی کاربردی میکروسرویس نیاز دارید، معرفی میکند. راهنمایی و توصیههای دوستانهی نویسنده، Ashley Davis، به کاهش منحنی یادگیری برای Docker، Terraform و Kubernetes کمک میکند و به شما نشان میدهد که برای شروع ساخت و ساز فقط به چه چیزهایی نیاز دارید.
در ادامه مقدمهای از را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Bootstrapping Microservices:
اولین تلاش من برای ساختن اپلیکیشن با میکروسرویسها به حدود سال ۲۰۱۳ برمیگردد. آن سال، داکر برای اولین بار منتشر شد، اما در آن زمان من چیزی دربارهاش نشنیده بودم. در آن زمان، ما یک اپلیکیشن ساختیم که هر میکروسرویس آن روی یک ماشین مجازی جداگانه اجرا میشد. همانطور که انتظار میرفت، این روشی گرانقیمت برای اجرای میکروسرویسها بود.
به دلیل هزینه بالای اجرا، مجبور شدیم تعداد میکروسرویسها را به جای اینکه بیشتر کنیم، کمتر کنیم و در نتیجه، کارایی بیشتری را به میکروسرویسهای موجود اضافه کردیم تا جایی که دیگر نمیتوانستیم آنها را واقعاً میکروسرویس بنامیم. البته این همچنان یک اپلیکیشن توزیعشده بود و به خوبی کار میکرد، اما سرویسها آنقدر به اندازهی میکرو که ما امیدوار بودیم، کوچک نبودند.
من در آن زمان هم میدانستم که میکروسرویسها ایدهای قدرتمند هستند، اگر فقط ارزانتر بودند. من موقتاً کار روی میکروسرویسها را کنار گذاشتم، اما یادداشتی گذاشتم که باید بعداً دوباره نگاهی به آنها بیندازم.
در طول سالها، از حاشیه شاهد توسعه ابزارها و فناوریهای مرتبط با میکروسرویسها بودم که با ظهور (و رشد) کد منبع باز تقویت میشدند. همچنین شاهد کاهش مداوم هزینه رایانش ابری به دلیل رقابت بین فروشندگان بودم. با گذشت زمان، مشخص شد که ساخت و اجرای یک اپلیکیشن توزیعشده با اجزای میکرو-مقیاس، از نظر هزینه، مقرون به صرفهتر میشود.
در اوایل سال ۲۰۱۸، بعد از زمانی که به نظر یک عمر میآمد، رسماً به دنیای میکروسرویسها بازگشتم.
دو فرصت عالی برای استفاده از میکروسرویسها پیدا کردم. هر دو استارتآپ بودند. مورد اول، یک قرارداد کاری برای راهاندازی (bootstrap) یک اپلیکیشن جدید مبتنی بر میکروسرویس برای یک شرکت جوان و آیندهدار بود. مورد دوم، ساخت یک اپلیکیشن میکروسرویس برای استارتآپ خودم بود. برای موفقیت، میدانستم که به ابزارهای جدیدی نیاز دارم. به روشی کارآمد برای بستهبندی میکروسرویسها و یک پلتفرم رایانش برای استقرار آنها نیاز داشتم. نکتهی کلیدی این بود که بتوانم استقرارها را خودکار کنم.
در آن زمان، داکر (Docker) جایگاه مهمی در صنعت ما پیدا کرده بود، بنابراین میدانستم که به عنوان راهی برای بستهبندی میکروسرویسها، گزینهی مطمئنی است. همچنین از Kubernetes به عنوان یک پلتفرم رایانش برای میکروسرویسها خوشم میآمد، اما در ابتدا، به شدت در مورد آن تردید داشتم. با این حال، Kubernetes نوید آیندهای بدون محدودیت ناشی از وابستگی به فروشندگان ابر را میداد – این بسیار جذاب بود.
تا آن زمان، چندین کتاب در مورد میکروسرویسها خوانده بودم. همهی آنها جالب بودند و از لحاظ تئوری ارزش خوبی ارائه میدادند. من از خواندن تئوری لذت میبرم، اما این کتابها فاقد مثالهای کاربردیای بودند که به من در عبور سریعتر از منحنی یادگیریام کمک میکردند. حتی به عنوان یک توسعهدهندهی باتجربه، نمیدانستم از کجا شروع کنم! از تجربهی گذشته میدانستم که تصمیمات فنی اشتباه در ابتدای یک پروژه، تا آخر گریبانگیرم خواهد شد.
یادگیری Kubernetes به خصوص سخت بود. از بیرون، به نظر میرسید نفوذ به آن فوقالعاده دشوار باشد.
اما کاری برای انجام دادن داشتم و نیاز به روشی برای تحویل نرمافزار داشتم، بنابراین به کارم ادامه دادم. مسیر سخت بود و چند بار نزدیک بود تسلیم پیچیدگیهای Kubernetes شوم. همه چیز زمانی تغییر کرد که Terraform را کشف کردم. این قطعهی گمشدهی پازل برای من بود. Terraform چیزی بود که Kubernetes را قابل درک و استفاده کرد تا جایی که دیگر نمیتوانستم از استفاده از آن صرف نظر کنم. Terraform ابزاری است که به من امکان توصیف زیرساخت برنامهام را داد. شروع به نوشتن زیرساخت به عنوان کد کردم و حس میکردم به لیگهای برتر پیوستهام.
با تکیه بر تجربهی طولانیمدتم در ارزیابی فناوری و یادگیری سریع در حین کار، همراه با آزمون و خطا، خودم را مجبور کردم از منحنی یادگیری عبور کنم. تلاشهای من منجر به نرمافزاری شد که کارآمد، انعطافپذیر، قابل اعتماد، مقیاسپذیر و قابل توسعه است. در طول این مدت، تمایل من برای نوشتن کتاب Bootstrapping Microservices جرقه زد و به حدی رسید که مجبور به عمل شدم.
ماموریت جدیدی شکل گرفت – میخواستم میکروسرویسها را قابل دسترستر کنم. احساس میکردم نوشتن کتاب Bootstrapping Microservices ضروری است؛ این همان کتابی است که خودم میخواستم اما نداشتم.
میدانستم که میتوانم به مردم کمک کنم و بهترین راه برای انجام این کار، نوشتن یک کتاب کاربردی بود – همین کتابی که در دست دارید. کتابی که گام به گام به شما نشان میدهد که میکروسرویسها لزوماً نباید دشوار یا پیچیده باشند؛ همه چیز به رویکرد شما و دیدگاهی که اتخاذ میکنید بستگی دارد. اکنون شما میوهی آن تلاش را در دست دارید. من به سختی یاد گرفتم تا شما مجبور نباشید.
ساخت میکروسرویسها: راهنمای کاربردی برای توسعهی توزیعشده
ساخت برنامههای کاربردی با استفاده از میکروسرویسها – ساخت برنامههای توزیعشده میتواند فرآیندی پیچیده و یادگیری آن دشوار باشد. اگر وارد یک برنامهی مدرن و پیچیده شوید، ممکن است نتوانید بهدرستی همه جوانب را در نظر بگیرید. در این فرآیند، بسیار فراتر از صرفا کدنویسی، موارد دیگری نیز باید در نظر گرفته شوند و این سفری نیست که به تنهایی بتوانید به راحتی از آن عبور کنید. برای استفاده از میکروسرویسها، باید نحوهی ساخت یک برنامهی توزیعشده را درک کنیم.
اما این به تنهایی کافی نیست. همچنین باید ابزارهای پیچیده و عمیقی را که برای توسعه، تست و استقرار چنین برنامههایی ضروری هستند، یاد بگیریم. چگونه یک جعبهابزار قدرتمند برای توسعه بسازیم؟ از کجا باید شروع کنیم؟
در طول مسیر، سوالات بیشتری مطرح میشوند:
- چگونه یک میکروسرویس را بستهبندی و استقرار کنیم؟
- چگونه محیط توسعهی خود را برای تستهای محلی پیکربندی کنیم؟
- چگونه میکروسرویسهای خود را با یکدیگر ارتباط دهیم و چگونه دادهها را مدیریت کنیم؟
- مهمتر از همه، چگونه میکروسرویسهای خود را در محیط عملیاتی (production) مستقر کنیم؟ سپس، پس از ورود به محیط عملیاتی، چگونه صدها میکروسرویس بالقوه را مدیریت، نظارت و مشکلات آنها را برطرف کنیم؟
کتاب Bootstrapping Microservices، با عنوان «بوت استرپینگ میکروسرویسها، ویرایش دوم» به این سوالات و موارد بیشتری پاسخ میدهد! این کتاب، راهنمای شما برای ساخت یک برنامهی کاربردی با میکروسرویسها با استفاده از آخرین ابزارها است. ما از هیچ شروع میکنیم و تا رسیدن به یک برنامهی کاربردی میکروسرویس عملیاتی که در محیط واقعی اجرا میشود، پیش میرویم.
در این کتاب با تئوریهای پیچیده روبرو نخواهید شد. «بوت استرپینگ میکروسرویسها، ویرایش دوم» رویکردی کاربردی و مبتنی بر پروژه دارد. ما با هم روی نمونههای متعددی از میکروسرویسها کار میکنیم، در نهایت به محیط عملیاتی میرسیم و هر چیزی را که برای تبدیل شدن به یک توسعهدهندهی مطمئن در حوزهی میکروسرویسها نیاز دارید، پوشش میدهیم.
هرآنچه برای یادگیری میکروسرویسها نیاز دارید
هر مثال در این کتاب همراه با کد قابل استفادهای است که در گیتهاب در دسترس است. میتوانید خودتان آن را امتحان کنید و تغییرات تجربی خود را اعمال نمایید.
چه کسانی باید کتاب Bootstrapping Microservices را بخوانند؟
این کتاب برای هر کسی که میخواهد در مورد جنبههای عملی کار با میکروسرویسها بیشتر بیاموزد، مناسب است: کسانی که به یک راهنمای واضح در مورد نحوهی مونتاژ جعبهابزار خود و رساندن برنامهی خود به مرحلهی عملیاتی نیاز دارند. این کتاب برنامهنویسی را آموزش نمیدهد، بنابراین داشتن مهارتهای اولیهی برنامهنویسی توصیه میشود.
توجه: اگر شما تجربه ابتدایی یا سطح پایهای با زبانهای برنامهنویسی مدرن مانند C#، جاوا، پایتون یا جاوا اسکریپت دارید، باید بتوانید مطالب این کتاب را دنبال کنید.
نمونههای کد تا حد امکان ساده هستند، اما تمرکز این کتاب روی کد نیست. هدف اصلی این کتاب آموزش نحوهی مونتاژ جعبهابزار مورد نیاز برای ساخت یک برنامهی کاربردی میکروسرویس است. اگر تجربه برنامهنویسی ندارید، اما یادگیرنده سریعی هستید، میتوانید در حین خواندن کتاب «بوت استرپینگ میکروسرویسها، ویرایش دوم»، جاوااسکریپت پایه را (از طریق کتاب دیگری، آموزشهای آنلاین، ویدیوها و غیره) یاد بگیرید.
همانطور که گفته شد، نمونههای کد تا حد امکان ساده هستند، بنابراین حتی بدون تجربه زیاد در برنامهنویسی، احتمالاً میتوانید کد را بخوانید و مفهوم کلی آن را درک کنید. ماجراجویی کدنویسی ما در فصل ۲ کتاب Bootstrapping Microservices شروع میشود، جایی که یاد میگیرید چگونه یک میکروسرویس ساده با استفاده از جاوااسکریپت و Node.js بسازید.
نحوهی سازماندهی کتاب Bootstrapping Microservices: نقشهی راه
در ۱۲ فصل این کتاب، ما از ساخت یک میکروسرویس ساده تا اجرای چندین میکروسرویس در یک خوشهی Kubernetes آمادهی تولید، پیش میرویم. در هر فصل با چه مطالبی روبرو خواهید شد:
- فصل ۱: مقدمهای بر میکروسرویسها و توضیح اینکه چرا میخواهیم از آنها استفاده کنیم.
- فصل ۲ کتاب Bootstrapping Microservices: ساخت یک میکروسرویس ساده با استفاده از Node.js و JavaScript را به صورت گام به گام یاد میگیرید. همچنین یاد میگیرید که چگونه از بارگذاری مجدد زنده (live reload) برای یک فرآیند توسعهی روانتر استفاده کنید.
- فصل ۳: Docker را برای بستهبندی و انتشار میکروسرویس ما به منظور آمادهسازی برای استقرار معرفی میکند.
- فصل ۴ کتاب Bootstrapping Microservices: مقیاس را به چندین میکروسرویس افزایش میدهد و Docker Compose را برای شبیهسازی برنامهی کاربردی میکروسرویسهای ما روی رایانهی توسعهی ما در طول توسعه معرفی میکند. سپس به مدیریت دادهها برای میکروسرویسها، از جمله داشتن یک پایگاه داده و ذخیرهسازی فایل خارجی میپردازیم.
- فصل ۵: محیط توسعهی خود را برای بارگذاری مجدد زندهی کل برنامه ارتقا میدهیم. سپس ارتباطات بین میکروسرویسها، از جمله HTTP برای پیامرسانی مستقیم و RabbitMQ برای پیامرسانی غیرمستقیم را پوشش میدهیم.
- فصل ۶: Kubernetes را معرفی میکند. ما با استقرار برنامهی خود در نمونهی محلی Kubernetes خود شروع میکنیم. سپس یک خوشهی Kubernetes در ابر ایجاد میکنیم و برنامهی خود را در آن مستقر میکنیم.
- فصل ۷ کتاب Bootstrapping Microservices: با استفاده از Terraform و مفهوم زیرساخت به عنوان کد، زیرساخت ما (رجیستری کانتینر و خوشهی Kubernetes) را ایجاد میکند.
- فصل ۸ کتاب Bootstrapping Microservices: با استفاده از GitHub Actions یک خط لولهی استقرار مداوم (CD) برای یک میکروسرویس ایجاد میکند.
- فصل ۹ کتاب Bootstrapping Microservices: نشان میدهد که چگونه میتوان سطوح مختلف تست خودکار را روی میکروسرویسها اعمال کرد.
- فصل ۱۰ کتاب Bootstrapping Microservices: نمای کلی از برنامهی کاربردی نمونه و مروری بر مهارتهایی است که تاکنون در حین استقرار برنامهی نمونه برای خودتان یاد گرفتهاید.
- فصل ۱۱ کتاب Bootstrapping Microservices: روشهایی را بررسی میکند که با استفاده از آنها میتوانیم میکروسرویسهای قابل اعتماد و تحملپذیر در برابر خطا بسازیم و سپس آنها را برای کمک به حفظ سلامت برنامه، مانیتور کنیم.
- فصل ۱۲: کتاب Bootstrapping Microservices را با نشان دادن روشهای عملی برای مقیاسبندی برنامهی میکروسرویسهای شما برای پشتیبانی از کسبوکار در حال رشد و سازماندهی آن برای مدیریت تیم توسعهی در حال گسترش شما، جمعبندی میکند. همچنین به امنیت، بازسازی یک برنامهی یکپارچه (monolith) و نحوهی ساخت با میکروسرویسها با بودجهی محدود میپردازد.
تغییرات نسبت به ویرایش اول
از زمان انتشار ویرایش اول کتاب Bootstrapping Microservices، تغییرات زیادی رخ داده است! در اینجا خلاصهای از آنها آورده شده است:
- فصل ۶ کتاب Bootstrapping Microservices کاملاً جدید است و پوشش اصلاحشده و بهبودیافتهای از Kubernetes را ارائه میکند، از جمله استقرار در نمونهی محلی Kubernetes که با Docker Desktop همراه است.
- مدل استقرار برای Kubernetes را به استفاده از فایلهای kubectl و Kubernetes YAML به جای استفاده از Terraform برای استقرارها تغییر دادم (در ابتدا فکر میکردم این سادهترین راه برای آموزش استقرارهای Kubernetes است، اما از آن زمان نظرم را تغییر دادهام).
- فصل ۸ کتاب Bootstrapping Microservices کاملاً جدید در مورد استقرار مداوم (CD) با استفاده از GitHub Actions وجود دارد که جایگزین فصل قدیمیتر در مورد BitBucket Pipelines شده است.
- در فصل ۹ کتاب Bootstrapping Microservices در مورد تست خودکار، از Cypress به Playwright تغییر مسیر دادم.
- قابلیت مشاهده (Observability) که از زمان ویرایش اول محبوبیت بیشتری پیدا کرده است، در فصل ۱۱ ذکر شده است.
- مخزنهای یکپارچه (Mono-repos) و امکان داشتن چندین خط لولهی استقرار مداوم (CD) به ازای هر مخزن کد با گیتهاب اکنون در فصل ۱۲ پوشش داده شدهاند.
- پوشش گستردهای از مونولیتها در مقابل میکروسرویسها و طیف وسیعی از گزینههای بین این دو را خواهید یافت.
- تمام نرمافزارها به آخرین نسخهها بهروز شدهاند.
- بخش زیادی از کد برای درک آسانتر ساده و بهینهسازی شده است.
- بر اساس بازخورد خوانندگان از ویرایش اول، تغییرات و بهبودهای زیادی انجام شده است.
- بسیاری از بهبودها در متن و گرافیک اعمال شده است.
سرفصلهای کتاب Bootstrapping Microservices:
- Bootstrapping Microservices, Second Edition
- Praise for the first edition
- brief contents
- contents
- preface
- acknowledgments
- about this book
- about the author
- about the cover illustration
- Chapter 1: Why microservices?
- Chapter 2: Creating your first microservice
- Chapter 3: Publishing your first microservice
- Chapter 4: Data management for microservices
- Chapter 5: Communication between microservices
- Chapter 6: The road to production
- Chapter 7: Infrastructure as code
- Chapter 8: Continuous deployment
- Chapter 9: Automated testing for microservices
- Chapter 10: Shipping Flix Tube
- Chapter 11: Healthy microservices
- Chapter 12: Pathways to scalability
- index
جهت دانلود کتاب Bootstrapping Microservices میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.