پرش به محتوای اصلی
پرش به محتوای مقاله

۲ ابزار جدید NEXUS AI برای ذخیره‌سازی دائمی داده‌های برنامه‌ها

·۱۸ مرداد ۱۴۰۵۷ دقیقه مطالعه۳ بازدید
راهنما
ذخیره‌سازی پایدار در NEXUS AI
ذخیره‌سازی پایدار در NEXUS AI
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی هم‌زمان ذخیره‌سازهای مبتنی بر فایل‌سیستم (Volume) و شیئی (Bucket) در یک پلتفرم استقرار AI، به همراه یکپارچگی کامل با ابزارهای MCP برای مدیریت خودکار حافظه توسط مدل‌ها.

اگر امروز برنامه‌ای می‌سازید که نیاز دارد اطلاعات کاربر را برای دفعات بعد به خاطر بسپارد، احتمالاً با کابوس پاک شدن داده‌ها بعد از هر بار به‌روزرسانی مواجه شده‌اید. این مشکل دقیقاً همان جایی است که NEXUS AI در ۹ می ۲۰۲۶ با معرفی دو سازوکار جدید ذخیره‌سازی، نقطه پایان آن را اعلام کرد. بارگذاری‌های AI با وضعیت (Stateful) معمولاً مدیریت ارکستراسیون کانتینرها را دشوار می‌کنند، اما NEXUS AI با معرفی دو ابزار اولیه (Primitive) ذخیره‌سازی متمایز، این چالش را حل کرد. اکنون توسعه‌دهندگان می‌توانند نقاط اتصال سیستم‌فایل دائمی و ذخیره‌سازی شیء (Object Storage) را مدیریت کنند، بدون اینکه چابکی استقرارهای بدون وضعیت (Stateless) را از دست بدهند. این انتشار به‌طور خاص نقاط درد رایج در DevOps را هدف قرار داده است؛ به‌ویژه برای کسانی که به مکانی برای آپلودهای کاربر، گزارش‌های تولید شده، فایل‌های SQLite، آرتیفکت‌های مدل یا یک ذخیره‌ساز شیء مشترک برای کارهای پس‌زمینه نیاز دارند.

بیشتر پلتفرم‌های استقرار هوش مصنوعی با مدل «بدون وضعیت» (Stateless) کار می‌کنند؛ یعنی هر بار که برنامه ری‌ست می‌شود، تمام حافظه موقتش پاک می‌شود. برای درک بهتر، این وضعیت شبیه به تخته‌سیاهی است که بعد از هر زنگ تفریح کاملاً پاک می‌شود و شما باید همه چیز را از اول بنویسید. تصور کنید سعی دارید یک برنامه در مقیاس کوچک با پایگاه‌داده SQLite اجرا کنید؛ بدون تداوم (Persistence)، هر بار بازنشانی (Redeploy) کل مجموعه داده‌های شما را پاک می‌کند. طبق اعلام تیم NEXUS AI، برای حل این بن‌بست، دو ابزار Volume و Bucket در سطح سازمان معرفی شده‌اند. هر دوی این ابزارها در برابر ری‌استارت‌های کانتینر، بازنشانی‌ها و حتی حذف کامل استقرار (Deployment) مقاوم هستند و تنها زمانی پاک می‌شوند که کاربر صراحتاً منبع ذخیره‌سازی را حذف کند.

همان‌طور که در تحلیل قبلی ما درباره‌ی مدیریت وضعیت در مدل‌های عامل‌محور اشاره کردیم، فقدان حافظه بلندمدت یکی از بزرگ‌ترین موانع تبدیل یک مدل زبانی به یک عامل کاربردی است. این چالش در واقع تکمیله‌ای بر بحث جداسازی حافظه مشترک عامل‌ها از مدل‌های زبانی است تا پایداری داده‌ها در سطح زیرساختی تضمین شود. اکنون توسعه‌دهندگان می‌توانند بر اساس نحوه دسترسی برنامه به داده‌ها، یکی از دو مسیر زیر را انتخاب کنند. طبق گفته تیم NEXUS AI، این دو ابزار بر اساس الگوی دسترسی و مدل اتصال، دو مشکل بنیادین متفاوت را حل می‌کنند:

  • Volume (ولوم): بهترین گزینه برای وضعیت سیستم‌فایل و کش‌های دائمی است. برنامه داده‌ها را در مسیری مانند /data می‌خواند و می‌نویسد. این ابزار برای اتصال به یک استقرار واحد طراحی شده است.
  • Bucket (باکت): بهترین گزینه برای رسانه‌های کاربر، گزارش‌ها و دارایی‌های تولید شده است. برنامه از طریق فراخوانی‌های SDK سازگار با S3 با این بخش ارتباط می‌گیرد. این ابزارها تطبیق‌پذیر هستند و می‌توانند به‌طور هم‌زمان به چندین استقرار متصل شوند.

ذخیره‌سازی پایدار در NEXUS AI

بر اساس مستندات فنی این پلتفرم، ولوم‌های NEXUS AI در واقع نقاط اتصال سیستم‌فایل دائمی هستند که توسط Volumeهای نام‌گذاری شده داکر (Docker named volumes) پشتیبانی می‌شوند. این معماری در کنار تنظیمات شبکه، یادآور رویکرد ترکیب Docker و Traefik برای مدیریت بهینه محیط‌های چند-مستاجری در عامل‌های هوش مصنوعی است. فرآیند راه‌اندازی نیازمند توالی خاصی از دستورات CLI است تا اطمینان حاصل شود که داده‌ها به‌درستی مپ شده‌اند.

اول، ولوم را ایجاد کنید: nexus volume create app-data --display-name "App data". سپس برنامه را مستقر کنید: nexus deploy source --repo https://github.com/your-org/your-app --name myapp --provider docker --wait. برای پیوند دادن این دو، ولوم را متصل کنید: nexus volume attach <volume-id> <deployment-id> --mount /data.

نکته حیاتی این است که بعد از اتصال یک ولوم، اجرای دستور nexus deploy redeploy <deployment-id> --wait الزامی است؛ زیرا در محیط داکر، نقاط اتصال (Mount points) تنها در لحظه ایجاد کانتینر اعمال می‌شوند و نمی‌توان ولوم را به کانتینری که در حال اجراست اضافه کرد. تأیید نهایی اتصال از طریق ترمینال و با دستور docker exec <container-id> ls -la /data انجام می‌شود.

ولوم‌ها برای موارد زیر ایده‌آل و با کارایی بالا هستند:

  • پایگاه‌داده‌های SQLite برای برنامه‌های سبک.
  • آپلودهای کاربر که مستقیماً از طریق سیستم‌فایل نوشته می‌شوند.
  • دایرکتوری‌های کش دائمی برای افزایش سرعت استنتاج (Inference) — که شبیه به داشتن یک دفترچه یادداشت سریع کنار دست آشپز است تا هر بار دستور پخت را از کتاب اصلی نخواند.
  • ایندکس‌های محلی یا فایل‌های مدل که باید در به‌روزرسانی‌ها باقی بمانند.
  • فایل‌های تولید شده‌ای که برنامه انتظار دارد آن‌ها را از روی دیسک بخواند.

با این حال، طبق گزارش‌های فنی، مقیاس‌دهی (Scaling) در ولوم‌ها ریسک‌های جدی دارد. وقتی یک استقرار را مقیاس می‌دهید (مثلاً با دستور nexus deploy scale <deployment-id> 3)، هر سه نسخه (Replica) همان ولوم نام‌گذاری شده را در یک مسیر یکسان مونت می‌کنند. این وضعیت یک سناریوی «درایو شبکه‌ای مشترک» ایجاد می‌کند. اگر چندین نسخه به‌طور هم‌زمان روی یک فایل بنویسند، برنامه باید مکانیسم قفل‌کردن (Locking) یا هماهنگی داخلی خود را داشته باشد تا از تخریب داده‌ها جلوگیری کند. این موضوع به‌خصوص برای برنامه‌هایی که فرض می‌کنند تنها یک نویسنده (Single Writer) وجود دارد (مانند تنظیمات پیش‌فرض SQLite با چندین نسخه write-heavy) بسیار خطرناک است.

هنگام کاهش مقیاس از طریق nexus deploy scale <deployment-id> 1، کانتینرهای حذف شده جدا می‌شوند، اما ولوم و داده‌های آن باقی می‌مانند. برای نابودی کامل داده‌ها، باید ابتدا دستور nexus volume detach <volume-id> و سپس nexus volume delete <volume-id> --yes را اجرا کنید.

برای برنامه‌های مقیاس‌پذیر، باکت‌های NEXUS AI که توسط MinIO پشتیبانی می‌شوند، انتخابی برتر هستند. این باکت‌ها به برنامه‌ها اجازه می‌دهند داده‌ها را به عنوان «شیء» (Object) و با استفاده از یک کلید (Key) و توسط S3 SDK ذخیره کنند. این فرآیند با دستور nexus bucket create user-uploads --display-name "User uploads" آغاز شده و با nexus bucket attach <bucket-id> <deployment-id> و یک ری‌دپلوی اجباری تکمیل می‌شود.

پس از بازنشانی، پلتفرم به‌طور خودکار متغیرهای محیطی S3 زیر را به کانتینر برنامه تزریق می‌کند:

  • S3_ENDPOINT=http://host.docker.internal:9000
  • S3_REGION=us-east-1
  • S3_BUCKET=org-<orgIdShort>-<bucketName>
  • S3_ACCESS_KEY=<scoped access key>
  • S3_SECRET_KEY=<scoped secret key>

اگر استقراری از چندین باکت استفاده کند، سیستم برای جلوگیری از تداخل، نام‌های مستعار (Alias) مخصوص هر باکت را تزریق می‌کند؛ مثلاً S3_BUCKET_USER_UPLOADS و کلیدهای دسترسی متناظر با آن.

توسعه‌دهندگان می‌توانند با استفاده از AWS SDKهای استاندارد، کتابخانه boto3 در پایتون یا CLI پلتفرم با باکت‌ها تعامل داشته باشند. برای مثال، یک برنامه پایتونی از boto3.client همراه با endpoint_url و کلیدهای تزریق شده برای انجام فراخوانی‌های s3.put_object استفاده می‌کند.

کنترل‌های عملیاتی از طریق توابع CLI زیر در دسترس است:

  • مدیریت فایل: لیست کردن فایل‌ها با nexus bucket files <bucket-id> (با قابلیت --prefix برای پوشه‌ها)، آپلود از طریق nexus bucket upload (که برای عملکرد بهتر در فایل‌های حجیم، داده‌ها را استریم می‌کند) و دانلود با nexus bucket download.
  • اشتراک‌گذاری امن: پلتفرم می‌تواند URLهای دانلود امضا شده و کوتاه‌مدت را با دستور nexus bucket download <bucket-id> <key> --share --ttl 900 تولید کند.
  • حذف داده‌ها: فایل‌ها از طریق nexus bucket rm <bucket-id> <key> --yes حذف می‌شوند.
  • امنیت: هر باکت از اعتبارنامه‌های محدود شده (Scoped Credentials) استفاده می‌کند. این تضمین می‌کند استقراری که به یک باکت متصل است، نمی‌تواند به باکت‌های دیگر در سازمان دسترسی داشته باشد. برای چرخش کلیدها، دستور nexus bucket rotate-credentials <bucket-id> --yes اجرا شده و برنامه باید برای به‌روزرسانی متغیرهای محیطی ری‌دپلوی شود.

باکت‌ها همزمانی (Concurrency) را بسیار بهتر از ولوم‌ها مدیریت می‌کنند. وقتی به چندین نسخه مقیاس می‌دهید، هر نمونه همان متغیرهای S3 را دریافت کرده و فراخوانی‌های API مستقل انجام می‌دهد. لایه ذخیره‌سازی شیء، درخواست‌های همزمان را مدیریت می‌کند. طبق قوانین استاندارد S3، اگر دو نسخه روی یک کلید بنویسند، آخرین نوشته پذیرفته می‌شود (Last write wins). این امر باکت‌ها را به گزینه پیش‌فرض بهتر برای جریان‌های کاری آپلود کاربر و دارایی‌های تولید شده تبدیل می‌کند.

برای اتوماسیون، پلتفرم یک REST API جامع ارائه می‌دهد. نقاط انتهایی (Endpoints) ولوم شامل GET /api/volumes، POST /api/volumes/:id/attach و DELETE /api/volumes/:id است. نقاط انتهایی باکت گسترده‌تر هستند و مواردی مانند POST /api/buckets/:id/rotate-credentials و POST /api/buckets/:id/files/:key/download-url را شامل می‌شوند.

کلاینت‌های AI همچنین می‌توانند از طریق ابزارهای پروتکل زمینه مدل (MCP) — که شبیه به یک مترجم جهانی است تا مدل‌های AI بتوانند با ابزارهای نرم‌افزاری صحبت کنند — ذخیره‌سازها را مدیریت کنند. این ابزارها شامل مجموعه‌های خاصی هستند:

  • ابزارهای ولوم: nexusai_volume_list، nexusai_volume_create، nexusai_volume_attach، nexusai_volume_detach و nexusai_volume_delete.
  • ابزارهای باکت: nexusai_bucket_list، nexusai_bucket_create، nexusai_bucket_attach، nexusai_bucket_detach، nexusai_bucket_rotate_credentials، nexusai_bucket_files_list، nexusai_bucket_file_download، nexusai_bucket_file_delete و nexusai_bucket_delete.

استفاده از MCP جریان‌های عملیاتی پیچیده را ممکن می‌سازد؛ مثلاً دستور دادن به یک عامل AI برای ایجاد یک باکت برای یک استقرار خاص، متصل کردن آن و سپس یادآوری به کاربر برای ری‌دپلوی سرویس.

این تغییر، «محدودیت بدون وضعیت» در استقرار AI را از بین می‌برد. با تقسیم ذخیره‌سازی به ولوم‌های مبتنی بر سیستم‌فایل برای وضعیت محلی و باکت‌های مبتنی بر API برای ذخیره اشیاء، توسعه‌دهندگان می‌توانند زیرساخت خود را دقیقاً با الگوی دسترسی داده‌های مدل هوش مصنوعی خود تطبیق دهند. این رویکرد در راستای تلاش‌ها برای اجرای پایدار عامل‌ها است تا وابستگی به تنظیمات دستی کاهش یابد.

گام بعدی شما

  • اگر از SQLite استفاده می‌کنید، ابتدا یک Volume ایجاد و آن را به مسیر /data متصل کنید.
  • برای برنامه‌هایی که نیاز به مقیاس‌پذیری دارند، از Bucketها به جای Volume استفاده کنید تا از تداخل داده‌ها جلوگیری شود.
  • ابزارهای MCP را برای خودکارسازی مدیریت ذخیره‌ساز توسط عامل‌های AI امتحان کنید.

اما این تنها بخشی از معماری جدید است؛ اثر این تغییر بر کاهش تأخیر در پاسخ‌دهی عامل‌ها را در گزارش بعدی بررسی خواهیم کرد.

چرا این موضوع مهم است؟

این به‌روزرسانی با حذف محدودیت‌های ذخیره‌سازی، استقرار برنامه‌های پیچیده AI را از حالت «نمونه اولیه» به «محصول تجاری» تبدیل می‌کند. اعتبار این تغییر در تکیه بر استانداردهای S3 و MinIO است که انتقال داده‌ها را برای سازمان‌ها تسهیل می‌کند.

تأثیر برای ایران

این قابلیت برای توسعه‌دهندگان ایرانی که از میزبانی‌های شخصی یا سرورهای داخلی برای اجرای عامل‌های AI استفاده می‌کنند، الگویی برای پیاده‌سازی حافظه دائمی (Persistent Storage) در محیط کانتینری است.

·نگاه ما
تحریریه دات‌هوش

جدا کردن لایه ذخیره‌سازی به دو بخش Volume و Bucket، در واقع پذیرش این واقعیت است که مدل‌های AI نیاز به دو نوع حافظه دارند: یکی حافظه سریع و محلی برای پردازش (State) و دیگری حافظه حجیم و توزیع‌شده برای دارایی‌ها. این رویکرد، معماری Stateless را که سال‌ها است در DevOps حاکم بود، برای نیازهای خاص عامل‌های AI به چالش می‌کشد و آن‌ها را به سمت سیستم‌های Stateful سوق می‌دهد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.