AWS SQS به عنوان جایگزینی برای میان افزارهای سنتی یکپارچه سازی برنامه های کاربردی

Summarize this content to 400 words in Persian Lang
ادغام برنامه یک سناریوی رایج در چشم اندازهای فناوری اطلاعات است. یک سیستم منبع داده هایی را ارسال می کند که توسط یک سیستم هدف مصرف می شود. میان افزارهای مختلف یکپارچه سازی وجود دارند که قابلیت های یکپارچه سازی را برای نرم افزارهای شخص ثالث فراهم می کنند. آنها ویژگی هایی مانند بررسی کیفیت داده یا مکالمه داده را قبل از ارسال به سیستم هدف پیاده سازی می کنند.
محدودیت های میان افزار یکپارچه سازی سنتی
مثل همیشه، نرم افزار استاندارد برای موارد استفاده ای که برای آن طراحی شده است عالی است. قبل از کار بر روی پروژههای AWS، من دادههای طبقه فروشگاه را با سیستمهای ERP با استفاده از میانافزار سنتی یکپارچه کردم. این راه حل نرم افزاری تمام الزامات تجاری را برآورده می کند. با این حال، مشکلات زمانی ظاهر شد که مقادیر زیادی از داده ها باید منتقل شوند. این راه حل نرم افزاری خاص برای ترافیک بالا ساخته نشده است.
امکان پیاده سازی برخی راه حل ها برای این مشکل وجود داشت. با این حال، همیشه به نظر یک راه حل است. به عنوان مثال، امکان ایجاد چندین صف موازی برای پردازش داده ها به صورت موازی وجود داشت. از آنجایی که این یک ویژگی استاندارد نبود، هر پیکربندی باید چندین بار پیاده سازی می شد. کار کرد، اما کامل نبود.
چگونه اولین آموزش AWS من تأثیر گذاشت
وقتی اولین آموزشهای AWS خود را گذراندم (AWS Cloud Practitioner و AWS Developer Associate)، واقعاً تحت تأثیر قابلیتهایی قرار گرفتم که AWS ارائه میدهد. یکی از آنها قابلیتهای مقیاسپذیری قوی بود – ویژگیای که در برخی از پروژههای گذشته مشکلاتی ایجاد کرد. از آنجایی که AWS SQS یک صف پیام مدیریت شده است، فکر کردم برای مورد استفاده من مناسب است.
اجرای پروژه مشابه با AWS
در یکی از پروژه های بعدی ام، این فرصت را داشتم که پروژه مشابهی را با استفاده از ابزارهای AWS پیاده سازی کنم. یک مصرف کننده پیام هایی را به یک صف SQS ارسال می کند. یک تابع AWS Lambda داده ها را پردازش کرده و به یک سیستم ERP ارسال می کند.
از دیدگاه یک توسعه دهنده، این پیچیده نیست. با این حال، بدون مسائل مقیاس پذیری بسیار خوب کار می کرد. چندین پیام به صورت موازی پردازش می شوند. هنگامی که پیامهای اسپک وجود دارد، بسیار سریع مقیاس میشود. اگر سیستم هدف در دسترس نباشد، میتوان پیامها را بعداً دوباره امتحان کرد. اساساً، این دقیقاً مورد استفاده ای است که SQS برای آن ساخته شده است – و عملکرد بالا و انعطاف پذیری دارد.
نحوه رسیدگی به الزامات پیچیده
برای برخی موارد استفاده، الزامات خاصی باید اجرا می شد.
ابتدا، برای برخی از سناریوها، پیام ها باید به ترتیب پردازش شوند. صف های SQS FIFO از این ویژگی پشتیبانی می کنند. با تعیین همان شناسه گروه پیام، می توان پیام های آن شناسه گروه پیام را به ترتیب پردازش کرد. در برنامه های Smart Manufacturing این می تواند یک کارخانه تولید، یک سفارش فروشگاه یا چیزی مشابه باشد.
دوم، نیاز به محدود کردن تعداد پیام های ارسال شده به سیستم هدف به صورت موازی وجود داشت. AWS به سرعت مقیاس می شود، اما برخی از سیستم های هدف ظرفیت محدودی دارند. در AWS نیز این امکان وجود دارد. یک ویژگی به نام maxConcurrency وجود دارد که تعداد فراخوانی های همزمان Lambda را هنگام پردازش یک صف SQS محدود می کند. هنگام استفاده از CDK، این ویژگی را می توان در هنگام اشتراک تابع Lambda در صف SQS مشخص کرد:
lambdaFunction.addEventSource(new sources.SqsEventSource(queue, {
maxConcurrency: 2,
}));
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خلاصه
در مقایسه با روندهایی مانند GenAI، برنامه های یکپارچه سازی واقعاً چشمگیر نیستند. از سوی دیگر، این مثال نشان میدهد که سرویسهای اساسی مانند SQS میتوانند پایه و اساس برنامههای فناوری اطلاعات و مناظر فناوری اطلاعات باشند. برنامه های کاربردی فناوری اطلاعات می توانند برنامه های کاربردی ابری باشند – یا برنامه های کاربردی داخلی که توسط خدمات یکپارچه سازی ابری بهبود یافته اند.
ادغام برنامه یک سناریوی رایج در چشم اندازهای فناوری اطلاعات است. یک سیستم منبع داده هایی را ارسال می کند که توسط یک سیستم هدف مصرف می شود. میان افزارهای مختلف یکپارچه سازی وجود دارند که قابلیت های یکپارچه سازی را برای نرم افزارهای شخص ثالث فراهم می کنند. آنها ویژگی هایی مانند بررسی کیفیت داده یا مکالمه داده را قبل از ارسال به سیستم هدف پیاده سازی می کنند.
محدودیت های میان افزار یکپارچه سازی سنتی
مثل همیشه، نرم افزار استاندارد برای موارد استفاده ای که برای آن طراحی شده است عالی است. قبل از کار بر روی پروژههای AWS، من دادههای طبقه فروشگاه را با سیستمهای ERP با استفاده از میانافزار سنتی یکپارچه کردم. این راه حل نرم افزاری تمام الزامات تجاری را برآورده می کند. با این حال، مشکلات زمانی ظاهر شد که مقادیر زیادی از داده ها باید منتقل شوند. این راه حل نرم افزاری خاص برای ترافیک بالا ساخته نشده است.
امکان پیاده سازی برخی راه حل ها برای این مشکل وجود داشت. با این حال، همیشه به نظر یک راه حل است. به عنوان مثال، امکان ایجاد چندین صف موازی برای پردازش داده ها به صورت موازی وجود داشت. از آنجایی که این یک ویژگی استاندارد نبود، هر پیکربندی باید چندین بار پیاده سازی می شد. کار کرد، اما کامل نبود.
چگونه اولین آموزش AWS من تأثیر گذاشت
وقتی اولین آموزشهای AWS خود را گذراندم (AWS Cloud Practitioner و AWS Developer Associate)، واقعاً تحت تأثیر قابلیتهایی قرار گرفتم که AWS ارائه میدهد. یکی از آنها قابلیتهای مقیاسپذیری قوی بود – ویژگیای که در برخی از پروژههای گذشته مشکلاتی ایجاد کرد. از آنجایی که AWS SQS یک صف پیام مدیریت شده است، فکر کردم برای مورد استفاده من مناسب است.
اجرای پروژه مشابه با AWS
در یکی از پروژه های بعدی ام، این فرصت را داشتم که پروژه مشابهی را با استفاده از ابزارهای AWS پیاده سازی کنم. یک مصرف کننده پیام هایی را به یک صف SQS ارسال می کند. یک تابع AWS Lambda داده ها را پردازش کرده و به یک سیستم ERP ارسال می کند.
از دیدگاه یک توسعه دهنده، این پیچیده نیست. با این حال، بدون مسائل مقیاس پذیری بسیار خوب کار می کرد. چندین پیام به صورت موازی پردازش می شوند. هنگامی که پیامهای اسپک وجود دارد، بسیار سریع مقیاس میشود. اگر سیستم هدف در دسترس نباشد، میتوان پیامها را بعداً دوباره امتحان کرد. اساساً، این دقیقاً مورد استفاده ای است که SQS برای آن ساخته شده است – و عملکرد بالا و انعطاف پذیری دارد.
نحوه رسیدگی به الزامات پیچیده
برای برخی موارد استفاده، الزامات خاصی باید اجرا می شد.
ابتدا، برای برخی از سناریوها، پیام ها باید به ترتیب پردازش شوند. صف های SQS FIFO از این ویژگی پشتیبانی می کنند. با تعیین همان شناسه گروه پیام، می توان پیام های آن شناسه گروه پیام را به ترتیب پردازش کرد. در برنامه های Smart Manufacturing این می تواند یک کارخانه تولید، یک سفارش فروشگاه یا چیزی مشابه باشد.
دوم، نیاز به محدود کردن تعداد پیام های ارسال شده به سیستم هدف به صورت موازی وجود داشت. AWS به سرعت مقیاس می شود، اما برخی از سیستم های هدف ظرفیت محدودی دارند. در AWS نیز این امکان وجود دارد. یک ویژگی به نام maxConcurrency وجود دارد که تعداد فراخوانی های همزمان Lambda را هنگام پردازش یک صف SQS محدود می کند. هنگام استفاده از CDK، این ویژگی را می توان در هنگام اشتراک تابع Lambda در صف SQS مشخص کرد:
lambdaFunction.addEventSource(new sources.SqsEventSource(queue, {
maxConcurrency: 2,
}));
خلاصه
در مقایسه با روندهایی مانند GenAI، برنامه های یکپارچه سازی واقعاً چشمگیر نیستند. از سوی دیگر، این مثال نشان میدهد که سرویسهای اساسی مانند SQS میتوانند پایه و اساس برنامههای فناوری اطلاعات و مناظر فناوری اطلاعات باشند. برنامه های کاربردی فناوری اطلاعات می توانند برنامه های کاربردی ابری باشند – یا برنامه های کاربردی داخلی که توسط خدمات یکپارچه سازی ابری بهبود یافته اند.