اگر امروز برنامهای میسازید که نیاز دارد اطلاعات کاربر را برای دفعات بعد به خاطر بسپارد، احتمالاً با کابوس پاک شدن دادهها بعد از هر بار بهروزرسانی مواجه شدهاید. این مشکل دقیقاً همان جایی است که 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 در واقع نقاط اتصال سیستمفایل دائمی هستند که توسط 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:9000S3_REGION=us-east-1S3_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 امتحان کنید.
اما این تنها بخشی از معماری جدید است؛ اثر این تغییر بر کاهش تأخیر در پاسخدهی عاملها را در گزارش بعدی بررسی خواهیم کرد.




گفتگو