سازمانهایی که برنامههای رویدادمحور را روی آمازون ایونتبریج (Amazon EventBridge) توسعه میدهند، معمولاً با یک باس رویداد سفارشی منفرد در یک حساب کاربری شروع میکنند. این روش زمانی که یک تیم منفرد مالک معماری است به خوبی کار میکند. با این حال، با رشد پذیرش در سراسر سازمان، هم چیز پیچیده میشود. بهترین روشهای آمازون وب سرویس (AWS) یک ساختار چندحسابی را توصیه میکنند، به این معنی که هر تیم در حساب خودش فعالیت میکند. برای مسیریابی رویدادها بین آنها، تیمها چندین باس رویداد را ایجاد میکنند که از طریق قوانین بینحسابی یا پیکربندیهای باس به باس متصل شدهاند. این راهحل موقت، پیچیدگی عملیاتی را که معماریهای سرورلس (Serverless) قرار است حذف کنند، دوباره بازمیگرداند. تیمهای پلتفرم دید خود را نسبت به اینکه چه کسی در حال اشتراک در چه رویدادهایی است از دست میدهند، هزینههای مسیریابی بینحسابی و باس به باس به سرعت انباشته میشوند، و تیمهایی که به قابلیتهایی مانند ترتیبدهی رویداد نیاز دارند، مجبور به ساخت راهحلهای موقت پیچیده یا پذیرش فناوریهای کاملاً متفاوت میشوند.
امروز، ما باس رویداد سفارشی پیشرفتهای را در آمازون ایونتبریج (Amazon EventBridge) معرفی میکنیم که به طور ویژه برای سازمانهایی که برنامههای رویدادمحور را در میان تیمها و حسابها مقیاسبندی میکنند، ساخته شده است. با باس رویداد سفارشی پیشرفته جدید، میتوانید یک باس رویداد منفرد و متمرکز را مستقر کنید که در تمام حسابهای آمازون وب سرویس (AWS) در سازمان شما به اشتراک گذاشته شده است، همراه با تضمینهای ترتیبدهی، یک منبع مشترک (Subscriber) سادهشده، و یک مدل قیمتگذاری جدید که اقتصاد بهتری را در مقیاس و تخصیص هزینه برای ناشران و مشترکان ارائه میدهد.
بیایید آن را امتحان کنیم
برای شروع کار با یک باس رویداد سفارشی پیشرفته، به کنسول ایونتبریج (EventBridge) در کنسول مدیریت آمازون وب سرویس (AWS Management Console) رفتم و صفحه ایجاد باس رویداد سفارشی را باز کردم. من باس رویداد سفارشی را انتخاب کردم، گزینه توصیه شده که با عنوان جدید برچسبگذاری شده است. این صفحه همچنین باس رویداد سفارشی - کلاسیک را پیشنهاد داد که به دریافت رویدادها و مسیریابی آنها با قوانین و اهداف ادامه میدهد. در زیر انتخاب، ایونتبریج (EventBridge) نحوه کارکرد باس جدید را نشان داد. یک باس مشترک به هر تیم در سازمان خدمت میکند. ناشران رویدادها را ارسال میکنند، مشترکان فقط آنچه را که نیاز دارند مصرف میکنند، و ایونتبریج (EventBridge) ترتیبدهی، نگهداری، مسیریابی و تحویل را مدیریت میکند.
در مرحله بعد، اشتراکگذاری منابع را پیکربندی کردم. اشتراکگذاری باس رویداد را فعال کردم و اجازه اشتراکگذاری فقط در سازمان خود را انتخاب کردم. شناسه حساب آمازون وب سرویس (AWS) را به عنوان نوع اصلی انتخاب کردم. من همچنین میتوانستم با یک سازمان، یک واحد سازمانی، یا یک نقش یا کاربر مدیریت هویت و دسترسی آمازون وب سرویس (IAM) اشتراکگذاری کنم. اشتراکگذاری از مدیریت دسترسی به منابع آمازون وب سرویس (AWS RAM) استفاده میکند، بنابراین مجبور نبودم مجوزهای بینحسابی یا مسیریابی باس به باس را خودمهپیکربندی کنم.
اشتراکگذاری در سطح سازمان
با باس رویداد سفارشی پیشرفته جدید، میتوانید یک باس رویداد واحد ایجاد کنید و آن را در تمام حسابهای آمازون وب سرویس (AWS) در سازمان خود به اشتراک بگذارید. تیمهای پلتفرم یک باس را مستقر میکنند و آن را به عنوان ستون فقرات رویداد مرکزی تثبیت میکنند، و نیاز به پیکربندی مجوزهای بینحسابی یا مسیریابی باس به باس را از بین میبرند. تیمهای برنامه در سراسر سازمان شما میتوانستند رویدادها را روی همان باس منتشر کرده و مشترک شوند بدون اینکه منتظر فراهمسازی زیرساخت بمانند.
ناشران رویدادها را بدون نیاز به دانستن اینکه کدام تیمها آنها را مصرف میکنند ارسال میکنند و مشترکان اشتراکهای خود را به طور مستقل ایجاد میکنند. تیمهای پلتفرم دید خود را نسبت به تمام جریانهای رویداد و کنترل دقیق بر اینکه چه کسی میتواند رویدادها را منتشر و مصرف کند، حفظ میکنند. باس رویداد سفارشی پیشرفته جدید دارای سهمیه پیشفرض ۱۰,۰۰۰ مشترک در هر باس است و میتوانید سهمیه بالاتری را درخواست کنید. این امر تکهتکه شدنی را که زمانی رخ میدهد که محدودیتهای مشترک شما را مجبور به تقسیمبندی در چندین باس میکند، کاهش میدهد.
ترتیبدهی رویداد
معماریهای رویدادمحور زمانی بهترین کارایی را دارند که مصرفکنندگان حول الگوهای ناهمگام طراحی شوند، جایی که ترتیب رویدادها اهمیتی ندارد. مواردی وجود دارد که ترتیب اهمیت دارد. در یک برنامه لجستیک، بهروزرسانیهای موقعیت مکانی راننده باید به ترتیب برسند. رویدادهای خارج از توالی باعث میشوند که الگوریتمهای مسیریابی تصمیماتی را بر اساس دادههای قدیمی اتخاذ کنند.
باس رویداد سفارشی پیشرفته از هر دو الگو روی یک باس پشتیبانی میکند. ناشران میتوانند یک EventGroupId را هنگام ارسال رویدادها لحاظ کنند. ایونتبریج (EventBridge) رویدادهایی را که دارای EventGroupId یکسانی هستند به طور متوالی به مشترکانی که تحویل مرتبشده را انتخاب کردهاند تحویل میدهد. سایر مشترکان روی آن باس میتوانند همان رویدادها را بدون ترتیب دریافت کنند. شما میتوانید رویدادها را برای هر راننده به ترتیب صحیح نگه دارید بدون اینکه راهحلهای موقت پیچیده بسازید، در حالی که بقیه مصرفکنندگان شما کاملاً ناهمگام باقی میمانند.
برای پشتیبانی از پردازش مرتبشده، باس رویداد سفارشی پیشرفته شامل فراخوانی همگام برای اهدافی مانند آمازون لامبدا (AWS Lambda) است. حالت همگام پردازش موفقیتآمیز را قبل از تأیید رویداد تأیید میکند و الگوی رایج قرار دادن صف پیام ساده آمازون (Amazon SQS) بین یک باس رویداد و لامبدا را برای اطمینان از قابلیت اطمینان حذف میکند.
اشتراکها
باس رویداد سفارشی پیشرفته منبع Subscriber را معرفی میکند که فیلترینگ رویداد، پیکربندی هدف، سیاستهای تلاش مجدد و مقصدهای نامعتبر (dead-letter) را در یک واحد قابل مدیریت واحد ترکیب میکند. امروز، دستیابی به همین نتیجه با ایونتبریج (EventBridge) نیازمند پیکربندی قوانین، اهداف و تنظیمات تلاش مجدد جداگانه در چندین منبع است. مشترکان با دادن یک منبع به هر مصرفکننده که مشخص میکند چه رویدادهایی را میخواهند، کجا آنها را تحویل دهند و چگونه خطاها را مدیریت کنند، این امر را ساده میکنند.
مشترکان همچنین شامل گزینههای زمان شروع متغیر هستند که سوار کردن مصرفکنندگان جدید یا پخش مجدد رویدادها را برای بازیابی از خطاهای برنامه یا هیدراته کردن برنامههای جدید برای تیمها آسانتر میکند.
ارزیابی رویداد
ناشران میتوانند حذف تکرار مبتنی بر محتوا را فعال کنند تا ایونتبریج (EventBridge) تلاشهای مجدد همان رویداد را از خود محتوا شناسایی و حذف کند. شما نیازی به تولید و ردیابی شناسه حذف تکرار ندارید زمانی که یک زمانتوقف یا خرابی جزئی همان رویداد را دو بار ارسال میکند. ایونتبریج (EventBridge) بخشهای معنادار رویداد را هش میکند و تطابقهایی را که ظرف پنج دقیقه میرسند فرو میپاشد، که معناشناسی تحویل دقیقاً یکباره را به جای مدل همیشگی حداقل یکباره ایونتبریج (EventBridge) ارائه میدهد. اگر قبلاً توکن همارزی خود را مهر کردهاید، به استفاده از آن ادامه دهید. حذف تکرار مبتنی بر محتوا برای منابعی است که نمیتوانند به طور قابل اعتماد همان رویداد را در تلاش مجدد شناسایی کنند.
مشترکان میتوانند از عبارات JSONata برای تغییر شکل یک رویداد قبل از رسیدن به هدف استفاده کنند، فیلدها را استخراج کنند، آنها را تغییر نام دهند یا مقادیر جدیدی را زمانی که یک API پاییندستی انتظار شکل دیگری را دارد محاسبه کنند. اگر از قبل رویدادهای Apache Avro یا Protocol Buffers تولید میکنید، ایونتبریج (EventBridge) میتواند آن محتواها را به JSON واگردانی کند و به مشترکان اجازه دهد فیلترینگ و مسیریابی دقیق را روی کل محتوای رویداد بدون نیاز به مصرف، واگردانی و تطابق یا دور انداختن به تنهایی انجام دهند.
مدل قیمتگذاری جدید
باس رویداد سفارشی پیشرفته از یک مدل قیمتگذاری جدید ورودی و خروجی مبتنی بر توان عملیاتی استفاده میکند. ناشران برای رویدادهای مصرفشده هزینه پرداخت میکنند و مشترکان برای رویدادهای تحویل داده شده هزینه میپرداەند. این جایگزین مدل به ازای هر رویداد میشود که در آن هزینههای مسیریابی بینحسابی و باس به باس در معماریهای چندباسی انباشته میشوند. برای جزئیات قیمتگذاری، از صفحه قیمتگذاری ایونتبریج دیدن کنید.
باسهای رویداد سفارشی موجود ایونتبریج (EventBridge) به کار خود مانند امروز بدون نیاز به هیچ تغییری ادامه میدهند. آنها اکنون به عنوان Custom event bus – classic ظاهر میشوند. باس رویداد سفارشی پیشرفته یک منبع جدید است که با سرعت خود آن را اتخاذ میکنید. در کنسول، به عنوان Custom event bus ظاهر میشود.
اکنون در دسترس است
باس رویداد سفارشی پیشرفته امروز در مناطق ایالات متحده شرقی (نورث ویرجینیا، اوهایو)، ایالات متحده غربی (اورگان)، اروپا (ایرلند، فرانکفورت، استکهلم، اسپانیا) و آسیا اقیانوسیه (هنگ کنگ، مالزی، بمبئی، سنگاپور، سیدنی، تایلند، توکیو) در دسترس است. میتوانید اولین باس رویداد سفارشی پیشرفته خود را از طریق کنسول مدیریت آمازون وب سرویس (AWS Management Console)، رابط خط فرمان آمازون وب سرویس (AWS CLI) یا APIهای ایونتبریج ایجاد کنید. برای شروع، از مستندات ایونتبریج دیدن کنید یا آن را مستقیماً در کنسول ایونتبریج امتحان کنید.
منبع: aws.amazon.com
