Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Production-Ready Microservices

Production-Ready Microservices

Building Standardized Systems Across an Engineering Organization
توسط Susan J. Fowler 2016 153 صفحات
3.82
100+ امتیازها
گوش دادن
گوش دادن

نکات کلیدی

1. میکروسرویس‌ها: تغییری بنیادین در معماری نرم‌افزار

مفهوم پایه‌ای یک میکروسرویس ساده است: این یک برنامه کوچک است که تنها یک کار را انجام می‌دهد و آن کار را به خوبی انجام می‌دهد.

میکروسرویس‌ها توسعه نرم‌افزار را متحول می‌کنند. آن‌ها برنامه‌های یکپارچه را به خدمات کوچک‌تر و مستقل تقسیم می‌کنند که هر کدام مسئولیت یک عملکرد خاص را بر عهده دارند. این رویکرد معماری مزایای زیادی ارائه می‌دهد:

  • افزایش بهره‌وری و سرعت توسعه‌دهندگان
  • بهبود مقیاس‌پذیری و انعطاف‌پذیری
  • پذیرش آسان‌تر فناوری‌های جدید
  • کاهش بدهی فنی

با این حال، میکروسرویس‌ها چالش‌های جدیدی نیز به همراه دارند:

  • افزایش پیچیدگی عملیاتی
  • احتمال ایجاد سیلوهای سازمانی
  • نیاز بیشتر به استانداردسازی و هماهنگی

انتقال از برنامه‌های یکپارچه به میکروسرویس‌ها نیازمند برنامه‌ریزی دقیق و تعهد سازمانی به بازسازی هم معماری نرم‌افزار و هم ساختار سازمانی است.

2. مدل چهار لایه‌ای اکوسیستم میکروسرویس‌ها

میکروسرویس‌ها در انزوا زندگی نمی‌کنند. محیطی که در آن میکروسرویس‌ها ساخته، اجرا و تعامل می‌کنند، جایی است که آن‌ها زندگی می‌کنند.

درک اکوسیستم میکروسرویس‌ها حیاتی است. مدل چهار لایه‌ای یک چارچوب جامع برای مفهوم‌سازی و مدیریت معماری‌های میکروسرویس ارائه می‌دهد:

  1. لایه سخت‌افزار: سرورهای فیزیکی، سیستم‌عامل‌ها و مدیریت منابع
  2. لایه ارتباطات: شبکه، DNS، کشف خدمات و تعادل بار
  3. لایه پلتفرم برنامه: ابزارهای توسعه، خطوط لوله استقرار و نظارت
  4. لایه میکروسرویس: میکروسرویس‌های واقعی و پیکربندی‌های آن‌ها

هر لایه نقش حیاتی در اکوسیستم کلی ایفا می‌کند:

  • لایه‌های پایین‌تر زیرساخت و پایه را فراهم می‌کنند
  • لایه‌های بالاتر بر عملکرد خاص خدمات و منطق کسب‌وکار تمرکز دارند
  • جداسازی واضح نگرانی‌ها مدیریت و مقیاس‌پذیری بهتری را ممکن می‌سازد

معماری مؤثر میکروسرویس نیازمند توجه و بهینه‌سازی دقیق هر چهار لایه است تا عملکرد روان و تعامل بی‌نقص بین خدمات تضمین شود.

3. آمادگی برای تولید: کلید استانداردسازی میکروسرویس‌ها

یک برنامه یا خدمات آماده برای تولید، برنامه‌ای است که می‌توان به آن اعتماد کرد تا ترافیک تولید را خدمت‌رسانی کند.

آمادگی برای تولید، قابلیت اطمینان میکروسرویس‌ها را تضمین می‌کند. برای دستیابی به این هدف، میکروسرویس‌ها باید به هشت اصل کلیدی پایبند باشند:

  1. پایداری
  2. قابلیت اطمینان
  3. مقیاس‌پذیری
  4. تحمل خطا
  5. آمادگی برای فاجعه
  6. عملکرد
  7. نظارت
  8. مستندسازی

این اصول با هم کار می‌کنند تا:

  • دسترسی کلی سیستم را افزایش دهند
  • خطر قطعی‌ها و شکست‌ها را کاهش دهند
  • بهره‌وری و اعتماد به نفس توسعه‌دهندگان را بهبود بخشند

اجرای استانداردهای آمادگی برای تولید نیازمند:

  • پذیرش سازمانی در تمام سطوح
  • ارتباط واضح انتظارات و الزامات
  • بررسی‌ها و ممیزی‌های منظم برای اطمینان از انطباق
  • بهبود و تطبیق مداوم با تکامل اکوسیستم

4. پایداری و قابلیت اطمینان: پایه‌های معماری میکروسرویس

یک میکروسرویس پایدار، میکروسرویسی است که توسعه، استقرار، پذیرش فناوری‌های جدید و از کار انداختن یا منسوخ کردن خدمات دیگر باعث ایجاد ناپایداری در اکوسیستم بزرگ‌تر میکروسرویس نمی‌شود.

پایداری و قابلیت اطمینان پایه‌های اعتماد را تشکیل می‌دهند. برای ساخت میکروسرویس‌های پایدار و قابل اطمینان، تمرکز بر:

  1. چرخه توسعه استاندارد
  2. خط لوله استقرار جامع (مرحله‌بندی، قناری، تولید)
  3. مدیریت وابستگی و کاهش شکست
  4. مکانیزم‌های مسیریابی و کشف پایدار
  5. روش‌های دقیق برای از کار انداختن و منسوخ کردن

روش‌های کلیدی برای اطمینان از پایداری و قابلیت اطمینان:

  • اجرای تست کد جامع (واحد، یکپارچه‌سازی، انتها به انتها)
  • استفاده از فرآیندهای ساخت و انتشار خودکار
  • استفاده از مکانیزم‌های کش و بازگشت دفاعی برای وابستگی‌ها
  • بررسی و به‌روزرسانی منظم معماری خدمات
  • حفظ کانال‌های ارتباطی واضح بین تیم‌ها

با اولویت دادن به پایداری و قابلیت اطمینان، سازمان‌ها می‌توانند اکوسیستم میکروسرویس قوی‌ای ایجاد کنند که بتواند چالش‌های توسعه سریع و نیازهای متغیر را تحمل کند.

5. مقیاس‌پذیری و عملکرد: طراحی برای رشد و کارایی

برای اطمینان از اینکه میکروسرویس‌های ما مقیاس‌پذیر و کارآمد هستند، باید چندین چیز را از هر میکروسرویس بخواهیم.

مقیاس‌پذیری و عملکرد کارایی را هدایت می‌کنند. برای ساخت میکروسرویس‌های مقیاس‌پذیر و کارآمد:

  1. درک مقیاس‌های رشد کیفی و کمی
  2. استفاده کارآمد از منابع سخت‌افزاری
  3. شناسایی و رفع گلوگاه‌های منابع
  4. اجرای برنامه‌ریزی ظرفیت خودکار
  5. اطمینان از اینکه وابستگی‌ها می‌توانند با خدمات شما مقیاس شوند
  6. طراحی برای مدیریت و پردازش کارآمد وظایف

ملاحظات کلیدی برای مقیاس‌پذیری و عملکرد:

  • انتخاب زبان‌های برنامه‌نویسی و چارچوب‌های مناسب
  • اجرای قابلیت‌های مقیاس‌پذیری افقی
  • بهینه‌سازی طراحی و استفاده از پایگاه داده
  • نظارت و تنظیم برای الگوهای ترافیک متغیر
  • انجام منظم تست بار و تنظیم عملکرد

با تمرکز بر مقیاس‌پذیری و عملکرد از ابتدا، سازمان‌ها می‌توانند میکروسرویس‌هایی ایجاد کنند که بتوانند به‌طور مؤثر با افزایش تقاضا کنار بیایند و سطوح بالایی از کارایی را در حین رشد حفظ کنند.

6. تحمل خطا و آمادگی برای فاجعه: پذیرش شکست

میکروسرویس‌ها شکست خواهند خورد، آن‌ها اغلب شکست خواهند خورد، و هر سناریوی شکست احتمالی می‌تواند و در نهایت در طول عمر میکروسرویس رخ خواهد داد.

آمادگی برای شکست برای اطمینان از موفقیت ضروری است. ساخت میکروسرویس‌های تحمل‌پذیر در برابر خطا و آماده برای فاجعه شامل:

  1. شناسایی و حذف نقاط شکست واحد
  2. مستندسازی تمام سناریوهای شکست ممکن
  3. اجرای تست‌های جامع مقاومت
  4. خودکارسازی تشخیص و رفع شکست
  5. ایجاد رویه‌های پاسخ به حادثه واضح

روش‌های ضروری برای تحمل خطا:

  • انجام بررسی‌های منظم معماری برای شناسایی آسیب‌پذیری‌ها
  • اجرای قطع‌کننده‌های مدار و مکانیزم‌های بازگشت
  • انجام تست آشوب برای شبیه‌سازی شکست‌های دنیای واقعی
  • حفظ کتاب‌های راهنمای به‌روز برای پاسخ به حادثه
  • پرورش فرهنگ بدون سرزنش که یادگیری از شکست‌ها را تشویق کند

با پذیرش واقعیت شکست و آمادگی سیستماتیک برای آن، سازمان‌ها می‌توانند میکروسرویس‌های قوی‌ای ایجاد کنند که بتوانند چالش‌های غیرمنتظره را تحمل کنند و دسترسی بالایی را حفظ کنند.

7. نظارت: نبض میکروسرویس‌های شما

اکثر قطعی‌ها در یک اکوسیستم میکروسرویس به دلیل استقرارهای بد رخ می‌دهند. دومین علت شایع قطعی‌ها، عدم نظارت مناسب است.

نظارت مؤثر برای سلامت میکروسرویس حیاتی است. برای اجرای نظارت آماده برای تولید:

  1. شناسایی و پیگیری معیارهای کلیدی در تمام سطوح (میزبان، زیرساخت، میکروسرویس)
  2. اجرای لاگ‌گیری جامع
  3. ایجاد داشبوردهای واضح و آموزنده
  4. تنظیم هشدارهای قابل اقدام با آستانه‌های مناسب
  5. ایجاد چرخش‌های پایدار در حالت آماده‌باش

بهترین روش‌ها برای نظارت بر میکروسرویس:

  • لاگ‌گیری تمام اطلاعات مرتبط بدون به خطر انداختن امنیت یا عملکرد
  • طراحی داشبوردهایی که به راحتی قابل تفسیر باشند
  • اطمینان از اینکه تمام هشدارها قابل اقدام و به کتاب‌های راهنما متصل هستند
  • بررسی و به‌روزرسانی منظم استراتژی‌های نظارت
  • پرورش فرهنگ مسئولیت مشترک برای سلامت خدمات

با اجرای روش‌های نظارت قوی، سازمان‌ها می‌توانند مشکلات را به سرعت شناسایی و حل کنند و سطوح بالایی از دسترسی و عملکرد میکروسرویس را حفظ کنند.

8. مستندسازی و درک: قهرمانان ناشناخته موفقیت میکروسرویس

همیشه یک پیاز بدهید.

مستندسازی و درک، هم‌راستایی سازمانی را هدایت می‌کنند. برای اطمینان از مستندسازی و درک جامع:

  1. حفظ مستندسازی متمرکز و به‌روز برای تمام میکروسرویس‌ها
  2. شامل عناصر کلیدی: توضیحات، نمودار معماری، اطلاعات تماس، راهنمای ورود، جزئیات API و کتاب‌های راهنما
  3. انجام بررسی‌های منظم معماری
  4. انجام ممیزی‌های آمادگی برای تولید
  5. ایجاد و حفظ نقشه‌های راه آمادگی برای تولید
  6. خودکارسازی بررسی‌های آمادگی برای تولید در صورت امکان

استراتژی‌هایی برای بهبود مستندسازی و درک:

  • به‌روزرسانی مستندات را بخشی از جریان کاری توسعه قرار دهید
  • استفاده از زبان واضح و بدون اصطلاحات فنی که برای همه ذینفعان قابل دسترسی باشد
  • اجرای بخش پرسش‌های متداول برای پاسخ به سوالات رایج
  • برگزاری جلسات منظم به اشتراک‌گذاری دانش در سراسر تیم‌ها
  • پیوند دادن آمادگی برای تولید به OKRهای سازمانی و چرخه‌های برنامه‌ریزی

با اولویت دادن به مستندسازی و درک، سازمان‌ها می‌توانند بدهی فنی را کاهش دهند، همکاری بین تیمی را بهبود بخشند و موفقیت بلندمدت اکوسیستم میکروسرویس خود را تضمین کنند.

آخرین به‌روزرسانی::

FAQ

What's "Production-Ready Microservices" by Susan J. Fowler about?

  • Focus on Microservices: The book provides a comprehensive guide on building and maintaining microservices that are ready for production environments.
  • Standardization Across Organizations: It emphasizes the importance of standardizing systems across an engineering organization to ensure reliability and efficiency.
  • Real-World Application: The content is based on the author's experience at Uber, where she led a production-readiness initiative for microservices.
  • Comprehensive Framework: It offers a detailed framework for achieving production-readiness, covering aspects like stability, reliability, scalability, and more.

Why should I read "Production-Ready Microservices"?

  • Expert Insights: Gain insights from Susan J. Fowler, who has firsthand experience in transforming Uber's microservices.
  • Practical Guidance: The book provides actionable steps and checklists to help engineers implement production-ready standards.
  • Organizational Impact: Learn how to drive high standards across teams, improving overall system reliability and performance.
  • Future-Proofing Skills: Understanding microservices is crucial for modern software development, and this book equips you with the necessary skills.

What are the key takeaways of "Production-Ready Microservices"?

  • Eight Principles: The book outlines eight principles for production-readiness: stability, reliability, scalability, fault tolerance, catastrophe-preparedness, performance, monitoring, and documentation.
  • Standardization is Key: Standardizing microservices across an organization is essential for maintaining high availability and reliability.
  • Comprehensive Framework: It provides a detailed framework for evaluating and improving microservices, including checklists and roadmaps.
  • Organizational Buy-In: Successful implementation requires buy-in from all levels of an organization, from developers to executives.

How does Susan J. Fowler define "production-ready" in microservices?

  • Trustworthy Services: A production-ready service is one that can be trusted to serve production traffic reliably.
  • Quantifiable Standards: It must meet quantifiable standards across eight key principles, ensuring high availability.
  • Comprehensive Testing: The service should undergo thorough testing, including code, load, and chaos testing.
  • Continuous Monitoring: Proper logging, dashboards, and alerting are essential to maintain production-readiness.

What are the eight production-readiness principles in "Production-Ready Microservices"?

  • Stability: Ensures that changes do not introduce instability across the ecosystem.
  • Reliability: Builds trust by ensuring services perform as expected under various conditions.
  • Scalability: Prepares services to handle growth in traffic and tasks efficiently.
  • Fault Tolerance: Ensures services can withstand and recover from failures and catastrophes.

How does "Production-Ready Microservices" suggest handling dependencies?

  • Identify and Document: Know and document all dependencies, including their SLAs and potential failure points.
  • Mitigation Strategies: Implement backups, alternatives, fallbacks, or caching to handle dependency failures.
  • Communication: Maintain open communication with dependency teams to prepare for changes and potential issues.
  • Defensive Caching: Use caching to protect your service from dependency failures, ensuring continued availability.

What is the role of monitoring in "Production-Ready Microservices"?

  • Key Metrics: Identify and monitor key metrics at the host, infrastructure, and microservice levels.
  • Logging: Implement comprehensive logging to understand the state of the service at any time.
  • Dashboards: Use dashboards to provide a real-time view of the service's health and status.
  • Alerting: Set actionable alerts with signal-providing thresholds to detect and address issues promptly.

How does "Production-Ready Microservices" address scalability and performance?

  • Growth Scales: Understand both qualitative and quantitative growth scales to plan for future capacity needs.
  • Efficient Resource Use: Use hardware resources efficiently and identify resource bottlenecks.
  • Traffic Management: Handle traffic intelligently, preparing for bursts and rerouting as needed.
  • Task Processing: Ensure tasks are processed efficiently, optimizing for concurrency and partitioning.

What are the best quotes from "Production-Ready Microservices" and what do they mean?

  • "Form is liberating": This quote emphasizes that standardization and structure can enhance freedom and creativity in software development.
  • "Always give an onion": A metaphor for sharing knowledge and documentation, ensuring that others can benefit from your work.
  • "No microservice is an island": Highlights the interconnected nature of microservices and the importance of understanding dependencies.
  • "The system will break in any way that it can be broken": A reminder of the inevitability of failures and the need for thorough testing and preparation.

How does "Production-Ready Microservices" suggest implementing production-readiness across an organization?

  • Top-Down and Bottom-Up: Requires buy-in from executives and developers, integrating standards into the organizational culture.
  • Automated Checks: Automate production-readiness checks to ensure continuous compliance with standards.
  • Publicize Results: Share production-readiness scores internally to maintain awareness and drive improvements.
  • Continuous Improvement: Regularly review and update standards and practices to adapt to changing needs and technologies.

What are the common challenges in microservice standardization according to "Production-Ready Microservices"?

  • Organizational Siloing: Microservices can lead to isolated teams, requiring efforts to maintain communication and collaboration.
  • Technical Sprawl: Diverse tools and languages can lead to inefficiencies, necessitating standardization.
  • Resource Competition: Finite resources require prioritization and efficient allocation to maintain service availability.
  • Failure Management: Complex systems introduce more failure points, requiring robust testing and mitigation strategies.

How does "Production-Ready Microservices" address fault tolerance and catastrophe-preparedness?

  • Identify Failures: Recognize potential failure scenarios and single points of failure within the service.
  • Resiliency Testing: Conduct code, load, and chaos testing to ensure services can recover from failures.
  • Automated Remediation: Implement automated failure detection and remediation strategies to minimize downtime.
  • Incident Response: Develop standardized incident response procedures to quickly assess, coordinate, mitigate, and resolve issues.

نقد و بررسی

3.82 از 5
میانگین از 100+ امتیازات از Goodreads و Amazon.

کتاب میکروسرویس‌های آماده برای تولید نوشته‌ی سوزان فاولر نظرات متفاوتی را دریافت کرده است. خوانندگان از دیدگاه کلی و چک‌لیست‌های آن برای آمادگی تولید قدردانی می‌کنند و آن را برای مدیران و مهندسانی که تازه با میکروسرویس‌ها آشنا شده‌اند، مفید می‌دانند. با این حال، بسیاری از کمبود عمق فنی و مثال‌های عملی آن انتقاد می‌کنند. این کتاب به خاطر تمرکز بر جنبه‌های سازمانی و آمادگی تولید مورد تحسین قرار گرفته است، اما برخی آن را تکراری و بیش از حد انتزاعی می‌دانند. به عنوان یک مطالعه مکمل برای کتاب‌های فنی‌تر میکروسرویس‌ها توصیه می‌شود، به ویژه برای کسانی که در نقش‌های مدیریتی هستند یا به دنبال درک کلی از اکوسیستم‌های میکروسرویس می‌باشند.

درباره نویسنده

سوزان فاولر مهندس نرم‌افزار و نویسنده‌ای است که به خاطر کارهایش در زمینه‌ی میکروسرویس‌ها و حمایت از برابری در محیط کار شناخته می‌شود. او پس از انتشار یک پست وبلاگی که تجربیاتش از آزار جنسی و تبعیض در شرکت اوبر را شرح می‌داد، به شهرت رسید و این امر منجر به تغییرات قابل توجهی در فرهنگ این شرکت شد. فاولر در چندین شرکت فناوری نقش‌هایی داشته است، جایی که بر روی سیستم‌های توزیع‌شده‌ی بزرگ‌مقیاس و میکروسرویس‌ها کار کرده است. کتاب او با عنوان "میکروسرویس‌های آماده برای تولید" از تجربیات عملی او در این حوزه بهره می‌برد. فاولر همچنین برای نشریات مختلف نوشته و به خاطر مشارکت‌هایش در بحث‌های صنعت فناوری در زمینه‌های فنی و فرهنگی شناخته می‌شود.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Mar 1,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
50,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →