<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ali darjazi</title>
        <link>https://virgool.io/feed/@alidarjazi</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-15 10:50:29</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/445907/avatar/QhlrQv.jpeg?height=120&amp;width=120</url>
            <title>ali darjazi</title>
            <link>https://virgool.io/@alidarjazi</link>
        </image>

                    <item>
                <title>تاریخچه مدیریت پروژه</title>
                <link>https://virgool.io/@alidarjazi/%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE%DA%86%D9%87-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-h1vsbmjumolz</link>
                <description>به نام خدااین نوشته چکیده ای از مقاله گوگل در ارتباط با بررسی تاریخچه مدیریت پروژه است.مدیریت پروژه دانش، مهارت، ابزار و تکنیک ‏ها رو تو فعالیت ‏های پروژه به منظور دستیابی به الزامات تعریف شده به کار می‏گیره.زمانی که صحبت از مفاهیم جدیدی مثل مدیریت پروژه میشه تصور میشه که در مورد یک موضوع و پدیده جدید امروزی داریم صحبت میکنیم که بعضا با تغییر و تحولات زیادی در چند دهه اخیر همراه بوده. یعنی این تغییرات باعث تعریف و تدوین یک علم به نام مدیریت پروژه شده.وقتی نگاه عمیق تری به تاریخچه بشریت می ندازیم متوجه میشیم وقتی قراره تاریخچه مدیریت پروژه رو در جهان بررسی کنیم معمولا با مصادیقی مثل پروژه های دیوار چین، ساخت کشتی نوح یا سازه های عظیم تخت جمشید یا اهرام مصر قیاس میکنیم.هر کدوم از اینا جز پروژه های پیچیده و بزرگ تاریخ بشریت بوده.2500 سال پیش در ایران تخت جمشید با کیفیت مثال زدنی طراحی و ساخته شده یا اهرام مصر بیش از 2 میلیون تن سنگ رو در مدت 20 سال توسط انسان ها جا به جا کردن. اینجاست که یک مدیر پروژه دچار حیرت میشه که چطور اون زمان بدون دونستن ابزار و تکنیک های مدیریتی تونستن این پروژه های عظیم رو با این کیفیت درست کنن.پروژه هایی که بعضا شاهد ویرانی های زیادی هم در طول تاریخ بوده مثلا تخت جمشید یک مرتبه به اتش کشیده شده یا در مواجه با بلایی طبیعی مثل سیل زلزله و... بوده ولی همچنان به عنوان یک نماد حیرت انگیز پروژه های ایرانی ازش یاد میشه.شنیده ها این طور میگه که به دستور کوروش مهندسانی که پاسارگاد و ساختن موظف بودن که شرح اقدامات و کارهاشون رو در یک لوح هایی به نام کارنامک ثبت کنن. در واقع یک سندی بوده که شامل شرح اقدامات کسایی بوده که اون کارو انجام دادن. اونچه مسلمه بدون داشتن یک سری تکنیک های ذهنی قطعا انجام این پروژه ها امکان پذیر نبوده.اما تاریخچه مدیریت پروژه تو دنیای جدید به سال های ابتدایی 1900 برمیگرده زمانی که ما شاهد اولین جنگ جهانی بودیم.اون زمان دنیا با یک جنگی مواجه شده بود که هر طرف می بایست ابزارهای جنگی خودشون رو سریع به جبهه برسونن اون وقت بود که یک شخص امریکایی به نام هنری گانت اومد. ایشون یک کارخونه کشتی داشت و موظف بود در یک زمان کوتاهی این کشتی هارو سریع اماده کنه و بفرسته توی میادین جنگی.ایشون اومد یک ابزاری رو برای کنترل پروژه های خودش ابداع کرد که بتونه تعهدات خودش رو مدیریت کنه که امروزه از اون به عنوان بار چارت یا گانت چارت یاد میشه.گانت چارت یک ابزار ساده هست که اون زمان اثار خیلی زیادی در مدیریت پروژه ها گذاشت و به عنوان یک ابزار ساده و قابل فهم به عنوان یک روش جالب و پر طرفدار به شکل وسیعی در دنیا جهت مدیریت زمان پروژه ها مورد استفاده قرار گرفت.در دنیای امروزه هم عمده مدیران پروژه ترجیحشون در استفاده از این ابزار هست و بر اساس یک یافته پژوهشی بین کاربران نرم افزار مایکروسافت در حال حاضر بیش از 80 درصد مدیران پروژه در دنیا ترجیحشون اینه که برای مدیریت زمان پروژه هاشون از این ابزار استفاده کنند.ابداع گانت چارت در اوایل قرن 20 در واقع اغازگر یک حرکت پر شتابی بود که بعدها در دهه 1950 میتونیم اثارشو مشاهده کنیم. از این سالها یه جورایی به عنوان سال های ابتدایی توسعه و رشد مدیریت پروژه در دنیای معاصر یاد میشه در اون موقع میشه گفت جنگ سرد بین دو ابر قدرت شعله ور بود و رسیدن به زمان بندی که برای پروژه های نظامی تعریف می کردند خیلی مهم بود این دهه علاوه بر اینکه دهه جنگ سرد بود دهه های بعد جنگ جهانی دوم هم بود جدای از بحث نظامی تو این سال ها نیاز کشور ها به توسعه به ویژه توسعه اقتصادی بعد از جنگی که با ویرانی های زیادی همراه بود و بشر تو خودش یک نیاز شدیدی به توسعه اقتصادی احساس میکرد.پس میتونیم این سال هارو عملا سرآغاز تکریم و توسعه بسیاری از روش ها و دانش های مربوط به مدیریت پروژه به حساب بیاریم. مدیریت 9 گانه که سال ها بعد توسط نرم افزارهای مختلف عملیاتی شد و تو پروژه های مختلف به کار گرفته شد نه تنها در پروژه های نظامی، بلکه تو پروژه های عمرانی و صنعتی و ...در تمام دنیا رقابت شدید بود و این سالها نیاز به بستر توسعه این علم نوین مدیریت به شدت حس میشد.تقریبا تمام تکنیک ها و روش ها که ما امروز اونها رو میشناسیم توسط وزارت دفاع و صنایع نظامی امریکا در همین دهه ابداع و توسعه پیدا کرد روش های مثل Pert، مفهوم مهندسی ارزش، بحث wbs و ... از مباحث و تکنیک هایی بود که این سال ها ابداع شد البته صنایعی مثل ساختمان سازی هم تو تکمیل و توسعه روش هایی تو بحث مدیریت پروژه موثر بودن روش هایی مثل مسیر بحرانی و ... که امروزه خیلی ازش استفاده می کنیم.تو جریان این تحولات پروژه های بسیار بزرگی تو دنیا انجام شد. مثل ساخت ماهواره ها و ... یکی از نخسین کاربردهای مدل علمی مدیریت پروژه توسط نیرودریایی امریکا ساخت اولین زیردریایی هسته بود.تو اون پروژه برای اولین بار جهت هماهنگ کردن پیمانکاران زیادی و استفاده از هزاران منبع و اطمینان حاصل کردن از اجرای به موقع پروژه یک روشی ابداع شد که امروزه به نام روش پرت شناخته میشه.این روش کمک بسیار زیادی در راستای اجرای موفق پروژه داشت. و تقریبا میشه گفت اینجا بود که کسانی که درگیر بحث های صنعتی پروژه ها بودند به اهمیت شدید علم مدیریت پروژه پی بردند البته بعد اون سال ها هم این تکنیک برای پروژه های مختلف ساخت نیروگاه ها و ... استفاده شد و بعدها به مرور با استفاده از کامپیوتر این روش تکامل پیدا کرد و محاسبه مسیر بحرانی خیلی راحت تر شد. و بعدها هم پیشرفت های زیادی ایجاد شد که یکی از اونها تعریف و تکمیل مسولیت‏ پروژه های چندبخشی بود. از اون به بعد بود که روش های دیگه ای هم ابداع شد به طور مثال :1960: پژوهش های Nasa پیرامون مفهوم ماتریس ساختار سازمانی پروژه‌ها.1962: ناسا سیستم Pert را معرفی کرد.1963: معرفی مفهوم ارزش بدست آمده در پروژه‌ها توسط نیروی هوایی آمریکا.1963: مفهوم چرخه حیات پروژه توسط نیروی هوایی ایالات متحده ابداع شد.1964: برای نخستین بار سیستم مدیریت پیکربندی پروژه توسط Nasa طراحی شد.1965: در اواسط دهه 1960 میلادی دنیا شاهد رشد زیادی استفاده از تکنیک‏های مدیریت پروژه نوین در صنعت ساختمان بود.تو دهه 1950 و 1960 این تکنیک ها روز به روز توسعه پیدا میکرد تا سال 1970 که با توجه به اینکه جمع بندی و تمرکز و تدوین این تکنیک ها احساس میشد موسسه بین المللی به عنوان اولین موسسه رسمی برای مدیران پروژه تأسیس شد. و مهم ترین دستاورد موسسه در سال های ابتدایی تدوین یک استاندارد جهانی برای دانش مدیریت پروژه بوداز این به بعد بود که پیشرفت های حوزه مدیریت پروژه به صورت منسجم به یک شکل جدیدی شروع شد.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Fri, 06 Oct 2023 21:45:25 +0330</pubDate>
            </item>
                    <item>
                <title>سرویس بازیابی از فاجعه (DRaaS) بر بستر ذخیره ساز بومی</title>
                <link>https://virgool.io/Abriment/%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C-%D9%81%D8%A7%D8%AC%D8%B9%D9%87-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3draas-%D8%A8%D8%B1-%D8%A8%D8%B3%D8%AA%D8%B1-softw0are-defined-storage-omdmokfkjtym</link>
                <description>مقدمهداده ها مایه حیات کسب و کارهای مدرن هستند و هرگونه تغییر غیر مجاز و یا تخریب آنها می تواند باعث کاهش بهره وری و ایجاد تجربیات ناخوشایند برای مشتری شده و تاثیر منفی بر سودآوری بگذارد. به همین دلیل ضروری است که سازمان‌ها راهی مطمئن برای به حداقل رساندن احتمال از دست دادن داده‌ها و حفظ تداوم کسب‌وکار در هنگام بلایای طبیعی، خرابی تجهیزات، قطع برق یا حملات سایبری و خارج شدن منابع IT از خط پیدا کنند.تداوم کسب و کار، یک استراتژی و فرآیند برنامه ریزی است که به سازمان اجازه می دهد در صورت وقوع فاجعه، با کمترین اختلال به عملیات تجاری پاسخ دهد.یکی از جنبه های تداوم کسب و کار طراحی برنامه های بازیابی فاجعه(DR) است. هسته و قلب یک برنامه بازیابی فاجعه نیز بستر انتقال، ذخیره سازی، و بازیابی اطلاعات می‌باشد.از آن جا که مدیریت و همگام‌سازی پشتیبان‌گیری از داده‌های سراسر کسب و کار برای آماده‌سازی مستمر جهت بازیابی سریع داده‌های از دست رفته، همواره فرآیندی پرهزینه و پیچیده است، بهره مندی از راهکارهای مبتنی بر  ابر می تواند در  کاهش پیچیدگی و هزینه راه اندازی این بستر نقش به سزایی ایفا نماید.سرویس بازیابی فاجعه مبتنی بر ابرتعریف سرویسسرویس DRaaS این قابلیت را برای مشتری فراهم می کند تا داده های حیاتی خود را با کمترین پیچیدگی در خارج از سایت اصلی خود، و بر روی یک بستر امن ذخیره نماید. این رویکرد امکان بهره مندی از DR را برای سازمان هایی فراهم کرده است که در گذشته استفاده از این سرویس برای آن ها مقرون به صرفه نبوده است.در این سرویس می توان داده‌های حیاتی فناوری اطلاعات، از جمله داده‌های نرم افزارهای کاربردی، پایگاه‌های داده و پیکربندی تجهیزات را به‌طور خودکار در فضای ابری تکثیر کرد. بنابراین در صورت لزوم، امکان بازیابی این اطلاعات به سایت اصلی و یا  سایت ثانویه برای نیازهای عملیاتی وجود خواهد داشت.نمای کلی از طراحی سرویساستفاده از ذخیره سازی فایل (SDS) به عنوان هسته ی سرویس این قابلیت را ایجاد می کند تا کاربران فایل های خود را عینا در فضای ابری ذخیره کنند و با استفاده از ویژگی های این ذخیره ساز بتوانند با سرعت و اطمینان بالا آن ها را دقیقا به همان شکل بازیابی نمایند. بنابراین سازمان ها و کسب و کارها می توانند داده ها و منابع حیاتی خود را بر روی فضای ابری ذخیره سازی کنند تا در صورت وقوع فاجعه آن ها را بازیابی کرده و فعالیت خود را از سر بگیرند.این داده‌ها و منابع می توانند شامل تمام موارد حیاتی از قبیل اپلیکیشن ها، پایگاه‌های داده ، پیکربندی تجهیزات و... باشند که تمام آن ها به صورت خودکار و یا دستی در فضای ابری ذخیره شده و در موقع نیاز قابل بازیابی از فضای فوق خواهند بود.ذخیره‌سازی داده‌های حیاتی بر روی ابرویژگی های کلیدی سامانهپرداخت هزینه به صورت Pay-as-you-goیکی از اصلی ترین مزایای استفاده از سرویس DRaaS استفاده از ویژگی وجود پشتیبان در محل جغرافیایی دیگر، بدون پرداخت هزینه راه اندازی و نگهداری یک سایت است. چرا که در این مدل با وجود این که داده های کاربر در سایتی در محل جغرافیایی متفاوت با سایت اصلی نگهداری می شود، به جای پرداخت کل هزینه سایت ثانویه، تنها هزینه منابع مصرف شده پرداخت می شود.سهولت استفاده به دلیل سازگاری با محیط فعلی کاربراناز دیگر مواردی که در استفاده از سرویس بازیابی فاجعه برای مشتریان اهمیت دارد سادگی استفاده از سرویس همچنین سازگاری آن با محیط و نرم افزارهای فعلی آن هاست.  به همین منظور برای استفاده از این سرویس یک پوشه مشترک(Shared Folder) در  داخل سایت اصلی مشتری در اختیار او  قرار می‌گیرد که به چند صورت می تواند از آن بهره ببرد:1.  مشتری به راحتی می تواند مانند استفاده روزمره، فایل های حیاتی خود را در این مسیر قرار بدهد. این پوشه با فضای ابری اختصاصی کاربر همگام سازی شده است و به صورت آنی محتویات پوشه را در فضای ابری پشتیبان گیری می کند.2. بسیاری از کسب و کارها در حال حاضر از نرم افزارهای پشتیبان گیر گوناگونی(مانند veam backup) در محیط عملیات خود استفاده می کنند. کاربر می تواند با حفظ وضعیت فعلی خود و بدون نیاز به نصب نرم افزار پشتیبان گیر جدید به راحتی پوشه پشتیبان گیری همگام شده با بستر ابری  را به عنوان محل ذخیره پشتیبان به نرم افزار پشتیبان گیر  معرفی کند تا از این پس نسخه پشتیبان علاوه بر محیط کاربر در محیط ابری نیز ذخیره سازی شود.علاوه بر موارد فوق ممکن است مشتری از نرم افزارهایی در کسب و کار خود استفاده کند که قابلیت پشتیبان گیری از داده های حیاتی توسط خود آن نرم افزار ارائه شود. به طور مثل بسیار از نرم افزارهای اتوماسیون اداری یا پایگاه های داده امکان ایجاد پشتیبان به صورت مستقیم را فراهم می کنند. مجددا در این حالت نیز می توان پوشه مشترک سرویس را به عنوان محل هدف پشتیبان گیری به نرم افزار کاربر معرفی کرد تا نسخه ای دیگر از پشتیبان نرم افزار در فضای ابری نگهداری شود.به این ترتیب تمام داده های حیاتی کاربران به صورت آنی در فضای ذخیره سازی ابری ذخیره می شود و اطمینان از دسترسی به داده اتفاق می‌افتد، در عین حال کاربران برای استفاده از این سرویس با پیچیدگی یا زحمت جدیدی رو به رو نخواهند شد.امکان رمزنگاری دادهدر این راهکار هم در زمان انتقال داده به بستر ابر و هم در زمان استقرار آن، ویژگی رمزنگاری پیش بینی شده است. به این نحو که هر گونه دسترسی غیر مجاز و غیر متعارف به داده امکان پذیر نبوده و صرفا کاربر مالک داده امکان دسترسی به داده های خود را خواهد داشت. علاوه بر این راهکارهایی برای یکپارچه سازی ویژگی رمزنگاری نرم افزارهای سمت کاربر ( از جمله Veeam Backup)  وجود دارد که می تواند جهت افزایش ضریب اطمینان، در زمان استفاده از سامانه آنها را فعال نمود.  با استفاده از این ویژگی داده ها در زمان ایجاد فایل پشتیبان رمز شده و صرفا در زمان بازیابی و صرفا توسط کاربرنهایی رمزگشایی صورت خواهد پذیرفت.دسترسی مطمئن و پرسرعتیکی دیگر از ویژگی های سرویس ارائه شده بستر سریع و مطمئن شبکه آن است. اطمینان شبکه از دو منظر اهمیت دارد. اول اطمینان از پشتیبان گیری سریع بر روی فضای ابری و دوم اطمینان از بازیابی سریع آن‌ها. این سرویس بر بستر اختصاصی شبکه پر سرعت، امن و قابل اطمینان ارائه می‌شود تا این دغدغه مشتریان به بهترین نحو پاسخ داده شود.  نکته حائز اهمیت آن است که با توجه به آنکه داده کاربر بر روی دیسک های متفاوتی ذخیره می شود از سرعت بازیابی بسیار خوبی برخوردار بوده و محدودیت سرعت بازیابی صرفا محدود به سرعت شبکه خواهد بود.ذخیره سازی با رعایت اصل Multi-tenancyمسئله قابل توجه دیگر در این جا ذخیره سازی در فضای ابری مبتنی بر مفهوم multi-tenancy است. و آن به این معنی است که به هر کاربر، متناظر با فضای محلی خود یک فضا ی جداگانه و مستقل در محیط ابری اختصاص داده می شود و کاربران به داده‌های یکدیگر دسترسی و یا اثرگذاری نخواهند داشت.  به این معنا که یک مشتری می تواند کاربران متفاوتی بر روی فضای ابری داشته و هر کدام داده‌های مورد نظر خود را به صورت جداگانه بر این بستر ذخیره نمایند.پنل مدیریت پشتیبان گیری و بازیابی داده هاعملیات مدیریت و بازیابی این سرویس در قالب یک پنل کاربری ارائه می شود. در این حالت کاربران می توانند با استفاده از پنل طراحی شده به محیط ابری خود دسترسی داشته و ضمن مدیریت این فضا، با دریافت نسخه های پشتیبان عملیات بازیابی را انجام خواهند داد. لازم به ذکر است این پنل به دو زبان انگلیسی و فارسی قابل ارائه است.انتخاب سطح نگهداری داده هاانتخاب سطح نگهداری داده ها از دیگر قابلیت های ارائه شده در این سرویس است. سطح نگهداری Hot نسخه های پشتیبان را بر روی حافظه های سریع نگهداری می کند تا کاربران بتوانند با سرعت بالاتری آن ها را بازیابی نمایند. بنابراین اگر داده هایی برای کاربر اهمیت بالایی دارد بهتر است تا آن ها را در این سطح نگهداری نماید. همچنین می توان داده‌های با اهمیت کمتر ( از منظر سرعت دسترسی) را در سطح Warm و یا Cold ذخیره نمود. این قابلیت باعث می شود تا کاربر بتواند مابین هزینه و نیاز خود تعادل ایجاد نماید.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Thu, 15 Sep 2022 15:44:04 +0430</pubDate>
            </item>
                    <item>
                <title>معماری سرویس ذخیره سازی ابری Ceph) Block Storage)</title>
                <link>https://virgool.io/Abriment/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A7%D8%A8%D8%B1%DB%8C-ceph-block-storage-n9mofms3ggsp</link>
                <description>ما در این سلسه مقالات قصد داریم در رابطه با یک راه‌کار ذخیره سازی نرم افزاری یا همان Software Defined Storage به نام CEPH صحبت کنیم، معماری آن را مورد بررسی قرار داده و در نهایت تجربیات مختلف استفاده از آن را بررسی کنیم. همچنین در مستندات قبل در ارتباط با ذخیره سازی اشیاء صحبت کردیم.نیاز به شیوه‌های نوین ذخیره‌سازی امروز بیش از هر زمان دیگری احساس می‌شود. توسعه نرم‌افزارهای پیام‌رسان داخلی و زیرساخت‌های ابری ذخیره‌سازی که به کاربران امکان می‌دهد در هر زمان و مکانی فایل‌های حجیم خود را روی شبکه‌ی اینترنت قرار دهند، باعث رشد روزافزون فضای ذخیره‌سازی شده است.سف چیست؟سف یک نرم‌افزار ذخیره‌سازی توزیع‌شده‌ی متن‌باز است که هدف اصلی آن ایجاد قابلیت توسعه، کارایی بالا و احتراز از مدیریت متمرکز بوده است. ceph یک راه‌کار واقعی و جامع در زمینه‌ی «سرویس‌های یکپارچه ذخیره‌سازی» است و امکاناتی مانند Block Storage و Object Storage را در اختیار ما می‌گذارد. اما در سف چه اتفاقی می افتد؟محصول ابریمنت هم در لایه Block storage و هم در لایه Object Storage از دو محصول متفاوت نرم‌افزاری استفاده می‌نماید. در سطح  Block محصول Ceph مورداستفاده قرارگرفته که هم در زیرساخت Iaas و هم در بستر PaaS قابلیت ارائه سرویس به کاربر را دارد.سف یک سرویس نرم‌افزاری ذخیره‌سازی است که با استفاده از یک فرایند نرم‌افزاری به نام RADOS block Device ذخیره‌سازی داده‌ها بر مبنای بلوک را در این سرویس توزیع‌ شده تسهیل کرده است. ایمیج های RBD به‌صورت thin-provisioned هستند به این معنی که سایز این ایمیج ها با گذر زمان می‌تواند تغییر کند. همچنین برای ذخیره‌سازی آن‌ها داده را به چندین بخش تقسیم کرده و بین سرورهای osd موجود در کلاستر توزیع می‏کند. معمولاً RBD از دو نوع کتابخانه استفاده می‌کند. کتابخانه librbd معمولاً در ماشین‌های مجازی استفاده می‌شود و دیگری یک ماژول کرنل است که در سرورهای فیزیکی یا محیط‌های تحت کانتینر استفاده می‌شود. ایمیج های RBD دارای دو فرمت Mirroring و In-memory librbd cache هستند. در شکل زیر یک شمای کلی از نحوه خواندن و نوشتن درخواست‌ها در کلاستر Ceph آورده شده است که یک فضای ذخیره‌سازی بلوکی را فراهم می‏کند. شمای کلی خواندن و نوشتن درخواست‌ها در فضای ذخیره‌سازی نحوه ذخیره سازی اطلاعات بر روی کلاستر سف به گونه ای است که در دسترس پذیر بودن و صحت اطلاعات ذخیره شده بر روی کلاستر را تضمین میکند. برای اطمینان از صحت اطلاعات ذخیره شده به صورت دوره ای فرایند scrubbing بر روی کلاستر انجام می شود.از طرف دیگر برای اینکه دسترس پذیری اطلاعات وابسته به یک سخت افزار خاص نباشد با استفاده از مکانیسم های replication یا erasure code اقدام به توزیع داده ها در بین سخت افزار های مختلف می کند. در مکانیسم replication چندین کپی از اطلاعات در سخت افزار های مختلف پخش می شود اما در مکانیسم erasure code اطلاعات به m بخش تقسیم می شود و nبلاک parity نیز از روی آنها ساخته می شود و بین m+n سخت افزار مختلف توزیع می شوند. در کلاستر سف فارغ از فرمت ذخیره سازی اطلاعات (آبجکت استور، بلاک استور یا فایل سیستم) تمامی اطلاعات به صورت آبجکت و بر روی osd ذخیره می شوند. هر osd عبارت است از یک daemonکه به یک دیسک نگاشت می شود. هر آبجکت هم شامل یک شناسه، اطلاعات باینری و متادیتا هست. آبجکت ها با استفاده از الگوریتم CRUSHبین osd های موجود در کلاستر سف توزیع می شوند.برای تشریح الگوریتم CRUSH در حالت replication لازم است با دو مفهوم placement group و pool آشنا باشیم. مجموعه ای از osd ها که در یک دسته بندی منطقی قرار گرفته اند pool گفته می شود، در زمان ساخت pool یک نام به آن اختصاص می دهیم و کلاستر هم به صورت خودکار یک شناسه یکتا به آن اختصاص می دهد. چیزی که اهمیت دارد و در الگوریتم CRUSH از آن استفاده می شود شناسه pool است. هنگام ساخت pool لازم است تعداد placement group ها موجود بر روی آن را نیز تعیین کرد، به نحوی که هر osdموجود در pool بیش از 100 placement group نداشته باشد.الگوریتم CRUSH یک ورودی دریافت می کند و در خروجی آن لیستی از osd ها برای ذخیره سازی فایل را بر میگرداند. ورودی این الگوریتم به این شکل است، ابتدا hashاسم فایلی که قصد ذخیره سازی آن را داریم را حساب می کند و مقدار آن را بر تعداد pg های poolتقسیم می کند، باقی‌مانده این مقدار به علاوه شناسه pool به عنوان ورودی الگوریتم CRUSHهست، الگوریتم CRUSH با توجه به وروی یک osd را به عنوان primary osd و وابسته به تعداد رپلیکا secondary osd ها را معرفی می کند.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Wed, 17 Aug 2022 11:01:43 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با پایگاه داده Postgresql</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-postgresql-gvmhhkaopim8</link>
                <description>مقدمهدر تکنولوژی ­های مدرن، یکپارچگی و امنیت داده ها به اولویت اصلی تبدیل شده است. به خصوص اگر در مورد پروژه های بزرگ صحبت کنیم که نیازمند نگهداری صدها یا هزاران بلوک اطلاعاتی در یک مکان امن هستند. بنابراین، انتخاب یک پایگاه داده مناسب برای پروژه بعدی شما چیز حاشیه ای نیست. این نیاز به دانستن همه گزینه ها، مزایا و معایب آنها و درک اینکه کدام یک برای شما مناسب است.در چندین دهه گذشته، PostgreSQL پیشرو در میان گزینه ­های پایگاه داده رابطه ای منبع باز بوده است. این یک سیستم object-relational پیشرفته است که از زبان SQL استفاده می کند. Postgres به شما اجازه می دهد تا داده های بزرگ و پیچیده را با خیال راحت ذخیره کنید. این به توسعه دهندگان کمک می کند تا پیچیده ترین برنامه ها را بسازند، administrative tasks را اجرا کنند و محیط های یکپارچه ایجاد کنند.ویژگی های دیتابیس Postgresqlانواع داده: PostgreSQL از تمام انواع داده های مورد نیاز مانند اسناد، اصول اولیه، هندسه، ساختارها و غیره پشتیبانی می کند.یکپارچگی داده ها: Postgres یکپارچگی داده های شما را با معرفی محدودیت ها و تنظیم داده هایی که اضافه می کنید فراهم می کند. با PostgreSQL، می توانید سوابق نامعتبر یا بدون مالک را فراموش کنید.عملکرد: موازی سازی پرس و جوهای خوانده شده، روش های نمایه سازی قدرتمند، کنترل همزمانی چند نسخه. اینها تنها تعدادی از ویژگی های متعددی هستند که توسط PostgreSQL برای تقویت و بهینه سازی عملکرد آن پیاده سازی شده است.بازیابی بحران و قابلیت اطمینان: PostgreSQL مراقبت می کند تا بالاترین سطح اطمینان را برای داده های شما فراهم کند. با گزینه های replication آن، داده های شما کاملاً ایمن هستند. علاوه بر این، همیشه می توانید از با ارزش ترین اطلاعات نسخه پشتیبان تهیه کنید.توسعه پذیری: در این پایگاه داده، لازم نیست خود را به انواع خاصی از اسناد محدود کنید. پایگاه داده طیف گسترده ای از انواع داده را برای در اختیار شما ارائه می دهد.جستجوی متن: Postgresجستجوی متن کامل را برای سرعت بخشیدن به فرآیند یافتن فعال می‌کند و ترکیب‌های حساس به حروف بزرگ و بدون لهجه را ادغام می‌کند.پشتیبانی از داده های غیر رابطه ای: می توانید از انواع داده های بومی اسناد (JSON، XML، Hstore و Cstore) برای تبدیل PostgreSQL به یک پایگاه داده NoSQL استفاده کنید. محتوای این نوع داده ها را می توان ایندکس کرد که سرعت زیاد و یکپارچگی داده را ارائه می دهد. با استفاده از یک syntax ساده SQL به میتوانید به بهترین میان پایگاه داده­ای رابطه­ای و غیر رابطه­ای بپیوندید تا داده های غیر رابطه ای (اما نمایه شده) را با بهترین سرعت جستجو کنید.متن بازامنیت بالاسازگاری بالا با انواع سیستم عامل­هاسیستم اطلاعات جغرافیایی:در PostgreSQL، می‌توانید از یک افزونه به نام PostGIS استفاده کنید که یک توسعه‌دهنده پایگاه داده فضایی برای پایگاه‌های داده PostgreSQL است. پشتیبانی از اشیاء جغرافیایی را اضافه می کند که امکان اجرای پرس و جوهای مکان را در SQL فراهم می کند. بنابراین، می توانید از PostgreSQL در برنامه خود استفاده کنید که به اطلاعات جغرافیایی در قوانین تجاری آن نیاز دارد.معماریدر این بخش با مفهوم رپلیکیشن و اینکه رپلیکیشن بر روی دیتابیس پستگرس چگونه کار می کند آشنا خواهیم شد:در پستگرس رپلیکیشن را می توان به 3 روش اصلی زیر ارائه کرد:1. مبتنی بر فایل یا دیسک2. مبتنی بر WAL3. مبتنی بر SQLآشنایی با مفهوم WALاین پایگاه داده ابتدا تغییرات را در حافظه ثبت میکند تا بتواند تغییرات را سریع ضبط کند. دسترسی به حافظه بسیار سریع اما بی ثبات است به این معنی که اگر سرور crash شود تغییرات اخیر داده های ما پس از راه اندازی مجدد سرور ناپدید میشوند.مفهوم WAL یک رکورد از تمامی مقادیر و متغیرات پایگاه داده است، به طوری که ما میتوانیم تمامی تغییراتی که در حافظه به وجود آمده است اما به خاطر خرابی سرور هنوز به دایرکتوری اصلی داده ها نوشته نشده است را دوباره بازیابی کنیم.آشنایی با مفهوم Replicationدر صورت خرابی یا ری استارت شدن سرور به کار می آید اما یک محدودیت بزرگ هم دارد. زمانی که دیسکی خراب شود و یا یک امر غیرقابل بازگشت دیگری پیش بیاید WAL نمی تواند به ما کمک کند. فرض کنید که تمام دیتای ما بر روی یک سرور است و به خاطر خرابی برای دیسک ممکن است از بین برود، بنابراین ما به چیزی نیاز داریم که ما را در مقابل خرابی های این چنینی مقاوم کند. اینجا است کهreplication به کمک می آید. در اینجا PostgreSQL از یک رویکرد زیرکانه استفاده میکند، و از WAL به عنوان یک ابزار استفاده کرده و آن را برای بقیه سرورها میفرستد، حالا ما یک رپلیکیشن کامل از دیتابیس خود بر روی یک سرور دیگر داریم.مدل های رپلیکیشنAsynchronous replicationاین نوع رپلیکیشن تضمینی در رابطه با اینکه اطلاعات به رپلیکیشن های مختلف ارسال شده یا نه، ندارد. دیتا زمانی که بر روی WAL سرور اصلی نوشته شد، نوشته شده در نظر گرفته میشود. فرستنده WAL تمام دیتای WAL را بر روی رپلیکیشن های متصل شده پیاده میکند اما این اتفاق به صورت asynchronous و بعد از اینکه WAL نوشته شد می افتد.رپلیکیشن به صورت async معروف ترین نوع برای انجامinsert ها است. کلاینت ها فقط بایستی منتظر سرور اصلی برای نوشتن WAL باشند.از آنجایی که تضمینی وجود ندارد که داده ها پس از نوشتن به صورت موفقیت آمیز به رپلیکیشن منتقل شوند، این حالت ممکن است منجر به ناسازگاری موقت داده ها بین سرور اصلی و سرور رپلیکیشن شود. تا زمانی که WAL مربوطه به رپلیکیشن نپیوندد و به دیتابیس آن اعمال نشود، مشتریانی که از این رپلیکیشن ها میخوانند، اطلاعات جدید را در کوئری خود نخواهند دید.از دست دادن داده در این نوع رپلیکیشن اگر که سرور اصلی قبل از رسیدن WAL به سرور رپلیکیشن دچار خرابی شود یک احتمال به شمار میرود. هرچند که اگر سرور اصلی دچار کرش شود و دوباره شروع به کار کند، سرور رپلیکیشن از جایی که داده ها به خاطر خرابی متوقف شده بود دوباره ادامه به کار میدهد.Synchronous write replicationاین نوع رپلیکیشن تضمین میکند که تمامی مقادیر مشخص شده برای رپلیکیشن، داده ی خود را قبل از اینکه سرور اصلی به مشتری اعلام موفقیت کند بر روی WAL مینویسند.عملکرد write در این نوع رپلیکیشن حرکت کندتری نسبت بهasynchronous دارد.از دست دادن دیتا در این حالت هنوز امکان پذیر است هرچند که نسبت به اجرای async کم تر شده است، در اکثر موارد synchronous هر دو سرور هم اصلی و هم رپلیکیشن دچار کرش میشوند.Synchronous apply replicationنه تنها تضمین میکند که WAL برای همه رپلیکیشن ها به صورت مشخص نوشته شده است بلکه تمام بخش های WAL در پایگاه داده اعمال میشوند.از آنجایی که مشتری باید منتظر بماند تا کلیه عملیات نوشتن در سرور اصلی و رپلیکیشن انجام شود، این حالت کندترین نوع ممکن است.تضمین میکند که هر رپلیکیشن مشخص شده به طور کامل با سرور اصلی سازگار باشد و عملیات write تاز مانی که در پایگاه داده اعمال نشود موفقیت آمیز تلقی نخواهد شد.در مورد از دست دادن دیتا، این نوع از رپلیکیشن حتی تضمین بهتری نسبت به 2 مورد قبلی است.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Sat, 09 Jul 2022 16:01:50 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با پایگاه داده رابطه ای</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%D8%A7%DB%8C-pxsb3hwypebq</link>
                <description>مقدمهسیستم های مدیریت پایگاه داده (DBMS) برنامه های کامپیوتری هستند که به کاربران اجازه می دهند با پایگاه داده تعامل داشته باشند. یک DBMS به کاربران اجازه می دهد تا دسترسی به پایگاه داده را کنترل کنند، داده ها را بنویسند، دستورها را اجرا کنند و سایر وظایف مربوط به مدیریت پایگاه داده را انجام دهند.با این حال، برای انجام هر یک از این وظایف، DBMS باید نوعی مدل اساسی داشته باشد که نحوه سازماندهی داده ها را تعریف کند. مدل رابطه‌ای یکی از رویکردهای سازمان‌دهی داده‌ها است.اما چگونه پایگاه های داده رابطه ای داده ها را سازماندهی میکنند؟اساسی ترین عناصر در مدل رابطه ای، روابط هستند که کاربران و RDBMS های مدرن آنها را به عنوان جداول تشخیص می دهند. یک رابطه مجموعه ای از ردیف ها، در یک جدول است که هر ردیف مجموعه ای از ویژگی ها یا ستون ها را به اشتراک می گذارد.در مدل رابطه ای، هر جدول حاوی حداقل یک ستون است که می تواند برای شناسایی منحصر به فرد هر سطر به نام کلید اصلی استفاده شود.اگر دو جدول دارید که می‌خواهید آن‌ها را با یکدیگر مرتبط کنید، یکی از راه‌های انجام آن، کار با یک کلید خارجی است. یک کلید خارجی در اصل یک کپی از کلید اصلی یک جدول (جدول &quot;parent&quot;) است که در یک ستون در جدول دیگر (&quot;child&quot;) درج شده است.مثال زیر رابطه بین دو جدول را نشان می دهد، یکی برای ثبت اطلاعات در مورد کارکنان در یک شرکت و دیگری برای ردیابی فروش شرکت استفاده می شود.مزایا و محدودیت های پایگاه های داده رابطه ایمزایاکاربردش ساده استدستکاری داده قابل انجام استافزونگی و تکرار داده ها را محدود می کندیکپارچگی داده ها را بهتر ارائه میکندروش های پشتیبان گیری و بازیابی بهتری را فراهم می کندچند کاربر می توانند به پایگاه داده دسترسی داشته باشند محدودیت هاهزینه پیاده سازی بالایی داردنرم افزار پیچیده به سخت افزار گران قیمت نیاز داردبرای اجرا به نیروی انسانی ماهر نیاز داردبازیابی اطلاعات از دست رفته دشوار استپایگاه داده MySQLیک سیستم مدیریت پایگاه داده رابطه ای open-source است. مانند سایر دیتابیس های رابطه، MySQL داده را در جداول ساخته شده از ردیف وستون ذخیره می کند. کاربران می توانند داده ها را با استفاده از زبان پرس و جو ساخت یافته تعریف، دستکاری، کنترل و پرس و جو کنند.این پایگاه داده محبوب ترین سیستم پایگاه داده open-source در جهان است و به عنوان بخشی از پشته فناوری LAMP که به طور گسترده مورد استفاده قرار می گیرد(که شامل یک سیستم عامل مبتنی بر لینوکس، وب سرور آپاچی، پایگاه داده MySQL و PHP برای پردازش است).برای ذخیره و بازیابی داده ها در طیف گسترده ای از برنامه های کاربردی، وب سایت ها و خدمات محبوب استفاده می شود.ویژگی های دیتابیس MySQLامکان ذخیره سازی در چندین موتور ذخیره سازی مانند CSV و NDBامکان تکثیر داده ها و جداول پارتیشن بندی شده جهت عملکرد بهترامکان دسترسی به داده ها, با استفاده از دستورات استانداردامنیت بالامدیریت سادهمتن بازسازگاری بالا با انواع سیستم عاملفیچرلیست پیاده سازی شده این سرویس در محصول ابریمنتایجاد دیتابیسحذف دیتابیستغییر پسورد دیتابیستغییر وضعیت دیتابیس(استاپ و استارت)کلون از دیتابیسبکاپ از دیتابیسری استور کردن نسخه پشتیبانپاک کردن نسخه پشتیبانمشاهده لاگ های دیتابیسلیست کردن متریک های مانیتورینگمشاهده متریک های مانیتورینگ</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Sat, 09 Jul 2022 15:44:42 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با دیتابیس Redis</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-redis-cvm5nmav4i6x</link>
                <description>مقدمهاین روزها کسب و کارها تجارت خود را به وب سایت­ ها و اپلیکیشن ­ها انتقال دادند و با این اوصاف محبوبیت برنامه ­هایی که سمت سرور اجرا می­شوند روز به روز افزایش می­ یابد. برنامه ­های سمت سرور باید بتوانند حجم بالای درخواست­ها را در زمان کم پاسخ دهند. برای این نیازمندی یکی از راه حل ­هایی که استفاده می­شود، استفاده از پایگاه داده­ های NoSQL است که انواع مختلفی دارد و یکی از محبوب­ترین و کارا ترین آن­ها Redis است.ردیس چیست؟ردیس مخفف عبارت Remote Dictionary Server پایگاه داده متن باز، NoSQL key/value  و In-Memory  است که به زبان ANSI C نوشته شده است که عمدتا به عنوان cache برنامه ها یا پایگاه داده­ با پاسخ سریع استفاده می‌شود؛ زیرا Redis داده ها را، به جای هارد دیسک یا درایو  ssd، در حافظه RAM ذخیره می‌کند. این کار باعث می‌شود که سرعت دسترسی به اطلاعات بسیار بالاتر رود. بالا بودن سرعت بزرگترین مزیت و تفاوت اصلی پایگاه داده ردیس با دیگر پایگاه های داده است. با توجه به اینکه اطلاعات در ردیس داخل RAM‌ نگهداری می‌شود، آن را In-Memory Database می‌نامند. ردیس روش­هایی برای مقابله با از دست رفتن دیتاها ارائه می دهد که با عنوان Redis Persistence شناخته می­شود. به روش­های Persist کردن داده ­های ردیس در بخشی جداگونه پرداخته خواهد شد.منظور از آنکه می­گوییم NoSQL می­باشد یعنی برای ذخیره داده ­ها ساختار مشخصی نیاز نیست داشته باشد بر خلاف پایگاه داده ­های SQLمانند: MySQLیا PostgreSQL.ردیس به عنوان پایگاه داده، cache، message broker و در یادگیری ماشین برای موارد استفاده مانند تشخیص تقلب در بازی و خدمات مالی و مناقصه بلادرنگ در فناوری تبلیغات می­تواند استفاده شود. بیشترین استفاده از این دیتابیس به عنوان حافظه نهان (cache) است هر چند که میتوان به عنوان دیتابیس اصلی یا کارگزار پیام (message broker) هم از آن استفاده کرد. همچنین می تواند انواع داده های سطح بالا مانند lists، maps، sets،  sorted setsو Hash را استفاده کند.ردیس یک راه حل محبوب ذخیره سازی داده است و توسط غول های فناوری مانند GitHub ،Instagram، Pinterest، Snapchat، Twitter، StackOverflow، Flickr و ... استفاده می شود.معماری های پیاده سازی Redis1. Standalone (1 Master + n replica)زمانی که اطلاعات در یک نود تنها ذخیره شود اگر اتفاقی برای آن نود بیافتد ممکن است اطلاعات از دست برود. برای جلوگیری از بروز چنین اتفاقی معمولا از چند سرور استفاده می­کنند که نوشتن روی یک نود انجام می­شود سپس این تغییرات به نودهایی تحت عنوان replica یا slave فرستاده می­شود که به این تکنیک replication گفته می­شود.ردیس برای استفاده از این روش نودی را به عنوان master و نودهایی را به عنوان slaveدر نظر می­گیرد که تمام داده­ها بر روی نود مستر نوشته می­شود  و از آن جا که تمام نودهای salveبه مستر متصل هستند، تغییرات بعد از اعمال بر روی نود مستر به آن­ها نیز فرستاده می­شود.در حالت بالا اگر اتفاقی برای نود مستر بیافتد، دیتا از بین نمی­رود و دیتاها روی نودهای slave موجود است اما در این حالت دیگر امکان نوشتن داده بر روی پایگاه داده وجود ندارد تا دوباره همان نود مستر راه اندازی شود یا اگر نود مستری در حالت standby وجود داشت که به عنوان slave مستر قبلی بود و با آن سینک بود را به عنوان مستر جدید به تمام نود های slave معرفی شود.راه حل مشکل بالا استفاده از Sentinel (نگهبان) می­ باشد. Sentinel از یک سری فرایندهای نظارتی و اعلان های خودکار استفاده می‌کند و به کاربران در صورت بروز مشکل در نمونه های master و slave، اطلاع می‌دهد. همچنین در صورت لزوم، پیکربندی اتصالات جدید برای برنامه ها نیز به طور خودکار انجام می‌شود.2.  Redis Cluster (Sharding)کانفیگ 3 نود Master (تعداد مسترها &gt; 3) کانفیگ n نود Slave به ازای هر Master(تعداد کل Slave ها = تعداد master ها * تعداد Slave به ازای هر Master)در صورت بروز failover اگر master بیافتد، یکی از slave های متناظر آن تبدیل به master می­شود و این کار با cluster bus port (gossip protocol)انجام می­شود و زمانی که مشکل رخ داده برطرف شود و سرور دوم مجددا به روند قبلی خودش برگردد کلاستر مجددا به روزرسانی شده و سرور به مجموعه کلاستر بر می­گردد.در کوبرنتیس به سرویس ردیس درخواست زده می­شود و سرویس آن را به یکی از پادها میفرستد و پاد ها بین خودشان و با توجه به کلید و هش آن درخواست را به پاد مربوطه میفرستد.هر گره Redis Cluster به دو اتصال TCP باز نیاز دارد: یک پورت TCP Redis که برای سرویس دهی به مشتریان استفاده می شود، به عنوان مثال، 6379، و پورت دوم که به عنوان پورت گذرگاه کلاستر شناخته می شود. به طور پیش فرض، پورت گذرگاه خوشه ای با افزودن 10000 به پورت داده تنظیم می شود (به عنوان مثال، 16379). با این حال، می توانید این را در پیکربندی cluster-port تغییر دهید.این پورت دوم برای گذرگاه خوشه ای استفاده می شود که یک کانال ارتباطی گره به گره با استفاده از یک پروتکل باینری است. گذرگاه خوشه ای توسط گره ها برای تشخیص خرابی، به روز رسانی پیکربندی، مجوز خرابی و غیره استفاده می شود. کلاینت ها هرگز نباید سعی کنند با پورت گذرگاه کلاستر ارتباط برقرار کنند، بلکه همیشه با پورت دستوری عادی Redis ارتباط برقرار کنند. هر دو پورت در فایروال باید باز باشد، در غیر این صورت گره های کلاستر Redis قادر به برقراری ارتباط نخواهند بود.مزایای و کاربردهای  Redisپایگاه داده In-Memoryتمام داده‌های موجود در Redis در RAM ذخیره می‌شوند و سریع‌ترین زمان‌های دسترسی ممکن را برای درخواست‌های خواندن و نوشتن به داده‌ها ارائه می‌دهند.بهینه شده برای سرعتردیس برای کارایی طراحی و پیاده سازی شده است. با ANSI C نوشته شده است، که بسیار کارآمد کامپایل می شود و نیاز به سربار کمی دارد. بیشتر اوقات از یک مدل حلقه رویداد single threadedاستفاده می کند که به طور بهینه از هسته CPU ای که روی آن در حال اجراست استفاده می کند. ساختارهای داده مورد استفاده داخلی توسط Redis برای حداکثر کارایی پیاده سازی شده اند و اکثر عملیات داده ها به زمان و فضا ثابت نیاز دارند.ساختارهای داده انعطاف پذیرداده های ذخیره شده در Redis می تواند به هر شکل و اندازه ای باشد. Redisایمن باینری است، بنابراین می تواند هر گونه داده، از متن قابل خواندن توسط انسان گرفته تا باینری های رمزگذاری شده را ذخیره کند. اندازه یک عنصر داده در Redisمی تواند از 0 بایت تا 0.5 گیگابایت متغیر باشد و به آن اجازه می دهد عملاً هر داده ای را در حافظه پنهان ذخیره کند. در حالی که در Memcached می‌توانند تنها 250 بایت باشند.دسترسی مبتنی بر کلیدردیس بر اساس مدل کلید-مقدار است که در آن داده ها ذخیره شده و توسط کلید از Redis واکشی می شوند. دسترسی مبتنی بر کلید زمان‌های دسترسی بسیار کارآمد را فراهم می­کند.عملیات­های چند کلیدیتعدادی از دستورات Redis بر روی چندین کلید عمل می کنند. عملیات چند کلیدی عملکرد کلی بهتری را در مقایسه با انجام عملیات پشت سر هم ارائه می‌کنند، زیرا به ارتباطات و مدیریت بسیار کمتری نیاز دارند.اتمی بودن عملیات و transactionsهر عملیات در Redis اتمی است. این یکپارچگی داده‌های ذخیره‌شده را تضمین می‌کند و یک نمای ثابت از آن به فرآیندهایی که آن‌ها را به اشتراک می‌گذارند، ارائه می‌کند. اعمال سطح بالاتری از سازگاری در مدل داده‌ها با گروه‌بندی چندین عملیات در تراکنش‌ها امکان‌پذیر است، که در آن آنها به‌طور متوالی و بدون هیچ گونه عملیات درهم‌پیچیده دیگری اجرا می‌شوند.منقضی شدن داده و Eviction policiesردیس دارای چندین خط مشی تخلیه داده هست که وقتی مقدار فضایی که از مموری مشخص کردیم را اشغال کرد و به آن حد رسید دیتا را با policy مورد نظر حذف کند.  در حالی که به عنوان مثال Memcachedفقط LRUرا ارائه می دهد.کاهش منابع و هزینه ­هابا استفاده از ردیس میتوان منابع کمتری را در سرور درگیر کرد و این نیاز به تهیه زیرساخت های پر هزینه را کمتر و کمرنگ تر می­کند. وقتی از خدمات رایانش ابری استفاده شود این کاهش منابع و هزینه ها ملموس تر خواهد بود.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Sat, 09 Jul 2022 14:17:32 +0430</pubDate>
            </item>
                    <item>
                <title>سرویس مانیتورینگ و مدیریت لاگ</title>
                <link>https://virgool.io/Abriment/%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%85%D8%A7%D9%86%DB%8C%D8%AA%D9%88%D8%B1%DB%8C%D9%86%DA%AF-%D9%88-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%84%D8%A7%DA%AF-kbcv4amgayw7</link>
                <description>مانیتورینگ هسته و چشم‌بینای هر پروژه‌ای می‌باشد، مخصوصاً در پروژه‌هایی که وظیفه آن‌ها فراهم آوردن خدمات برای مشتریان و کاربران عمومی است. از ابزارهای مانیتورینگی برای پایش لحظه‌ای و هشداردهی به هنگام وقوع مشکلات و همچنین گزارش‌گیری از منابع مصرفی کاربران و نحوه کارکرد سامانه استفاده می‌شود. با استفاده از این بستر می‌توان گزارش لحظه‌ای و دوره‌ای به کاربران و مدیران سیستم در مورد وضعیت هر سرویس و وضعیت ماشین‌های مجازی کاربران ازلحاظ مصرف منابع و پارامترهای سیستم‌عاملی را تهیه و از طریق داشبورد گرافیکی آن را نمایش داد و اقدام به گزارش‌گیری نمود. یکی از مهم‌ترین ابزارهای مانیتورینگی مورداستفاده در پروژه‌های فناوری اطلاعات سرویس متن‌باز زبیکس می‌باشد. زبیکس نرم‌افزاری است که پارامترهای بی‌شماری از یک شبکه و سلامت و یکپارچگی سرورها را کنترل می‌کند. زبیکس توانایی دریافت اطلاعات همه لایه‌ها و همه سرویس‌ها را دارد و علاوه بر این‌که نمونه‌های آماده بسیار زیادی برای پایش منابع دارد، قابلیت شخصی‌سازی را نیز دارد و می‌توان پارامترهای مانیتورینگی جدید را برحسب نیاز اضافه کرد.زبیکس از مکانیزم اعلان انعطاف‌پذیری استفاده می‌کند که ما را قادر می‌سازد تا هشدارها را از طریق پیامک و یا ایمیل و یا وب‌سرویس و ... برای مدیران شبکه ارسال کنیم و حتی خود اقداماتی را در لحظه انجام دهد و این امکان را فراهم سازد که یک واکنش سریع به مشکلات صورت بگیرد. زبیکس بر اساس داده‌های ذخیره‌شده، ویژگی‌های گزارش دهی و گرافیکی بسیار خوبی را ارائه می‌دهد. همچنین زبیکس برپایه API می‌باشد که ما را قادر می‌سازد اطلاعات و نمودارهای موجود در زبیکس را در سایر ابزارها مانند پنل‌های کاربری نمایش دهیم.به‌دلیل اینکه اکثر سرویس‌ها داده‌های مرتبط با کارکرد و خطاهای خود را به‌صورت لاگ نگهداری می‌کنند، استفاده از ابزارهای مدیریت لاگ امری حیاتی است. ابزارهای مدیریت لاگ برای جمع‌آوری، مرتب‌سازی، تجزیه، نگه‌داری، جستجو و گزارش‌گیری و مصورسازی استفاده می‌شود. برای مدیریت لاگ از ابزارهای متنوعی می‌توان استفاده کرد که انتخاب ما استک الاستیک می‌باشد (Elasticsearch, Logstash, Kibana). زیرا هم رایگان و متن‌باز است و هم از ساختار RestAPI استفاده می‌کند که قابلیت اتصال به ابزارهای بسیار متنوعی را فراهم می‌کند. با استفاده از استک الاستیک و جمع‌آوری منظم لاگ همه سرویس‌ها امکان جستجو و گزارش‌گیری و ایجاد چارت‌های مختلف فراهم می‌گردد. همچنین این سرویس‌ها به‌دلیل برخورداری از API قابلیت شخصی‌سازی دارند و می‌توان به پنل کاربران و مدیران برای گزارش‌گیری نمودارهایی اضافه کرد.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Tue, 14 Jun 2022 17:19:33 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با داکر</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%AF%D8%A7%DA%A9%D8%B1-osmxkvxmxfc8</link>
                <description>داکر ابزاری متن باز است که برای ایجاد، استقرار و اجرای برنامه‌ها با استفاده از کانتینرها (محیط ایزوله) طراحی شده است. به لطف این تکنیک، برنامه نویس خیالش راحت است که برنامه او می‌تواند در سیستم‌های دیگر بدون نیاز به تنظیمات خاص یا ابزارهای جانبی اجرا شود. داکر را شبیه به ماشین مجازی در نظر بگیرید، با این تفاوت که بازدهی بسیار بالاتری دارد. منظور از کانتینر چیست؟کانتینر این امکان را برای توسعه‌دهندگان اپلیکیشن‌ها فراهم می‌کند که یک برنامه را با تمام ماژول‌ها و کامپوننت‌های وابسته آن (مانند کتابخانه‌ها، توابع و …) یکی کرده و به صورت یک پکیج درآورند اما به صورت ایزوله و جدا از هم نگهداری کنند تا آن برنامه تولید شده در پلتفرم‌ها و سیستم‌های مختلف بدون مشکل اجرا شود. یکی از راه‌های پیاده کردن این تکنولوژی استفاده از ماشین مجازی (Virtual Machine) است که برنامه‌ها را روی یک سخت افزار اما کاملا جدا از هم نگه می‌دارد.به زبان ساده ترفرض کنید میخواهید یک اپلیکیشن مانند اسنپ، دیجی کالا و ... طراحی کنید. برای در دسترس قرار دادن اپ برای مردم، به مکانی برای میزبانی آن نیاز دارید. در گذشته، شما باید داخل کامپیوتر، یک وب سرویس اختصاصی به نام &quot;سرور&quot; راه اندازی می کردید، که اساساً رایانه ای است که برای میزبانی وب سایت ها یا خدمات وب اختصاص داده شده است. بعدها، امکان استقرار اپ بر روی شرکت های میزبانی سرور، مانند ایران سرور، آسیاتک و ... وجود داشت.سپس، دوران &quot;ابر&quot; فرا رسید. در دنیا شرکت هایی مانند آمازون (AWS)، علی بابا و ... سرویس سرور ابری اختصاصی داخل دیتاسنتر خود ارائه می دهند.این شرکت‌ها مفهومی به نام «مجازی‌سازی» را انتخاب کردند، به این معنی که منابع سخت‌افزاری را می‌توان بخش بندی کرد و منابع را به‌طور بهینه‌تر در اختیار مشتریان قرار داد.کامپوننت های داکرDockerfileهر داکر کانتینر با یک فایل داکر شروع به کار می‌کند. داکرفایل یک فایل متنی بوده که داخل آن با یک سینتکس ساده و قابل فهم دستورالعمل‌های ساخت داکر ایمیج قرار داده شده است. این فایل اطلاعات بسیار مهمی را در برمی گیرد که برای راه اندازی داکر استفاده از آنها ضروری است. در واقع داکر فایل مشخص می‌کند که پشت کانتینر ما چه سیستم عاملی قرار بگیرد، همینطور از چه زبان ها، متغیرهای محلی، پورت‌های شبکه یا غیره استفاده شود. و مهم‌تر از همه اینکه مشخص کند کانتینر ما بعد از اینکه واقعا اجرا شد قرار است چه کاری انجام دهد.Docker imageدر واقع زمانی که داکرفایل نوشته شد، یک قابلیت به اسم داکربیلد را فراخوانی می‌کنید که وظیفه دارد یک ایمیج بر اساس محتویات داکرفایل شما بسازد. داکرفایل شامل یک سری دستورالعمل برای ساختن یک ایمیج است، در حالی که داکرایمیج یک فایل قابل حمل است که مشخص کننده چگونگی اجرای کامپوننت هاست.Docker runقابلیت داکر ران در واقع یک دستور است که کانتینر را راه اندازی می‌کند. می‌دانیم که هر کانتینر یک ماشین مجازی است و ماهیت کانتینر به صورت موقتی می‌باشد.Docker Hubهر چند ساخت کانتینر کار راحتی است، اما لزومی ندارد برای هر ایمیج از اول کانتینر بسازید. داکرهاب یک مارکت پلیس برای به اشتراک گذاری و مدیریت کانتینرهاست. در آنجا می‌توانید ایمیج های رسمی داکر که معمولا به صورت متن باز هستند را پیدا کنید. </description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Tue, 07 Jun 2022 11:30:31 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با بستر CICD</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%A8%D8%B3%D8%AA%D8%B1-cicd-ry5ff4yjchhz</link>
                <description>ادغام مستمر (CI) و تحویل مستمر (CD) دو فرآیندی هستند که در طراحی و توسعه نرم‌افزار مورداستفاده قرارگرفته و مزایای بسیاری با خود به همراه دارند که ازجمله آن‌ها می‌توان به اعمال تغییرات با سرعت و اطمینان بیشتر اشاره نمود.به‌طور خلاصه CI به فرآیندی اشاره دارد که در قالب آن تغییرات اعمال‌شده جدید به‌صورت خودکار با مخزن اصلی ادغام می‌شوند. اما در مورد واژه CD  دو معنا می‌تواند مورداستفاده قرار گیرد. یکی به معنای Continuous Delivery است که در قالب آن نرم‌افزار به صورت دائم آماده استقرار می‌باشد و معنای دوم به Continuous Deployment اشاره دارد که بیان‌گر سازوکاری است که به‌صورت خودکار کدهای آماده را بروی سرور اصلی منتشر می‌کند.در ادامه چرخه‌ی فرآیندها بررسی خواهند شد و به معرفی ابزارهای مربوطه خواهیم پرداخت. در روند CI تغییرات صورت گرفته در کد توسط توسعه‌دهندگان مختلف در خط اصلی پروژه ادغام می‌گردد. این خط اصلی معمولاً توسط یک مخزن اشتراکی مورد دسترسی قرار می‌گیرد. . هر ادغام می‌تواند توسط اجرای Build و آزمون‌ها (syntax , security , …) موردبررسی قرارگرفته تا تضمین کند کد ادغام‌شده قابل‌اطمینان است. اصولاً اجرای تست بخشی از فرآیند CI نیست اما معمولاً با آن پیاده‌سازی می‌شود. بعد از اطمینان از کدهای ادغام‌شده، می‌توان وارد مرحله stage  شد و بر روی یک محیط و یا سرور تست نسخه جدید مورد آزمایش قرار گیرد و یا وارد مرحله deploy on servers شود و بر روی سرورهای عملیاتی پروژه استقرار  صورت پذیرد.معرفی ابزارهای مورداستفاده در روند CI/CDابزار Gitlab: مدیریت سورس کدها توسط این ابزار انجام می‌گیرد که هم‌محلی برای ذخیره‌سازی است و هم‌محلی برای ثبت تغییرات به همراه تاریخ و کاربری که تغییرات را انجام داده است.ابزار Sonarqube: مسئول انجام آزمون‌های عملکردی و امنیتی بر روی به کدها می‌باشد.ابزار Gitlab-runner: مسئول انجام آزمون‌های syntax بر روی کدها و همچنین مسئول استقرار کدهای جدید بر روی سرورها می‌باشد.ابزار Nexus: ابزاری برای نگهداری تصاویرها و همچنین کامپوننت های موردنیاز برای چک کردن کدها می‌باشد.نحوه اجرا و فازبندی فرآیند CI/CDابتدا سورس کدهای مربوط به برنامه‌ها به‌صورت جداگانه داخل Gitlab ذخیره می‌شوند و برای افرادی که دسترسی دارند به آن کد بر اساس role هر شخص به ایشان مجوزهای مربوطه (developer, maintainer, admin) داده خواهد شد.در ادامه هر فرد بر روی سیستم خود پروژه را pull  کرده و تغییرات لازم را انجام می‌دهد و سپس آن را دوباره به مخزن push  می‌نماید. بعد از هر بار تغییر gitlab-runner  وارد چرخه می‌شود و کد تغییریافته را چک می‌کند، که در صورت نیاز از کامپوننت ها و مخازن داخل nexus استفاده می‌نماید، و در صورت تائید، وارد مرحله‌ی بعد که در فایل gitlab-ci.yaml تعریف‌شده می‌گردد که می‌تواند مرحله stage و یا مرحله استقرار باشد.جهت راه‌اندازی زیرساخت CI/CI مراحل زیر باید موردتوجه قرار گیرد:پیاده‌سازی و تحویل گیت لب برای ذخیره‌سازی و متمرکز سازی سورس کدهاپیاده‌سازی نکسوز برای ذخیره‌سازی ایمیج ها و ساخت ریپازیتوری برای کدهاراه‌اندازی گیت لب رانر به ازای هر پروژه و گروه برای چک کردن کد و به‌صورت موازی راه‌اندازی sonarqube برای تست‌های QCاتصال گیت لب رانر به محیط تست stage و جداسازی مرحله تست و دیپلوی در روال CDراه‌اندازی مسیر دیپلوی بر روی سرورهای عملیاتی</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Mon, 06 Jun 2022 11:10:10 +0430</pubDate>
            </item>
                    <item>
                <title>بررسی vCloud Director</title>
                <link>https://virgool.io/Abriment/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-vcloud-director-rvzn7qnoalnh</link>
                <description>با استفاده از VMware vCloud Director ارائه کننده های سرویس های ابری قادر خواهند بود تا سرویس SDDC  را به عنوان یک Virtual   Data Center راه اندازی تا پیچیدگی و ریسک را کاهش دهند.این محصول قادر به ساده و اتوماتیک کردن تمامی سرویس های Data Center مانند Storage ,Networking و Security می باشد. این سرویس مدیران شبکه را قادر می سازد تا بدون نگرانی در مورد پیکر بندی  سخت افزاری،  زیر ساخت ها را آماده و عملیاتی کنند.این محصول  از ابزارهای vSphere مانند linked clones و snapshots  استفاده می کند تا به طور چشمگیری دسترسی به زیر ساخت ها را سریعتر نماید.همچنین vCloud Director می تواند سیاست های امنیتی را برای منابع تعریف کند به طوری که به صورت خود کار اجرا شوند به عنوان مثال می توان به ویژگی های Authorized اشاره نمود که از (role-based access control) RBAC بهره گرفته که مبتنی بر آن کاربران نسبت به عملی که در  vCloud Director انجام می دهند سطح دسترسی برایشان تعریف میگردد. همچنین می توان از Quotas ، leases  برای محدود کردن منابع  و جلوگیری کردن از مصرف غیر مجاز استفاده نمود.ویژگی های vCloud Directorویژگی Virtual Data Centers: به صورت مجموعه ای کامل از  hybrid یا Public Cloud Services میباشد که میتواند خدماتی از قبیل Storage و Networking Capacity را ارائه کندویژگی Snapshot &amp; Revert: به استفاده از ماشین مجازی برای تست سریع بدون نیاز به بارگذاری مجدد اشاره دارد.ویژگی Integrated vSphere Profile: ادغام Driven Storage و  Storage DRS vSphere به همراه ویژگیهای vSphere storage ذخیره سازی را در محیط vCloud Director فعال می کند تا با استفاده از قابلیت های Load Balancing عملکرد را افزایش دهد.ویژگی Security: یکپارچگی قابلیت های NSX مانند Port level firewall و NAT و … را شامل می شود که امنیت مجازی سازی را با خود به همراه می آورد. همچنین این یکپارچگی می تواند سرویس های با ارزشی مانند VXLAN وVPNو firewall وnetwork isolation و load balancing را ارائه دهد.ویژگی vCenter Single Sign ­On: این قابلیت به مدیران شبکه این امکان را می دهد تا برای یک بار login شوند و بعد از آن به تمام سرویس های vCenter Server و vCloud Director دسترسی داشته باشند.ویژگی vApp Catalog: با این ویژگی برنامه های Multi ­tier می توانند نصب شوند و مصرف کننده ها به عنوان Virtual Appliances پیکر بندی می شوند که میتواند شامل Virtual Machines و Operating System Images باشد که با یک کلیک در Catalog پیکر بندی می شوند. این قابلیت مدیران فناوری اطلاعات را قادر می سازد تا به راحتی Troubleshooting و Patching را مدیریت نمایند.ویژگی Isolated Multi ­tenant Organizations: مدیران شبکه می توانند با استفاده از این قابلیت گروه های مختلفی را در سازمان ایجاد کنند و سیاست های خاصی را برای آنها در نظر بگیرند که می تواند شامل isolated virtual resources ,independent LDAP authentication , specific policy controls, unique catalogsباشد. این ویژگی یک محیط را با زیر ساخت یکسان برای چند سازمان به اشتراک می گذارد.ویژگی Self ­service Web Portal: کاربران می توانند با استفاده از یک Web Portal و یا APIs به Catalogs و Virtual Data Centers دسترسی مستقیم داشته باشند.ویژگی VMware vCloud API, OVF, and custom extensions: به صورت یک API باز می باشد که به اسکریپت ها اجازه دسترسی به Cloud Resources می دهد که برای نمونه می توان به Catalog Management اشاره کرد همچنین Custom extensions به vCloud Director این توانایی را می دهد که به سایر سیستم های یک پارچه شده پیام دهد.ویژگی VM Monitoring: کاربران با استفاده از این ویژگی می توانند مشکلات مربوط به عملکرد نرم افزار را Troubleshoot کنند و قابلیت auto­ scale را برای نرم افزار مهیا کنند.ویژگی Affinity/Anti ­Affinity Rules: کاربران می توانند مدیریت VM را در ESXi hosts داشته باشند و بسته به ماهیت حجم کار می توانند عملکرد یا performance کار را با راه اندازی VM بر روی یک host یا host های متعدد در یک cluster کنترل کنند.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Mon, 06 Jun 2022 10:51:54 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با کوبرنتیس</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B2-i2oqocxtcgeo</link>
                <description>در گذشته نرم افزار ها به صورت monolithic و بسیار بزرگ بودند که از اجزاء متعدد و به هم پیوسته تشکیل می شدند. در این حالت توسعه توسط تیم های بسیار بزرگ انجام می گرفت که فرآیند مدیریت را پیچیده می کرد و نرم افزار دارای یک چرخه حیات واحد بود. بنابراین در صورت بروز مشکل یک نرم افزار بزرگ باید به روز رسانی و ورژن جدید آن ارائه شود. از طرف دیگر مقیاس پذیری چنین نرم افزاری به صورت عمودی اتفاق می افتد. امروزه با نیاز رو به رشدی که برای نرم افزار‌های بزرگ اینترپرایز به وجود آمده است، مفهومی تحت عنوان میکروسرویس هم در صنعت توسعهٔ نرم‌افزار رواج یافته است چرا که توسعه دهندگان برای توسعهٔ سیستم‌های بزرگ تجاری چاره‌ای جز به‌کارگیری از معماری میکروسرویس ندارند.در حالت میکروسرویس یک نرم افزار بزرگ به چندین سرویس کوچک تر شکسته و با هر میکروسرویس به عنوان یک نرم افزار مجزا رفتار می شود. یعنی هر کدام از میکروسرویس ها، تیم توسعه کوچک و مختص به خود و چرخه حیات خاص خود را دارد. بنابراین در صورت بروز مشکل فقط کافی است همان قسمت از نرم افزار به روز رسانی شود. از طرف دیگر در حالت میکروسرویس می توان گلوگاه نرم افزار را به راحتی تشخیص و افزایش منابع را فقط برای آن جزء خاص انجام داد. این افزایش منابع به صورت افقی و عمودی می تواند انجام شود.برای توسعه ی نرم افزار هایی که به صورت میکرو سرویس توسعه یافته باشند نیاز به زیرساخت مخصوص برای اجرای میکروسرویس ها به وجود آمد.کوبرنتیس یک سیستم نرم افزاری است که برای خودکار کردن پیاده سازی ها و مدیریت نرم افزار های پیچیده و مقیاس بزرگ است که در قالب کانتینر  اجرا می شوند. به عبارت دیگر، زیرساخت ابری مبتنی بر کوبرنتیس یک زیر ساخت واحد برای اجرای نرم افزار های گوناگونی است که با ساختار میکروسرویس اجرا می شود. کوبرنتیس یک لایه انتزاعی فراهم می کند که با استفاده از آن پیچیدگی های زیرساخت را از نرم افزار و توسعه دهنده پنهان می کند.نحوه پیاده سازی کوبرنتیس به این صورت می باشد که شامل دو نوع ماشین به نقش های ورکر و مستر است. ورکرها جهت اجرای کانیتنرهای نرم افزار و مسترها برای مدیریت کلاستر کوبرنتیس می باشد که برای در دسترس پذیری بالای کلاستر باید این دو نوع را در دیتاسنتر های مختلف نصب و راه اندازی کرد. از طرف دیگر با استفاده از ساختار توصیف نرم افزار واحد(YAML)، روال پیاده سازی نرم افزار ها را استاندارد می کند.از ویژگی های مهم و محبوب کوبرنتیس می توان به موارد زیر اشاره کرد:افزایش خودکار رپلیکای نرم افزار به صورت خودکار (مقیاس پذیری افقی)توسعه و پیاده سازی سریع اپلیکیشنخود ترمیمی در صورت بروز مشکل در نرم افزار یا زیرساختتوزیع بار خودکارسهولت در استفاده با پنهان کردن پیچیدگی های ذخیره سازی، پردازشی و زیرساختی از مشتریاستاندارد شدن روال پیاده سازی نرم افزار ها از طریق ساختار توصیف نرم افزار با فایل های YAMLداشتن استراتژی های متنوع برای بروزرسانی نرم افزاردانش‌ها و تکنولوژی‌های مورد استفادهفراهم کردن بستر زیرساخت توسعه نرم افزارسهولت در راه اندازی ابزارهای پیاده سازی و تست بر اساس نیازپیاده سازی و بروزرسانی نسخه های مختلف نرم افزار به صورت خودکارارائه ابزارهای تست نرم افزار بر اساس نیازمانیتورینگ جامع نرم افزار و نمایش آن در داشبورد بر اساس پارامترهای مورد نیازجمع آوری لاگ نرم افزار و زیرساخت و همچنین نمایش آن بر اساس پارامترهای مورد نیازارائه تکنولوژی های مختلف ذخیره سازی برای توسعه نرم افزار</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Mon, 06 Jun 2022 10:37:22 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با Object Storage</title>
                <link>https://virgool.io/Abriment/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-object-storage-jhax2wia6aoy</link>
                <description>دنیای ابر دنیای اعداد بزرگ است. میلیون ها دستگاه، میلیاردها فایل، تریلیون ها رویداد، همه این اعداد بزرگ باید در مکانی ذخیره شوند. ذخیره‏ سازی اشیاء مدلی از ذخیره سازی داده است که برای نگهداری حجم عظیمی از داده ها طراحی شده است. در این مدل، داده‌ها به جای اینکه در یک محیط فیزیکی ذخیره شوند، در فضای اینترنت قرار می‌گیرند. اینطوری دیگر نیازی نیست که اطلاعات را داخل فلش مموری بریزید و بعد فلش را به کامپیوتر وصل کنید.وقتی داده‌ها و اطلاعات را در کامپیوترتان ذخیره می‌کنید، این داده‌ها روی هارد دیسکی که درون دستگاه هست قرار می‌گیرند. البته  از فلش یا هاردهای اکسترنال هم برای ذخیره سازی اطلاعات استفاده میکنند. در این حالت، جابجایی اطلاعات راحت‌تر است و در هر زمانی می‌توانید به داده‌های مد نظرتان دسترسی داشته باشید.این کار چقدر جواب گو است؟آیا می‌توان داده‌های چندین سال یک شرکت را روی هارد دیسک همراه داشت و استفاده کرد؟ در این حالت، علاوه بر مشکلات گم‌شدن  و از دست رفتن داده‌ها، چگونگی حمل داده‌ها یک مسئله بزرگ است!سازمان ها، ذخیره و مدیریت کارآمد  این حجم از داده را چالش برانگیز می دانند. ذخیره سازی مبتنی بر شی به عنوان روشی برای ذخیره و پشتیبان گیری داده ها به وجود آمده و سطحی از مقیاس پذیری را ارائه می دهد که با ذخیره سازی سنتی امکان پذیر نیست. به همین خاطر سراغ فضای ذخیره سازی ابری می‏رویم. در فضای ابری، تمام اطلاعات روی سرور ابری قرار می‌گیرند.انواع فضای ذخیره سازی ابریدر حال حاضر سرویس‌های ذخیره‌سازی ابری مختلفی وجود دارند که بر حسب نیاز کاربران، کاربردهای مختلفی دارند.1. سرویس ذخیره سازی ابری شخصی (Personal)فضای ابری شخصی یا Personal Cloud Storage، فضایی است که توسط شرکت‌های مختلف، برای نگهداری عکس، ویدئو، فیلم و … در اختیار شما قرار داده می‌شود.2. سرویس ذخیره سازی ابری خصوصی (Private)این سرویس یک بستر مناسب برای سازمان ها است. در این حالت، یک کسب‌وکار سرورهای ذخیره سازی داخلی خودش را راه‌اندازی می‌کند. دلایل مختلفی برای انتخاب یک سرویس ذخیره سازی ابری خصوصی توسط سازمان‌های مختلف وجود دارد. یکی از مهم‌ترین آن‌ها، این است که برخی از مشاغل به دلایل قانونی ملزم به ذخیره اطلاعات کاربران در وب‌سایتشان هستند و می‌خواهند این اطلاعات در بستری امن باشند.خود ابرهای خصوصی هم به دو دسته تقسیم می‌شوند: فضای ابری بر پایه شی و فضای ابری بر پایه بلوک3. سرویس ذخیره سازی ابری عمومی (Public)اغلب افراد وقتی از ابر و فضای ابری صحبت می‌کنند، منظورشان همین بستر است. سرویس‌هایی مانند Google Drive و Dropbox تعداد زیادی سرور دارند که برای این کار در نظر گرفته شده‌اند.معرفی چند نمونه فضای ذخیره سازی ابریفضای ابری ساند کلودساند کلود یا ساوندکلاود (SoundCloud) بزرگ‌ترین پلتفرم صوتی متن باز جهان است. این پلتفرم در سال ۲۰۰۷ ساخته‌شده و تا به امروز، بستری برای میزبانی بیش از ۱۹۰ میلیون قطعه موسیقی از ۲۰ میلیون سازنده در ۱۹۰ کشور جهان است. با توجه به اینکه این پلتفرم روی فضای ابری ساخته‌شده، به‌راحتی می‌توان موسیقی‌ها، پادکست‌ها و کلیه فایل‌های صوتی را روی ساوندکلاود بارگذاری کرد و مردم جهان می‌توانند به‌راحتی به آن‌ها دسترسی داشته باشند و آن‌ها را گوش کنند.فضای ابری تلگرامتلگرام به‌عنوان یک پیام‌رسان محبوب و پرطرفدار، هر روز و هر دقیقه میزبان حجم بالایی از اطلاعات و داده های مبادله شده میان کاربران است. این اپلیکیشن محبوب روی فضای ابری ساخته شده و هر کاربر در این بستر، فضای ابری تلگرام خاص خودش را برای انتقال اطلاعات یا ذخیره کردن آن‌ها دارد. این برنامه رایگان است و کاربران نیازی نیست که برای تبادل اطلاعات روی پیام‌رسان تلگرام هزینه‌ای بپردازند.فضای ابری گوگلگوگل از ساختار ابری Google Cloud Platform (GCP) برای ارائه سرویس‌ها و خدماتش به کاربران خودش استفاده می‌کند. کلیه پلتفرم‌های رایگان گوگل مانند گوگل درایو (Google Drive)، یوتیوب (YouTube)، جی میل (Gmail) و… روی این فضای ابری میزبانی می‌شوند. گوگل این فضای ابری را به‌رایگان در اختیار کاربران قرار داده تا بتوانند در بستر جی‌میل برای ارتباط با دیگران استفاده کنند، در یوتیوب فیلم آپلود کنند یا فیلم تماشا کنند و درنهایت در گوگل درایو فایل‌های خودشان را مدیریت کنند. گوگل برای تامین هزینه‌های فضای ذخیره سازی ابری‌اش، از روش­‌هایی مانند تبلیغات یوتیوب درآمد دارد.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Wed, 01 Jun 2022 16:20:46 +0430</pubDate>
            </item>
                    <item>
                <title>ابزارهای ضروری برای تحقیقات کاربر</title>
                <link>https://virgool.io/@alidarjazi/%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%B6%D8%B1%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%AD%D9%82%DB%8C%D9%82%D8%A7%D8%AA-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-nrsntlri8mxf</link>
                <description>تحقیق کاربر بخشی جدایی ناپذیر از فرآیند طراحی است. هنگامی که یک تیم تحقیقات کاربر را انجام می دهد، بر درک رفتارها، نیازها و انگیزه های کاربر تمرکز می کند و این درک به طراحی تجربه کاربری بهتر کمک می کند.در عین حال، تحقیقات کاربر یک فعالیت بسیار پیچیده است. نه تنها یک تیم باید یک تکنیک (یا تکنیک‌های) تحقیق کاربر مناسب را انتخاب کند، بلکه  باید یافته‌های تحقیق را خلاصه کرده و آنها را عملی کند.در این مقاله، من ابزارهای ضروری را فهرست کرده ام که به تیم کمک می کند تا نتیجه تحقیقات کاربر را به حداکثر برساند.ارزش پیشنهادیبیانیه ای که جنبه های کلیدی محصول را ترسیم می کند، چیست و برای چه کسی است و چگونه استفاده خواهد شد؟ ارزش پیشنهادی به تیم کمک می کند تا در مورد اینکه محصول چه خواهد بود، اجماع ایجاد کند.UXMagیک پیشنهاد، ارزش فکری به طراحان UX کمک می کند تا تمرکز خود را روی چیزهای مهم حفظ کنند.گزارش تحلیل رقابتیتجزیه و تحلیل رقبای محصول که ویژگی های موجود آنها را به روشی قابل مقایسه ترسیم می کند. گزارش به شما کمک می‌کند استانداردهای فعلی صنعت را درک کنید و فرصت‌هایی را برای نوآوری در یک حوزه مشخص شناسایی کنید.نمودارهای وابستگینمودارهای وابستگی روشی است که به تیم های محصول کمک می کند تا تمام داده های تحقیقاتی خود را درک کنند. هنگامی که یک نمودار وابستگی ایجاد می کنید، ایده های خود را در گروه هایی با موضوعات یا روابط مشترک سازماندهی می کنید. نمودارهای وابستگی به ویژه زمانی ارزشمند هستند که داده‌های ترکیبی زیادی مانند حقایق، تحقیقات قوم‌نگاری، ایده‌هایی از طوفان فکری، نظرات کاربران، نیازهای کاربر، بینش‌ها و مسائل طراحی داشته باشید.طراحی بوم مدل کسب و کاربوم مدل کسب و کار الگویی برای مستندسازی مدل های تجاری موجود است. این نمودار تصویری با عناصری است که ارزش پیشنهادی یک سازمان یا محصول، زیرساخت، کاربران و امور مالی را توصیف می کند.طراحی بوم تفکربوم تفکر طراحی ابزاری است که شما را در مراحل تفکر طراحی از مردم (به چه کسانی نیاز داریم؟) تا Impact (چه تفاوتی ایجاد خواهیم کرد؟) راهنمایی می کند.نقشه همدلینقشه همدلی یک تجسم مشترک است که برای بیان آنچه در مورد نوع خاصی از کاربر می دانیم استفاده می شود. نقشه همدلی به تیم‌های محصول کمک می‌کند تا بینش عمیق‌تری نسبت به مخاطب هدف، اهداف و انگیزه‌هایشان به دست آورند.نقشه شناختینقشه شناختی هر گونه نمایش تصویری از مدل ذهنی یک فرد (یا یک گروه) برای یک فرآیند یا مفهوم معین است. نقشه های شناختی قوانین سخت بصری ندارند که از آنها پیروی کنند.شخصیت کاربرشخصیت‌های کاربر شخصیت‌های خیالی هستند که تیم‌های محصول بر اساس تحقیقات خود ایجاد می‌کنند تا انواع مختلف کاربرانی را که ممکن است از محصول یا خدماتشان به روشی مشابه استفاده کنند، نشان دهند.امیدها و ترس هافعالیت امیدها و ترس ها روشی موثر برای سنجش نگرش شرکت کنندگان در مورد یک محصول است. &quot;امیدها&quot; انتظارات تیم شما را در مورد آنچه می توان انجام داد آشکار می کند. &quot;ترس ها&quot; شک و تردید آنها را در مورد سرمایه گذاری برای همکاری با یکدیگر آشکار می کند.جریان کاربرجریان کاربر نمایشی بصری از راه‌هایی است که هنگام استفاده از یک محصول می‌توان انجام داد. به عنوان مثال، فلوچارت یک سرویس تجارت الکترونیک با نقطه ورود مصرف کننده در محصول، مانند صفحه اصلی شروع می شود و با اقدام یا نتیجه نهایی، مانند خرید یک محصول، پایان می یابد.نقشه سفر کاربرنقشه سفر کاربر تجسم فرآیندی است که شخص برای رسیدن به هدف طی می کند. در ابتدایی‌ترین شکل، نقشه‌برداری سفر مشتری با جمع‌آوری مجموعه‌ای از اقدامات کاربر در یک جدول زمانی آغاز می‌شود. تمام مراحل در سفر کاربر مربوط به تعامل با یک محصول واقعی نخواهد بود.تحلیل SOWTتجزیه و تحلیل SWOT روشی برای ارزیابی نقاط قوت (S)، نقاط ضعف (W)، فرصت ها (O) و تهدیدات (T) یک محصول، خدمات یا استراتژی معین است.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Sun, 31 Oct 2021 09:51:52 +0330</pubDate>
            </item>
                    <item>
                <title>رویکرد حل مسئله</title>
                <link>https://virgool.io/@alidarjazi/%D8%B1%D9%88%DB%8C%DA%A9%D8%B1%D8%AF-%D8%AD%D9%84-%D9%85%D8%B3%D8%A6%D9%84%D9%87-ba3wz5qg708w</link>
                <description>حل مساله و تصمیم گیری با استفاده از چارچوب کَنیوین (Cynefin Framework) و ماتریس استِیسی (Stacey Matrix)در این دیدگاه بستر وقوع مسائل به 4 وضعیت تقسیم می شود:1. وضعیت ساده (آشکار): رابطه علت و معلول واضح و مشخص، یافتن راهکار آسان، حدس زدن گام بعدی در فرآیند حل مساله  آسان. در این وضعیت هم مساله و هم راه حل مشخص است و ابهامی در آنها نیست. روش حل مساله: ادارک با حواس پنجگانه-&gt; دسته بندی -&gt; اقدام کردن.2. وضعیت پیچیده منظم (Complicated): رابطه علت و معلول روشن است اما نه  برای همه، بلکه فقط برای متخصصان، در این وضعیت یا مساله مشخص است و راهکار مبهم (پیچیدگی فنی) یا راهکار مشخص است و مساله ابهام دارد (پیچیدگی اجتماعی). مساله را میدانیم ولی نمیدانیم چطور حل میشود (مانند برخورد شخص      غیر فنی با مساله تعمیر یک دستگاه برقی یا مکانیکی) یا اینکه راهکارها پیش روی ماست ولی ذی نفعان سر خود مساله توافق ندارند (مانند تصمیم گیری در مورد مساله استخدام نیروی انسانی برای بخش فنی یا بخش فروش در هیات مدیره یک شرکت).روش حل مساله: ادارک با حواس پنجگانه -&gt; تحلیل کردن -&gt; اقدام کردن.3. وضعیت پیچیده نامنظم (Complex): رابطه بین علت و معلول وجود دارد ولی برای هیچکس روشن نیست. مساله و راهکار هر دو ابهام دارند. نه مساله را به درستی می شناسیم و نه راهکار را (مانند رفع فقر در یک جامعه). روش حل مساله: بکارگیری کاوشگر -&gt; ادراک با حواس پنجگانه -&gt; اقدام کردن. (توضیح: اجرای کاوشگر، روشی است که می توان مشخصات سیستمی که در تعامل با آن هستیم را تا حدی شناسایی کرد و بازخورد گرفت و بر اساس بازخورد اقدام کرد).تفکر طراحی یکی از رویکردهای اصلی حل مساله در این وضعیت است.4. وضعیت آشوب (Chaotic): رابطه ای بین علت و معلول وجود ندارد. مساله و راهکار هر  دو در نهایت ابهام و ناشناختگی هستند. (مانند وقوع وضعیت بحران در جامعه و هر گونه شرایط اضطراری).روش حل مساله: عمل فوری -&gt; ادراک با حواس پنجگانه -&gt; اقدام کردن.هدف از عمل فوری، شناسایی مساله است و هدف از حل مساله در این وضعیت، ایجاد پایداری نسبی برای      انتقال از این وضعیت به یکی از وضعیت های شناخته شده فوق است.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Fri, 11 Dec 2020 17:08:23 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با پلتفرم ابری ابریمنت</title>
                <link>https://virgool.io/Abriment/%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-insight-for-jira-s1ldkuj5kd2i</link>
                <description>معرفی کلیپلتفرم ابری مهیمن راهکاری برای توسعه دهندگان نرم افزار بدون دغدغه‏ی تأمین سخت افزار و نیازمندی های زمان اجرا و فارغ از مسائلی همچون راه اندازی ابزارهای مانیتورینگ، سیستم عامل و پایگاه داده، مدیریت کلاستر و ..... می باشد. توسعه‌دهنده های نرم افزار و صاحبان کسب و کار می‌توانند با استفاده از این سرویس، بستر اختصاصی توسعه نرم افزار خود را در اختیار داشته باشند. این بستر بر روی ابزار محبوب کوبرنتیس راه اندازی شده است در نتیجه سازگاری نرم افزارهای مختلف با این بستر، به سادگی امکان پذیر است.ویژگی های کلیدیفراهم کردن بستر زیرساخت توسعه نرم افزارسهولت در راه اندازی ابزارهای پیاده سازی و تست بر اساس نیازپیاده سازی و بروزرسانی نسخه های مختلف نرم افزار به صورت خودکارارائه ابزارهای تست نرم افزار بر اساس نیازمانیتورینگ جامع نرم افزار و نمایش آن در داشبورد بر اساس پارامترهای مورد نیازجمع آوری لاگ نرم افزار و زیرساخت و همچنین نمایش آن بر اساس پارامترهای مورد نیازارائه تکنولوژی های مختلف ذخیره سازی برای توسعه نرم افزارمزیت‌ها برای مشتریدسترسی‌پذیری بالا به خدماتمدیریت و نگهداری یکپارچه زیرساخت و نرم افزارکامل و جامع بودن خدمات توسعه نرم افزارارائه ابزارهای یکپارچه Devops و CI/CDامکان راه اندازی و مدیریت اپلیکیشن در بستر Kubernetesویژگی ها برای مشتریخدمت راه اندازی و مدیریت پایگاه دادهسازگاری با زبان برنامه نویسی توسعه یافته نرم افزارسازگاری با زیرساخت در اختیار گذاشته شده توسط مشتریخدمت صف پیامخدمت مانیتورینگخدمت مدیریت لاگورژنینگ خودکارتوزیع بارپشتیبانی از برنامه های متن بازفرایند پیاده‌سازی برای مشتریفراهم کردن زیرساخت مورد نیازنصب و راه اندازی زیرساخت توسعه نرم افزاراتصال زیرساخت توسعه نرم افزار به محصول ابریمنتپیاده سازی ابزارهای مورد نیاز توسعه دهنده در قالب سرویس کاتالوگتست و یکپارچه سازی نهاییآموزش و تحویل به مشتریاطلاعات بیشتردر گذشته نرم افزار ها به صورت monolithic و بسیار بزرگ بودند که از اجزاء متعدد و به هم پیوسته تشکیل می شدند. در این حالت توسعه توسط تیم های بسیار بزرگ انجام می گرفت که فرآیند مدیریت را پیچیده می کرد و نرم افزار دارای یک چرخه حیات واحد بود. بنابراین در صورت بروز مشکل یک نرم افزار بزرگ باید به روز رسانی و ورژن جدید آن ارائه شود. از طرف دیگر مقیاس پذیری چنین نرم افزاری به صورت عمودی اتفاق می افتد.امروزه با نیاز رو به رشدی که برای نرم افزار‌های بزرگ اینترپرایز به وجود آمده است، مفهومی تحت عنوان میکروسرویس هم در صنعت توسعهٔ نرم‌افزار رواج یافته است چرا که توسعه دهندگان برای توسعهٔ سیستم‌های بزرگ تجاری چاره‌ای جز به‌کارگیری از معماری میکروسرویس ندارند.در حالت میکروسرویس یک نرم افزار بزرگ به چندین سرویس کوچک تر شکسته و با هر میکروسرویس به عنوان یک نرم افزار مجزا رفتار می شود. یعنی هر کدام از میکروسرویس ها، تیم توسعه کوچک و مختص به خود و چرخه حیات خاص خود را دارد. بنابراین در صورت بروز مشکل فقط کافی است همان قسمت از نرم افزار به روز رسانی شود. از طرف دیگر در حالت میکروسرویس می توان گلوگاه نرم افزار را به راحتی تشخیص و افزایش منابع را فقط برای آن جزء خاص انجام داد. این افزایش منابع به صورت افقی و عمودی می تواند انجام شود.برای توسعه ی نرم افزار هایی که به صورت میکرو سرویس توسعه یافته باشند نیاز به زیرساخت مخصوص برای اجرای میکروسرویس ها به وجود آمد.کوبرنتیس یک سیستم نرم افزاری است که برای خودکار کردن پیاده سازی ها و مدیریت نرم افزار های پیچیده و مقیاس بزرگ است که در قالب کانتینر  اجرا می شوند. به عبارت دیگر، زیرساخت ابری مبتنی بر کوبرنتیس یک زیر ساخت واحد برای اجرای نرم افزار های گوناگونی است که با ساختار میکروسرویس اجرا می شود. کوبرنتیس یک لایه انتزاعی فراهم می کند که با استفاده از آن پیچیدگی های زیرساخت را از نرم افزار و توسعه دهنده پنهان می کند.نحوه پیاده سازی کوبرنتیس به این صورت می باشد که شامل دو نوع ماشین به نقش های ورکر و مستر است. ورکرها جهت اجرای کانیتنرهای نرم افزار و مسترها برای مدیریت کلاستر کوبرنتیس می باشد که برای در دسترس پذیری بالای کلاستر باید این دو نوع را در دیتاسنتر های مختلف نصب و راه اندازی کرد. از طرف دیگر با استفاده از ساختار توصیف نرم افزار واحد(YAML)، روال پیاده سازی نرم افزار ها را استاندارد می کند.از ویژگی های مهم و محبوب کوبرنتیس می توان به موارد زیر اشاره کرد:افزایش خودکار رپلیکای نرم افزار به صورت خودکار (مقیاس پذیری افقی)توسعه و پیاده سازی سریع اپلیکیشنخود ترمیمی در صورت بروز مشکل در نرم افزار یا زیرساختتوزیع بار خودکارسهولت در استفاده با پنهان کردن پیچیدگی های ذخیره سازی، پردازشی و زیرساختی از مشتریاستاندارد شدن روال پیاده سازی نرم افزار ها از طریق ساختار توصیف نرم افزار با فایل های YAMLداشتن استراتژی های متنوع برای بروزرسانی نرم افزاراستفاده از ابریمنتپس از ورود به پنل ابریمنت و بخش کانتینر می توان پروژه جدیدی برای پیاده سازی اپلیکیشن خود تعریف کرد، با این کار یک ساختار ایزوله منطقی برای پروژه های مختلف یک شخص خاص مشخص می شود. در شکل زیر شمای کلی از صفحه ساخت پروژه جدید مشاهده می شود:با فشردن دکمه &quot;اضافه کردن پروژه جدید&quot; یک صفحه جدید باز می شود که نام پروژه را باید تعریف کرد:در صورتی که از قبل پروژه ای تعریف شده باشد، این صفحه ساختار متفاوت تری دارد، به این صورت که لیستی از پروژه های کاربر را نشان می دهد، که با انتخاب هر کدام از آن ها و زدن دکمه &quot;بعدی&quot; می توان به مرحله بعدی رفت.اکنون آماده ساخت اپلیکیشن می شویم، با زدن دکمه &quot; اضافه کردن اپلیکیشن جدید&quot; صفحه زیر ظاهر می شود:برای پیاده سازی اپلیکیشن در محیط ابریمنت و بر بستر کوبرنتیس وابسته به نوع نیازمندی، می توان از روش های زیر استفاده کرد:پیاده سازی با استفاده از سرویس کاتالوگپیاده سازی با استفاده از داکر ایمیجپیاده سازی با استفاده از CI/CDاز روش سرویس کاتالوگ زمانی استفاده می شود که لازم است سرویس های معمول و محبوب زیر ساختی را پیاده سازی کنیم. این سرویس ها با استفاده از دانش فنی موجود در تیم های مختلف مهیمن بهینه سازی و فراهم شده اند. که با چند کلیک ساده و پاسخ دادن به چند سوال می توان یک سرویس متناسب با محیط عملیاتی را پیاده سازی کرد. این سرویس ها در دسته های زیرساخت، گزارش گیری و تحلیل، پایگاه داده و تجارت الکترونیک قرار دارند. همچنین ما درحال اضافه کردن سرویس های بیشتری نیز هستیم. در عکس زیر یک شمای کلی از این سرویس ها را می توان مشاهده کرد:در بخش پیاده سازی با استفاده از داکر ایمیج، آدرس یک ایمیج که از قبل آماده راه اندازی شده است، از کاربر پرسیده می شود. این ایمیج می تواند در یک رجیستری عمومی مثل داکر هاب یا یک رجیستری خصوصی مخصوص کاربر باشد. در عکس زیر آدرس یک ایمیج عمومی از کاربر پرسیده می شود. همچنین در این قسمت یک نام برای اپلیکیشن انتخاب می شود و نوع اپلیکیشن از بین Deployment یا StatefulSet انتخاب می شود، تفاوت این دو نوع پیاده سازی مرتبط با مفاهیم کوبرنتیس است، به نحوی که اگر کاربر احتیاج داشته باشد تا پاد هایی که برای اپلیکیشن او ساخته می شود دارای شناسه باشند و هر کدام از پادها دیسک خاص خود را داشته باشد از Statefulset استفاده می کند، اما در صورتی که موارد ذکر شده اهمیتی نداشته باشد می تواند از Deployment استفاده کند. موارد استفاده از StatefulSet سرویس هایی نظیر کافکا، پایگاه های داده و موارد مشابه است. در صورتی که در انتخاب نوع اپلیکیشن تردید دارید بهتر است کار خود را با نوع Deployment شروع کنید.و در عکس زیر آدرس یک ایمیج در رجیستری خصوصی و یک نام کاربری و رمز عبور برای دسترسی به آن را از کاربر پرسیده می شود:پس از آن منابع مورد نیاز برای راه اندازی این ایمیج تحت یک کانتینر از کاربر پرسیده می شود. این منابع شامل میزان RAM با ریزدانگی در حد MB، میزان کور های CPU با ریز دانگی در حد میلی کور، حافظه ذخیره سازی میرا و پایدار با ریزدانگی GB است. علاوه بر این منابع تعداد instance های مورد نیاز کاربر نیز قابل تعیین است. مانند شکل زیر این اطلاعات از کاربر گرفته می شود. کاربر می تواند از پکیج های آماده که در شکل مشخص شده نیز استفاده کند. در قسمت پایین صفحه منابع انتخاب شده با کل ظرفیت پردازشی قابل استفاده کاربر چک می شود، در صورتی که منابع انتخاب شده از منابع در دسترس کاربر تجاوز کند با رنگ قرمز و در غیر این صورت با رنگ سبز به کاربر نمایش داده می شود.اگر نیاز به تغییر تنظیمات ایمیج در حین راه اندازی داشته باشیم، می توان با استفاده از متغیر های محلی و یا فایل های کانفیگ این تغییرات را اعمال کرد.برای ارائه سرویس بالا آمده، به دنیای خارج یا به سایر سرویس های موجود در کلاستر کوبرنتیس می توان از تنظیمات شبکه موجود استفاده کرد. این تنظیمات وابسته به نوع اپلیکیشن متفاوت است. در صورتی که لازم نیست سرویس از دنیای خارج در دسترس باشد و به یک اپلیکیشن دیگر داخل کلاستر کوبرنتیس سرویس دهی می کند، می توان از بخش تنظیمات شبکه، پورت آن را مشخص کرد تا سایر اپلیکیشن ها بتوانند با استفاده از این پورت به این سرویس متصل شوند. به عنوان مثال برای ارائه یک وب سرور به دنیای خارج می توان یک دامنه تعریف کرد. این تنظیمات از قسمتی که در شکل زیر آمده است قابل اعمال است:روش آخر پیاده سازی اپلیکیشن از طریق CI/CD هست که کاربر باید پروژه خود را بر روی گیت لب یکپارچه شده با این سامانه قرار دهد. و در کنار پروژه خود یک داکر فایل فراهم می کند. بستر ابریمنت با تشخیص این داکر فایل ایمیج مورد نظر کاربر را ساخته و در قسمت کانتینر رجیستری پروژه گیت لب آپلود می کند و اپلیکیشن راه اندازی می شود. لازم به ذکر است یکپارچه سازی بین محیط گیت لب و بستر پردازشی ابریمنت به صورت کامل پیاده سازی شده است. به این صورت که در صورت تغییر در پروژه موجود در گیت لب اپلیکیشن راه اندازی شده به صورت خودکار به روز رسانی می شود و با تغییرات جدید شروع به اجرا می کند. برای راه اندازی اپلیکیشن به صورت CI/CD لازم است اطلاعات پروژه گیت لب از کاربر پرسیده شود:فرآیند CI/CD ابریمنت استقرار خودکار و دستی را برای کاربر فراهم می کند به این صورت که، اگر کاربر بعد از انجام commit در پروژه گیت لب خود بخواهد به صورت خودکار تغییرات سمت کلاستر کوبرنتیس اعمال شود، می تواند از استقرار خودکار استفاده کند. اما اگر بخواهد بر فرآیند استقرار کنترل داشته باشد می تواند هر زمان که تصمیم به استقرار گرفت این کار را از طریق داشبورد ابریمنت انجام دهد.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Fri, 11 Dec 2020 17:01:55 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با رایانش ابری ابریمنت</title>
                <link>https://virgool.io/Abriment/%D8%AC%DB%8C%D8%B1%D8%A7-jira-rygafxt8t2vd</link>
                <description>معرفی کلیسرویس رایانش ابری (IaaS) راهکاری برای راه‌اندازی و توسعه کسب‌وکار با استفاده از زیرساخت‌های قدرتمند مجازی است. سرور، شبکه، ذخیره‌ساز، فایروال، دیتاسنتر، مجازی سازی، پشتیبانی و نگهداری، بخشی از خدماتی است که از طریق این سرویس ارائه می‌شود. کسب‌وکارها می‌توانند با حذف هزینه‌های استقرار، توسعه و نگهداری زیرساخت‌های فیزیکی، بر اهداف کسب‌وکاری خود تمرکز کنند و تمام خدمات لازم برای ایجاد زیرساخت را در قالب سرویس زیرساخت ابری دریافت کنند.مزیت هاامنیت و دسترسی‌پذیری بالاامکان مناسب‌سازی زیرساخت‌ها متناسب با نیاز کسب وکارامکان کنترل و مدیریت زیرساخت توسط کسب‌وکارامکان شخصی‌سازی، کاهش یا افزایش منابع متناسب با بار پردازشی و نیازویژگی هاخدمات کامل سرور ابری (VPS)خدمات کامل دیتا سنتر ابری (VPC)خدمات کامل ذخیره سازی ابریخدمات کامل ذخیره‌سازی موضوعیمقیاس پذیری بالاقابلیت پشتیبانی و ذخیره سازیاستفاده از ابریمنتبرای ساخت یک ماشین ابری بر روی گزینه &quot;ساخت ماشین&quot; کلیک کنید.در صفحه باز شده اطلاعات ماشین مانند نام ماشین و تعداد مد نظر خود را وارد کنید.با کلیک بر روی &quot;بعدی&quot; به صفحه انتخاب مشخصات سیستم عامل هدایت می شوید. در این بخش می توانید با انتخاب سیستم عامل مد نظر خود از منوی پایین صفحه آن را جهت راه اندازی انتخاب کنید.با انتخاب گزینه &quot;بعدی&quot; وارد صفحه انتخاب منابع می شوید. در این بخش باید بسته ی دلخواه خود را از بین منابع پیشنهاد شده در لیست انتخاب کنید. (توجه: اگر شما اعتبار کافی برای انتخاب بسته ای را نداشته باشید با علامتی در کنار آن مشخص شده است و قادر به انتخاب آن نیستید.)منوی بعدی مربوط به تنظیمات شبکه است که به صورت پیش فرض شبکه اینترنت برای شما در نظر گرفته شده است و در صورت علاقه به اضافه کردن شبکه ی دیگر باید آن را قبل از ساخت از قسمت &quot;شبکه&quot; منوی سمت چپ ساخته و سپس در این صفحه آن را به ماشین خود اضافه کنید. در قسمت فایروال نیز به همین ترتیب برای شما یک فایروال پیش فرض در نظر گرفته شده است.با انتخاب &quot;بعدی&quot; وارد بخش آخر تنظیمات یعنی تنظیمات کلید دسترسی می شوید. در این بخش می توانید هم یک کلید جدید بسازید یا آن را آپلود کنید و هم از بین کلید هایی که از قبل داشته اید انتخاب کنید. اهمیت این قسمت از این جهت است که ماشین های ابریمنت دارای یوزرنیم و پسورد پیش فرض هستند و شما با ساخت یا انتخاب کلید می توانید از طریق ارائه ی کلید با استفاده از اتصال ssh به ماشین خود دسترسی پیدا کنید.با انتخاب گزینه &quot;ساخت ماشین ابری&quot; فرآیند ساخت آغاز شده و پس از چند ثانیه ماشین ساخته شده در منوی ماشین ها قابل دسترسی خواهد بود.با انتخاب &quot;کنسول&quot; به صفحه ای هدایت می شوید که کنسولی از ماشین به شما نمایش داده می شود. توصیه می شود برای استفاده ی راحت تر از کنسول از گزینه &quot;نمایش کنسول به تنهایی&quot; استفاده کنید.برای ورود به ماشین باید یوزرنیم پیش فرض(root) و پسورد پیش فرض(1) را وارد کنید. تغییر پسورد پیش فرض در این بخش الزامی بوده و شما باید پسورد جدیدی را برای ماشین خود انتخاب کنید.شما می توانید برای آشنایی بیشتر با امکانات ماشین ابری ابریمنت به دموی این محصول مراجعه بفرمایید.</description>
                <category>ali darjazi</category>
                <author>ali darjazi</author>
                <pubDate>Fri, 11 Dec 2020 16:58:56 +0330</pubDate>
            </item>
            </channel>
</rss>