کتاب Enabling Microservice Success: Managing Technical, Organizational, and Cultural Challenges (توانمندسازی موفقیت میکروسرویسها: مدیریت چالشهای فنی، سازمانی و فرهنگی) نوشتهی، سارا ولز، استراتژیست فنی، توصیههای عملی و عمیقی را برای حرکت به سمت خدمات میکرو ارائه میدهد.
سارا که اولین معماری میکروسرویس خود را در سال 2013 برای فایننشال تایمز ساخته است، در مورد رویکردهایی که از ابتدا باید در پیش بگیرید بحث میکند و تله های بالقوهای را توضیح میدهد که به احتمال زیاد شما را به چالش میکشد. شما همچنین یاد خواهید گرفت که چگونه با رشد سیستم های خود معماری را حفظ کنید و در عین حال زمان صرف شده برای پشتیبانی و نگهداری را به حداقل برسانید.
در ادامه مقدمهای از کتاب Enabling Microservice Success را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Enabling Microservice Success:
میکروسرویسها: راهحلی برای سرعت بخشیدن به ارزشآفرینی
معماری میکروسرویس میتواند رویکرد بسیار مؤثری برای سرعت بخشیدن به ارزشآفرینی برای سازمان و مشتریان شما باشد. البته به شرطی که آن را به درستی اجرا کنید.
اگر در اجرای آن اشتباه کنید، ممکن است با یک آشفتگی پیچیده مواجه شوید که باعث دشواری بسیار زیاد در بهرهبرداری و نگهداری میشود و تیمهای کوچکی را درگیر پشتیبانی از انبوهی از سرویسها میکند که حتی روی برخی از آنها هرگز کار نکردهاند.
پذیرش میکروسرویس فراتر از انتخاب یک رویکرد معماری است. برای موفقیت در استفاده از میکروسرویسها، نیاز به ایجاد تغییرات فرهنگی و سازمانی دارید. شما باید به سمت تیمهای خودمختار و توانمند حرکت کنید.
این به آن معناست که بسیاری از کارهایی که قبلا بر عهدهی افراد دیگری بود، اکنون به مسئولیت تیمهای مهندسی تبدیل میشود. شما باید فراتر از طراحی سیستم، معماری و پیادهسازی فکر کنید. این شامل در نظر گرفتن نحوهی ساخت سیستمهایی است که بتوانید با موفقیت در محیط عملیاتی اجرا کنید و چگونگی نگهداری و مدیریت آنها در بلندمدت. شما نیاز به درک معماری سیستمهای توزیعشده دارید و به احتمال زیاد درگیر بخشهایی از زیرساخت خود خواهید شد.
کتاب Enabling Microservice Success به شما در تمامی این موارد کمک خواهد کرد. این کتاب توصیههای عملی در مورد چگونگی اتخاذ یک معماری میکروسرویس و اطمینان از اینکه همچنان بعد از چند سال برای شما کارآمد است، ارائه میدهد و به شما در نگهداری و پایداری سیستمها در طول بلوغ آنها کمک میکند.
چرا کتاب Enabling Microservice Success را نوشتم؟
تمرکز این کتاب بر چگونگی بهرهمندی بلندمدت از میکروسرویسها است. من میخواهم به شما کمک کنم تا چند سال بعد گرفتار پیچیدگیهای ناخواسته نشوید و توسعهدهندگان زمان خود را صرف کارهایی نکنند که ارزش تجاری به همراه ندارند. اگر هم اکنون در چنین وضعیتی هستید، میخواهم به شما در حل آن کمک کنم.
من اولین میکروسرویسهای خودم را در سال ۲۰۱۳ ساختم و هشت سال بعد همچنان در همان سازمان مشغول ساخت و اجرای همان سیستمها بودم. این بدان معناست که مشکلات را دیدهام، برای حل آنها تلاش کردهام و به اندازهی کافی در آنجا بودهام که بدانم آیا آن راهحلها واقعاً کارساز بودهاند یا نه.
در طول آن زمان، در بخشهای توسعه محصول، عملیات و مدیریت رویداد و توانمندسازی مهندسی کار کردهام. این تجربیات به من دیدگاه گستردهای در مورد نحوهی رویارویی با میکروسرویسها داده است. هدف من این است که به شما کمک کنم به نقطهای برسید که با موفقیت و به صورت پایدار از یک معماری میکروسرویس استفاده کنید.
چه کسانی باید کتاب Enabling Microservice Success را بخوانند؟
این کتاب برای مهندسان ارشد، معماران و رهبران فنی است که به سمت میکروسرویسها حرکت میکنند و میخواهند بدانند این رویکرد چه معنایی برای تمام تکنیکها و فرایندهایی دارد که در حال حاضر استفاده میکنند. همچنین برای کسانی که در حال حاضر از میکروسرویسها استفاده میکنند و با پیچیدگی آن دست و پنجه نرم میکنند و میخواهند یاد بگیرند که چگونه دیگران بر برخی از این چالشها به طور موفقیتآمیز غلبه کردهاند، مفید است.
فرض من بر این است که با مفاهیم اساسی توسعه و معماری نرمافزار آشنا هستید، اما فرض نمیکنم که قبلاً تجربه کار با معماری میکروسرویس را داشته باشید.
من زمان زیادی را صرف جزئیات فناوریهای خاص یا نحوهی انجام کارها نمیکنم. کتابهای دیگری در این زمینه وجود دارند که به این موارد میپردازند و من آنها را در نقاط مرتبط توصیه خواهم کرد. کتاب Enabling Microservice Success بر روی توصیههای عملی تمرکز خواهد کرد، اما بر هیچ فناوری خاصی متمرکز نخواهد بود و در عوض بر اصولی تمرکز خواهد کرد که به شما در تصمیمگیری در مورد ابزارهای مورد نیاز کمک میکند.
پیمایش در کتاب Enabling Microservice Success
این کتاب برای کسانی که به تازگی با این سبک معماری آشنا شدهاند، مناسب است.
- فصل ۱: مقدمهای بر میکروسرویسها
این فصل از کتاب Enabling Microservice Success، مقدماتی است که در آن به بررسی کلی میکروسرویسها، مزایا و معایب آنها و فناوریهای توانمندسازی که به پذیرش گستردهی آنها کمک کرده است، میپردازم. اگر احساس میکنید که درک خوبی از این موضوع دارید، میتوانید این فصل را رد کرده و از فصل ۲ شروع کنید.
- نحوهی خواندن کتاب Enabling Microservice Success
هر فصل از کتاب Enabling Microservice Success، در این کتاب موضوعی متفاوت را پوشش میدهد. اگر میخواهید مستقیماً به یک فصل خاص بروید، میتوانید هر آنچه را که نیاز دارید پیدا کنید، اما اگر کتاب را از ابتدا تا انتها بخوانید، متوجه میشوید که هر فصل بر اساس فصلهای قبلی بنا شده است.
این کتاب به سه بخش اصلی تقسیم میشود: زمینه؛ ساختار و فرهنگ سازمانی؛ و ساخت و بهرهبرداری. بیایید نگاهی به آنچه آنها پوشش میدهند بیندازیم.
بخش اول: زمینه
این بخش زمینه را تعیین میکند – میکروسرویسها چیستند، موفقیت چگونه به نظر میرسد و آیا میکروسرویسها الگوی معماری مناسبی برای شما هستند؟
- فصل ۱: درک میکروسرویسها
با یک تعریف کامل از سبک معماری میکروسرویس شروع میکنیم. اگر تازه با میکروسرویسها آشنا شدهاید، این فصل از کتاب Enabling Microservice Success، به شما زمینهای میدهد، اما حتی اگر مدتی است از آنها استفاده میکنید، ارزش دارد که خودتان را به یادآوری مفاهیم اصلی، از جمله اینکه چرا مردم در وهلهی اول میکروسرویسها را پذیرفتهاند، مجهز کنید.
- فصل ۲: تحویل مؤثر نرمافزار
چه چیزی تحویل مؤثر نرمافزار را تعریف میکند؟ این فصل از کتاب Enabling Microservice Success، به اهمیت توانایی حرکت سریع، کار بر روی باارزشترین ویژگیها، ساخت سیستمهای باثبات و انعطافپذیر، حفظ کنترل ریسک، اجتناب از شروع مجدد از ابتدا و در نهایت، فراهم کردن محیطی میپردازد که افراد بتوانند بیشتر وقت خود را صرف کارهای معنادار کنند.
میتوانید این فصل از کتاب Enabling Microservice Success، را به عنوان یک راهنما در نظر بگیرید. من مفاهیمی را که در بقیهی کتاب در مورد آنها صحبت خواهم کرد، معرفی میکنم تا قبل از اینکه بعداً آنها را به طور مفصل شرح دهیم، موضوعات کلیدی را به هم مرتبط کنم.
- فصل ۳: آیا میکروسرویسها برای شما مناسب هستند؟
میکروسرویسها میتوانند معماری بسیار مؤثری باشند، اما تنها رویکرد موجود نیستند. بنابراین، آیا آنها راهحل مناسبی برای شما هستند؟ این فصل به شما کمک میکند تا این ارزیابی را انجام دهید و در مورد اینکه برای روی آوردن به میکروسرویسها چه چیزهایی باید در جای خود داشته باشید، بحث میکند.
بخش دوم: ساختار و فرهنگ سازمانی
برای موفقیت با میکروسرویسها، شما فراتر از پذیرفتن الگوهای معماری نیاز به اقدام دارید. ملاحظات سازمانی و فرهنگی وجود دارد و این اولین مواردی است که باید روی آنها تمرکز کنید، زیرا اگر نتوانید آنها را به درستی اجرا کنید، برای منافع اندک، پیچیدگی زیادی را متحمل خواهید شد. این بخش به بررسی چالشهای سازمانی و فرهنگی میپردازد.
- فصل ۴: قانون کانوی و یافتن مرزهای مناسب
قانون کانوی میگوید که سازمانها ساختار سازمانی خود را ارائه میدهند: اگر دو گروه توسعه داشته باشید، دو سیستم خواهید داشت. این فصل از کتاب Enabling Microservice Success، پیامدهای این قانون را بررسی میکند. مهم است که مرزهای سازمانی خود را در جای درست قرار دهید.
- فصل ۵: ساختن تیمهای مؤثر
برای موفقیت با میکروسرویسها به نوع خاصی از فرهنگ سازمانی نیاز دارید: باز، یادگیرنده و بهینه برای تغییر. این فصل از کتاب Enabling Microservice Success، به بررسی فرهنگ لازم برای ساختن تیمهای مؤثر میپردازد، تیمهایی که خودمختار و چندوظیفهای هستند و شامل تمام مهارتهای لازم برای طراحی، ساخت و استقرار ویژگیها هستند.
فصل ۶: توانمندسازی استقلال
تیمها به جای اینکه منتظر اقدام فردی خارج از تیم باشند، باید بتوانند با سرعت خودشان حرکت کنند. این فصل نحوهی پشتیبانی از استقلال در تیمها، انتظارات از این تیمها و نحوهی تعامل آنها را پوشش میدهد.
فصل ۷: توانمندسازی مهندسی و هموار کردن مسیر
شما نمیتوانید تمام مهارتها را در هر تیم توسعهای داشته باشید. شما نیاز به تمایز قائل شدن بین سرویسهای پلتفرم و زیرساختی که همگان به آنها نیاز دارند و محصولاتی که در حال ساخت هستند، دارید.
این بازگشت به بحث توسعه در مقابل عملیات نیست: تیمهای پلتفرم باید پلتفرم را بسازند و اجرا کنند، در حالی که تیمهای توسعه، سرویسها را میسازند و اجرا میکنند و تعاملات بین آنها باید تا حد امکان بدون اصطکاک باشد، در عین حال باید سطح امنیت، کیفیت و کنترل هزینهای که شرکت شما انتظار دارد، حفظ شود. این فصل از کتاب Enabling Microservice Success، در مورد چگونگی ساختن یک مسیر هموار صحبت میکند: مجموعهای از ابزارها و خدماتی که زندگی را برای همه تیمهای توسعه محصول شما آسان میکند.
فصل ۸: اطمینان از «شما آن را میسازید، شما آن را اجرا میکنید»
اگر هر سرویس برای اجرا شدن نیاز به تحویل به فرد دیگری داشته باشد، نمیتوانید به سرعت حرکت کنید. سرویسها باید در تولید توسط تیمی که کد را نوشته است، مالکیت داشته باشند.
این کار مزایایی دارد: هنگامی که شما فردی هستید که ممکن است ساعت ۲ بامداد تماس بگیرید، چیزها را به طور متفاوتی میسازید. اما این همچنین به این معنی است که بسیاری از افرادی که قبلاً در حالت آمادهباش نبودهاند، اکنون باید باشند. و احتمالاً برخی از تیمها آنقدر کوچک هستند که نتوانند یک شیفت چرخشی خارج از ساعات اداری را اداره کنند. این فصل از کتاب Enabling Microservice Success، در مورد چگونگی پیمودن این تقاضاهای در حال تغییر بحث میکند تا اینکه حالت آمادهباش آزاردهنده نباشد.
بخش سوم: ساخت و بهرهبرداری
بخش سوم به جنبههای عملی ساخت و راهاندازی میکروسرویسها میپردازد. هر فصل تکنیکهایی را برای بهرهمندی بیشتر از میکروسرویسها پوشش میدهد، توضیح میدهد که در کجا آنها به رویکرد متفاوتی نسبت به مونولیت نیاز دارند، و از تجربیات تقریباً یک دههای بهره میبرد.
هر فصل در این بخش به چگونگی اجتناب از گرفتاری در مشکلات و همچنین نحوهی رهایی از آنها در صورت مواجه شدن، میپردازد.
فصل ۹: مالکیت فعال سرویس
سرویسها نیاز به مالکیت قوی و فعال دارند. و این مالکیت باید توسط یک تیم باشد، نه یک فرد. مالکیت فعال به این معنی است که وابستگیها ارتقا مییابند، هشدارها نظارت میشوند، کد بررسی میشود و آسیبپذیریهای امنیتی وصله میشوند. این فصل از کتاب Enabling Microservice Success، شامل مباحثی در مورد مالکیت فعال و چگونگی دستیابی به آن است.
فصل ۱۰: به دست آوردن ارزش از تست
این فصل به تست میکروسرویسها میپردازد. تستهای واحد خودکار و سریع ارزش زیادی را ارائه میدهند، اما تست در تولید و مانیتورینگ خوب اغلب رویکرد مؤثرتری نسبت به تستهای انتها به انتها در مرحلهی استیجینگ (آمادهسازی) است، که میتواند به جهنمی از نگهداری تبدیل شود. تست دستی باید به حداقل برسد: این کار به سادگی زمان زیادی میبرد، به خصوص زمانی که از انتشار یک بار در هفته به چندین بار در روز میرسید.
فصل ۱۱: حکمرانی و استانداردسازی: یافتن تعادل
یکی از جذابیتهای میکروسرویسها توانایی انتخاب «ابزار مناسب برای کار» است. اما انعطافپذیر بودن در مورد زبانهای برنامهنویسی یا لایههای ذخیرهسازی داده، پیچیدگی مجموعه شما را افزایش میدهد، انعطافپذیری شما را در جابهجایی افراد برای کار روی مهمترین موارد کاهش میدهد و هم هزینه و هم ریسک را افزایش میدهد. این فصل در مورد چگونگی یافتن تعادل مناسب، با تمرکز بر معرفی حzbędها، انتخاب فناوریهای تثبیتشده و حکمرانی با اعمال محدودیتهای کم بحث میکند.
فصل ۱۲: ایجاد انعطافپذیری
میکروسرویسها سیستمهای توزیعشده هستند و ما نیاز به ساخت آنها به شیوهای متفاوت داریم. این فصل نحوهی ساخت سرویسهای انعطافپذیر و چگونگی ترکیب آنها به یک سیستم انعطافپذیر را پوشش میدهد. در این فصل به موضوعاتی مانند SLOها (اهداف سطح سرویس)، باقیمانده مجاز خطا، کش کردن، زمان خروج و تکرار مجدد و مهندسی هرجومرج پرداخته میشود.
فصل ۱۳: اجرای سیستم شما در تولید
آیا کانالهای اسلکی دارید که به دلیل حجم بالای هشدارها قابل استفاده نیستند؟ یا هشدارهای زیادی دارید که همه آنها را نادیده میگیرند؟ هر دو حالت خبر بدی هستند. این فصل از کتاب Enabling Microservice Success، به چالشهای عملیاتی میکروسرویسها مینگرد و توضیح میدهد که چگونه میتوان قابلیت مشاهده را در آنها ایجاد کرد و چگونه مطمئن شد که زمانی که یک مشکل واقعی وجود دارد، از آن باخبر میشوید.
فصل ۱۴: بهروز نگهداشتن همه چیز
با وجود این همه فناوریهای مختلف و خدمات متعدد، شما میتوانید زمان زیادی را صرف ارتقای وابستگیها و مهاجرت از نسخههای قدیمی به نسخههای جدید نرمافزار کنید. این موضوع زمانی حتی بدتر میشود که یک وصله امنیتی ضروری باشد که صدها سرویس شما را تحت تاثیر قرار میدهد. این فصل از کتاب Enabling Microservice Success، به چگونگی به حداقل رساندن تأثیر همهی این تغییرات و چگونگی مدیریت موثر تغییراتی که نیاز به انجام آنها دارید، میپردازد.
پیوستها
در نهایت، در انتهای کتاب Enabling Microservice Success، همه چیز را کنار هم جمع میکنم. توضیح میدهم که چرا میکروسرویسها در بسیاری از موارد انتخاب درستی هستند و به شما راهنماییهایی ارائه میدهم تا به شما در ارزیابی این موضوع که آیا این رویکرد برای شما مناسب است یا خیر و اینکه آیا شرایط لازم را از نظر ساختار، فرهنگ، ابزار و فرآیندها برای موفقیت در آن دارید، کمک کند.
در نهایت، فهرستی کوتاه از منابع پیشنهادی را ارائه میدهم: کتابهایی که در حین نوشتن این کتاب روی میزم در دسترس هستند؛ پستهایی که در تبهای مرورگر وب من باز هستند.
مطالعات موردی
در حالی که در سراسر کتاب Enabling Microservice Success به نمونههای واقعی اشاره میکنم، چندین مطالعه موردی عمیق نیز از فایننشال تایمز و سازمانهای دیگر دارم:
- مطالعه موردی: «مونولیت ماژولار Shopify»
- مطالعه موردی: «یافتن مرزهای خود در فایننشال تایمز»
- مطالعه موردی: «تحول ساختار سازمانی در فایننشال تایمز»
- مطالعه موردی: «پشتیبانی از تیمهای خودمختار در فایننشال تایمز»
- مطالعه موردی: «توانمندسازی مهندسی در فایننشال تایمز»
- مطالعه موردی: «مدیریت رویداد در فایننشال تایمز»
- حکمرانی در مونزو
- حکمرانی در اسکایاسکنر
سرفصلهای کتاب Enabling Microservice Success:
- Foreword
- Preface
- I. Context
- 1. Understanding Microservices
- 2. Effective Software Delivery
- 3. Are Microservices Right for You?
- II. Organizational Structure and Culture
- 4. Conway’s Law and Finding the Right Boundaries
- 5. Building Effective Teams
- 6. Enabling Autonomy
- 7. Engineering Enablement and Paving the Road
- 8. Ensuring “You Build It, You Run It”
- III. Building and Operating
- 9. Active Service Ownership
- 10. Getting Value from Testing
- 11. Governance and Standardization: Finding the Balance
- 12. Building Resilience In
- 13. Running Your System in Production
- 14. Keeping Things Up-to-Date
- Afterword
- A. Microservices Assessment
- B. Recommended Reading
- Index
- About the Author
جهت دانلود کتاب Enabling Microservice Success میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.