<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Fandogh Cloud</title><link>https://virgool.ir/feed/@fandogh.cloud</link><description>فندق سکویی است که سعی در حل کردن چالش های مختلفی دارد که در زمان استقرار محصول تیم های توسعه و نگهداری نرم افزار با آن برخورد میکنند.</description><language>fa</language><pubDate>2026-11-11 02:52:00</pubDate><image><url>https://files.virgool.ir/upload/users/110479/avatar/BmYc4i.png</url><title>Fandogh Cloud</title><link>https://virgool.ir/@fandogh.cloud</link></image><item><title>استفاده از MinIO در پروژه‌های Django</title><link>https://virgool.ir/CodeLovers/استفاده-از-MinIO-در-پروژه‌های-Django-t4gpcm3smopd</link><description>اگر تجربه کار بر روی پروژه‌هایی با میزان ترافیک بالا را داشته باشید، یکی از مسائلی که به احتمال خیلی زیاد با آن روبه‌رو شده‌اید، مسئله Storage یا همان ذخیره‌سازی است.اکثر اپلیکیشن‌ها در ابتدای مسیر از پیچیدگی دوری می‌کنند و برای موضوع ذخیره سازی از File Storage‌ها یا به عبارتی دیگر از همان دیسک سرور‌ها استفاده ‌می‌کنند؛ اما این موضوع رفته رفته با گذشت زمان مشکلات زیادی را به بار می‌آورد.برای مثال:اگر فایل‌ها از حدی بیشتر شوند، ارتقا حجم دیسک سرورها کاری دشوار و گاها همراه با خطر از بین رفتن داده‌ها خواهد بود.اگر قرار باشد سرویس دیگری که بر روی یک سرور دیگر قرار دارد، به این داده‌ها دسترسی داشته باشد، باید یک سرویس میانی مانند nginx ایجاد کنیم تا این اطلاعات را برای سرویس‌های دیگر دسترس پذیر کند.ساختار سلسله مراتبی File Storage سرعت بازیابی اطلاعات را کاهش داده و این مورد باعث افت بازدهی اپلیکیشن شما خواهد شد و …حال شاید برای شما این پرسش ایجاد شود که اگر کار با File Storageها تا این میزان افت کیفیت به همراه دارد، راه حل چیست؟ خبر خوب این است که راه حل دیگری به نام Object Storage سال‌ها پیش در دنیای نرم‌افزار معرفی شد که باعث بهبود کیفیت پروژه‌های مایکروسرویسی گردید.از معروف ترین‌ این مدل سیستم ذخیره‌سازی می‌توان به AWS S3 یا همان Amazon Simple Storage Service و MinIO اشاره کرد که قابلیت‌های بسیاری را در اختیار کاربران قرار می‌دهند.توضیح S3 Object Storage به زبان سادهسرویس‌های ذخیره سازی S3 که بر روی بستر اینترنت در دسترس هستند، قابلیت ذخیره سازی و دستیابی به هر میزان داده (data) که شما مد نظر داشته باشید و در هر مکان و زمان را برایتان فراهم می‌کنند.این امر مقیاس‌پذیری مایکروسرویس‌ها را بهبود و سرعت می‌بخشد. هر ‌Object Storage بر خلاف سیستم File Storage داده‌ها را به صورت سلسله مراتبی و فولدر بندی شده ذخیره نمی‌کند بلکه:داده‌ها را به صورت بلاک‌های مرتبط در آوردهبه هر فایل داده، یک Metadata کامل اختصاص می‌دهد.(می توانید Metadata را یک شناسنامه کامل از مشخصات فایل در نظر بگیرید).و در انتها به هر فایل یک ID جداگانه تخصیص می‌دهد که دسترسی به آن فایل را بسیار ساده می‌کند.مزایای S3 Object Storageاز مزایای S3 Object Storage می‌توان به موارد زیر اشاره کرد:آنالیز بهتر داده‌ها: از آنجایی که ثبت داده‌ها در این سیستم بر اساس Metadata است، آنالیز و دسترسی به محتوا کاری بسیار راحت خواهد بود.مقیاس‌پذیری نامحدود: شما می‌توانید به هر اندازه که نیاز دارید و بدون محدودیت فضا را افزایش دهید.دسترسی سریع به داده‌ها: با توجه به اینکه داده‌ها در Object Storage با Metadataها گروه بندی می‌شوند و بر خلاف File Storage نیازی به فولدر بندی وجود ندارد، سرعت دسترسی به داده‌ها در این سیستم بسیار بالا است.کاهش هزینه: با توجه به مقیاس پذیر بودن سرویس Object Storage، هزینه نگهداری اطلاعات کمتر خواهد بود.بهینه سازی منابع: از آنجایی که داده‌ها بر اساس Metadata ذخیره می‌شوند، محدودیت‌های کمتری برای بهبود و ویرایش وجود دارد.استفاده از Object Storage در جانگوبرای آنکه با عملکرد Object Storageها در دنیای واقعی بیشتر آشنا شویم، در این بخش نحوه اتصال یک پروژه Django Project به سرویس MinIO که یک S3 Object Storage رایگان است را برایتان شرح داده‌ایم.۱- ایجاد سرویس MinIOابتدا با استفاده از fandogh-cli یک سرویس مدیریت شده MinIO را ایجاد می‌کنیم:توجه داشته باشید این در این پست برای آموزش از CLI فندق استفاده می‌شود اما شما می‌توانید موارد مطرح شده را از طریق داشبورد مدیریتی سکوی ابری فندق هم انجام دهید.fandogh managed-service deploy minio latest \&#xA;-c service_name=minio \&#xA;-c minio_access_key=12charchters \&#xA;-c minio_secret_key=12charchters \&#xA;-c volume_name=VOLUME_NAME \&#xA;-m 512Miبا دستور بالا طبق مستندات یک سرویس مدیریت شده MinIO با نام minio در فضانام شما ساخته خواهد شد.۲- نصب پکیج django-minio-storageبرای اینکه بتوانیم از پروژه جانگویی به سرویس minio که در بخش قبل ایجاد کردیم دسترسی داشته باشیم، باید ابتدا ابزار مناسب آن را در اختیار پروژه قرار دهیم.برای این کار پکیج مناسب که در اینجا django-minio-storage است را در فایل requirements.txt قرار می‌دهیم....&#xA;django-minio-storage==0.3.10&#xA;...هنگام نگارش این پست، آخرین نسخه رسمی django-minio-storage طبق سایت PyPi، نسخه ۰.۳.۱۰ بوده است؛ قبل از استفاده از این آموزش، حتما آخرین نسخه موجود را بررسی و در صورت مغایرت با مقدار بالا، مقدار جدید را جایگزین نمایید.سپس با دستور زیر پیکیج‌ها را نصب می‌کنیم:pip install -r requirements.txt۳- نصب پکیج django-minio-storage و تنظیمات آن در جانگوبعد از آنکه پکیج‌ها را به درستی و با موفقیت نصب کردید، در فایل settings.py در بخش INSTALLED_APPS این پیکیج را اضافه کنید:INSTALLED_APPS: [&#xA;....&#xA;“minio_storage”,&#xA;....&#xA;]سپس در انتهای همان فایل مقادیر زیر را وارد نمایید:DEFAULT_FILE_STORAGE = &#34;minio_storage.storage.MinioMediaStorage&#34;&#xA;STATICFILES_STORAGE = &#34;minio_storage.storage.MinioStaticStorage&#34;&#xA;MINIO_STORAGE_ENDPOINT = os.environ.get(&#39;MINIO_STORAGE_ENDPOINT&#39;, ‘minio:9000’)&#xA;MINIO_STORAGE_ACCESS_KEY = os.environ.get(&#39;MINIO_STORAGE_ACCESS_KEY&#39;, None)&#xA;MINIO_STORAGE_SECRET_KEY = os.environ.get(&#39;MINIO_SECRET_KEY&#39;, None)&#xA;MINIO_STORAGE_USE_HTTPS = False&#xA;MINIO_STORAGE_MEDIA_BUCKET_NAME = &#39;media&#39;&#xA;MINIO_STORAGE_STATIC_BUCKET_NAME = &#39;static&#39;&#xA;MINIO_STORAGE_AUTO_CREATE_MEDIA_BUCKET = True&#xA;MINIO_STORAGE_AUTO_CREATE_STATIC_BUCKET = Trueتوجه داشته باشید مقادیرMINIO_STORAGE_ENDPOINT، MINIO_STORAGE_ACCESS_KEY و MINIO_STORAGE_SECRET_KEY به صورت پیشفرض از environment vriable‌های موجود در سیستم عامل سرویس شما فراخوانی خواهند شد و در صورت نبود هر یک از این مقادیر، مقدار ثابتی که به عنوان آرگومان دوم قرار داده شده است فراخوانی خواهد شد.توجهتوجه داشته باشید ما مقدار MINIO_STORAGE_ENDPOINT را برابر با اسم سرویس قرار داده‌ایم؛ چرا که هم سرویس minio و هم سرویس جانگو، هر دو در یک فضانام قرار دارند و سرویس جانگو از طریق اسم سرویس minio به آن متصل می‌شود. اما اگر سرویس minio خارج از فضانام سکوی ابری فندق باشد، باید آدرس کامل را به به جای مقدار minio قرار دهید.۴- ایجاد Data Modelحال در فایل models.py پروژه جانگو یک مدل آزمایشی با نام Image ایجاد می‌کنیم که با گرفتن یک فایل و تولید شناسه خودکار، آن را در Bucket با نام media و پوشه fandogh ذخیره می‌کند.....&#xA;class Image(models.Model):&#xA;&#34;&#34;&#34;&#xA;This is just for uploaded image&#xA;&#34;&#34;&#34;&#xA;objects = models.Manager()&#xA;id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)&#xA;image = models.ImageField(upload_to=&#39;fandogh&#39;)&#xA;def delete(self, *args, **kwargs):&#xA;&#34;&#34;&#34;&#xA;Delete must be overridden because the inherited delete method does not call&#xA;`self.file.delete()`.&#xA;&#34;&#34;&#34;&#xA;self.image.delete()&#xA;super(Image, self).delete(*args, **kwargs)۵- استقرار سرویس جانگو بر روی سکوی ابری فندقدر انتها سرویس خود را با استفاده از دستور زیر بر روی سکوی ابری فندق مستقر نمایید:fandogh source init --name djangoسپسfandogh source runبعد از آنکه سرویس به صورت کامل بر روی سکو مستقر شد، با مراجعه به آدرس سرویس minio که سکو به شما داده است، می‌توانید مشاهده کنید که Bucketای برای شما ساخته نشده است و علت آن هم این است که هنوز داده‌ای در اپلیکیشن ذخیره نشده است.۶- ذخیره تصویر آزمایشیحال بعد از با وارد شدن به آدرس سرویس جانگویی و بخش admin یک تصویر آزمایشی را داخل سایت بارگذاری می‌کنیم:حال بعد از ذخیره، می‌توانیم با مراجعه به داشبورد MinIO مشاهده کنیم که همانند تصویر زیر، فایل مورد نظر ما در باکت media و فولدری با نام fandogh ذخیره شده است:پایانهمانطور که مشاهده کردید، تنها با چند دقیقه صرف زمان و چند خط تغییرات توانستیم به راحتی اپلیکیشن جانگو را به یک سرویس MinIO متصل کنیم و دیگر نگرانی‌ بابت ذخیره‌سازی اطلاعات و دسترسی به آن‌ها نداشته باشیم.همچنین شما می‌توانید پروژه کامل این بلاگ پست را از روی مخزن گیت هاب سکوی ابری فندق دریافت و مشاهده کنید.</description><category>Fandogh Cloud</category><author>Fandogh Cloud</author><pubDate>Sat, 02 Jan 2021 18:31:51 +0330</pubDate></item><item><title>داستان یک تصمیم سخت</title><link>https://virgool.ir/@fandogh.cloud/داستان-یک-تصمیم-سخت-m2fbt4ucj4ol</link><description>همانطور که همه در جریان هستیم، شرایط فعلی اقتصادی کشور عزیزمان ایران تبدیل به گلوگاهی بسیار تنگ و سخت برای تمام اقشار جامعه شده است و کمتر کسی پیدا می‌شود که از این شرایط رضایت داشته باشد. متاسفانه به دلیل این نابسامانی‌ها، شاهد ضرر و زیان و حتی خاتمه کار برخی کسب‌و‌کارها بوده‌ایم که این مورد خود باعث توقف چرخ پویایی و رشد خواهد شد.سکوی ابری فندق کار خود را به عنوان یک سکوی ابری عمومی، از دل همین کشور شروع کرد و بدون اتصال به هر گونه منبع خصوصی یا غیر خصوصی و با اتکا بر سرمایه‌های داخلی افراد حاضر در مجموعه تلاش کرده تا کیفیتی در خور کاربران این سکو ارائه دهد.خوشبختانه طی ۳ سال گذشته هر روز مورد لطف و توجه هرچه بیشتر جامعه نرم‌افزاری ایران قرار گرفتیم و جایگاه فعلی سکوی ابری فندق را مدیون همین لطف و دوستی‌های ریشه افکنده در دل عموم کاربران میبینیم.عامل اصلی برای بقا و ادامه حیات یک محصول، فروش و کسب درآمدِ آن محصول است و سکوی ابری فندق هم از این ماجرا مستثنا نیست؛ اما از سوی دیگر بر این باوریم که نمی‌توان یک سکوی ابری عمومی بود، بدون آنکه شرایط عمومی کاربران را در نظر گرفت!متاسفانه درست یا نادرست، شرایط معیشتی و اقتصادی همگان به شرایط سیاسی گره خورده است و تا امروز در سکوی ابری فندق تمام تلاشمان را کردیم تا این سختی‌ها را به عنوان کارآفرین به جان خریده و خود هزینه آن را تا جای ممکن متحمل شویم و افتخارمان این است که با تمام فراز و نشیب‌های قیمت ارز و تورم ۲ سال گذشته، هیچ تغییری در قیمت خدمات سکو صورت نگرفته است؛ اما در شرایط فعلی در جایگاهی قرار گرفته‌ایم که علی رغم میل تک تک افراد حاضر در مجموعه سکوی ابری فندق، مجبور به افزایش قیمت خدمات هستیم!بر خلاف تمام سختی‌ها و ناملایمات، ما در سکوی ابری فندق تصمیم گرفته‌ایم تا انتهای پاییز افزایش قیمت را اعمال نکنیم، به امید آنکه بدون تدبیر :) شرایط بهتر شده و لبخند و آرامش دوباره بر لبان و دل‌های جامعه استارتاپی و عموم مردم ایران نقش ببندد.</description><category>Fandogh Cloud</category><author>Fandogh Cloud</author><pubDate>Mon, 02 Nov 2020 21:40:38 +0330</pubDate></item><item><title>زیرساخت ابری به زبان ساده</title><link>https://virgool.ir/@fandogh.cloud/زیرساخت-ابری-به-زبان-ساده-g75gxrfi6eqb</link><description>سکوی ابری فندقشاید روزی که تصمیم به ارائه سکوی ابری عمومی گرفتیم، حتی فکرش رو هم نمی‌کردیم و حواسمون نبود که قبل از ما چیزی به این صورت وجود نداشت و به عنوان اولین سکوی ابری عمومی ایران بار و فشار خیلی زیاد میتونه برای ما ایجاد بشه.داستان پیدایش سکوی ابری فندق، از روزی شروع شد که یک تیم نرم‌افزاری که عموما همه با هم دوست بودن و سابقه همکاری و فعالیت‌های فردی و تیمی در پروژه‌های مختلف با مقیاس‌های متفاوت، از راه‌اندازی زیرساخت بانکی و سازمانی تا پروژه‌های استارتاپی و حتی فریلنسری رو داشتن؛ تصمیم گرفتن به دلیل نبود سکوی ابری عمومی، پروژ‌ه‌ای رو شروع کنند که امروز با نام سکوی ابری فندق شناخته میشه.در آینده در یک پست جداگانه در مورد اینکه فندق چطوری و با چه هدفی ایجاد شد به صورت کامل صحبت می‌کنیم. در این مقاله قصد داریم به صورت خیلی ساده و خلاصه براتون تعریف کنیم که فندق و در حالت کلی سکوی ابری یا PaaS چیه و چه کمکی به روند توسعه ما خواهد کرد.تاریخچه پیدایش Cloud Computingشاید بد نباشه بدونید که Cloud Computing قدمت زیادی داره و به سال ۱۹۶۰ برمی‌گرده، زمانی که Joseph Carl Robnett Licklider در ARPANET معروف سعی داشت تا کاربران و داده‌ها رو در هر نقطه‌ای به هم متصل کنه.بعد از اون در سال ۱۹۸۳ اولین ارائه‌های عمومی این خدمات در قالب Cloud Storage توسط CompuServe به کاربران داده شد؛ به این صورت که اون‌ها می‌تونستن داده‌های خودشون رو به صورت محدود روی دیسک‌های ذخیره‌سازی آپلود کنند.سال‌ها بعد شرکت SalesForce در سال ۱۹۹۹ تصمیم به ارائه خدمات Enterprise گرفت و این خدمات ابری رو در قالب یک وب‌سایت ساده به کاربران خودش ارائه کرد و این اقدام از اولین سنگ بناهای خدمات ابری به حساب میاد. بعد از این شرکت‌های زیادی به این خدمات روی آوردن مثل Amazon که امروزه با اسم تجاری AWS شناخته میشه و از پیشتازان خدمات ابری به حساب میاد.توجه داشته باشید عبارت X as a Service به این معناست که هر چیزی (X) به عنوان سرویسی پیش‌ساخته در اختیار شما قرار خواهد گرفت.سرویس‌های زیرساختی به زبان عامیانهبیاید اینطوری تصور کنیم که شما قصد ساخت یک خانه رو دارید.مدل On Premiseاگر قصد دارید از مرحله خریداری زمین تا پی ریزی و ساخت و سفید کاری و نازک کاری و طراحی داخلی رو خودتون انجام بدید، همه چیز به عهده شما خواهد بود و خب طبیعتا ساختار از ۰ تا ۱۰۰ همان چیزی خواهد بود که شما دوست دارید اما در عوض معایبی مثل هزینه بالا، ریسک اشتباه و مسائلی از این دست در پیش روی شما قرار میگیره.مدل IaaS یا Infrastructure as a Serviceدر این حالت فرض کنید یک سری زمین به صورت پیش‌ساخته و پی‌ریزی شده وجود دارند و شما دیگر نگرانی از بابت امور زیرساختی ندارید ولی در عوض همچنان وظیفه ساخت بر عهده شما خواهد بود.مدل PaaS یا Platform as a Serviceدر این حالت خانه‌هایی به صورت خام و پیش‌ساخته (PaaS) در اختیار شما قرار می‌گیرد که در مکان‌های مطمئنی (IaaS) قرار گرفته‌اند. شما آزادید تعیین کنید ساختمان شما چند طبقه باشد و طراحی داخلی آن کاملا در اختیار شما خواهد بود و همچنین هزینه‌ی شما به صورت چشم‌گیری کاهش خواهد یافت.مدل SaaS یا Software as a Serviceاین قبیل خدمات مانند هتل‌ها می‌مانند، شما هیچ انتخابی در مورد مکان‌ آن‌ها، طراحی و یا ساخت آن‌ها ندارید و تنها حق انتخاب شما در این است که هتلی نزدیک به سلیقه و بودجه خود انتخاب نمایید چرا که همه چیز از قبل در هتل‌ها طراحی و مستقر شده است.سرویس‌های زیرساختی به زبان تخصصیسرویس‌های زیرساختی به صورت خلاصه و کلی به ۴ دسته زیر تقسیم می‌شوند:شمای کلی زیرساخت‌ها مدل On Premiseیعنی سرور‌ها و زیرساخت به صورت کامل در اختیار شما قرار دارند و مدیریت آن بر عهده شما خواهد بود.در این حالت شما به متخصص‌های شبکه نیاز خواهید داشت و هزینه شما در بیشیته‌ترین حالت ممکن خواهد بود.مدل IaaS یا Infrastructure as a Serviceدر این سرویس‌ها مدیریت زیرساخت بر عهده ارائه دهنده خدمات است و شما به عنوان کاربر وظیفه مدیریت سیستم‌عامل و مسائل دیگر را بر عهده خواهید داشت.به عنوان مثال سرویس‌های ارائه دهنده سرور‌های مجازی مثل AWS و Google Cloud از این دست خدمات حساب می‌شوند.در این حالت بسته به مقیاس و بزرگی کسب‌و‌کارتان شما همچنان به مهندسین شبکه و حتی DevOps نیاز خواهید داشت ولی نسبت به On Premise هزینه‌های شما کمتر خواهد بود.مدل PaaS یا Platform as a Serviceسرویس‌های PaaS یا همان سکوهای ابری دایره خدمات گسترده‌تری را به نسبت IaaS به شما ارائه می‌کنند؛ به نحوی که مدیریت زیرساخت کاملا بر عهده سرویس‌دهنده بوده و شما به عنوان کاربر می‌توانید تمام تمرکز خود را صرف توسعه محصولات و اپلیکیشن‌های خود نمایید.به عنوان مثال سرویس‌هایی مثل سکوی ابری فندق یا Heroku از این دست خدمات حساب می‌شوند.در این حالت نیاز شما به مهندسین شبکه و DevOps به صفر رسیده و دیگر نگرانی مدیریت زیرساخت نخواهید داشت و می‌توانید به روند گذشته خود، یعنی همان توسعه محصول با همان تعداد اعضای تیم خود ادامه دهید.مدل SaaS یا Software as a Serviceدر سرویس‌های SaaS دیگر کنترل چیزی بر عهده کاربر نیست و ارائه دهنده تمام مدیریت زیرساخت و نرم‌افزار را برعهده دارد و شما می‌توانید بدون داشتن هرگونه دغدغه مدیریتی از این سرویس‌ها استفاده کنید.به عنوان مثال سرویس‌های ایمیل از این دست خدمات حساب می‌شوند.در این حالت شما همچنان زیرساخت احتیاج خواهید داشت با این تفاوت که بخشی از نیاز خود را به صورت کامل از یک ارائه دهنده دیگر با هزینه‌ای به مراتب پایین‌تر از ساخت ۰ تا ۱۰۰ آن، تامین و دریافت می‌کنید.سکوی ابری فندقحال بعد از توضیحاتی که داده شد، می‌توان نتیجه گرفت که سکوی ابری فندق در لایه PaaS یا Platform as a Service قرار می‌گیرد.توسعه‌دهندگان و شرکت‌ها در هر مقیاسی می‌توانند با استفاده از سکوهای ابری از مزایای بسیاری بهره‌مند شوند (که در مقاله‌ای جداگانه به تفصیل در مورد آن‌ها توضیح خواهیم داد ) و در مقابل تا ۷۰ درصد از هزینه‌های توسعه و زیرساختی ایشان کاسته خواهد شد.شما می‌توانید برای آشنایی بیشتر با خدمات سکوی ابری فندق به سایت ما به آدرس وب‌سایت سکوی ابری فندق مراجعه کنید.امیدواریم این مقاله برای شما مفید واقع شده باشه؛ خوشحال میشیم نظراتتون رو برای ما بنویسید تا در آینده مقالات بهتر و با کیفیت‌تری رو براتون تهیه کنیم.</description><category>Fandogh Cloud</category><author>Fandogh Cloud</author><pubDate>Sat, 08 Feb 2020 16:59:30 +0330</pubDate></item></channel></rss>