الگوی «ترکیب مبتنی بر مشخصه» در AWS قصد جریان کاری را از منطق پردازش جدا می‌کند؛ هدف کاهش زمان توسعه، حذف کد تکراری و تسهیل ردیابی و حاکمیت در پایپلاین‌های داده است. در این رویکرد، مشخصه‌های ساخت‌یافته (JSON یا YAML) برای مونتاژ پویا قابلیت‌های پردازشی قابل‌استفاده مجدد به کار می‌روند. نمونه سرورلس پیشنهادی AWS بر پایه AWS Lambda، AWS Step Functions، Amazon S3 و Amazon OpenSearch Service طراحی شده است.

چالش تکرار کد در پایپلاین‌های سنتی

در بسیاری از پیاده‌سازی‌های اسکریپتی، هماهنگ‌سازی، تبدیل و اعتبارسنجی داده در یک کد ادغام می‌شود. افزودن مجموعه‌داده یا واریانت جدید معمولاً مستلزم تغییر و استقرار مجدد کد است؛ این چرخه هزینه نگهداری را بالا برده و ردیابی رفتار جریان‌ها را در محیط‌های تنظیم‌شده دشوار می‌کند.

معماری سه‌لایه در الگوی ترکیب مبتنی بر مشخصه

این الگو جریان کاری را به سه لایه مجزا تقسیم می‌کند که هر یک نقش مشخصی دارند:

  • لایهٔ قصد (Intent): مشخصهٔ اعلامی به صورت JSON یا YAML که منابع و مقاصد داده، نگاشت فیلدها و تبدیلات مورد انتظار را توصیف می‌کند بدون تعیین نحوهٔ پیاده‌سازی. (JSON و YAML)
  • لایهٔ ترکیب (Composer): مشخصه را اعتبارسنجی کرده، قابلیت‌های ارجاع‌شده را بررسی می‌کند و بر اساس ثبت قابلیت‌ها (capability registry) یک جریان کاری قابل اجرا می‌سازد.
  • لایهٔ پردازش (Processing): گام‌های تبدیل را اجرا می‌کند؛ در نمونه AWS این گام‌ها به‌صورت توابع Lambda پیاده‌سازی شده و با Step Functions هماهنگ می‌شوند.

نمونه سرورلس AWS از ترکیب مبتنی بر مشخصه

در نمونه پیشنهادی، مشخصه‌ها در Amazon S3 نگهداری می‌شوند و ایجاد یا تغییر یک مشخصه از طریق رویداد S3 یک کامپوزر مبتنی بر Lambda را فراخوانی می‌کند. کامپوزر پس از اعتبارسنجی مشخصه با پرس‌وجو به OpenSearch، متادیتای قابلیت‌ها را واکشی می‌کند و سپس یک ماشین حالت در Step Functions ایجاد یا اجرا می‌نماید تا پردازشگرهای قابلیت (Lambda) را فراخوانی کند. پردازشگرها ردپاها (traces) و لاگ‌ها را به Amazon CloudWatch Logs ارسال می‌کنند تا ردیابی رفتار جریان کاری امکان‌پذیر و قابل تحلیل باشد.

معماری سرورلس ترکیب مبتنی بر مشخصه در AWS

ثبت قابلیت، کشف و نسخه‌بندی در ترکیب مبتنی بر مشخصه

ثبت قابلیت، متادیتا دربارهٔ توابع تبدیل قابل‌استفاده مجدد را نگهداری می‌کند: شناسه‌ها، فرمت‌های ورودی/خروجی، نحوهٔ فراخوانی، مجوزها و نسخه‌ها. نویسندهٔ مشخصه با ارجاع به «قصد» می‌تواند یک تبدیل را انتخاب کند نه شناسهٔ دقیق پیاده‌سازی؛ کشف قابلیت از طریق تگ‌ها، توضیحات و اسکیماها انجام می‌شود و نسخه‌بندی تضمین می‌کند اجرای یکسان و بازتولیدپذیر جریان کاری در طول زمان حفظ شود.

مزایای ثبت قابلیت

  • تفکیک وظایف میان نویسندهٔ مشخصه و توسعه‌دهندهٔ قابلیت
  • امکان اعتبارسنجی و تأیید جداگانهٔ قابلیت‌ها پیش از ترکیب
  • اجرای قابل بازتولید با ارجاع به نسخهٔ مشخص قابلیت

طبقه‌بندی داده و ماسکینگ

الگو امکان درج قواعد طبقه‌بندی داده را در مشخصه فراهم می‌آورد: فیلدهای حساس می‌توانند تگ شوند و قابلیت‌ها باید نحوهٔ کاهش حساسیت یا ماسکینگ را اعلام کنند. کامپوزر قادر است طبقه‌بندی نهایی را اعتبارسنجی کند و در صورت نیاز آثار ماسکینگ (masking artifacts) برای مصرف‌کنندگان پایین‌دست تولید نماید؛ این مکانیزم برای گزارش‌دهی تنظیم‌شده و محیط‌هایی با نیاز به حفظ حریم خصوصی حیاتی است.

مثال طبقه‌بندی و ماسکینگ داده در مشخصه

چه زمانی استفاده از ترکیب مبتنی بر مشخصه مناسب است و چه زمانی اضافه‌بار ایجاد می‌کند؟

این الگو مناسب مواردی است که نیاز به ردیابی کامل جریان‌ها، یکپارچه‌سازی چندمنبع با واریانت‌های زیاد و ساخت ETLهای قابل‌استفاده مجدد با اعتبارسنجی پیش از اجرا وجود دارد. در مقابل، برای تبدیلات ساده یا سازمان‌هایی با تعداد معدود جریان کاری، پیاده‌سازی این الگو ممکن است پیچیدگی و هزینهٔ راه‌اندازی و نگهداری را افزایش دهد.

  • موارد مناسب: گزارش‌دهی تنظیم‌شده، ترکیب منابع متعدد، ETL قابل‌استفاده مجدد با نیاز به تأیید و ردیابی.
  • موارد کمتر مناسب: تبدیلات ساده، هزینهٔ پیاده‌سازی بالاتر از مزایا، یا بی‌نیازی به ثبت و نسخه‌بندی قابلیت‌ها.

چشم‌انداز

تفکیک قصد و منطق پردازش معماری پایپلاین‌های داده را مقیاس‌پذیرتر و کنترل‌پذیرتر می‌کند؛ اما موفقیت آن مستلزم سرمایه‌گذاری در ثبت قابلیت‌ها، گردش‌های تأیید و اتوماسیون اعتبارسنجی است. سازمان‌های در حال رشد یا دارای نیازهای حاکمیتی می‌توانند از این الگو برای کاهش تکرار کد و بهبود قابلیت ردیابی جریان‌ها بهره‌مند شوند.