Table of Contents
درک دیگرام های بلوک در طراحی سیستم
نمودارهای بلوک یک ابزار بنیادی در طراحی سیستم، معماری نرم افزار و مهندسی است.آنها سیستم های پیچیده را به نمایندگی های بصری قابل مدیریت کاهش می دهند، و شناسایی وابستگی ها، جریان داده ها و مسائل مقیاس پذیری بالقوه آسان تر می کنند. نمودار بلوک به خوبی ساخته شده از اشکال ساده هندسی - به طور معمول مستطیل - برای نمایندگی از اجزای یا زیر سیستم ها، متصل با فلش ها یا خطوط نشان می دهد که مسیرهای ارتباطی، یا وضوح حرکت ضروری است.
آناتومی یک Block Diagram
هر نمودار بلوک شامل سه عنصر اصلی است:
- بلاک ها ، واحدهای عملکردی متمایز، خدمات یا اجزای سخت افزاری را نمایندگی می کنند.
- اتصال دهنده خطوط یا فلش نشان دهنده جهت جریان داده، سیگنال های کنترل و یا اتصالات فیزیکی است.
- Labels - متن توصیفی کوتاه که هر بلوک یا کانکتور را نام می برد، اغلب شامل ویژگی های حیاتی مانند از طریقput، تاخیر یا پروتکل است.
این عناصر با هم کار می کنند تا یک انتزاع سطح بالا ایجاد کنند که جزئیات پیاده سازی را حذف می کند و به مهندسان اجازه می دهد تا بر روی رفتار سیستم تمرکز کنند، نه کد برای یک شیرجه عمیق به کنوانسیون های نمودار بلوک، وikipedia] نمودار کلی بلوک .
چرا Block Diagrams مقیاس پذیری و انعطاف پذیری را افزایش می دهد
سیستم های مدرن باید به سرعت در حال رشد پایگاه های کاربر، ویژگی های جدید و تغییر زیرساخت ها تکامل یابند.Blocks کمک می کند تا با افشای نقاط ضعف معماری قبل از تبدیل شدن به مشکلات تولید، مزایای آن ها ملموس و قابل اندازه گیری باشد:
- شناسایی هر دوججژ - با ردیابی جریان داده ها از طریق بلوک ها، شما می توانید ببینید که صف ها در کجا ایجاد می شوند و یا نقاط واحدی از شکست وجود دارد، این به طور مستقیم بهبود مقیاس پذیری مانند فشرده سازی افقی یا اضافه کردن تعادل بار را اطلاع می دهد.
- - نموداری که از بلوک های متصل استفاده می کند، معماری های میکروسرویس یا پلاگین را تشویق می کند.شما می توانید بلوک های فردی را بدون بازسازی کل سیستم مبادله، ارتقاء یا مقیاس کنید.
- مقیاس یابی - هنگامی که هر بلوک به وضوح رابط تعریف شده است، شما می توانید استراتژی های مقیاس سنجی مختلف (به عنوان مثال مقیاس عمودی برای پایگاه داده ها، افقی برای خدمات بدون دولت) اعمال کنید. دیگرام ها آن را روشن می کنند که بلوک ها بی حالت در مقابل حالت هستند.
- تنظیم مجدد خواندنی [FLT 1] - انعطاف پذیری اغلب به معنی توانایی تنظیم مجدد اجزای درون یک سیستم است. نمودار بلوک به عنوان یک طرح برای سفارش مراحل پردازش مجدد، معرفی حافظه کش ها یا تقسیم مونوlith ها عمل می کند.
برای یک دیدگاه واقعی در جهان، AWS Well-Architected Framework توصیه می کند از نمودار های معماری برای ارزیابی مقیاس پذیری و عملکرد معاملات استفاده کنید.
گام های برای ساخت دیگرام های موثر برای برنامه ریزی مقیاس پذیری
ایجاد یک نمودار که در واقع طراحی سیستم را بهبود می بخشد، نیاز به بیش از فقط جعبه های طراحی دارد.
مرحله 1: همه اجزای سیستم را در نظر بگیرید
با فهرست کردن هر جزء عملکردی، از جلو کاربر به کارگران پس زمینه و API های خارجی شروع کنید. عناصر زیربنایی مانند تعادل بار، صف پیام و پایگاه های داده را فراموش نکنید.
مرحله 2: تعاملات تعریف شده و جریان داده ها
برای هر بلوک، اسنادی که انتظار دارد و چه خروجی هایی تولید می کند را مستند کنید، این جایی است که سطوح اتصال را شناسایی می کنید، به عنوان مثال، اگر بلوک A نیاز به پاسخ های ناهمزمان از بلوک B داشته باشد، که یک اتصال محکم ایجاد می کند که ممکن است مانع مقیاس پذیری مستقل شود.
مرحله 3: خط پایه Diagram را بکشید
از ابزاری استفاده کنید که از نسخه برداری و همکاری پشتیبانی می کند – انتخاب های محبوب شامل (FLT:0diagrams.net [FLT: Open Source] می باشد، Lucidchart ، یا Draw.io بلوک های تنظیم شده در لایه های منطقی (به عنوان مثال، ارائه های عمومی، و یا مناطق خصوصی.
مرحله ۴: شناسایی مقیاس پذیری مرزها
در این هنگام، هر کدام از این دو گزینه را با محدودیت های فعلی خود علامت گذاری می کنند؛ مانند اتصال در ثانیه، ظرفیت ذخیره سازی یا استفاده از CPU، سپس از “چه اتفاقی می افتد اگر ترافیک دو برابر شود؟” بلوک های با نور بالا که تبدیل به تنگنا می شوند: این ها اولین نامزدها برای مقیاس پذیری (FLT:0horizontal) هستند [F1] (اضافه کردن موارد بیشتر) یا .
مرحله پنجم: طراحی کشور آینده مقیاس پذیر
یک نمودار دوم ایجاد کنید که نشان دهنده تغییراتی است که ظرفیت را بهبود می بخشد، این می تواند شامل اضافه کردن یک تعادل بار قبل از سرورهای وب، معرفی یک لایه کش یا سخت کردن یک پایگاه داده در سراسر بلوک های متعدد باشد. مقایسه دو نمودار برای اعتباربخشی به اینکه مراحل مقیاس پذیری جریان داده های موجود را تجزیه نمی کنند.
مرحله 6: انعطاف پذیری نمونه با بازسازی بلوک ها
انعطاف پذیری تقاضا می کند که بلوک ها بدون شکستن کل سیستم مبادله می شوند. [۱] یک نمودار سوم را که در آن یک بلوک به طور کامل جایگزین شده است، برای مثال، از یک پایگاه داده ارتباطی به فروشگاه NoSQL تغییر دهید.اگر کانکتورها معتبر باقی بمانند، معماری شما باید چندین بلوک را دوباره بکشید، شما کاندیدهای (FLT:0refactoring) را شناسایی کرده اید.[۱۰]
استفاده از Block Diagrams به سناریوهای مقیاس پذیری واقعی در جهان
سیستم چک کردن تجارت الکترونیک
یک فروشگاه آنلاین را در نظر بگیرید که جریان پرداخت شامل تأیید اعتبار، چک موجودی، پردازش پرداخت و تأیید سفارش است. نمودار بلوک ممکن است هر سرویس را به عنوان یک بلوک جداگانه متصل به یک صف پیام نشان دهد، هنگامی که ترافیک جمعه سیاه افزایش می یابد، نمودار نشان می دهد که بلوک موجودی دارای تعداد محدودی از اتصالات پایگاه داده است: اضافه کردن نسخه ها و استفاده از یک بلوک Caching در پیش از موجودی، بدون نوشتن کد، این مداخله واضح را ایجاد می کند.
IoT Data Ingestion Pipeline
در یک سیستم IoT، سنسورها داده ها را به یک دروازه ابری ارسال می کنند، سپس به یک پردازنده جریان، و در نهایت به یک پایگاه داده زمان سری، نمودار بلوکی نشان می دهد که پردازنده جریان به عنوان lynchpin - اگر آن را شکست دهد، کل خط لوله متوقف می شود برای بهبود مقیاس پذیری، شما می توانید به طور افقی بلوک پردازنده جریان (به عنوان مثال، استفاده از پارتیشن Apache کافکا) و اضافه کردن یک بلوک عمیق (که این سهامداران را جذب نمی کند.
اشتباهات رایج و چگونگی اجتناب از این
- اضافه کردن دیگرام ها - بلوک های زیاد یا کانکتورها ایجاد سر و صدا. Stick به اصل "یک نمودار، یک نگرانی" ایجاد نمودار جداگانه برای مقیاس پذیری، امنیت و توپولوژی استقرار.
- [FLT 1] - نه علامت گذاری که بلوک های نگه داشتن دولت را به تصمیم گیری های مقیاسی ناقص می کند. بلوک های دولتی نیاز به مدیریت ویژه دارند - استفاده از نسخه های پایگاه داده یا کش های توزیع شده.
- برای جلوگیری از وابستگی های خارجی - API های شخص ثالث، سیستم های میراث و زیرساخت های فیزیکی اغلب به عنوان بلوک های نامرئی به نظر می رسد.همیشه آنها را به عنوان بلوک های صریح با حالت های شکست.
- Diagrams - نمودار چاپ شده در لحظه ای که یک سیستم تغییر می کند، منسوخ شده است.استفاده از ابزارهای نمودار زنده که با مخازن کد ادغام می شوند (به عنوان مثال، Structurizr برای مدل C4] بنابراین نمودارها در همگام سازی باقی می مانند.
بهترین روش ها برای حفظ طولانی مدت
برای اطمینان از اینکه نمودار بلوک شما به عنوان سیستم رشد می کند، این شیوه ها را اتخاذ کنید:
- استفاده از یک هنجار ثابت - استاندارد بر روی اشکال برای خدمات (rectangles)، فروشگاه های داده (cylinders)، و بازیگران خارجی (circles) شامل یک افسانه است.
- نظارت بر نمودارهای شما - فایل های منبع نمودار فروشگاه (به عنوان مثال، .drawio، .dslx) را در همان مخزن به عنوان کد شما کنترل می کند.
- تولید نمودار خودکار – برای سیستم های بزرگ، ابزارهای نمودار مبتنی بر متن مانند پری دریایی یا PlantUML اجازه می دهد تا نمودارها را از نشانه گذاری تولید کنید.این آنها را به درستی نگه می دارد زیرا کد منبع حقیقت است.
- نمودارهای مرور در هر بررسی معماری - شامل بازرسی نمودار بلوک به عنوان یک گام اجباری در هنگام پیشنهاد ویژگی های جدید یا ابتکارات مقیاسی.
نتیجه گیری
نمودارهای بلوک فقط اسناد نیستند - آنها ابزار فعال برای استدلال در مورد مقیاس پذیری سیستم و انعطاف پذیری هستند.با شکستن یک سیستم به بلوک های مدولار، نقشه برداری داده جریانها و تنظیم بیش از نمودارهای دولت آینده، تیم های مهندسی می توانند تصمیم گیری آگاهانه بگیرند که مانع از بدهی معماری و جلوگیری از کار مجدد هزینه شده است.