جریان کار (Workflow) چیست؟
جریان کار نحوه انجام کار از ابتدا تا انتها را توصیف میکند. یک جریان کار شامل مراحل و حالتهای یک فرآیند است. جریانهای کار میتوانند به صورت مجموعهای از مراحل در یک چکلیست یا به صورت یک نمودار که این مراحل را تجسم میکند، ظاهر شوند.
مثال یک جریان کار ساده پشتیبانی:
- کارل، یک مشتری، درخواست پشتیبانی را آغاز میکند.
- پرونده باز به ساشا، نماینده پشتیبانی، اختصاص داده میشود.
- ساشا پرونده اختصاصیافته را دریافت کرده و از کارل اطلاعات درخواست میکند. در حین انتظار برای پاسخ، وضعیت پرونده در حالت “در انتظار” قرار دارد.
- پس از ارائه اطلاعات درخواستی توسط کارل، ساشا با یک راهحل پاسخ میدهد و سپس وضعیت پرونده را به “حلشده” بهروزرسانی میکند.
- کارل پاسخ را دریافت میکند و همچنین لینکی به یک نظرسنجی که میتواند بازخورد خود را درباره درخواست پشتیبانی ارائه دهد. او از پاسخ سریع ساشا خوشحال است و در نظرسنجی امتیاز بالایی میدهد. وضعیت پرونده به “بستهشده” بهروزرسانی میشود.
در این جریان کار، مراحل شامل “شروع”، “اختصاص”، “حل” و “بستن” هستند. حالتها شامل “باز”، “اختصاصیافته”، “در انتظار”، “حلشده” و “بستهشده” هستند. مراحل، فرآیند را از یک حالت به حالت دیگر در مسیری هدایت میکنند تا جریان کار تکمیل شود.
مزایای استفاده از جریانهای کار چیست؟
جریانهای کار مجموعهای از مراحل و وظایف قابلتکرار را فراهم میکنند که میتوانید آنها را آغاز، برنامهریزی و نظارت کنید.
- میتوانید جریانهای کار را برای مشاهده تجسم کنید، صحت جریان کار را اعتبارسنجی کنید و عملیات درون جریان کار را نظارت کنید.
- با استفاده از جریانهای کار، کسبوکارها میتوانند بدون افزودن پیچیدگی اضافی به کد خود، سطوح بهبودیافتهای از قابلیت اطمینان برای برنامههای توزیعشده به دست آورند.
- میتوانید جریانهای کار را در سطح جزئی خودکارسازی، بهینهسازی و مقیاسپذیر کنید.
جریانهای کار چه چیزی به معماری برنامه میآورند؟
جریانهای کار جداسازی منطقی بین جریان کنترلی منطق مرحلهای کار شما و واحدهای واقعی کار که حاوی منطق کسبوکار منحصربهفرد شما هستند را ترویج میدهند. با این جداسازی، میتوانید ماشینآلات حالت برنامه خود را به طور جداگانه از منطق اصلی کسبوکار مدیریت، نگهداری و مقیاسپذیر کنید. با تغییر نیازهای کسبوکار، میتوانید منطق برنامه را به راحتی بدون تغییر ماشینآلات حالت زیرین، توزیع وظایف و کنترل جریان تغییر دهید.
خدمات جریان کار چگونه معماری برنامه را بهبود میبخشند؟
قابلیت اطمینان
جداسازی ردیابی حالت و پردازش وظایف، قابلیت اطمینان را به معماری مبتنی بر ابر میآورد. با استفاده از خدمات جریان کار، میتوانید وظایف را به اجزای برنامه توزیع کنید، پیشرفت آنها را ردیابی کنید و آخرین وضعیت سیستم را بدانید.
سادگی
جریانهای کار جایگزین پیچیدگی راهحلهای کدگذاریشده سفارشی و کدهای خودکارسازی فرآیند میشوند. وظایفی که مراحل پردازش را هدایت میکنند ممکن است طولانیمدت باشند و ممکن است با شکست مواجه شوند، منقضی شوند یا نیاز به راهاندازی مجدد داشته باشند. آنها اغلب با توان عملیاتی و تأخیرهای متفاوت تکمیل میشوند. در همه این موارد، ردیابی و تجسم وظایف نه تنها چالشبرانگیز است، بلکه کاری غیرمتمایز است. با خدمات جریان کار، توسعهدهندگان میتوانند از مدیریت زیرساختهای لولهکشی خودکارسازی فرآیند اجتناب کنند. در نتیجه، آنها میتوانند انرژی خود را بر عملکردهای منحصربهفرد برنامه خود متمرکز کنند.
مقیاسپذیری
خدمات جریان کار طراحی شدهاند تا به طور یکپارچه با استفاده برنامه شما مقیاسپذیر شوند. با افزودن جریانهای کار بیشتر به برنامه یا افزایش پیچیدگی جریانهای کار، میتوانید مدیریت خدمات جریان کار را خودکار کنید.
انعطافپذیری
توسعهدهندگان میتوانند از خدمات جریان کار برای ایجاد اجزای برنامه و منطق هماهنگی در زبانهای برنامهنویسی مختلف استفاده کنند. سپس توسعهدهندگان میتوانند روی منطق متمایز برنامه خود تمرکز کنند.
موارد استفاده رایج جریان کار چیست؟
جریانهای کار میتوانند به هر مشکل محاسباتی یا فرآیند کسبوکاری که میتوان به مجموعهای از مراحل تقسیم کرد، کمک کنند. جریانهای کار مدیریت کارهایی با وابستگیهای متقابل را ساده میکنند. موارد استفاده رایج شامل:
- هماهنگی برنامهها – هماهنگی میکروسرویسهای با اتصال سست، که هر کدام در فرآیند خود اجرا میشوند و به طور مستقل مستقر میشوند، از طریق ارتباط رویدادها. ترکیب توابع بدون سرور برای ساخت یک برنامه وب با یک مرحله تأیید انسانی ناهمزمان. برای نمونههای بیشتر، به هماهنگی میکروسرویس در راهنمای توسعهدهندگان AWS Step Functions مراجعه کنید.
- پردازش داده – تلفیق دادهها از مجموعه دادههای متعدد به گزارشهای یکپارچه، پالایش و کاهش مجموعههای داده بزرگ به فرمتهای مفید، یا هماهنگی جریانهای کاری چندمرحلهای تحلیل و یادگیری ماشین. برای نمونههای بیشتر، به پردازش داده در راهنمای توسعهدهندگان AWS Step Functions مراجعه کنید.
- اتوماسیون DevOps و IT – ساخت ابزارهایی برای یکپارچهسازی و استقرار مداوم، یا ایجاد برنامههای رویدادمحور که به طور خودکار به تغییرات زیرساختی پاسخ میدهند. برای نمونههای بیشتر، به اتوماسیون IT و امنیت در راهنمای توسعهدهندگان AWS Step Functions مراجعه کنید.
- تجارت الکترونیک – خودکارسازی فرآیندهای کسبوکار حیاتی، مانند اجرای سفارش و ردیابی موجودی.
- برنامههای وب – پیادهسازی فرآیندهای ثبتنام کاربر و احراز هویت قوی، با امکان ادغام مراحل برای حسابرسی و امنیت پیشرفته.
- یادگیری ماشین – اجرای کارهای استخراج، تبدیل و بارگذاری (ETL) برای ساخت، آموزش و استقرار یک مدل یادگیری ماشین. برای مثال، جمعآوری و پردازش دادههای تصویر برای تشخیص اشیاء در یک جریان ویدیویی، افزودن کادرهای محدود، یا ارائه اطلاعات بصری و متادیتا برای کاتالوگ دادهها. برای نمونههای بیشتر، به یادگیری ماشین در راهنمای توسعهدهندگان AWS Step Functions مراجعه کنید.
- اتوماسیون امنیت – تحلیل برنامهریزیشده یا پاسخ به حوادث امنیتی که توسط رویدادهای منابع مدیریتشده آغاز میشود، با جریانهای کاری سفارشی که مراحل حسابرسی و اعلان را بسته به قوانین کسبوکار فراخوانی میکنند.
- پردازش رسانه – استخراج داده از اسناد PDF یا تصاویر برای پردازش. تقسیم و تبدیل کد ویدیو با استفاده از موازیسازی عظیم. برای نمونههای بیشتر، به پردازش رسانه در موارد استفاده AWS Step Functions مراجعه کنید.
چگونه یک جریان کار ایجاد میکنید؟
توسعهدهندگان ممکن است در ابتدا راهحلهای کدگذاریشده سفارشی و کدهای خودکارسازی فرآیند را بسازند. این راهحلها در ابتدا ساده هستند، اما با گذشت زمان و توسعه، پیچیده و مستعد خطا میشوند. تلاش موردنیاز برای بهروزرسانی منطق کسبوکار افزایش مییابد و نرخ تغییر با گذشت زمان کند میشود.
میتوانید با پذیرش کتابخانههای خاص جریان کار، برخی از پیچیدگیهای راهحلهای خانگی را کاهش دهید. با این حال، پیکربندی این ابزارها میتواند پیچیدگیهای جدیدی به فرآیند اضافه کند. مراحل و حالتهای جریان کار ممکن است همچنان تجسم دشواری داشته باشند.
ایجاد و نظارت پیشرفته بر جریانهای کار نیازمند ابزارهای بصری برای ترتیب دادن حالتها و مراحل جریان کار است. در این ابزارها، قوانین منطق کسبوکار برای مدیریت و بهروزرسانی در دسترس هستند. استفاده از ابزارهای گرافیکی میتواند بهرهوری توسعهدهنده و قابلیت مشاهده جریان کار را افزایش دهد و پتانسیل خطاها را کاهش دهد.
برای آموزش عملی با استفاده از طراح بصری جریان کار Workflow Studio، به چگونه یک جریان کار بدون سرور ایجاد کنم در مرکز توسعهدهندگان AWS مراجعه کنید.
الگوهای رایج جریان کار چیست؟
با استفاده از جریانهای کار، میتوانید بر تعریف تعاملات اجزا تمرکز کنید، به جای نوشتن نرمافزار برای عملی کردن این تعاملات. جریانهای کار میتوانند هم میکروسرویسها و هم کانتینرها را هماهنگ کنند. الگوهای رایج برای جریانهای کار شامل زنجیرهسازی میکروسرویسها، پاسخهای ناهمزمان یا همزمان، تعاملات انسانی، هماهنگی و کورئوگرافی کانتینرها، شاخهبندی و مدیریت خطاها هستند.