<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های پریسا عربشاهی</title>
        <link>https://virgool.io/feed/@arabshahip</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-18 23:08:25</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/75818/avatar/uDPdTI.png?height=120&amp;width=120</url>
            <title>پریسا عربشاهی</title>
            <link>https://virgool.io/@arabshahip</link>
        </image>

                    <item>
                <title>چکیده‌ای بر لایه بعدی رایانش ابری: بدون سرور</title>
                <link>https://virgool.io/@arabshahip/%DA%86%DA%A9%DB%8C%D8%AF%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1-%D9%84%D8%A7%DB%8C%D9%87-%D8%A8%D8%B9%D8%AF%DB%8C-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4-%D9%81%D8%B6%D8%A7%DB%8C-%D8%A7%D8%A8%D8%B1%DB%8C-%D8%A8%D8%AF%D9%88%D9%86-%D8%B3%D8%B1%D9%88%D8%B1-dilmqao38ppu</link>
                <description>در این مقاله در تلاش هستیم تا اهمیت فن‌آوری رایانش ابری بدون سرور همانند AWS Lambda را شرح دهیم. در واقع این مسئله یک اتفاق بسیار بزرگ در رایانش ابری محسوب می‌شود. در طی چندین سال گذشته با توجه به تحقیقاتی که در این راستا صورت گرفته می‌توان گفت که رایانش ابری بدون سرور یکی از فوق‌العاده‌ترین و مهم‌ترین بخش های فضای ابری به حساب می‌آید. که نتایج آن به شکل زیر است:نگاهی به AWS S3 بیاندازیم:از S3 اکثرا برای ذخیره‌سازی اشیاء استفاده می‌شود. در واقع شما یک شئ را ارائه می‌دهید و S3 به ذخیره آن می‌پردازد. نکته این‌جاست که شما هیچ اطلاعاتی از چگونگی ذخیره‌سازی، محل آن و... ندارید و این مسئله برای شما هیچ اهمیتی هم نخواهد داشت.در واقع شما هیچ درایوی را با خود به همراه ندارید که نگران آن باشید و هیچ فضای دیسکی در اختیار شما نخواهد بود که از پر شدن حجم آن ابراز نگرانی کنید. به عبارت ساده‌تر جملاتی همچون فضای کافی، فضای بیش از حد استفاده شده و... هیچ مفهومی برای شما نخواهد داشت. S3 کمک می‌کند خیال‌تان از این نظر آسوده باشد.(اس۳) S3 دقیقا به همان میزانی که از فضای آن استفاده کنید از شما هزینه دریافت می‌کند، نه چیزی بیشتر و نه چیزی کمتر.حال نگاهی به AWS Lambda بیاندازیم(لامبدا)Lambda به نوعی در توابع مرتبط به اجرا موثر خواهد بود. در این راستا شما کد یک تابع را ارائه می‌دهید و lambda در صورت تقاضا آن را به اجرا درمی‌آورد. باز هم شما نمی‌دانید آن کد چگونه و در کجا به اجرا درآمده است. این مسئله نیز هیچ اهمیتی برای شما نخواهد داشت.هیچ ماشین مجازی وجود ندارد که ذهن شما را مشغول کند و چیزی به نام ظرفیت سرور نیز وجود نخواهد داشت. جملاتی همچون سرورهای بیکار، سرورهای کافی برای پاسخگویی تقاضا، مقیاس‌گذاری و... نیز مطرح نخواهد شد.دقت داشته باشید؛ که شما نمی‌توانید فضای بیش‌تری را به خود اختصاص دهید و یا قابلیت‌هایی فراتر از قوانین Lambda را به اجرا در آورید. در واقع Lambda دقیقا آن چیزی را که شما می‌خواهید اجرا و عملی می‌کند. نه چیزی بیشتر و نه چیزی کمتر.مختصری از تاریخچه رایانش فضای ابریاگر نگاهی به خدمات ارائه شده توسط ابرهای عمومی بیاندازید، متوجه می‌شوید که هر خدمت جدیدی که ارائه می‌دهند، در اصل مجموعه‌ای از مسئولیت‌ها را از مشتریان به واحد ارائه دهنده این محصول انتقال می‌دهد.⦁ زمانی‌که از مراکز داده استفاده می‌کنید، سخت‌افزار به عنوان کوچکترین واحد مقیاس پذیر و محیط میزبانی فیزیکی به عنوان یک مفهوم انتزاعی شناخته می‌شود.⦁ با استفاده از IAAS، سیستم عامل به عنوان کوچکترین واحد مقیاس پذیر و سخت‌افزارهای فیزیکی به عنوان یک مفهوم انتزاعی شناخته می‌شود.⦁ با استفاده از PAAS، برنامه به عنوان کوچکترین واحد مقیاس پذیر و سیستم عامل به عنوان یک مفهوم انتزاعی شناخته می‌شود.⦁ با استفاده از فن‌آوری‌های بدون سرور، تابع به عنوان کوچکترین واحد مقیاس پذیر و زبان اجرای آن به عنوان یک مفهوم انتزاعی شناخته می‌شود.در این‌جا می‌توان دریافت که ارائه دهندگان سرویس ابری، اکثریت قریب به اتفاق مسئولیت های بالا را برعهده می‌گیرند و ما باید تنها بر روی کد خود متمرکز شویم.به همین دلیل است که فن‎آوری‌های رایانشی بدون سرور یک فن‌آوری بسیار مهم تلقی می‌شود. تاثیر بعدی آن در رایانش ابری است بدین صورت که برنامه‌نویسان را وادار به ایجاد برنامه های منطبق بر فضای ابری کرده است.</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 12:10:11 +0330</pubDate>
            </item>
                    <item>
                <title>بهبود امنیت SSH در ابر</title>
                <link>https://virgool.io/@arabshahip/%D8%A8%D9%87%D8%A8%D9%88%D8%AF-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-ssh-%D8%AF%D8%B1-%D8%A7%D8%A8%D8%B1-owusozu27bn9</link>
                <description>سرویس‌های رایانش ابری مانند سرویس های ابر آوند از SSH به عنوان اصلی‌ترین روش تأیید هویت سرورهای لینوکس استفاده می‌کنند. به عقیده بسیاری از متخصصان انتخاب پروتکل SSH، یک انتخاب درخشان و نتیجه‌بخش است که دلیل آن کاهش بروکراسی‌هایی‌ست که بخشی از پروتکل‌های تایید اعتبار را تشکیل می‌دهند. زیرا اجرای پروتکل‌های فعلی که توسط ارائه‌دهندگان ابری مورد استفاده قرار می‌گیرد از کارآیی بالایی بهره‌مند نیست.روش‌های انجام شده:برای اینکه اعتبار یک دستگاه را تائید کنید، به یک فایل pem که حاوی کلید خصوصی‌ست، نیاز خواهید داشت. کلید عمومی مرتبط به سرویس سرو (یا توسط کاربر بارگذاری شده یا توسط خود سرویس تولید شده است) نیز شناسایی می‌شود و هنگام ساخت سرور مجازی، فایل pem مورد نظر به آن منتقل خواهد شد. در نهایت پس از شروع کار Daemon SSHD، کاربران دارای کلید خصوصی می‌توانند وارد دستگاه شوند.اشکال کار در چیست؟مدیریت فایل‌های pem (کلیدهای خصوصی) به دلایل مختلفی که در این قسمت به آن می‌پردازیم، مشکلاتی را با خود به همراه دارد:انتقال کلید‌های ناامن:به منظور دسترسی بیشتر از یک کاربر به یک گروه در حال اجرا، فایل‌های pem نیز باید به نوعی انتقال پیدا کنند. با توجه به تجربیاتی که در این راستا به‌دست آمده، کاربران با استفاده از ایمیل یا فضای ذخیره‌سازی مشترک در دسترس برای کل شرکت، فایل‌های pem (کلید خصوصی) را ارسال می‌کنند. این مسئله می‌تواند یک حفره امنیتی بسیار بزرگی را با خود به همراه داشته باشد، زیرا پس از انتقال، پیگیری آن کاری بس دشوار است. هیچ اطمینانی از اینکه کلید در دست چه کسانی قرار می‌گیرد وجود نخواهد داشت.گمشدن/دزدیدن لپ‌تاپ:وقتی شخصی لپ‌تاپ خود را با فایل‌‌های کلید خصوصی pem موجود در آن از دست می‌دهد، معمولا فرآیند آنالیز ریسک خطرناک آغاز می‌شود. همه به نوعی در تلاش‌اند تا پرونده‌های pem موجود در آن را کشف کرده و همچنین روش‌های چگونگی باطل‌کردن آن را بیاموزند. این کار معمولا تحت استرس و بلاتکلیفی بسیار زیادی صورت می‌گیرد و حتی سایر افراد نیازمند به دسترسی ماشین‌ها را نیز آشفته می‌کند.گم کردن پرونده‌های pem:هرچند بروز این اتفاق امری نادر است اما با این‌حال باید احتمالات را در نظر گرفت. سوالی که در این‌جا ذهن بسیاری از افراد را به خود مشغول می‌کند این است که اگر یک فایل pem حاوی کلید خصوصی از بین برود و شما همچنان تمایل به استفاده از آن باشید چه اتفاقی رخ می‌دهد؟راه‌حل:استفاده از SSH با مجوز و گواهینامه (CA) برای اعتبارسنجی مشتریان یکی از بهترین راه‌حل‌های موجود است. یکی از جالبترین ویژگی‌هایSSH ، که همواره از آن یاد می‌شود امکان استفاده از CA برای ایجاد گواهینامه‌های مشتریان است. با استفاده از این روش، توسعه‌دهندگان که به دسترسی یک ماشین نیاز دارند، به راحتی یک کلید خصوصی و عمومی ایجاد کرده و کلید عمومی را برای بخش مدیریت ارسال می‌نمایند. (توجه داشته باشید که کلید خصوصی هرگز از دستگاه توسعه‌دهنده خارج نمی‌شود). بخش مدیریت نیز یک گواهی از کلید عمومی تولید می‌کند و آن را با استفاده از کلید خصوصی CA امضا و گواهینامه را برای توسعه‌دهنده می‌فرستد. (این گواهی هیچ رمزی ندارد). این دستگاه‌ها به منظور استفاده از کلید عمومی CA و برای اعتبارسنجی تنظیم شده‌اند و به‌طور دوره‌ای به‌روزرسانی می‌شوند.به هر حال، لطفاً SSH PKI و X509 را اشتباه نگیرید. SSHها به هیچ‌عنوان جزء گواهینامه‌های X509 نیستند. SSH به دلایلی کدنویسی PKI خاص خود را دارد.مزایای استفاده از SSH:هیچ نیازی به ارسال رمز از طریق کانال‌های غیرایمن نیست.اگر لپ‌تاپ خود را گم کنید، کلید‌های خصوصی به طور خودکار به لیست ابطال اضافه می‌شوند. بدون اینکه سایر کاربران نسبت به این موضوع اطلاعی پیدا کنند. این روش در به حداقل رساندن آسیب‌ها تاثیر بسیار زیادی دارد.می‌توان گواهینامه را با زمان انقضا برای یک میزبان خاص و... صادر نمود که در صورت هک‌شدن، خطر را تا حدود زیادی کاهش می‌دهد.چگونگی انجام آن:این روزها اکثر کاربران از Hashicorp Vault برای ذخیره کلیدهای خصوصی CA و امضای کلیدهای کاربران و تولید گواهی استفاده می‌کنند. هرچند که به عقیده بسیاری از متخصصان Vault (نسخه 0.8.2.1) راه‌حل مناسبی برای این کار نیست زیرا توانایی ابطال لیست را ندارد اما با این‌حال روشی به مراتب بهتر در برابر ذخیره کلیدهای خصوصی CA در مکانی ناامن و بدون ممیز است.پیکربندی سرورها به روش زیر کارآمدتر است:در ابتدا باید به سراغ ایجاد یک گروه و مسیر برای ذخیره کلید عمومی CA و همچنین لیست ابطال بروید. ( هیچ رمزی وجود ندارد)، درواقع در این بخش تنها سیاستی برای خواندن ایجاد کرده‌اید و آن را به نقش‌های IAM مورد استفاده اضافه کرده‌اید. به عبارت بهتر با این روش در تمام دستگاه‌هایی که از زمان راه‌اندازی در حال فعالیت هستند سرویسی را اضافه کرده‌اید. اغلب توصیه می‌شود که این سرویس قبل از شروع SSH اضافه شود تا همواره امن بماند.هرچند می‌توان به پرونده pem CA از طریق Vault نیز دسترسی پیدا کرد. اما تصمیم گرفته‌شده به دلیل پشتیبانی نکردن آن از سیستم لغو خودکار آن را در S3 قرار دهند. معمولا راه‌اندازی Vault به نوع SSH بستگی دارد.یک مشکل کوچک:برای مقابله با چنین شرایطی باید به سراغ استفاده از terraform بروید. متاسفانه terraform نسبت به چگونگی کار با کلید خصوصی و مجوزهای موجود آگاهی کاملی ندارد. از همین‌رو برای برطرف‌کردن این مشکل، باید از ssh-agent در shell  ماشینی که قصد تهیه آن را دارید استفاده کنید. شما باید کلید خصوصی و گواهینامه خود را اضافه کرده (با استفاده از ssh-add)، و سپس کلید خصوصی را از stanza پاک کنید. این گونه دستور “terraform apply” به جای این‌که سعی کند ssh را به صورت دستی به اجرا درآورد، از agent ها کمک می‌گیرد.سخت کردن sshما فقط توصیه‌های زیر را دنبال می‌کنیم:https://ef.gy/hardening-sshپورت‌های SSH هرگز نباید با کلمات خارجی باز شوند.پورت‌های SSH هرگز نباید در معرض اینترنت قرار گیرند. این امر با بهره‌گیری از گروه‌ها و قوانین موجود در SSH امکان‌پذیر است. به‌گونه‌ای که تنها در صورتی اجازه استفاده از اینترنت را می‌دهد که از آدرس IP استاتیک استفاده شده باشد. این آدرس IP به شما کمک می‌کند تا گروه امنیتی مختص خود را تنظیم کنید. فراموش نکنید باید Rule اعمال شده برای اتصال را پس از اتمام کار پاک کنید.</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 12:00:14 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه در شش ماه یک مهندس دواپس شویم؟ (قسمت ششم)</title>
                <link>https://virgool.io/@arabshahip/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D8%B1-%D8%B4%D8%B4-%D9%85%D8%A7%D9%87-%DB%8C%DA%A9-%D9%85%D9%87%D9%86%D8%AF%D8%B3-%D8%AF%D9%88%D8%A7%D9%BE%D8%B3-%D8%B4%D9%88%DB%8C%D9%85-%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%B4%D9%85-or89cbyafzhn</link>
                <description>با مروری بر قسمت‌های گذشته چگونه در شش ماه یک مهندس دواپس شویم، در نظر داریم تا قسمت ششم آنکه مرحله اجرا می‌باشد را شرح دهیم. در قسمت اول مبانی و فرهنگ DevOps خدمت شما معرفی شد. پس از آن در قسمت دوم با چگونگی پیکربندی و اهمیت استقرار کدهای تغییر‌ناپذیر آشنایی مختصری پیدا کردید. در قسمت سوم در رابطه با چگونگی سازماندهی و حفظ کدهای مستقر شده توضیحاتی خدمت شما ارائه دادیم. در قسمت چهارم و پنجم نیز نحوه دسته بندی و استقرار کد و اجرای آسان و اجراهای بعدی شرح داده شد. دقت داشته باشید که برای یادگیری باید حدود یک ماه برای هر قسمت زمان بگذارید. شکل زیر به‌طور کامل مرحله یادگیری را خدمت شما نشان می‌دهد:آیا برای اجرای آن آماده هستید؟در این قسمت ما تلاش کردیم تا کدی نوشته، آن را بسته‌بندی و سپس مستقر نمائیم.قصد داریم بدون درنظر گرفتن فرآیند ساخت ماشین مجازی (به عنوان مثال سرویس سرو آوند یا EC2) و با تمرکز بر روی کانتینر ادامه دهیم. اما سوالی که در ذهن ایجاد می شود این است که دلیل این کار چیست؟با توجه به این مسئله که ساخت یک  AMI(ایمیج ماشین آمازون) تغییرناپذیر در منبع، کپی کردن آن در تمامی نقاط و سپس به اجرا درآوردن آن کاری دشوار محسوب می‌شود. اگر موظف به انجام آن هستید بهترین راه استفاده از الگوی مناسب است.با این حال، به شما توصیه می‌کنم که به این فکر کنید که آیا اصلا مجبور به انجام این کار هستید یا نه؟ اگر جواب منفی است،‌ اقدام به سازماندهی مجدد میکروسرویس‌ها به عنوان کانتینر یا توابع بدون سرور کنید.توجه: اگر این مسئله امکان‌پذیر نیست، تنها دلیل آن می‌تواند تصمیم شما برای نوشتن، بسته‌بندی و استقرار نرم‌افزارها به عنوان یک برنامه یکپارچه باشد. پس استفاده از الگوی AMI تغییرناپذیر می‌تواند نتیجه‌بخش باشد. یا به عنوان مثال، اگر شما مجبور هستید که کارهایتان را به صورت non-cloud native یا با نرم‌افزارهای تجاری “همان‌طور که هست” انجام دهید، این مقاله مناسب شما نیست.حال که ما کانتینرها را بسته‌بندی و آماده‌سازی کرده‌ایم، سوال اینجاست که چگونه باید آن‌ها را اجرا کنیم؟اجرای کانتینرهاخب... ساده‌ترین کاری که می‌توانید انجام دهید این است که دستور docker run my Image را به اجرا درآورید و در طول روز با آن ارتباط برقرار کنید. هر چند که این ایده از نظر بسیاری از افراد کارآمد نیست.اما چرا این روش را ناکارآمد می‌دانند؟چه اتفاق رخ می‌دهد؟⦁ اگر کانتینر از بین رفت چه ؟⦁ آیا به بیش از یک کانتینر برای تحمل بار بیشتر نیاز است؟⦁ آیا باید به صورت همیشه در دسترس استقرار پیدا کنید؟⦁ آیا تمایل دارید تا میکروسرویس‌هایتان در معرض دید کامل باشند؟⦁ آیا می‌خواهید یک خط CD/CI برای ارائه ارزش‌های خود به مشتریان داشته باشید؟⦁ و....به عبارت ساده‌تر، چه اتفاقی رخ می‌دهد اگر شما نیاز به ساخت یک برنامه واقعی، در درجه سازمانی و توزیع شده را به وجود آورید؟به وضوح، چیزی به سادگی docker run  قرار نیست این برنامه را ایجاد کند.توجه: docker-compose  مجموعه‌ی بسیار مشابهی از مشکلات را در بردارد. در واقع نمی‌توان از docker-compose   برای استقرار در محیط عملیاتی استفاده نمود؛ هدف اصلی آن ساخت یک نمونه محلی و یا آزمایش سرعت عملکرد و یا استقرار آن در مقیاس کوچک است.حال که ما نمی‌توانیم هدف خود را به راحتی انجام دهیم، چه اقداماتی باید در پیش گیریم؟مدیریت جمعی درست کانتینرها برای نجات!!!!منظور از مدیریت جمعی (orchestration) کانتینر چیست؟همانند سایر موقعیت‌هایی که در زندگی برای‌مان رخ می‌دهد، در این‌جا نیز باید بدانید که بیش از یک جواب برای رفع این مشکل وجود دارد. اولین و بارزترین آن kubernetes است.که یکی از پروژه‌های داخلی گوگل می‌باشد هم‌اکنون به عنوان استاندارد مدیریت جمعی کانتینرها مورد استفاده قرار می‌گیرد. همچنین در صورتی که در محیط‌های زیر کار می‌کنید تنها راه حل موجود است:⦁ یک مرکز داده خصوصی⦁ ابر گوگل⦁ پلتفرم رایانش ابری مایکروسافت ( آژور مایکروسافت)⦁ هر ابر عمومی دیگر نظیر ابر آوندبا این‌حال اگر از محیط AWS استفاده می‌کنید، گزینه دیگری همچون ECS نیز پیش روی شما قرار می‌گیرد.توجه: این مسئله به طور کامل صحیح نیست. شما Nomad  از Hashicorp (همان تیمی که ترافورم را عرضه کرده) و docker Swarm از docker را نیز در اختیار دارید. مشکل این‌جاست این موارد جزء پلتفرم‌هایی با حداقل استفاده هستند که می‌توانیم از آنان برای رشد سریع‌تر صرف‌نظر کنیم.به هر حال، به ECS برگردیم. خدمات ارائه شده توسط AWS به عنوان کانتینر الاستیک ( ECS) برای شروع کار بسیار ساده است. و می‌توان از سازگاری کامل آن با سایر اکوسیستم‌های AWS لذت برد. باید بدانید که این سیستم توانایی انجام تعدادی محدودی کار، اما به بهترین نحو را دارد. به‌طور خلاصه، می‌توان گفت که به اندازه kubernetes خوب نیست.در واقع اگر ECS توانسته به اندازه کافی برای مک‌دونالد خوب باشد، برای شما نیز مناسب خواهد بود.اگر بخواهیم در این زمان، از منظر ایجاد شغل به این مسئله نگاه کنیم، هیچ شکی در این که kubernetes انتخاب بهتری محسوب می‌شود وجود ندارد؛ حتی اگر 99 درصد شرکت‌های بزرگ فعال در AWS، از عملکرد ECS راضی باشند.حال، شما باید راه خود را انتخاب کنید. اگر تازه وارد این کار شده‌اید، خود را آماده یک شعار بسیار بلند در زمین kubernetes کنید. یادگیری تمامی نکات مرتبط به دواپس آن هم به تنهایی و خارج از تیم مهندسان به‌هیچ عنوان کار ساده‌ای محسوب نمی‌شود.هرچند به‌طور قطع انجام آن امکان‌پذیر است، این مسئله خصوصا با ارائه دوره‌های رایگان Google و AWS و همچنین آموزش‌های موجود در Youtube/Udemy و قیمت‌گذاری‌های نقطه‌ای AWS فراهم‌ شده است.توجه: اگر تصمیم به قرار گرفتن در این مسیر دارید، توصیه می‌شود که با GKE  یا kops کار را آغاز کنید. kubernetes با مدیریت آمازون (EKS) هزینه‌ زیادی را برای شما در پی دارد و مکان خوبی برای شروع محسوب نمی‌شود.با این‌حال، اگر شما در این زمینه تازه وارد نیستید و در حال حاضر در اکوسیستم AWS کار می‌کنید، توصیه می‌شود که میکروسرویس‌های خود را به صورت کانتینر روی ECS مستقر کنید. kubernetes به شما این امکان را می‌دهد که از خواب شب خود لذت ببرید و یک تجربه خوب کاری را در سطح جهانی به‌دست آورید.زیرا با سر شیرجه زدن در kubernetes همچون حرکت بر روی یک طناب باریک است و حتی می‌تواند شما را از ماموریت واقعی خود که تحویل سریع و موثر به مشتری است دور کند.آیا واقعا به kubernetes نیاز دارم؟جواب مشخص است: «خیر»اما در بازار کار می‌گویند یا باید kubernetes بلد باشی یا خانه نشین می‌شویدر ابتدا، شاید برایتان جالب باشد که بدانید با توجه به تاثیرگذاری ای که از kubernetes بر لبه فناوری در ذهن بسیاری از متخصصان وجود دارد، ایده kubernetes نسبتا قدیمی است. درواقع وقتی گوگل در سال 2015 استفاده از Borg را در پیش گرفت هم یک ایده نسبتا قدیمی به حساب می‌آمد:به طور خلاصه:کوبرنتیز یک بخش بزرگ از معماری و ویژگی‌های سیستم borg محسوب می‌شود که تصمیمات مهم از جمله طراحی، تجزیه و تحلیل و حتی برخی سیاست‌های سیستم را برعهده دارد. و تجربیات آن به بیش‌از یک دهه برمی‌گردد.این جمله دقیقا kubernetes را در صفحه اصلی شرح می‌دهد.کوبرنتیز(K8s) یک سیستم با منبع باز محسوب می‌شود که به صورت خودکار به استقرار، مقیاس‌دهی و مدیریت برنامه‌های کانتینر می‌پردازد کانتینرها را به منظور مدیریت و کشف آسان برنامه‌ها در واحدهای منطقی گروه‌بندی می‌کند، kubernetes با گذشت 15 سال از تجربه بارگذاری در گوگل همراه با ایده‌ها و شیوه‌های برتر جزء بهترین‌ها به حساب می‌آید.پس اگر در آینده شنیدید که از kubernetes به عنوان یک ایده جدید و داغ صحبت شد، بدانید که آن‌ها تنها در حال حمایت از یک فناوری هستند که پانزده سال قدمت دارد.این مسئله خیلی ابتکاری به حساب نمی‌آید. موافق نیستید؟دوم اینکه باید به مخاطب هدف فکر کنید. Google ابزارهایی را برای حل مشکلات خود در مقیاس خود راه‌اندازی می‌کند. که باز هم kubernetes در صفحه اصلی خود به طور واضح به آن پرداخته است:معیار بزرگ (سیاره)با همان اصولی طراحی شده است که به گوگل این اجازه را می‌دهد تا میلیاردها کانتینر را در طول هفته به اجرا درآورد. نکته این‌جاست که kubernetes نیز این توانایی را دارد که بدون هیچ‌گونه افزایش تعداد افراد تیم عملیات شما، بزرگتر شود.در نهایت، یکی از توسعه‌دهندگان اصلی kubernetes که مدافع سخنگوی آن است به این نکته تاکید دارد که:کوبرنتیز برای آن دسته از افرادی‌ست که پلتفرم می‌سازند. در‌واقع، اگر شما به عنوان توسعه‌دهنده‌ای شناخته می‌شوید که پلتفرم شخصی خود را ایجاد کرده‌ است. ( موتور برنامه، برنامه های مبتنی بر ابر و...) پس می‌توان نتیجه گرفت که kubernetes برای شما مناسب است.اگر مقیاس‌های بزرگ را برای کار خود در نظر گرفته‌اید و یا در هفته بر روی میلیاردها کانتینر کار می‌کنید و یا اینکه یک ابر را برای استفاده دیگران به وجود آورده‌اید، kubernetes می‌تواند یک انتخاب بسیار مناسب محسوب شود.اگر این‌گونه نیست. پس به پایان داستان رسیده‌اید.هیچ اهمیتی ندارد که مادربزرگتان به سراغ خواندن توئیت‌های مرتبط با Kelsey آن هم در وقت نهار می‌رود و و بعدش سایت گل‌فروشی‌‌اش را با ابزارهای خودکار CI/CD به kubernetes منتقل می‌کند. kubernetes ابزار مناسبی برای برطرف سازی نیازهای شما نیست.چه کسی اهمیت می‌دهد:آن‌ها همواره می‌گویند؛ آیا واقعا این مسئله مهم است؟ پاسخ این است:kubernetes = $$$پس باید به سطح بالاتر برویم و از حرکت در مسیر دواپس و به‌دست آوردن تجربیات جدید لذت ببریم.منبع:How To Become a DevOps Engineer In Six Months or Less, Part 6</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 11:53:02 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه در شش ماه مهندس دواپس شویم؟ (قسمت پنجم)</title>
                <link>https://virgool.io/@arabshahip/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D8%B1-%D8%B4%D8%B4-%D9%85%D8%A7%D9%87-%D9%85%D9%87%D9%86%D8%AF%D8%B3-%D8%AF%D9%88%D8%A7%D9%BE%D8%B3-%D8%B4%D9%88%DB%8C%D9%85-%D9%82%D8%B3%D9%85%D8%AA-%D9%BE%D9%86%D8%AC%D9%85-wjztjtdqdkln</link>
                <description>در قسمت پنجم چگونه در شش ماه مهندس دواپس شویم؛ در نظر داریم در رابطه با چگونگی استقرار کدهای مورد استفاده صحبت کنیم. اما نیاز است که قبل از هرچیزی به مرور قسمت‌های قبل بپردازیم. درواقع در قسمت اول مبانی و فرهنگ DevOps خدمت شما معرفی شد. پس از آن در قسمت دوم با چگونگی پیکربندی و اهمیت استقرار کدهای تغییرناپذیر آشنایی مختصری پیدا کردید. در قسمت سوم در رابطه با چگونگی سازماندهی و حفظ کدهای مستقر شده توضیحاتی خدمت شما ارائه دادیم. در قسمت چهارم نیز نحوه دسته بندی کد و اجرای آسان و اجراهای بعدی شرح داده شد. مرور بخش‌های گذشته کمک می‌کند تا با ذهنیتی بازتر به سراغ فراگیری قسمت جدید بروید.هم‌اکنون ما در این قسمت هستیم:استقرار کدتاکنون به این مسئله فکر کرده‌اید که چرا در رابطه با &quot; چگونه به راحتی کد خود را مستقر کنید؟ &quot; صحبت نشده است؟ حتما باید دلیلی داشته باشد!باید بدانید که متاسفانه هنوز استقرار مناسب کد از یک محیط توسعه برای تهیه محصول به روی یک محیط عملیاتی، به عنوان یک فرآیند سخت و مملو از خطا و اشتباه شناخته می‌شود.چرا اینطور است؟دلایل بسیار زیادی در این زمینه وجود دارد اما به طور خاص می‌توان به تفاوت‌های موجود در بین محیط‌هایی که کد ایجاد شده و سپس استقرار پیدا کرده و به اجرا درآمده اشاره کرد.به عقیده بسیاری از متخصصان به حداقل رساندن این اختلافات می‌تواند پیشرفت بزرگی در این زمینه، ‌نه تنها در استقرار کلی کد خود بلکه در زمان پس از استقرار آن نیز محسوب شود.از همین‌رو سوالی که در اینجا مطرح می‌شود این است که چگونه می‌توانیم به دنبال کاهش و یا از بین بردن تفاوت‌های بین محیط‌های تولیدی و غیرتولیدی باشیم؟روی دستگاه من کار می‌کند!اگر زیرساخت بخش توسعه شما به شکل زیر باشد:اما زیرساخت عملیاتی این‌طور باشد:باید به این نتیجه برسید که مشکلی وجود دارد.اگر به سراغ استفاده زیرساخت به عنوان کد به جای پیکربندی دستی بروید، تقریبا  90% راه را پیموده‌اید. اگر این‌طور نیست، ناامید نشوید؛ شما تنها نیستید. یک بعدازظهر وقت بگذارید، شکاف‌های موجود (آموزش، فرهنگ، مدرن، فرآیندها و...) را مشخص کنید و به صورت هدفمند آن‌ها را یک به یک از بین ببرید.نکته اینجاست که شما در مدیریت یک دسته از فناوری های مدرن موفق نخواهید بود، اگر با دست پیکربندی کارها را انجام دهید.پس، اولین نکته این است که هرچیزی که به محیط عملیاتی مربوط می‌شود، نسخه گذاری شده و سپس روی محیط عملیاتی مستقر شده است.با فرض اینکه کارها به درستی انجام شده است، می‌توانم استدلال کنم که بهترین راه برای استقرار کد، این است که اصلا مستقر نشود!رویکردهای مدرن استقرار کددرست است؛ تاریخ استقرار کد روی ماشین‌های عملیاتی، به سال 1990 میلادی برمی‌گردد.بزرگ‌ترین مشکلی که در استفاده از این کدها برای مجموعه‌ای از کامپیوترها وجود داشت، این بود که سرور کدهای به اجرا درآمده با سرور توسعه‌داده شده ( جایی که کدها استقرار پیدا کرده بودند) تفاوت داشت.از همین رو نباید تعجب کرد که هزاران مشکل بلافاصله پس از استقرار بیرون بیایند که قبلا دیده نشده‌ بودند.این مسئله نشان می‌دهد که شما باید تمام تلاش خود را به‌کار گیرید تا اطمینان حاصل کنید که کدهای مستقرشده شما کل کد اجرایی را شامل می‌شود نه فقط یک تکه از آن‌ها.به عبارت بهتر، شما باید کد خود را یک‌بار در محیط توسعه داده شده مستقر کنید و کل دستگاه‌ها را به اجرا درآورید. سپس این امکان برای شما وجود خواهد داشت که آن را به هرجایی که نیاز دارید کپی کرده و انتقال دهید.این امر که به عنوان «استقرار غیرقابل تغییر» شناخته می‌شود یک الگوی بسیار قدرتمند بوده که دردسرهای بعد از استقرار را کاهش می‌دهد.البته،‌ اگر با کانتینرها کار می‌کنید، همین ایده اجرا می‌شود: شما یک کانتینر را همه‌جا اجرا می‌کنید.همچنین این امکان وجود دارد که بگویید محصول نهایی شما با محصول توسعه داده شده از نظر نام‌های کاربری و رمز عبورهای پایگاه داده، رشته‌های اتصال، مکان‌های ذخیره‌سازی S3 و.... تفاوت دارد.بله، متفاوت هستند.برای حل این مشکل باید به سراغ پیکربندی برنامه 12 فاکتور بروید. در واقع تمامی پیکربندی انجام شده باید به بیرون، یعنی به متغیرهای محیطی دستگاه شما انتقال پیدا کنند.به عنوان مثال، اگر در AWS هستید، از SSM به عنوان نگهدارنده پارامترهای خارجی استفاده کنید که به سادگی به CloudFormation متصل و همگام می‌شود. همچنین تنظیم متغیرهای محیط به طور مستقیم با پیروی از دستورات aws ssm cli بسیار آسان خواهد بود. البته سایر ارائه‌دهندگان فضاهای ابری مشابهی را نیز در اختیار دارند.علاوه بر این، در مقابل اصرار برای رفع مشکل کردن دستگاه‌های عملیاتی در صورت وجود اشکال مقاومت کنید. زیرا دستگاه‌ها تغییرناپذیر هستند و این یعنی تمامی اصلاح‌های صورت گرفته باید از طریق تیم توسعه انجام شود.در واقع، نباید کسی به هیچ وجه به ماشین‌‌های عملیاتی دسترسی داشته باشد. نه با ssh، نه با scp، چه خود شما و چه هکرهای مشتاق.اما در صورت نیاز برای رفع مشکل چه باید کرد؟درست حدس زدید! در واقع لاگ‌های موجود باید به صورت کامل به بیرون منتقل شوند که برای این کار می‌ةوان از ElasticSearch / Logstash / Kibana (ELK) یا نرم افزارهای تجاری مانند SumoLogic یا Datadog استفاده کرد.هر کاری که انجام می‌دهید باید بدانید که ماشین‌های تولیدی شما همانند احشام هستند. آنها با کوچکترین نشانه عدم سلامتی جایگزین می شوند. آنها &quot;حیوانات خانگی&quot; نیستند که باید با صرف ساعت‌ها تلاش‌ عیب‌یابی شده به سلامت بازگردند. منظور این است که دستگاه های تولیدی خود را &quot;fix&quot; نکنید، بلکه به سراغ fix کردن برنامه‌های موجود رفته و مجددا آنها را مستقر نمائید.مکانیک استقرار کدحال شما می‌دانید که چه اقداماتی برای استقرار کد انجام دهید، اما سوال اینجاست که چگونه باید این کار را انجام دهید؟در واقع این دقیقا جایی‌ست که Jenkins وارد می‌شود. در واقع Jenkins یکی از محبوب‌ترین سرورهای اتوماسیون استقرار با منبع باز است. این سرور محبوب مجموعه‌ای پیچیده بوده که میلیون‌ها پلاگین باکیفیتِ نامشخص را با خود همراه کرده است. این افزونه‌ها در اکثر مواقع خراب می‌شوند و همه چیز را خراب می‌کنند.البته، مجموعه multi master Jenkins از مقاومت بالایی برخوردار بوده ولی معمولا فقط سازمان‌های بزرگ به سراغ استفاده از آن می‌روند.حال سوال این است که چرا اغلب توصیه می‌شود برای استقرار کد به سراغ Jenkins بروید؟زیرا با وجود تمامی نقص‌هایشان بسیار محبوب بوده و در بسیاری موارد از صنعت مورد استفاده قرار می‌گیرند.بلد بودن کار با Jenkins و به طور مشخص JenkinsFile یک مزیت بزرگ برای آینده شغلی شما محسوب می‌شود و قابل چشم‌پوشی نیست.به گفته بسیاری از افراد، در زمان یادگیری Jenkins، این اطمینان را حاصل کنید که خط جدید BlueOcean را دنبال می کنید نه مسیری قدیمی‌تر Jenkins jobs  را.این مسئله از اهمیت بالایی برخوردار می‌باشد زیرا خط CI / CD شما در کنار Repo های GitHub  یا GitLab قرار دارد. این روش خط خود یک نسخه کد شده است!همه چیز کد استبرنامه شما، نحوه استقرار آن، نحوه نظارت، چگونگی پیکربندی آن، و... کلیه تکه‌ کدها، ذخیره شده در GitHub / GitLab /  یا هر جای دیگر... هر آنچه که به درستی نسخه شده است را شامل می‌شود.هدف، ایجاد یک محیط بدون اصطکاک برای توسعه دهندگان اصلی (مهندسان نرم افزارهایی است که کد ویژگی ها را می نویسند) است.به عنوان مثال، من باید قادر به نوشتن میکروسرویس کوچک خود باشم، هر تست را که لازم بدانم اضافه کنم، یک Jenkinsfile اضافه کنم، پیکربندی monitoring-as-code را اضافه کنم، پارامترهایم را در برخی از فایل‌های &quot;env.yaml&quot; مشخص کنم، همه آن را در یک repo ذخیره کنم. آن را آزمایش کنم، مستقر کنم (به صورت ارغوانی یا آبی / سبز) و وقتی این کار را شد برای من ایمیل بفرستد!هدف این است! در واقع، این همان اصل رسالت اصلی مهندسان DevOps است.گزینه‌های دیگر به جای Jenkinsهمانطور که قبلا گفته شد، Jenkins محبوبیت زیادی پیدا کرده است. البته سرویس‌های دیگری هم وجود دارند که کارایی مناسبی دارند ولی جامعه کاربران کمتری را به خود اختصاص داده‌اند.یکی از این سرویس‌ها CodeDeploy خود AWS است. هرچند محدودیت‌هایی در آن وجود دارد اما توسعه‌دهندگان CodeDeploy طی سال‌های گذشته پیشرفت‌های چشمگیری در آن ایجاد کرده اند.مورد دیگر GitLab CI است. اگر سازمان شما از GitLab  استفاده می‌کند، احتمالاً باید به دلیل یکپارچگی با سایر محصولات  GitLab از آنجا شروع کنید.در انتها، GitHub  محصول جدیدش به نام Actions  را رونمایی کرد که قرار است اتوماسیون خود آنها باشد.واقعاً، من فکر نمی‌کنم ابزار اهمیت بالایی داشته باشد. آن چیزی که اهمیت دارد این است که بدانیم همه چیز، از جمله خطوط استقرار کد شما، نسخه گذاری شده‌اند و هیچ چیز به مرحله عملیاتی شدن نمی‌رسد مگر اینکه از سمت محیط توسعه بیاید.صرف نظر از این، اگر از Jenkins شروع می‌کنید، سعی کنید آن را به عنوان یک کانتینر اجرایی کنید. این کار زیاد دشوار نیست و فرصتی عالی برای یادگیری چگونگی استقرار یک سرور Jenkins با کانتینر خواهد بود.در حقیقت، شما می توانید ساده و بدون هیچگونه ابزار مدیریت جمعی کانتینر، که موضوع مقاله بعدی است، شروع کنید. گوش به زنگ باشید!منبع:How To Become a DevOps Engineer In Six Months or Less - part 5</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 11:40:26 +0330</pubDate>
            </item>
                    <item>
                <title>رایانش ابری و متخصصین علوم داده</title>
                <link>https://virgool.io/@arabshahip/%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4-%D8%A7%D8%A8%D8%B1%DB%8C-%D9%88-%D9%85%D8%AA%D8%AE%D8%B5%D8%B5%DB%8C%D9%86-%D8%B9%D9%84%D9%88%D9%85-%D8%AF%D8%A7%D8%AF%D9%87-ds9drnhpz8qf</link>
                <description>علوم داده در‌واقع اصطلاحی‌ست که بیانگر تقاطع بسیاری از موارد مهم است. در مقاله‌ای با عنوان &quot;اطلاعات داده چیست؟ و متخصصین چه کاری انجام می دهند&quot; در رابطه با متخصصین علوم داده توضیحاتی ارائه شده است. این تخصص اغلب شامل موارد زیر است:حوزه تجارتاحتمال و آمارعلوم کامپیوتر و برنامه‌نویسی نرم‌افزارارتباط کتبی و کلامیسومین مورد به نوعی تمام آن چیزی‌ست که افراد برای درک دانش علوم کامپیوتر و برنامه‌نویسی نرم‌افزار باید به آن آگاه باشند.در حالی که برای متخصصین داده فعال، به طور واضح آشکار نیست، باید بدانید که این بخش، بخش‌های دیگر نظیر DevOps، خطوط فعالیت داده، مهندسی داده‌ها، تجزیه‌وتحلیل تخصصی داده، انواع مختلف پایگاه داده، ساخت و استفاده از راه‌حل‌های نرم‌افزاری و... را نیز شامل می‌شود. همچنین متخصصین داده‌ها باید در برنامه‌نویسی مهارت کاملی داشته باشند هر چند که این امکان وجود دارد هیچ تجربه و یا تجزیه‌وتحلیلی از علوم کامپیوتر، مفاهیم برنامه‌نویسی و معماری و تولید زیرساخت‌های نرم‌افزاری نداشته باشند. وقتی شخصی در علوم داده مشغول به فعالیت می‌شود به این درک می‌رسد که باید Python و یا R را بر روی رایانه خود نصب کرده و سپس کد را در یک محیط توسعه یکپارچه محلی یا IDE همانند برنامه   Jupyter NoteBook یا RStudio به اجرا درآورد.علاوه‌براین، هرچقدر که تجزیه‌وتحلیل پیشرفته رواج بیشتری پیدا کند و تیم‌های متخصصین علوم داده رشد بیشتری می‌نمایند، به همان اندازه نیاز بیشتری به ایجاد راه‌حل‌های مشترک برای بینش تحویل، تجزیه و تحلیل و پیش‌بینی سیستم ها و... احساس می‌شود. تحقیقات قابل چاپ و ابزارهای نوت‌بوک به همراه کنترل کننده های منبع کد مانند گیت و... ، بخشی از راه‌حل موجود به حساب می‌آیند، درحالی‌که امروزه از ابزارهای آنلاین و سیستم عامل‌های آنلاین مبتنی بر ابر برای رسیدن به اهداف استفاده می‌شود.در برخی موارد نیاز به همکاری افراد خارج از علوم داده و متخصصین علوم داده دیده می‌شود، خصوصا زمانی که متخصصین علوم داده باید برای دستیابی به اهداف‌ مربوط به کسب و کار استقرار پیدا کنند. به این ترتیب، ذینفعان یک پروژه علوم داده می‌توانند شامل مدیران، مسئولان بخش و سایر کارکنان تیم مانند طراحان، مهندسین داده، تحلیلگران و... باشند.این مقاله در نظر دارند به متخصصین علوم داده یک بینش در رابطه با آن چیزی که خارج از لپ‌تاپ‌ها یا سیستم‌های کاری رخ می‌دهد، خصوصا زمانی که به سراغ بهره‌گیری از راه‌حل‌های علوم داده برای گسترش قابلیت‌های محاسباتی و اطلاعاتی می‌روند توضیحاتی ارائه دهد. با توجه به تجربه‌ای که در مباحث خاص از علم داده در اختیارمان هست. این مقاله تمامی متخصصین علوم داده در تمامی سطوح مهارتی را شامل می‌شود.ابر دقیقا چیست؟این روزها بسیاری از افراد همچنان نتوانسته‌اند درک درستی از فضای ابری داشته باشند. علاوه‌براین، بسیار آن را فرضی و انتزاعی می‌دانند. بهتر است قبل از اینکه به سراغ مفهوم دقیق و کامل از فضای ابری برویم، کمی نسبت به مفاهیم کلیدی اطلاعات کامل‌تری بدست آوریم.زمانی که رایانه‌ها منابع مشترک خود را به یکدیگر متصل می‌کنند، شبکه‌ای را به وجود می‌آورند که اینترنت یکی از بزرگ‌ترین و مشهورترین آن شبکه‌های رایانه‌ای محسوب می‌شود. شبکه‌های محلی مانند (LAN) یا (SSID) Wi-Fi Service Set Identifier نیز که در آن چندین کامپیوتر به یکدیگر متصل می‌شوند از دیگر نمونه‌های شبکه می‌باشند که هرچند بسیار کوچک‌تر بوده اما منابع آن شامل صفحات وب، رسانه، ذخیره‌داده، سرور برنامه، چاپ‌گر و... می‌باشد.از رایانه‌ها در یک شبکه با عنوان گره نام‌برده می‌شود که با استفاده از پروتکل‌هایی مانند پروتکل انتقال (HTTPS) HyperText، پروتکل کنترل انتقال (TCP)/پروتکل اینترنت (IP) و.... در ارتباط با یک‌دیگر هستند. این ارتباطات در به‌روزرسانی وضعیت، نظارت، درخواست و پاسخ و بسیاری از موارد دیگر مورد استفاده قرار می‌گیرد.برنامه‌ها و داده‎ها معمولا در رایانه‌های واقع در یک مرکز داده میزبانی می‌شوند. این مرکز کلیه زیرساخت‌های لازم از قبیل برق، سرمایش، امنیت، محافظت در برابر بلایای طبیعی و... را برای نگه‌داری و اجرای موفقیت‌آمیز تعداد زیادی از رایانه‌هایی که در دسترس شرکت‌ها و یا به‌طور کلی در دنیای خارج هستند فراهم می‌کند.با توجه به‌اینکه رایانه و ذخیره‌سازی با گذر زمان نسبتا به یک کار آسان و ارزان تبدیل شده است، امروزه متخصصان به سراغ بهره‌گیری از راه‌حل‌های چندین کامپیوتری رفته‌اند که مقیاس‌پذیری آن هزینه زیادی را به دنبال ندارد. درواقع در صورت نبود امکان مقیاس‌پذیری، تنها با خرید یک دستگاه فوق‌العاده قدرتمند و گران‌قیمت می‌توان خواسته‌های بسیاری از شرکت‌ها را برطرف نمود. اما با وجود مقیاس پذیری، حتی اگر یکی از رایانه‌ها از کار بیافتد، سیستم این توانایی را دارد تا به‌صورت خودکار مقیاس را بر روی سیستم تحمیل کند.امروزه توئیتر، فیسبوک، اینستاگرام، اسنپ‌چت، نتفلیکس و یوتیوب، نمونه‌های کاملی از برنامه‌های مبتنی بر فضای ابری هستند که باید از هر دو روش برای مقیاس‌پذیری استفاده نمایند. زمانی که برنامه پایین است دیدن برنامه‌های آن‌ها تقریبا غیرممکن است، نکته قابل توجه این است که آن‌ها این توانایی را دارند تا میلیون‌ها کاربر را به صورت روزانه که با سیستم‌عامل‌های خود درگیر هستند مدیریت نمایند.زمانی‌که یک گروه خاصی از رایانه به شبکه متصل می‌شوند و برای دستیابی به یک کار یا مجموعه‌ای از کارها در کنار هم به فعالیت می‌پردازند، از آن با عنوان خوشه یاد می‌شود. یک خوشه را می‌توان همانند یک کامپیوتر تصور کرد، اما با این تفاوت که توانایی ارائه مقایسه با یک دستگاه واحد در جهت پیشرفت‌های گسترده‌ در عملکرد، در دسترس بودن و مقیاس‌پذیری را دارد.اصطلاح سیستم‌های محاسباتی توزیع‌شده اغلب به نرم‌افزارهای یک سیستم گفته می‌شود که برای اعمال وظایف خاص روی خوشه ها نوشته شده‌اند مانند Hadoop ، Spark و MapReduce .در نهایت، برای تعریف فضای ابری باید بدانید علاوه‌بر منابع اشتراکی که در قسمت فوق به آن اشاره کردیم، سایر منابع مهم نیز می‌توانند به عنوان یک راه‌حل شامل سرورها، خدمات، میکروسرویس‌ها، شبکه‌ها و... نمود پیدا کنند. فضای ابری درواقع فضایی را توصیف می‌کند که یک حزب منفرد، گروهی از رایانه‌های شبکه‌ای و منابع مشترک را به طور معمول برای میزبانی و ارائه راه‌حل‌های مبتنی بر نرم‌افزار مدیریت می‌کند. با توجه به این تعریف، در‌حالی‌که قطعا اینترنت یک شبکه محسوب ‌می‌شود اما از آن به عنوان یک فضای ابری یاد نمی‌شود.علوم داده در فضای ابریدر این مقاله محاسبات ابری و سایر مفاهیم مرتبط تا عمق مناسبی مورد بحث قرار گرفته است. اگر با فرآیند علوم داده آشنایی داشته باشید، به خوبی می‌دانید که به طور معمول گردش دانش و علوم داده از طریق رایانه‌های متخصصین صورت می‌گیرد. رایانه از زبان‌های مختلفی مانند پایتون و R پشتیبانی می‌کند و متخصصین هم IDE های مورد علاقه خود را به کار می‌گیرند. راه‌اندازی محیط‌های دیگر توسعه نیازمند نصب بسته‌های مربوطه یا مدیریت آناکوندا و یا به‌کارگیری بسته‌های جداگانه است.زمانی‌که توسعه محیط به خوبی پیش رود، روند کار علوم داده به صورت کاملا معمولی آغاز می‌شود، دقت داشته باشید که داده‌ها تنها چیزی هستند که در اکثر موارد مورد نیاز می‌باشند. مراحل گردش کار تکراری به‌طور معمول شامل موارد زیر است:کسب اطلاعاتتجزیه و تحلیل، انتقال، تغییر شکل و حفظ داده‌هاتجزیه و تحلیل و استخراج داده‌ها، تجزیه و تحلیل داده‌های اکتشافی (EDA)، آمار و....ساخت، اعتبار و مدل‌های آزمایشی مانند پیش‌بینی، توصیه‌ها و... . توجه داشته باشید که در صورت ساخت مدل‌ها، پس از شناسایی الگوها، باید بینش عملی، استخراج اطلاعات مفید، نوشتن گزارش‌ها و... آغاز شود. در این‌جا این آموزش به &quot;ایجاد یک محصول قابل تحویل&quot; کمک می‌کند.تنظیم و بهینه‌سازی مدل یا محصول قابل تحویلبا این وجود، گاهی اوقات، انجام کلیه موارد مرتبط با علوم داده و یا وظایف بزرگ مرتبط به داده‌ها در یک محیط توسعه داده شده محلی امکان‌پذیر و عملی نمی‌باشد. در این قسمت لیستی از دلایل آن را ارائه می‌دهیم:مجموعه داده‌ها بسیار بزرگ هستند و در حافظه (RAM) سیستم توسعه برای آموزش مدل یا تجزیه وتحلیل‌ها جای نمی‌گیرد.قدرت پردازش محیط توسعه (CPU) برای انجام کارها در مدت زمان معقول در آن موضوع خاص کافی نیست.برای تحویل نیز باید به محیط تولید انتقال پیدا کند و احتمالا به عنوان یک جزء در یک برنامه بزرگ‌تر ( برای مثال، برنامه وب، پلت‌فرم SaaS و... ) درج شود.صرفا ترجیح داده می‌شود از یک ماشین سریع‌تر و قدرت‌مندتر (RAM، CPU و....) استفاده کرده و بار لازم را بر دستگاه توسعه محلی تحمیل نکنند.زمانی که سیستم در چنین موقعیتی قرار می‌گیرد، گزینه‌های مختلفی در دسترس قرار دارد. به‌جای استفاده از دستگاه توسعه محلی علوم داده، معمولا افراد کار محاسبات را به یک دستگاه یا یک ماشین مجازی مبتنی بر ابر ( AWS EC2, AWS Elastic Beanstalk، سرویس سرو یا دیگر سرویس‌های مناسب ابرآوند) بارگذاری می‌کنند. از مزیت‌های استفاده از ماشین‌های مجازی و خوشه‌بندی مقیاس خودکار این است که می‌توانند در صورت لزوم آن‌ها را از بین برده و متناسب با نیازهای محاسبات و ذخیره‌سازی معماری نمایند.در رابطه با استقرار محصول تحویل دادنی در یک محیط تولید که از آن با عنوان بخشی از برنامه بزرگ‌تر استفاده می‌شود گزینه‌ها و چالش‌های زیادی وجود دارد که باید در نظر گرفت.علاوه‌براین راه‌حل‌ها، ابزارهای دانش داده مبتنی بر فضای ابری و یا داده‌های سفارشی تولید شده نیز می‌توانند مورد استفاده قرار گیرند که با ابزارهای نوت‌بوک مانند Jupyter به خوبی کار می‌کنند. این موارد تا حد زیادی به عنوان داده‌های بزرگ، یادگیری ماشین و API های هوش مصنوعی در دسترس هستند و گزینه‌هایی مانند پلت‌فرم هوش مصنوعی AWS ، Databricks ، Google Cloud Platform Datalab و Machine Learning و موارد دیگر را در بر می گیرند. نرم‌افزار مقیاس‌پذیر و مجموعه معماری داده‌های بزرگ نیز می‌تواند یک مکمل عالی برای محاسبات فضای ابری باشد.معماری نرم‌افزار و ویژگی‌های کیفیتمعماری نرم‌افزار شامل معماری یک سیستم نرم‌افزاری مبتنی بر فضای ابری است که یک محصول، خدمات یا سیستم محاسباتی را به نمایش می‌گذارد. همچنین این امکان وجود دارد که شما از اصطلاحات معماری سیستم یا نرم‌افزار به صورت یکسان استفاده نمائید.بخشی از معماری نرم‌افزار به انتخاب زبان‌ها، فن‌آوری مناسب برنامه‌نویسی، مولفه‌ها، چهارچوب‌ها، سکوها و.... ارتباط دارد. این امر می‌تواند مورد توجه بسیاری از افراد خصوصا پیرامون سیستمی که هرگز تبادل انجام داده قرار گیرد. این جنبه از معماری نرم‌افزار نیاز به مهارت، دانش و تجربه به‌دست آمده توسط شخص مربوطه در گذر زمان دارد.یکی دیگر از جنبه‌های مهم سیستم‌ها و معماری و مهندسی نرم‌افزار به اصطلاح ویژگی‌های کیفی و یا الزامات غیرکاربردی آن است. این امر خصوصا در ایجاد راه‌حل‌های تولیدی در دنیای واقعی نیز صدق می‌کند.الزامات غیرکاربردی عبارتند از:دسترسیکارآییقابلیت اطمینانمقیاس‌پذیریقابلیت توسعهقابلیت استفادهمدولار بودنقابلیت استفاده مجدددر این مقاله شما به طور مختصر نسبت به چهار مورد از مهم‌ترین آنها یعنی در دسترس بودن، عملکرد، قابلیت اطمینان و مقیاس‌پذیری آشنا شدید. توجه داشته باشید که این بحث به معنای سطح بالایی بوده و به تعاریف مبتنی بر معیارها یا الزامات مربوط به این خصوصیات کیفیت ارتباطی ندارد.در دسترس بودن دقیقا سیستمی را تعریف می‌کند که به درستی در حال انجام کار است. این می‌تواند معانی زیادی را با خود به همراه داشته باشد زیرا با قابلیت اطمینان و مقیاس‌پذیری، وابستگی بسیار زیادی دارد. راه‌اندازی صحیح نیز این معنی را می‌دهد که سیستم مورد نظر در هر زمان که نیاز باشد مشغول به کار می‌شود که این کار می‌تواند توسط کاربر نهایی صورت گیرد که سعی در استفاده از سیستم مثلا Facebook یا Netflix دارد یا این که مجموعه‌ای از خدمات مبتنی بر فضای ابری مانند پردازش داده را استفاده می‌کند.قابلیت اطمینان اصطلاحی‌ست که بیانگر توانایی سیستم در اجرا و انجام درست کار بدون هیچ‌گونه خرابی و خطاست. هر چقدر که سیستم بتواند در انجام کار خود، عملکرد خوبی از خود در مقابله با خطاهای احتمالی به جای بگذارد، قابلیت اطمینان سیستم بالاتر است. با توجه به این‌که فکر کردن در رابطه با تمام خطاهای ممکن دشوار است، دستیابی به قابلیت اطمینان 100٪ نیز امکان‌پذیر نیست. همچنین خرابی‌ها و خطاها نیز می‌تواند به دلایل مختلفی از جمله وجود مشکل در کد، مشکلات محیطی و منابع محدود ( CPU,RAM ، حافظه دیسک و...) رخ دهد.کارآیی اصطلاحی است که برای توصیف سرعتی که سیستم به انجام کار در یک زمان خاص می‌پردازند مورد استفاده قرار می‌گیرد. به عنوان مثال به YouTube نگاه کنید، انتظار دارید وقتی به تماشای یک فیلم می‌روید، در مدت زمانی معقول بارگذاری و شروع به پخش شود. هر چه عملکرد گوگل در بهبود سرعت آن بهتر باشد، سرعت پخش فیلم بیش‌تر شده و زودتر پخش آن آغاز خواهد شد و در نتیجه کاربران از این روند شاد می‌شوند و درصد امکان ترک برنامه کمتر می‌شود.سرانجام مقیاس‌پذیری برای برخی از برنامه‌های کاربردی بسیار مهم است زیرا اصطلاحی‌ست که از آن برای نشان دادن توانایی سیستم در حفظ سطح معینی از عملکرد با وجود افزایش بار روی سیستم استفاده می‌شود. بار اصطلاحی‌ به معنای تعداد درخواست‌های همزمان به یک سیستم است.یک مثال عالی که در آن میزان مقیاس‌پذیری مورد سنجش قرار می‌گیرد بلیط‌های فروش رفته برای یک تیم ورزشی یا اجرای موسیقی است. با توجه به محبوبیت، تعداد درخواست‌های همزمان برای خرید بلیط در یک برنامه وب مانند Ticketmaster می‌تواند در اولین فروش بلیط‌ها به صدها هزار نفر برسد. با توجه به توانایی سیستم در مقیاس، این می‌تواند عملکرد برنامه را به شدت کاهش دهد و حتی سیستم را خاموش نماید. که مطمئنا این سناریو به هیچ عنوان قابل قبول نیست.برای برطرف کردن این نیاز، از تکنیک‌هایی برای مقیاس کردن سیستم یا مقیاس‌پذیری آن استفاده می‌شود. مقیاس‌کردن درست زمانی رخ می‌دهد که دستگاه محاسباتی موجود در سیستم با دستگا‌ه‌های قدرتمند مانند (cpu و هسته‌های بیشتر و...) و دستگاه‌های قابل اعتماد با منابع بزرگ‌تر مانند حافظه سیستم یا RAM جایگزین شوند. انجام این کار اغلب هزینه سنگینی را به دنبال دارد.از طرف دیگر مقیاس‌پذیری دقیقا زمانی مورد استفاده قرار می‌گیرد که از برنامه‌هایی کم‌هزینه‌تر بهره‌ گیرند. برنامه‌هایی که به صورت جداگانه از هیچ قدرت خاصی بهره‌مند نیستند اما وقتی به عنوان یک گروه مورد استفاده قرار می‌گیرند توانایی تحمل بار بر روی سیستم را دارند. از آنجا که راه‌حل‌های موجود به چندین رایانه احتیاج دارد این مسئله بسیار مهم است که سیستم‌های راه‌اندازی شده نیز به صورت خودکار به کنترل سناریو‌های یک یا چند کامپیوتر (گره) خرابی و.... بپردازند.نتیجه‌گیریامیدواریم در این مقاله نکات مطرح شده در رابطه با جنبه‌های مهم علوم داده فراتر از توسعه محلی در چهارچوب راه‌حل‌های تولیدی مناسب دنیای واقعی کمک شایانی در برطرف کردن مشکلات شما کرده باشد. باید بدانید رایانش ابری و معماری مبتنی بر ابر، نیاز به قدرت و منابع محاسباتی اضافی را کاملا برطرف می‌کند.</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 11:31:47 +0330</pubDate>
            </item>
                    <item>
                <title>چند مستاجری پس از 10 سال رایانش ابری</title>
                <link>https://virgool.io/@arabshahip/httpsvirgoolio%DA%86%D9%86%D8%AF-%D9%85%D8%B3%D8%AA%D8%A7%D8%AC%D8%B1%DB%8C-%D9%BE%D8%B3-%D8%A7%D8%B2-10-%D8%B3%D8%A7%D9%84-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4-%D8%A7%D8%A8%D8%B1%DB%8C-iyq19shmbmvr</link>
                <description>تقریبا ده سال از عمر آمازون EC2 می‌گذرد. این مسئله نشان می‌دهد که رایانش ابری کاملا واقعی بوده و توانسته هزاران سیستم را به اجرا درآورد.چند مستاجری مفهومی است که از ابتدای فعالیت رایانش ابری با آن همراه بوده است به این صورت که مالک می‌تواند امکانات و تجهیزات را همزمان در فضای خود به اشتراک بگذارد. بهترین نمونه‌ای که برای توصیف آن وجود دارد، یک آپارتمان است که ضمن به اشتراک گذاشتن منابع مانند لوله‌کشی، فضاهای مشترک، امنیت، نگه‌داری و... فضای اختصاصی نیز در اختیار مستاجران قرار می‌گیرد تا هزینه اجاره نیز پرداخت شود. دقت داشته باشید که هزینه منابع اشتراکی مستاجران باید کمتر از هزینه در اختیار داشتن منابع اختصاصی آن‌ها باشد.یک برنامه چند مستاجری در رایانش ابری به طور معمول می‌تواند سه نوع منبع را مدیریت نماید: اجرای OLTP، ذخیره داده‌ها و اجراهای دسته‌ای OLAP (تجزیه و تحلیل). به عنوان مثال: به برنامه‌ای فکر کنید که دارای یک نرم‌افزار وب یا نرم‌افزار تلفن هوشمند باشد. این برنامه مجموعه‌ای از خدمات را ارائه می‌دهد که پس زمینه برنامه‌های پایگاه داده و سیستمی را برای پردازش آنالیز خود فراهم می‌کند. از آنجا که وضعیت معماری‌های امروزه با استفاده از سرورهای بدون حالت، بانک‌های اطلاعاتی جداگانه و سیستم‌های تجزیه و تحلیل جداگانه ساخته شده است، می‌توانیم با کمک گرفتن از چند مستاجری به صورت جداگانه به اجرا درآوردن و حتی تجربه و تحلیل داده‌های جانبی بپردازیم.اجرای برنامه چند مستاجریرایانش ابری می‌تواند اشتراک‌گذاری را در سطوح مختلف پیاده‌سازی نماید.به هر کاربر دستگاهی جداگانه بدهد.به هر کاربر VM اختصاصی خود را بدهد.به هر کاربر کانتینر مخصوص خود را می‌دهند. ( به عنوان Docker)اجازه دهید کاربران پردازش‌ها را به اشتراک بگذارند. ( به عنوان مثال JVM)اگر نگاهی به لیست بیاندازید متوجه خواهید شد که هر کدام از آن‌ها منابع بیشتری را به اشتراک گذاشته‌اند، اما از امنیت کمتری برخوردارند. زیرساخت‌هایی که با عنوان سرویس IaaS شناخته می‌شوند توانسته‌اند سطح دو را در لیست فوق به خود اختصاص دهند. ارائه‌دهندگان PaaS و SaaS نیز باید سطوح  2 و 3 را انتخاب نمایند.اگر این کار به درستی انجام شود یکی از مهم‌ترین ویژگی‌ها و مزایای رایانش ابری «یعنی پرداخت برای آن چیزی که استفاده کرده‌اید» برای شما به اجرا درآمده است. در واقع نباید هیچ هزینه‌ای برای در دسترس بودن به شما اعطا شود. بلکه شما فقط در صورت استفاده از منابع باید به‌ازای آن مبلغی را پرداخت نمائید. برای مثال IaaS مانند AWS، تقریبا رایگان است زیرا سخت‌افزار را از طریق VMs در میان کاربران به اشتراک گذاشته می‌شود.نکته اینجاست که &quot;پرداخت به خاطر آن چیزی که استفاده می‌کنید&quot; برای PaaS و SaaS رایگان نیست. شما باید یک ارائه‌دهنده رایانش ابری با عنوان XCloud&quot; را فرض کنید که یک میلیون کاربر در اختیار دارد و برنامه‌های PaaS/SaaS را در XCloud مستقر کرده‌ است. مطمئنا به این مسئله پی خواهید برد که تنها چند هزار نفر از این برنامه‌ها فعال خواهد بود به این صورت که تشخیص آن امکان‌پذیر نیست. بنابراین زمانی که یک کاربر برای AppY به XCloud می‌رود ، نیاز است که سروری را در اختیارش بگذاریم. در واقع دو انتخاب پیش‌رو داریم:حداقل یک نمونه از هر برنامه را به اجرا درآوریم.در زمان ورود کاربر، به سرعت برنامه را راه‌اندازی کنیم.هر چند که به عقیده بسیاری از افراد، استفاده از گزینه اول کاملا بی‌فایده است. در واقع شما باید تصور کنید که AppY همان Gmail است، مطمئنا گوگل تمایلی به اجرا درآوردن یک VM برای هر حساب Gmail ندارد. اگر آن‌ها تنها یک‌بار برای هر کاربر آن را به اجرا درآورند مطمئنا برای‌شان سخت خواهد بود که تنها در مواقع استفاده از برنامه مبلغی را دریافت نمایند.این تفاوت میان VMها در برابر فرآیند چند مستاجری است. VMها چند ثانیه برای بوت شدن به زمان نیاز دارند و اگر برنامه آن‌ها واقعا ساده نباشد هیچ راهی وجود ندارد که بتوانند آن را در سریع‌ترین زمان ممکن به‌کار گیرند تا در خدمت کاربرانی باشند که تازه‌ به جمع مشتریان اضافه شده‌اند. به طور معمول برنامه باید در کمتر از ده ثانیه به کاربر برگردد.برنامه‌هایی مانند Docker به راحتی می‌توانند این مشکل را برطرف نمایند. آن‌ها VMهای سبک وزنی هستند که در کسری از ثانیه تقویت شده و به انجام فعالیت خود می‌پردازند. اگر کمی به مثال Gmail توجه کنید متوجه خواهید شد که جای هیچ تعجبی نیست اگر برنامه‌های موجود از طریق گوگل وارد شوند. نکته قابل توجه اینجاست که استفاده از Docker به هیچ عنوان نمی‌تواند تضمینی برای سرعت بخشیدن به برنامه‌های شما باشد زیرا امکان اشتباه گرفتن آن با کدهای سایر برنامه‌ها وجود دارد. با این‌حال، در صورت رمز‌گذاری‌های دقیق می‌توانید برنامه‌اهای اضافی را حذف نمائید.نکته جالب دیگر این است که همین مسئله مهم‌ترین دلیل علاقمندی به میکروسرویس‌ها و سیستم‌های مبتنی بر Docker از همان ابتدا است. در واقع اگر سیستم‌ها بتوانند سرعت خدمات‌رسانی به کاربران را افزایش دهند، هزینه‌های اصلی آن‌ها تا حدود زیادی کاهش پیدا می‌کند زیرا نیاز نگه‌داشتن یک نمونه برای تمام مدت در هر برنامه از بین می‌رود. علاوه براین، الگوریتم‌های مقیاس پذیری خودکار به‌طور قابل توجهی ساده می‌شوند زیرا الگوریتم دیگر نیازی به پیش‌بینی بار و نگه‌داشتن نمونه‌ها برای مقابله با زمان‌ راه‌اندازی ندارد.اگر به مقایسه ظرفیت موجود در مقابل فرآیند چند مستاجری بپردازید ( سطح 4 لیست) متوجه خواهید شد که دومی می‌تواند کارآیی بیشتری از خود نشان دهند. مسلما در یک سیستم فعالیت‌های بسیار زیادی صورت می‌گیرد، که اشتراک‌گذاشتن یک فرآیند به صورت گذشته‌نگر ترسناک به نظر می‌آید زیرا باید به برنامه‌نویس پلتفرم، برای عدم خطا اعتماد کنید. از طرفی، جداسازی عملکردها از راهکارهای مهم برنامه نویسی برای افزایش اعتماد‌پذیری به برنامه محسوب می‌شود و استفاده از آن به پایداری برنامه کمک می‌کند.این‌گونه به نظر می‌آید که رایانش ابری برای به اجرا درآوردن برنامه‌های چند مستاجری مبتنی بر سیستم استقرار پیدا کرده است و درواقع سیستم‌ها اغلب عملکرد قابل قبولی از خود ارائه می‌دهند. با نگاهی به گذشته می‌توان درک کرد که این یک انتخاب معقول به حساب می‌آید.سرانجام یک راه‌حل بسیار ساده‌تر وجود دارد که در بسیاری از موارد کاربرد خوبی از خود به جای گذاشته است.شایان ذکر است، اگر سرورهای بدون حالت به استقرار سازمانی دست پیدا کنند امکان چند مستاجری از شما سلب خواهد شد. حال تصور کنید که سرور شما هیچ حالتی ندارد، شما می‌توانید با نگاه کردن به درخواست‌ها، نیاز کاربر را بشناسید و تنها زمانی که کاربر به آن احتیاج دارد برنامه را به اجرا درآورید. این مسئله کمک می‌کند تا شما دیگر به برنامه چندگانه احتیاجی نداشته باشید. در عوض می‌توانید مجموعه‌ای از سرورهای مشترک را برای تمامی کاربران  به اجرا درآورید و با ورود کاربران یک برنامه را به هر برنامه دیگری که می‌خواهید اختصاص دهید. برای داده‌ها نیز می‌توانید به سراغ یک پایگاه داده چند مستاجری بروید. درصورت اجرایی شدن این راه‌حل، پیچیدگی معماری شما را به میزان قابل توجهی کاهش می‌یابد.داده‌های اجاره‌ایدقت داشته باشید که پس از راه‌اندازی مجدد امکان از دست دادن VMها و دیسک‌ها وجود دارد. از همین‌رو، سرورهای اداری چند کاربره مانند پایگاه داده، کارگزاری ها و... بسیار پیچیده‌تر از اجرای آنها در یک برنامه هستند. یک گزینه استفاده از دیسک‌های نصب شده مانند دستگاه‌های S3 یا بلاک است. هر چند که این می‌تواند سرعت برنامه شما را کاهش دهد. در اکثر برنامه‌ها، اغلب از یک سیستم دیتابیس استفاده می‌شود که در بالای سخت‌افزار مستقر شده است.دقت داشته باشید که حتی در قسمت بالایی سخت‌افزار نیز ما باید فضای ذخیره را در بین کاربران به اشتراک بگذاریم. در این راستا چندین انتخاب پیش روی افراد وجود دارد. مقاله Multi Tenant Architecture، داده‌ها را به‌جز انتخاب شماره 5 که در زمان نوشتن وجود نداشت، به صورت زیر ارائه می‌دهد:یک سرور بانک اطلاعاتی برای کاربران در نظر گیرد.بانک اطلاعات چند‌کاربری در اختیار هر کاربر قرار می‌دهد.یک جدول به کاربران اختصاص دهد.یک جدول میان چندین کاربر به اشتراک گذاشته شود.بانک‌های اطلاعاتی چند مستاجریرویکرد شماره 1 و 2 به اشتراک‌گذاشتن سرور پایگاه داده یا بانک اطلاعاتی است که در مجموعه IaaS قابل قبول است. هر چند که برای راه‌اندازی در PaaS یا SaaS گران است. به عنوان مثال نمی‌توان یک میلیون پایگاه داده از هر کاربر را نگه‌داری کرد.رویکرد شماره 3، تهیه جدول برای هر کاربر است که نسبت به شماره 1 و 2 رویکرد بهتری از خود نشان داده است. اما باز هم استفاده از آن برای یک میلیون کاربر سخت خواهد بود.رویکرد شماره 4، در اختیار داشتن یک جدول مشترک میان جمعی از کاربران است که توانسته عملکرد مثبتی را از خود به‌جای بگذارد. با این حال، تمامی کاربران باید یک طرح مشابه را با استفاده از این روش به اشتراک بگذارند که اکثرا این سناریو در سیستم‌های PaaS و SaaS قابل قبول است. این مسئله دقیقا همان چند مستاجری‌ست که برای امنیت بیشتر برنامه‌نویسان باید به سیستم پایگاه داده اعتماد کرده و از ارتکاب اشتباه جلوگیری به عمل آورند. با این وجود، تایید فیلتر SQL به جای تایید کد جاوا و C++ در چند مستاجری آسان‌تر است.رویکرد پنجم اما بهترین رویکرد ارائه شده در جهان در طی چندین سال گذشته به حساب می‌آید. در واقع در صورتی که افراد بتوانند آن را به صورت دقیق به اجرا درآورند، نسبت به سطح 4 عملکرد و جداسازی بهتری را در سطح دیتابیس انجام می‌دهد. هر چند برای جلوگیری از بروز اشتباه باید به توسعه‌دهنده RDBMS نیز اعتماد کنید. علاوه‌براین، توسعه‌دهندگان پایگاه داده نسبت به دامنه اطلاعات بالاتری دارند که امکان ارائه بهترین عملکرد را فراهم می‌آورد.تحلیل چند مستاجریبه لطف داده‌های بزرگی که در اختیار داریم، همه چیز باید تجزیه و تحلیل شود. در اکثر برنامه‌های SaaS، تجزیه و تحلیل به یک مزیت رقابتی تبدیل شده است. الزامات چند مستاجری برای Analytics با موارد استفاده OLTP که تاکنون در نظر گرفته‌اید متفاوت است. اجرای آن‌ها در محیط  PaaS یا SaaS در چالش‌های مختلف به پاسخ نیاز دارد.تجزیه و تحلیل شامل جمع‌آوری داده‌ها، ذخیره‌سازی داده‌ها، داده‌های درحال اجرا و دسترسی کنترل شده به نتایج است. ارائه‌دهندگان رایانش ابری نیز می‌توانند برای تسهیل جمع‎‌آوری داده‌ها اقداماتی را انجام دهند:ابزارهایی را برای ردیابی معاملات اضافه نمایند.به اپراتورهای گردآورنده دسترسی دهند تا کاربران از آن‌ها در برنامه‌های خود استفاده نمایند.یک API همگام سازی داده ارائه دهند تا کاربران بتوانند نسبت به رویکردها اطلاعات کاملی داشته باشند.در واقع هر روش باید با هر رویداد اطلاعاتی سرور میزبان و کاربر ردیابی شود.در حین کار با سیستم، راه‌حل‌های ذخیره‌سازی، تجزیه و تحلیل جمع‌آوری داده‌ها با یکدیگر در هم تنیده شده‌اند. برای اینکه بتوانید پاسخی مناسب برای آن پیدا کنید باید موارد زیر را مورد سنجش قرار دهید:آیا تمامی کاربران به یک طرح مشابه نیاز دارند؟ آیا آن‌ها توانایی تعریف رویدادهای خاص را دارند؟​آیا کاربران برای امنیت بیشتر داده‌ها نیاز دارند که در سطح کاربری خود به فعالیت بپردازند؟آیا کاربران به اجرای تجزیه و تحلیل‌های انجام شده خود بپردازند یا می‌توانند با موارد از پیش تعیین شده به فعالیت خود ادامه دهند؟با توجه به این الزامات، راه‌حل‌ها نیز تغییر می‌کند. نگاهی به هر راه‌حل می‌اندازیم.استفاده از فضای اَبَرمستاجریاگر PaaS به کنترل داده، تجزیه‌وتحلیل داده‌ها و ارائه نتایج نهایی بپردازد، سیستم این توانایی را دارد که کاربران را به سمت سیستم‌ها سوق داده و به کنترل مجوزها بپردازد. هر چند به عقیده بسیاری از افراد، این راه‌حل اندکی خسته‌کننده است اما یک راه‌حل کاملا عادی در برنامه‌های SaaS به حساب می‌آید که در عملکرد بهتر تجزیه و تحلیل کاربرد تاثیر بسیار زیادی می‌گذارد. اگر کاربرد بخواهد تجزیه و تحلیل‌های موجود را خودش انجام دهد، سیستم باید راهی برای انتقال داده‌ها پیدا کند.جداول مشترک که بر‌اساس یک ستون فیلتر شده انددرست همانند ذخیره‌سازی داده‌ها اگر همه کاربران بتوانند جداول را به اشتراک بگذارند، می‌توان با اضافه کردن یک ستون کاربر و سیستم به جدول، به کنترل داده‌ها بپردازیم. این راه‌حل تاکنون عملکرد خوبی از خود به جای گذاشته اما از پیچیدگی‌هایی نیز بهره‌مند است. با توجه به منطق موجود با اضافه کردن داده‌های مستاجر به هر کاربر باید آن را به عنوان بخشی از سوابق داده شناسایی کرد. مزیت دیگر این است که با استفاده از این روش در سیستم PaaS می‌توان مجموعه‌ای از تجزیه و تحلیل را تنها یک‌بار بر روی تمامی داده‌ها با استفاده از اپراتورهای گروه، تقسیم‌بندی کرد.فضای شخصی کاربرانوجود انعطاف در فراهم کردن یک فضای شخصی برای کاربران از اهمیت بالایی برخوردار است. زیرا این قسمت بر روی کنترل نهایی آن تاثیر بسیار زیادی خواهد داشت. این فضا کمک می‌کند تا کاربران سوالات تحلیلی خود را فارغ از سیستم بیرونی مطرح نمایند. نکته اینجاست که برای ایجاد چنین فضایی باید مقدار پولی پرداخت شود که از نظر بسیاری از کاربران گران است.اگر کاربران زیادی وجود داشته باشد، اگر از پایگاه داده معمولی بهره گیریم، تهیه جدول داده برای هر کاربر کاری سخت و مشکل است زیرا آن‌ها برای رسیدگی به میلیون‌ها پایگاه داده طراحی نشده‌اند. همان‌طور که قبلا گفته شد، یک راه حل بسیار ساده وجود دارد و آن این است که از یک بانک اطلاعاتی محلی برای چندین کاربر استفاده نمائید. در غیر این‌صورت، PaaS باید بسیاری از سرورهای پایگاه داده و جداول تقسیم بین آن سرورها را کنترل نماید که انجام این کار بسیار پیچیده خواهد بود.برخلاف روش قبلی که SaaS توانایی تجزیه و تحلیل کارها را داشته، تا کاربران به پردازش داده‌ها بپردازند، در اختیار داشتن فضای شخصی برای هر کاربر نیاز به تجزیه و تحلیل دارد. غالبا شروع کار تحلیلی از سرعت قابل توجهی برخوردار است. از این رو، برخلاف اجرای یک کار واحد، به همراه تعداد زیادی از کارها منجر به کند شدن آن‌ها خواهد شد. در این تنظیم، SaaS به یک درگاه محاسباتی بسیار بزرگ‌تر نیاز دارد. در واقع چالش این‌جاست که کاربران توانایی کارهای سنگین را داشته باشند. از همین‌رو، SaaS باید راهی برای محدود کردن میزان توان محاسباتی مورد استفاده توسط کاربر واحد پیدا نماید.انجام یک راه حل ترکیبی نیز امکان‌پذیر است که در آن SaaS شمای مشترکی را برای داده‌های مشترک فراهم آورد و فضای شخصی کاربران را برای داده‌ها تعریف نماید. PaaS نیز این توانایی را دارد که برای فراهم آوردن فضای شخصی هزینه‌ای اضافی را برای کاربران ایجاد نماید و از این طریق به محدود کردن تعدادی از کاربران بپردازد. در هر صورت، هزینه می‌تواند متناسب با داده‌های ایجاد شده توسط کاربر و ساختار آن‌ها تنظیم شود.نتیجه گیریبعد از 10 سال از راه‌اندازی رایانش ابری، هزاران سیستم به وجود آمده که از این فضا برای به اجرا درآوردن برنامه‌های خود استفاده می‌کنند. این مقاله به بررسی چند مستاجری، ایده اصلی در رایانش ابری پرداخت. در واقع چند مستاجری توانایی اجرای کار چندین کاربر در همان سیستم را دارد. در حین تحقیق در این راستا نیز، رایانش ابری ممکن است بین چندین سطح برای حفظ امنیت بیشتر از اشتراک گذاشتن سخت‌افزار از VMها استفاده نمایند تا فرآیندی مشابه را از طریق برنامه‌نویسی به اجرا درآورد. در این مقاله همچنین در رابطه با چگونگی ساخت یک برنامه با چندین مستاجر صحبت کردیم. یک برنامه با چند کاربر در رایانش ابری که به مدیریت سه نوع منبع اجرای داده‌ها، ذخیره داده‌ها و اجرای دسته‌ای  OLAP (تجزیه و تحلیل) می‌پردازد. در رابطه با هر کدام از آن‌ها صحبت کردیم و مشاهده شد که اجراهای انجام شده در کانتینرها و پایگاه‌های داده نتیجه‌ای همگرا را با خود به دنبال دارد. علاوه‌براین در این مقاله چندین راه‌حل برای پشتیبانی از تحلیل چند کاربر ارائه شده است.منبع: Multi-tenancy after 10 years of Cloud Computing</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Mon, 28 Oct 2019 11:11:35 +0330</pubDate>
            </item>
                    <item>
                <title>راهنمای ابتدایی مفاهیم پایه ای محاسبات ابری مخصوص مبتدیان</title>
                <link>https://virgool.io/@arabshahip/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7%DB%8C%DB%8C-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D9%BE%D8%A7%DB%8C%D9%87-%D8%A7%DB%8C-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA-%D8%A7%D8%A8%D8%B1%DB%8C-%D9%85%D8%AE%D8%B5%D9%88%D8%B5-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C%D8%A7%D9%86-h5oshp0igsdl</link>
                <description>بسیاری از بزرگان علم کامپیوتر رایانش ابری را به عنوان یک روش مفید برای رسیدن به خواسته‌ها می‌داند. در واقع بهبود کسب‌وکار دقیقا همان چیزی‌ست که صاحبان سرمایه می‌خواهند به آن دست پیدا کنند. اما چه کسی تصور می‌کرد که فضای ابری امروزی همچون ابزار دیجیتالی در نظر گرفته شود. قرن 21 به عنوان هزاره سرعت و پیشرفت تکنولوژی بوده است. امروزه رشد غیرقابل کنترل دانش بشری منجر‌به نوآوری‌های بسیار زیادی شده و این‌گونه به نظر می‌آید که هرگز پایان نمی‌یابد.حتی اگر رایانه‌های ابری بتوانند نقش خود را به خوبی ایفا کنند اما بازهم این امکان وجود دارد که توسط هوش مصنوعی و  Blockchain کنار گذاشته شوند. هر چند که این روزها فن‌آوری‌های جدید با تعداد زیادی از داده‌ها سروکار دارند. به عبارت بهتر؛ بسیاری از سرورها که به عنوان بخشی از فناوری ابری شناخته می‌شوند این توانایی را دارند تا داده‌هایی را که یک هوش مصنوعی می‌تواند به آن‎‌ها دسترسی داشته باشد و از آن‌ها برای تصمیم‌گیری استفاده نماید را در راستای رسیدن به اهداف به‌کار گیرد. باید بدانید که امروزه هوش مصنوعی به راحتی می‌تواند داده‌های جدید خود را به فضای ابری انتقال دهد.  لازم به ذکر است که همین امر در رابطه با BlockChain و سایر فناوری‌های موجود نیز صدق می‌کند. در واقع رایانش ابری نه تنها ابزاری برای دیجیتالی شدن است بلکه در پیشرفت فن‌آوری روز دنیا نیز نقشی موثر ایفا می‌کند.تهیه منابع IT و برنامه‌های درخواستی از طریق اینترنت با قیمت‌های مبتنی بر پرداخت بر اساس میزان استفادهبه عبارت ساده‌تر؛ رایانش ابری ارائه خدمات رایانه‌ای-سرور، ذخیره‌سازی، پایگاه داده، شبکه، نرم‌افزار، آنالیزور و... از طریق اینترنت (فضای ابری) می‌باشد. به شرکت‌هایی که این سرویس‌های محاسباتی را ارائه می‌دهند، ارائه‌دهنده فضای ابری گفته می‌شود و معمولا خدمات محاسبات ابری را نیز بر‌اساس استفاده، همانند قبض آب و برق و گاز منزل محاسبه می‌نمایند.باید بدانید چه زمانی که برنامه‌ای را برای به اشتراک گذاشتن عکس با میلیون‌ها کاربر به اجرا درمی‌آورید و چه زمانی که به پشتیبانی فعالیت‌های تجاری حساس می‌پردازید، فضای ابری یک فناوری فوق پیشرفته است که با قیمتی کاملا مقرون به صرفه منابع IT انعطاف‌پذیری را می‌تواند در اختیار شما قرار ‌دهد. زمانی که از رایانش ابری صحبت می‌کنید هیچ نیازی نیست که به سرمایه‌گذاری در سخت‌افزار بپردازید و یا زمان زیادی را برای مدیریت آن‌ها صرف نمائید. در عوض این توانایی را به‌دست خواهید آورد که منابع محاسباتی مورد نیاز خود را با توجه به نوع و اندازه منابع به صورت دقیق و با توجه به آخرین ایده‌های موجود پیاده‌سازی کنید. معمولا رایانش ابری به شما این امکان را می‌دهد، با پرداخت هزینه‌ای جزئی بلافاصله به منابع مورد نیاز خود دسترسی داشته باشید. همواره گفته می‌شود که رایانش ابری راهی آسان برای دسترسی به سرورها، ذخیره سازی، پایگاه داده‌ها و طیف گسترده‌ای از سرویس‌های کاربردی از طریق اینترنت است. ارائه دهندگان فضای ابری همانند خدمات وب‌آمازون، مایکروسافت لاجورد، Google Cloud Platform یا n Swisscloud &quot;Swiss made&quot; nscloud.swiss نیز با سخت‌افزارهای متصل به شبکه مورد نیاز برای سرویس‌های کاربردی خود، منابع مد نظر را مدیریت می‌نمایند.مزایای استفاده از فضای ابریامروزه فضای ابری به عنوان یک فناوری فوق پیشرفته توانسته زندگی روزمره همه ما را تحت تاثیر خود قرار دهد. از همین رو استفاده از راه‌حل‌ها و خدمات موجود در فضای ابری مزایای بسیار زیادی را با خود به همراه دارد. در این قسمت به معرفی این مزایا می‌پردازیم:⦁ کاهش هزینه‌هایکی از شاخص‌ترین مزایایی که در رابطه با فضای ابری دیده می‌شود عدم وجود هزینه فعالیت و نگه‌داری مراکز داده است. در واقع صاحبان کسب‌وکار باید بر روی پروژه‌هایی متمرکز شوند که به جای زیرساخت‌ها، شرکت آن‌ها را در بازار کار متمایز نماید. خوشبختانه رایانش ابری این اجازه را می‌دهد تا بر روی مشتریان تمرکز لازم وجود داشته باشد.⦁ سرعت بالازمانی که به سراغ استفاده از فضای ابری می‌روید متوجه این مسئله خواهید شد که منابع جدید IT، وابستگی شدیدی به کلیک دارند. در واقع زمان استقرار منابع به طور قابل توجهی کاهش پیدا می‌کند و این مسئله در سرعت و کاهش هزینه‌ها تاثیر بسیار زیادی خواهد داشت.⦁ تاثیر هزینه‌های متغیربه جای اینکه فکر خود را معطوف سرمایه‌گذاری زیاد بر روی مراکز داده و سرورها نمائید، تنها با پرداخت مبلغی جزئی به سراغ استفاده از فضای ابری بروید. مطمئن باشید که زودتر از تصورات خود به نتیجه دلخواه دست پیدا خواهید کرد.⦁ ظرفیت انعطاف‌پذیریهمواره یک عدم اطمینان در تعیین نیازهای زیرساخت‌ها وجود دارد. از همین رو مشتریان در فضای ابری می‌توانند به همان میزان و یا کمتر به منابع مورد نیاز خود دسترسی پیدا کنند و تقاضای خود را با توجه به اخطار‌های موجود کاهش دهند.انواع سرویس‌های فضای ابری: IaaS, PaaS, SaaSدر وهله اول باید بدانید که استفاده از فضای ابری به سه دسته خلاصه می‌شود که معمولا زیرساخت‌ها به عنوان سرویس (IaaS)، بسترهای نرم‌افزاری به عنوان یک سرویس (PaaS) و نرم‌افزار به عنوان سرویس (SaaS) شناخته می‌شوند. برای استفاده از این خدمات باید به نوع نیازهای خود و البته سطح بهینه موجود توجه ویژه‌ای داشته باشید. اما باید بدانید که مایکروسافت این سه سرویس را به شرح زیر تعریف می‌کند:-خدمات زیرساختی به عنوان سرویس (IaaS): همواره از این سیستم به عنوان اساسی ترین گروه خدمات رایانش ابری یاد می‌شود. با استفاده از IaaS، زیرساخت‌های IT، سرورها و ماشین‌های مجازی ( VMs)، ذخیره‌سازی، شبکه‌ها و... می‌توانند سیستم عامل‌ها را تنها با پرداخت مبلغی ناچیز مدیریت نمایند.- بستر نرم‌افزاری به عنوان یک سرویس (PaaS): این بسترها به سرویس‌های رایانش ابری گفته می‌شود که یک محیط درخواستی برای توسعه، آزمایش، ارائه و مدیریت نرم‌افزارهای موجود ارائه دهند. PaaS به‌گونه‌ای طراحی شده است که بدون هیچ‌گونه نگرانی زیرساخت‌های اساسی سرورها، ذخیره‌سازی، شبکه و بانک‌های اطلاعاتی را توسعه می‌دهد.- نرم‌افزار به عنوان سرویس (SaaS): این سرویس روشی است که کمک می‌کند برنامه‌های نرم‌افزاری از طریق اینترنت، به صورت تقاضا و براساس اشتراک نمایش داده شوند. با SaaS ارائه‌دهندگان فضای ابری به مدیریت نرم‌افزارها و زیرساخت‌های سرویس میزبان می‌پردازند و هرگونه تعمیر و نگه‌داری را کنترل می‌نمایند.چگونگی استقرار فضای ابری: عمومی، خصوصی و ترکیبیسه روش مختلف برای به‌کارگیری از منابع فضای ابری وجود دارد که از جمله عبارتند از: عمومی، خصوصی و ترکیبی.⦁ فضای ابری عمومی:فضای ابری عمومی توسط یک ارائه‌دهنده خدمات فضای ابری ارائه شده و توسط آن‌ها نیز اداره می‌شود. همچنین منابع محاسباتی مانند سرورها و ذخیره‌سازی از طریق اینترنت نیز با استفاده از یک مرور ارائه خواهد شد. از برجسته‌ترین ارائه‌دهندگان فضای ابری عمومی میتوان به Amazon AWS یا Microsoft Azure اشاره نمود.⦁ فضای ابری خصوصی:فضای ابری خصوصی که از آن با عنوان منابع محاسبات ابری نیز گفته می‌شود در داخل خانه و منحصرا توسط یک کسب‌وکار یا سازمان منفرد مورد استفاده قرار می‌گیرد. از خصوصیات بارز آن می‌توان به قرار گرفتن آن در دیتاسنتر محل کار شرکت اشاره کرد.⦁ فضای ابری ترکیبیهمان‌طور که از نامش پیداست، فضای ابری ترکیبی از فضای ابری عمومی و خصوصی می‌باشد. از مزیت‌های آن می‌توان به اشتراک گذاری داده‌ها و برنامه‌های کاربردی در میان آنان اشاره کرد. این مزیت کمک می‌کند تا کاربران از انعطاف‌پذیری و گزینه‌های استقرار بیشتری برای انتقال داده‌ها و برنامه‌های خود برخوردار باشند.کاربران چه معیاری برای انتخاب ارائه‌دهندگان فضای ابری دارند؟به عبارت ساده‌تر؛ کاربران به هیچ‌عنوان برای شرکت‌های ارائه‌دهنده فضای ابری تصمیم‌گیری نمی‌کنند. بسیاری از این شرکت‌ها به منظور حفظ توانایی و انعطاف‌پذیری افراد در انتخاب سرویس‌های مختلف ابری به دنبال پیروی از یک استراتژی چند ابری هستند. این روزها به سختی می‌توان ارائه‌دهندگانی همچون n’cloud.swiss را برای مدیریت زیرساخت‌های چند ابری پیدا نمود. n’cloud.swiss در واقع یک جایگزین برای ستون‌های فضای ابری شناخته می‌شود که در یکی از امن‌ترین مراکز داده جهان در سوئیس به اجرا درآمده است. در واقع ایده این است که مشتریان این توانایی را داشته باشند تا با توجه به نیازهای خاص متناسب با محصول، یا به عنوان یک مدل خدمات، یک نسخه اولیه در محیط‌های موجود IT  را در فضای ابری طراحی نمایند. علاوه‌براین، کلیه مدل‌های سرویس ابری از جمله؛ زیرساخت به عنوان سرویس (IaaS)، از طریق Platform به عنوان یک سرویس (PaaS)، نرم افزار به عنوان یک سرویس (SaaS) بخشی از این سیستم عامل به شمار می‌آیند. اما باید بدانید که تمامی این موارد توسط یک فهرست برنامه داخلی نوآورانه nscloud.swiss احاطه شده است. در حالت دوم، n&#x27;cloud.swiss بیش از 142 برنامه را از 30 دسته مختلف منابع IT به صورت رایگان و آماده فعالیت برای بارگذاری سایر برنامه‌ها و ابزارهای توسعه آماده کرده است. همچنین پشتیبانی شخصی و مدل‌های قیمت‌گذاری رقابتی، در حین اتصال API برای انتقال آسان و سریع تحولات موجود از یک سیستم عامل به دیگر سیستم عامل‌های بزرگ موجود در فضای ابری اعطا می‌شود.منبع:  A beginner’s guide to the basics of what cloud computing is about</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Wed, 09 Oct 2019 11:20:38 +0330</pubDate>
            </item>
                    <item>
                <title>انقلاب رایانش ابری: چگونه تکامل رایانش ابری به تجارت شما سرعت می بخشد؟</title>
                <link>https://virgool.io/@arabshahip/%D8%A7%D9%86%D9%82%D9%84%D8%A7%D8%A8-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4-%D8%A7%D8%A8%D8%B1%DB%8C-aigxyffnsbsm</link>
                <description>امروزه ما در دنیایی زندگی می‌کنیم که اختلالی بی‌سابقه‌ بازار را فراگرفته. به‌گونه‌ای که تمامی استراتژی‌ها دستخوش تغییرات شده و به کاربران این فرصت را می‌دهد تا یک شبه راه صدساله را برای رسیدن به یک نام تجاری معتبر طی نمایند. اما باید بدانید که این اتفاق درست زمانی شکل می‌گیرد که مدیران به دنبال ایجاد یک مکالمه کاملا متفاوت با فناوری IT باشند. در واقع CIO و CTO تلاش می‌کنند تا از طریق فناوری‌های IT یک شریک تجاری برای خود دست و پا نمایند. تفاوت یک تامین کننده تجاری با یک شریک تجاری را در قالب یک مثال توضیح می‌دهم، یک تامین کننده تجاری معمولا می گوید: &quot;چه زمانی زیرساخت‌ها آماده خواهند بود؟ چه زمانی قابلیت مورد نظر را ارائه می‌دهند؟ چگونه می‌توان بودجه مربوطه را با قابلیت‌های موجود کاهش داد؟ و.... &quot; در‌حالی که یک شریک تجاری کاملا متفاوت می گوید: &quot;هر چیزی که نیاز دارید را هر هر‌زمانی که لازم است بسازید؛ یک API جدید امنیتی که میتوانید از آن استفاده کنید؛ این نتیجه یک پایلوت جدید است که به تازگی اجرا شده است؛ و در نهایت ما در این ماه X برابر هزینه ها را کاهش دادیم&quot;این اتفاق توسط بخش فناوری اطلاعات (IT) شروع می شود و تنها یک هدف دارد. محصولات را عرضه کرده و به بازار بیاورد، به فرایند توسعه محصول و نوآوری سرعت دهد و بر سرعت سازندگان تاکید کند. این مسئله تنها زمانی رخ می‌دهد که IT بر روی تسک هایی تمرکز کند که business پروژه ها از یکدیگر مجزا کرده و به توسعه دهندگان کمک کند سریعتر کار کنند. آن دسته از تسک هایی که business آنها تفکیک نشده اند باید به صورت اتوماتیک  خارج از سیستم قبلی با بیشترین عملکرد بارگذاری شوند. این تغییر پارادایم نیاز به یک تحول دارد و همان‌طور که یکی از دوستانم (استیون) به درستی خاطرنشان می‌کند، سیستم مربوطه با افراد و سازمانی که در آن مشغول به فعالیت هستید ارتباط بیشتری نسبت به فناوری‌های زیربنایی دارد.دوران قبل از مجازی‌سازیهمه ما می‌دانیم که در دوران قبل از مجازی‌سازی، استقرار زیرساخت‌ها به صورت دستی انجام می‌گرفت. در این دوران برای تامین زیرساخت‌ها باید ماه‌ها منتظر می‌ماندیم، سپس به سراغ قفسه‌بندی، انباشته‌سازی، سیم‌کشی، نصب و پیکربندی می‌رفتیم. این برنامه‌ها به صورت یکپارچه صورت می‌گرفت و وابستگی شدیدی به استقرار دستی داشت. راهنمای نصب آن نیز ده‌ها صفحه بود که اکثرا فرصت خواندن را به کاربران نمی‌داد. این مسئله منجر شده تا کارآیی مرکز داده برای تامین چرخه و استفاده از ظرفیت‌های موجود تنها در 25 الی 40 درصد خلاصه شود. در این مدل، تیم‌های توسعه تلاش می‌کنند تا زیرساخت‌ها و عملیات‌های موجود را در یک راستا به فعالیت ‌درآورند و برای ایجاد هرگونه تغییر، حتی تغییری جزئی هفته‌ها و ماه‌ها برنامه‌ریزی نمایند. این فرآیند با توجه به دستی بودن به یک چالش اساسی برای کاربران تبدیل شده بود.مجازی‌سازی/فضای ابری خصوصیبا پیشرفت علم و تکنولوژی به این درک رسیده‌ایم که مجازی‌سازی و فضای ابری خصوصی می‌تواند نوید‌دهنده یک راه بهتر در این راستا باشد. در واقع این سیستم به دنبال آن است تا کارایی سرور را با کوچک کردن ردپای زیرساخت‌ها بهبود بخشد و اتوماسیون را با ارائه مدل‌های جدید برای افزایش سرعت در کسب و کار به شرایط مطلوب برساند.واقعیت این است که با توجه به اینکه مجازی‌سازی همواره بر روی تاثیرات مثبت سرورها تاکید دارد و حتی این امکان را برای سازمان‌ها به وجود می‌آورد که به تلفیق منطقی برخی مراکز داده بپردازند، اما با این‌حال بسیاری از وعده‌ها به واقعیت تبدیل نمی‌شوند. در واقع تهیه و برنامه‌ریزی ظرفیت‌ها بهبود نیافته و سازندگان همچنان بر اساس الگوهای پیش‌بینی شده از محصول خود موظف به تهیه ظرفیت مورد نیاز برای اوج هستند. در بعضی موارد، سازندگان باید ظرفیت خود را به دو برابر برسانند تا سناریوهای بازیابی خرابی‌ها (DR ، یا n-1) را در خود جای دهند. در کسب و کار نیز برای پخش این بخش در چندین واحد تجاری چیزی حدود 3 الی 5 سال زمان در نظر گرفته شده است. هر چند که برحسب تجربه می‌توان گفت که هرگز به پایان نمی‌رسد.تیم‌های زیرساختی برای شروع کار مجازی‌سازی به سراغ اتوماتیک سازی می‌روند هر چند که این توانایی در تیم‌های توسعه‌دهنده گسترش پیدا نکرده است. جالب اینجاست که مدل‌های تحویل داده شده همچنان دستی بوده و در طی روز و یا به صورت هفتگی نیاز به بهره‌گیری از سیستم اتوماسیون محدود دارند. اگر نگاهی به سیستم داخلی شرکت‌ها و سازندگان بیاندازید متوجه خواهید شد که اکثر آن‌ها همچنان به سختی در حال ایجاد تغییر هستند و به ندرت توانسته‌اند در این راه به موفقیت برسند.خبر خوب این است که سازمان‌هایی که برای مجازی‌سازی محیط خود اقدام کرده‌اند، از یک استراتژی فضای ابری خصوصی پیروی می‌کنند که سرعت ارائه خدمات را افزایش داده است. به‌گونه‌ای که در مرحله بعدی این خدمات به تکامل خواهند رسید. در واقع مجازی‌سازی نه تنها حرکت واقعی VM را ساده‌تر می‌کند، بلکه بازتاب توانایی سازمان برای تحول و سازگاری با نیازهای کسب‌وکار با استفاده از نیروی کار IT را نیز فراهم می‌آورند.سیری در فضای ابریتکمیل تغییراتی که در سیستم‌ها برای انتقال به فضای ابری صورت می‌گیرد، این امکان را به مشتریان می‌دهد تا تمامی وعده‌های عملی نشده مجازی‌سازی را به واقعیت تبدیل نمایند. تهیه تقاضای شبکه، محاسبه، ذخیره‎‌سازی، بانک اطلاعاتی و سایر منابعی که در یک مدل pay-as-you-go وجود دارد باعث می‌شوند تا سرعت تیم توسعه برای محقق کردن خواسته مشتریان افزایش پیدا کند. اما باید بدانید که این تحول به هیچ عنوان لحظه‌ای نخواهد بود. در عوض، سرعت حرکت تیم‌های توسعه در هنگام حرکت مشتری در مراحل مختلف افزایش پیدا کرده است.مراحل انجام فضای ابری- مراحل حرکت پروژهدر طی انجام مراحل فضای ابری، سازمان‌ها باید بیاموزند که 1-چند پروژه با مزایای مد نظر آغاز می‌شود؟ 2- پایه و اساس تحول سازمانی که از طریق تیم ابری در مرکز (CCoE) بارگذاری شده چیست؟ 3-آیا حرکت‌های جمعی صورت می‌گیرد؟ در این قسمت شما را با عوامل تاثیرگذار بر افزایش سرعت سازندگان آشنا می‌کنیم.⦁ زیرساخت به عنوان کد:در اولین مرحله از پروژه، این امکان وجود دارد که مشتریان کارهای خاصی را به صورت دستی انجام دهند. با این وجود، وقتی در مسیر حرکت قرار می‌گیرند، زیرساخت‌ها را به عنوان کد، پذیرش می‌کنند. این بدان معنی‌ست که تمام زیرساخت‌ها به سادگی با اسکریپت‌ها اتوماسیون نشده و به صورت کد مورد توسعه قرار می‌گیرند. همچنین می‌توان گفت که این قالب در استقرار محیط در طی مدت چند دقیقه نقشی موثر ایفا می‌نماید.⦁ Cloud COE:این تیم با توجه به الگوهای موجود، به توسعه و حفظ زیرساخت‌های اصلی، بازسازی و طراحی مجدد آن‌ها می‌پردازند. Cloud COE حتی توانایی آموزش به تیم‌های مربوطه را برای حرکت در مسیر درست برنامه‌های فضای ابری نیز دارد. همچنین تیم‌های توسعه از زیرساخت‌ها به عنوان خط لوله استفاده کرده و با ادغام آن با برنامه‌های خود، شرایط لازم برای رسیدن به خواسته‌ها را محقق می‌سازند.⦁ پذیرش خدمات AWS:از جمله شرکت‌هایی که به سراغ بهره‌گیری از این خدمات رفته‌اند می‌توان به آمازون (EC2)، فروشگاه بلوک الاستیک آمازون (EBS)، توازن بار الاستیک آمازون (ELB)، ذخیره سازی ساده آمازون سرویس (S3)، هویت و مدیریت دسترسی AWS (IAM)، سرویس مدیریت کلید AWS (KMS) ، AWS Cloud Formation و Amazon CloudWatch اشاره کرد. نکته جالب اینجاست که امروزه مشتریان برای از بین بردن برنامه‌های یکپارچه خود و همچنین مدیریت خدمات موجود به سراغ استفاده از AWS می‌روند.⦁ امنیت:اگر چه امنیت به‌طور سنتی می‌تواند مانع بزرگی در سرعت محقق کردن اهداف باشد. اما اگر بتوانید آن را به صورت صحیح در AWS به اجرا درآورید مطمئنا سطح شفافی از آن چیزی که مد نظر دارید حاصل خواهد شد.اختیارات فضای ابری- مرحله فازیهیچ شکی در این نیست که سرعت حرکت تیم‌های توسعه‌دهنده به محض حرکت مشتریان در مراحل اولیه پذیرش، بهبود پیدا می‌کند. اما در بسیاری از موارد، فرصت بهینه‌سازی با مرحله حرکت به پایان نمی‌رسد. در واقع مشتریان به ندرت با این فرصت روبرو می‌شوند که کلیه برنامه‌های خود را به عنوان بخشی از مسیر حرکت خود بازسازی نمایند. از همین رو فرصتی برای بازسازی مداوم به منظور تسریع سرعت سازندگان ایجاد شده است. بازسازی مجدد برنامه‌ها اغلب مستلزم جدا شدن و تجزیه سرویس‌های کوچک‌تر با  API‌ها و در عین حال حداکثر استفاده مجدد است. از همین‌رو مشتریان به دنبال بارگذاری قسمت‌های متمایز شده از برنامه به بستر AWS و تمرکز بر روی کسب‌وکار خود هستند.در طی مرحله Reinvention، سازمان‌ها معمولا از خدمات کاملا مدیریتی مانند Amazon Kinesis برای شمارش داده‌ها، AWS Lambda برای پردازش زمان واقعی، Amazon Aurora و Amazon DynamoDB برای رابطه دیتابیس‌ها و NoSQL و آمازون Redshift برای ذخیره داده‌ها استفاده می‌کنند. از همین رو می‌توان گفت که حداکثر زمان موجود برای ایجاد تمایز، توسط سازندگان مشاغل صرف خواهد شد. بعید است که بتوان توسعه را به عنوان یکی از بهترین راه حل‌ها برای ارسال پیام و یا مدیریت API‌ها در نظر گرفت. در عوض، این الگوریتم ها، گردش کار تجاری و آنالیزهای زمان واقعی شما هستند که باعث خوشحالی مشتریان شما می‌شوند و به رشد شغلی شما کمک می‌کنند. در این مرحله، همچنین تلاش متمرکز‌تری برای تبدیل عملیات به یک مدل واقعی DevOps انجام خواهد شد. فضای ابری COE همچنین بیشتر روی توسعه و بازسازی مرجع، چارچوب‌های حاکمیتی و انطباق تمرکز دارد و به تیم توسعه اجازه می‌دهد استقلال بیشتری برای استقرار زیرساخت‌ها و برنامه‌های کاربردی از طریق خط لوله CI / CD یکپارچه داشته باشد. علاوه‌براین تیم‌های امنیتی با پذیرش متدولوژی های DevSecOps و افشای قابلیت‌های امنیتی از طریق API، سرعت خود را تسریع می‌بخشند.تکمیل محاسبات داده‌های بزرگبرای چشم‌انداز این موضوع، باید ببینیم که داده‌های بزرگ فضای ابری با توجه به تحولات صورت گرفته چگونه محاسبه می‌شود.اولین تحول محاسباتی عمده در زمان‌های اخیر از سرورهای فیزیکی گرفته تا سرورهای مجازی در مراکز داده بوده است. در این مرحله به منظور استفاده بالاتر از محیط های یکنواخت و استقلال سخت افزار به سراغ قابلیت‌های جید DR رفته‌اند. مرحله بعدی سرورهای مجازی در فضای ابری می‌باشد. این امر باعث ایجاد منابع تقاضا، مقیاس پذیری بیشتر و چابکی و بهبود در دسترس بودن و تحمل خطا شده است. اما از دیدگاه سرعت سازنده، هنوز به پیشرفت لازم دست پیدا نکرده‌اند. هر چند همواره نگرانی‌هایی در رابطه با دسترسی زیاد DR وجود دارد که باید توسط مدیریت تصاویر طلایی و پچ کردن سرورها انجام شود به‌گونه‌ای که حجم ‌کاری آن‌ها با شما یکسان شود. از دیدگاه سازنده، تنها کاری که می‌خواهید انجام دهید این است که روی منطق کسب‌وکار تمرکز کنید و آن را براساس برنامه یا در پاسخ به یک رویداد به اجرا درآورید.درست همین‌جاست که AWS Lambda و انتقال به رایانه بدون سرور وارد می‌شود. با AWS Lambda هیچ سروری برای مدیریت و اتصال وجود ندارد. سازندگان به سادگی شروع به نوشتن عملکرد خود می‌کنند در‌حالی که سرویس Lambda به صورت خودکار در حال اجرا بوده و به مدیریت مقیاس‌پذیری می‌پردازد. به عنوان مثال، VidRoll، از AWS Lambda برای تهیه منطق مشاغل خود برای مناقصه آگهی در زمان واقعی و برای رونویسی فیلم‌ها در زمان واقعی استفاده می‌کند. اما باید بدانید که با استفاده از لامبدا، VidRoll می‌توانید به کمک 2 الی 3 مهندس کارها را به سرانجام برسانید.نمونه مشابه دیگر در تکامل سرویس‌های داده بزرگ در AWS دیده شده است. به عبارت بهتر این امکان وجود دارد که مشتریان به مدیریت Hodoop خود در EC2 و EBS بپردازند. در واقع این امر چالش‌های بسیار بزرگی را در بازسازی فرض‌های از پیش تعیین شده برای افراد به وجود می‌آورد که در فضای ابری نیز ادامه دارد. به عنوان مثال: به دلیل همراه بودن محاسبه و ذخیره سازی، سیستم شما در ساعات اوج بیش از حد مورد استفاده قرار گرفته است که این مسئله در دیگر ساعات صدق نمی‌کند. حال نکته اینجاست که شما نمی‌توانید سیستم را به راحتی در ساعات اوج خاموش کنید بلکه باید داده‌ها را در HDFS تداوم بخشید، و پیش از آن که حتی بتوانید یک داده را به اجرا درآورید، دائماً باید مقدار زیادی از آن‌ها را به HDFS محلی انتقال دهید.آمازون EMR با جدا کردن محاسبات و ذخیره سازی و اعمال فشار S3 به عنوان مرکز داده مداوم، به این مسائل می‌پردازد. به عنوان مثال FINRA قادر است یک سیستم HBase جدید را روی EMR راه‌اندازی کند و پرس‌وجوها را در کمتر از 30 دقیقه انجام دهد. زیرا داده‌ها در S3 باقی می‌مانند. از نظر هزینه‌ها نیز می‌توان گفت که مدیریت FINRA در EC2 با اعمال S3 برای ذخیره‌سازی داده‌ها، هزینه‌ها را به طور قابل توجهی کاهش می‌دهد و حتی شرایطی را فراهم می‌کند تا حجم کافی برای استفاده از سیستم نیز وجود داشته باشد. همچنین می‌توان گفت که امروزه سازندگان و مهندسین داده نیز دیگر در تصمیمات بلند مدت فن‌آوری قفل نشده‌اند، هرچند که در محقق شدن بستر تحلیلی نقشی موثر ایفا می‌کند. اما تاکنون به این مسئله فکر کرده‌اید که اگر مدیران تمایل به مدیریت هیچ سیستمی نداشته باشند چه اتفاقی رخ می‌دهد؟ باید بدانید که آمازون آتنا گزینه‌ای کاملاً بدون سرور را ارائه می‌دهد که با در اختیار داشتن زمان چرخش صفر و به روزرسانی‌های شفاف، مراکز داده می توانند به سادگی یک سؤال SQL بنویسند و موتور Presto را سریعاً به اجرا درآورند.با هر تحولی می‌توان دانست که موفقیت‌ها چگونه اندازه‌گیری می‌شوند و هدف نهایی چیست. باید بدانید تمرکز بر روی سرعت تیم‌های توسعه‌دهنده معیار بزرگی برای موفقیت در فضای ابری محسوب می‌شود و می‌تواند در زمان تبدیل شدن به یک شریک تجاری در تصمیم‌گیری‌های شما نقشی موثر داشته باشد و در تکمیل AWS نیز عملکرد خوبی از خود نشان دهد.</description>
                <category>پریسا عربشاهی</category>
                <author>پریسا عربشاهی</author>
                <pubDate>Wed, 09 Oct 2019 10:50:44 +0330</pubDate>
            </item>
            </channel>
</rss>