A Step-by-Step Guide to Building a Microservices Architecture
Ronnie Mitra and Irakli Nadareishvili

#Microservices
#Architecture
#responsibilities
#CI/CD
#AWS
#Docker
#Redis
#MySQL
#GitHub
#Terraform
#Amazon
#AWS
#kubectl
#Helm
#Argo_CD
🚀 معماریهای میکروسرویس سرعت اعمال تغییرات رو بیشتر میکنن، مقیاسپذیری (scalability) بهتری دارن و طراحی سیستم رو تمیزتر و تکاملپذیرتر میکنن. اما پیادهسازی اولین معماری میکروسرویس یه چالش واقعاً نفسگیره! چطور باید از بین این همه تصمیم، بهترینها رو انتخاب کنی؟ چطور تیمت رو با تمام جزئیات فنی آشنا کنی و سازمان رو برای یک اجرای موفقیتآمیز هدایت کنی تا شانس موفقیتت رو به حداکثر برسونی؟
🛠️ با این کتاب، نویسندهها رونی میترا و ایراکلی ناداریشویلی یک راهنمای قدم به قدم برای ساختن یک معماری میکروسرویس کارآمد و مؤثر ارائه میدن.
perjalanan معمارها و مهندسها در این کتاب یک سفر پیادهسازی رو دنبال میکنن که بر اساس تکنیکها و معماریهایی هست که کارایی خودشون رو در سیستمهای میکروسرویسی ثابت کردن. شما یک مدل عملیاتی (operating model)، یک طراحی میکروسرویس، یک زیرساخت پایه و دو تا میکروسرویس کارا میسازید و بعد این تیکهها رو مثل پازل کنار هم میچینید تا یک پیادهسازی واحد رو تشکیل بدن. خلاصه بگم، برای هر کسی که وظیفه ساخت میکروسرویس یا معماری میکروسرویسی رو به عهده داره، این کتاب یه گنجه!
🎨 یک طراحی سیستمی میکروسرویس مؤثر و سرراست، از اول تا آخر یاد بگیرید.
🤝 تیمها، مسئولیتهاشون و دستورالعملهای همکاریشون رو تعریف کنید.
🔪 بفهمید چطور یک اپلیکیشن بزرگ رو به مجموعهای از میکروسرویسها خرد کنید (slice کنید).
📦 بررسی کنید که چطور دادهها رو ایزوله کرده و در میکروسرویسهای مربوط به خودشون جا بدید.
🚀 یک پایپلاین CI/CD ساده اما قدرتمند برای تغییرات زیرساخت بسازید.
💻 برای میکروسرویسهای نمونه، کد بنویسید.
☁️ یک اپلیکیشن میکروسرویسی فعال رو روی Amazon Web Services (AWS) دیپلوی کنید.
فصل ۱: به سوی معماری میکروسرویس
فصل ۲: طراحی یک مدل عملیاتی میکروسرویس
فصل ۳: طراحی میکروسرویسها: فرآیند SEED(S)
فصل ۴: انتخاب اندازه مناسب برای میکروسرویسها: پیدا کردن مرزهای سرویس
فصل ۵: سروکله زدن با دادهها
فصل ۶: ساخت یک پایپلاین زیرساخت
فصل ۷: ساخت یک زیرساخت میکروسرویس
فصل ۸: محیط کاری توسعهدهنده (Developer Workspace)
فصل ۹: توسعه میکروسرویسها
فصل ۱۰: انتشار (Release) میکروسرویسها
فصل ۱۱: مدیریت تغییرات
فصل ۱۲: پایان یک سفر (و شروعی دوباره)
ده سال پیش، گروهی از معماران نرمافزار دور هم جمع شدن و اصطلاح «میکروسرویس» رو برای تعریف سبکی از معماری نرمافزار که تکامل پیدا کرده بود، ابداع کردن. از اون زمان، انفجاری از کلاسها، ویدیوها و نوشتهها در مورد سبک میکروسرویس به وجود اومده. در واقع، در سال ۲۰۱۶ ما با همکاری هم کتاب Microservice Architecture رو نوشتیم که یک راهنمای مقدماتی برای اصول یک سیستم میکروسرویسی بود.
از زمان انتشار اون کتاب، ما و خیلیهای دیگه این شانس رو داشتیم که با سیستمهای میکروسرویسی که ساختیم زندگی کنیم. تجربیات خودمون و همچنین گفتگو با بقیه متخصصان، به درک بهتری از مشکلات عملی که پیادهکنندهها باهاش روبرو هستن منجر شد. بخش زیادی از این درک از موفقیتها به دست اومده، اما برخی از مفیدترین بینشها از اشتباهاتمون حاصل شده.
ما سعی کردیم تجربیات این متخصصها رو در قالب یک راهنمای کاملاً قاطع و عملی (highly opinionated) جمعآوری کنیم. ما در عصری زندگی میکنیم که توصیههای عملی فراوانی در دسترسه. اما، گشتن تو این دریای اطلاعات و کنار هم گذاشتنشون به شکلی که جواب بده، میتونه سخت باشه.
این کتاب یک مدل عملی و تجویزی (prescriptive) ارائه میده که طراحی تیم، طراحی دامنه (domain)، زیرساخت، مهندسی و انتشار رو پوشش میده. هدف ما اینه که به شما یک دید یکپارچه از پیادهسازی میکروسرویس و یک قدم اول محکم در این سفر بدیم.
ما این کتاب رو برای پیادهکنندههای میکروسرویس نوشتیم. با اینکه به برخی از اصول و الگوهای سیستم میکروسرویسی اشاره میکنیم، تمرکز اصلی کتاب روی طراحی و مهندسی عملیه. اگه شما یک معمار یا مهندس هستید که وظیفه ساخت میکروسرویس یا یک معماری میکروسرویسی رو دارید، این کتاب دقیقاً برای شماست.
اما این کتاب همچنین یک راهنمای مفید برای خوانندگانیه که صرفاً میخوان از نزدیک با یک پیادهسازی میکروسرویس دست و پنجه نرم کنن. نقش شما هر چی که باشه، اگه علاقهمند به درک کارهایی هستید که برای ساختن یک سیستم میکروسرویسی انجام میشه، این کتاب رو روشنگر و مفید خواهید یافت.
از اونجایی که حوزه میکروسرویسها خیلی گستردهست، ما از ابزارها و روشهای مختلفی استفاده میکنیم. اگه میخواید تمام مثالها رو دنبال کنید، باید ابزارها و پلتفرمهای زیر رو نصب کنید یا در اونها حساب کاربری داشته باشید:
ما در بخشهای مربوطه، دستورالعملهای لازم برای دسترسی به این ابزارها رو ارائه میدیم.
رونی میترا یک نویسنده، استراتژیست و مشاور با بیش از ۲۵ سال تجربه در زمینه تکنولوژیهای وب و اتصال (connectivity) است. او همچنین یکی از نویسندگان کتابهای Microservice Architecture و Continuous API Management (هر دو از انتشارات O’Reilly) است.
ایراکلی ناداریشویلی معاون نوآوریهای اصلی در شرکت Capital One Financial Corporation است و تیمهایی رو رهبری میکنه که مسئول ساخت پلتفرم بانکداری اصلی Capital One هستن؛ پلتفرمی مدرن، مبتنی بر کلاد (cloud native) و بر پایه میکروسرویسها. قبل از Capital One، ایراکلی همبنیانگذار و مدیر ارشد فنی (CTO) استارتاپ موفق ReferWell در حوزه فناوری سلامت در نیویورک بود و نقشهای رهبری فنی در شرکتهای CA Technologies و NPR داشته. ایراکلی یکی از نویسندگان کتاب Microservice Architecture (انتشارات O’Rتونید ایراکلی رو در توییتر با آیدی inadarei@ دنبال کنید.i@` دنبال کنید.
Microservices architectures offer faster change speeds, better scalability, and cleaner, evolvable system designs. But implementing your first microservices architecture is difficult. How do you make myriad choices, educate your team on all the technical details, and navigate the organization to a successful execution to maximize your chance of success? With this book, authors Ronnie Mitra and Irakli Nadareishvili provide step-by-step guidance for building an effective microservices architecture.
Architects and engineers will follow an implementation journey based on techniques and architectures that have proven to work for microservices systems. You'll build an operating model, a microservices design, an infrastructure foundation, and two working microservices, then put those pieces together as a single implementation. For anyone tasked with building microservices or a microservices architecture, this guide is invaluable.
Table of Contents
Chapter 1. Toward a Microservices Architecture
Chapter 2. Designing a Microservices Operating Model
Chapter 3. Designing Microservices: The SEED(S) Process
Chapter 4. Rightsizing Your Microservices: Finding Service Boundaries
Chapter 5. Dealing with the Data
Chapter 6. Building an Infrastructure Pipeline
Chapter 7. Building a Microservices Infrastructure
Chapter 8. Developer Workspace
Chapter 9. Developing Microservices
Chapter 10. Releasing Microservices
Chapter 11. Managing Change
Chapter 12. A Journey's End (and a New Beginning)
Ten years ago a group of software architects gathered together and coined the term microservices to define a style of software architecture that had evolved. Since that time, there’s been an explosion of classes, videos, and written works for the microservices style. In fact, in 2016 we coauthored Microservice Architecture, a book that offered an introductory guide to the principles of a microservices system.
Since the publication of that book, we and many others have had a chance to live with the microservices systems we’ve built. Our own experiences, as well as conversations with other practitioners, have led to a better understanding of the practical problems that implementers face. A lot of that understanding comes from success, but some of the most useful insights have come from mistakes.
We’ve endeavored to package up the experiences of practitioners into a highly opinionated guide. We live in an age with an abundance of practitioner advice available. But, it can be difficult to navigate this sea of information and put it together in a way that works.
This book offers a practical, prescriptive model that spans team design, domain design, infrastructure, engineering, and release. Our goal is to give you a unified view of a microservices implementation and a strong first step in your journey to adoption.
Who Should Read This Book
We’ve written this book for microservices implementers. While we touch on some of the principles and patterns of a microservices system, the focus of the book is on practical design and engineering. If you are an architect or engineer tasked with building microservices or a microservices architecture, this is the book for you.
But this book is also a useful guide for readers who simply want to get “up close and personal” with a microservices implementation. No matter what your role is, if you’re interested in understanding the work that goes into building a microservices system, you’ll find this book enlightening.
What You’ll Need
Since the scope of microservices is quite large, we use a number of different tools and methods. If you want to follow along with all of the examples, you’ll need to install or subscribe to use the folllowing tools and platforms:
We provide instructions on where and how to access these tools in their relevant sections.
Ronnie Mitra is an author, strategist, and consultant with over 25 years of experience working with web and connectivity technologies. He is the coauthor of Microservice Architecture and Continuous API Management (both O'Reilly).
Irakli Nadareishvili is the vice president of Core Innovation at Capital One Financial Corporation, leading the teams responsible for building Capital One’s modern, cloud native, microservices-based core banking platform. Before Capital One, Irakli was cofounder and CTO of ReferWell, a successful New York City-based health technology startup, and held technology leadership roles at CA Technologies and NPR. Irakli is coauthor of Microservice Architecture (O’Reilly). You can follow Irakli on Twitter at @inadarei.









