
مرور سخنرانیStreaming: Real-Time Architecture for Connected Products in Automotive :
سخنرانان: گروه مهندسی Thoughtworks
لینک یوتیوب: https://www.youtube.com/watch?v=DQoroUTI8vc
همیشه شنیدن تئوری ها در کلاس درس یا کنفرانس ها جذاب است، اما هیچ چیز جای یک Case Studyواقعی از وسط میدان جنگ را نمی گیرد! تیم شرکت Thoughtworks در این ارائه داستان پروژه ای را تعریف می کنند که برای قانون جدید داده های اروپا (EU Data Act) در صنعت خودرو سازی پیاده سازی کردند. قانونی که شرکت ها را مجبور می کند داده های خام سنسور های ماشین را به صورت بلادرنگ به مشتریان تحویل دهند.
همه چیز در محیط تست امن و ارام پیش می رفت. سیستم روزانه ۱۴ هزار پیام دریافت می کرد و پایدار بود. اما فاجعه زمانی رخ داد که سیستم به محیط واقعی متصل شد. ناگهان حجم ورود داده ها به ۱۴ میلیون پیام در روز رسید! این یعنی پلتفرم باید در کسری از ثانیه هزار برابر بار بیشتری را مدیریت می کرد.
دیدن اینکه تیم چگونه معماری خود را برای زنده ماندن در این شوک داده ای تغییر داد، بسیار آموزنده بود. آن ها از Apache Kafka برای هضم اولیه و صف بندی این حجم عظیم استفاده کردند و سپس با RabbitMQ داده ها را به دست کلاینت ها رساندند. اما درسی که ارزشمندتر بود، چالش مانیتورینگ بود. آن ها توضیح دادند که در مقیاس میلیون ها پیام، ابزار هایی مثل DataDog می توانند صورت حساب های نجومی و ترسناکی روی دست شرکت بگذارند. به همین دلیل مجبور شدند سیستم لاگ گیری را به شدت محدود و فیلتر کنند.
خلاصه برداشت من: این ارائه ثابت کرد که تئوری روی کاغذ با محیط عملیاتی چقدر تفاوت دارد. مهم ترین برداشت من این بود که در سیستم های مقیاس پذیر، مدیریت داده ها فقط حل چالش های پردازشی نیست، بلکه اگر حواسمان به هزینه های پنهان ابزار های جانبی (مثل مانیتورینگ فضای ابری) نباشد، موفق ترین معماری ها هم می توانند از نظر مالی به شکست منتهی شوند.
این مطلب، بخشی از تمرین های درس معماری نرم افزار در دانشگاه شهید بهشتی است.