بلاگ

  • نحوه امن کردن سرور با ssh توسط نرم افزار fail2ban

    نحوه امن کردن سرور با ssh توسط نرم افزار fail2ban

    روش های زیادی برای امن کردن یک سرور لینوکسی وجود دارد، با این حال یکی از ساده ترین راه ها برای جلوگیری از رندوم لاگین و بروتفورس شدن سرور شما، استفاده از نرم افزار fail2ban است. با نصب این نرم افزار و فعال کردن جیل روی ssh‌، می توانید تعیین کنید که اگر یک آیپی تعداد x ورود ناموفق داشت به مدت y دقیقه بن شود.
    این کار هم به سادگی قابل انجام است. برای شروع باید ابتدا باید نرم افزار fail2ban را نصب کنید، اگر به درستی برای سیستم عامل سرور centos رو انتخاب کرده اید. ابتدا ایپل رو فعال کنید :

    yum install -y epel-release

    سپس توسط دستور زیر نرم افزار رو نصب کنید:

    yum install -y fail2ban

    حالا باید یک کانفیگ خیلی ساده انجام دهید تا کار سیستم شروع بشود. ابتدا یک فایل در مسیر زیر ایجاد کنید :

    sudo vi /etc/fail2ban/jail.local

    سپس باید در فایل مشخص کنیم که این جیل چگونه قراره کار بکنه:

    [DEFAULT]
    # Ban hosts for one hour:
    bantime = 3600
    
    # Override /etc/fail2ban/jail.d/00-firewalld.conf:
    banaction = iptables-multiport
    
    [sshd]
    enabled = true

    حال با ری استارت کردن fail2ban جیل شروع به کار میکند:

    sudo systemctl restart fail2ban

    و توسط دستور زیر هم میتوانید وضعیت فعلی تعداد آی پی های بن شده را ببینید :

    sudo fail2ban-client status sshd

    دقت کنید که همیشه یک کلمه عبور خوب کافی نیست و باید توسط روش های دیگری هم جلوگیری های صورت بگیرد.

  • حل مشکل “اجازه دسترسی به این صفحه را ندارید” در وردپرس پشت پراکسی nginx

    حل مشکل “اجازه دسترسی به این صفحه را ندارید” در وردپرس پشت پراکسی nginx

    WordPress
    WordPress

    احتمالا شما هم به این مشکل در نصب وردپرس خورده اید که وقتی که ssl رو از طریق proxy بهش اساین میکنیم. ادمین پنل سایت و بخش های زیادی از سایت به مشکل میخورند. و با پیام “با عرض پوزش شما اجازه دسترسی به این صفحه را ندارید” مواجه میشوید.

    برای حل این مشکل کافی است که تنظیمات زیر رو به بک اند اضافه کنید:

    اول یک مپ به بالای کانفیگ nginx اضافه کنید( روی سروری که وردپرس هست ) :

    map $http_x_forwarded_proto $fastcgi_https {
        https   on;
        default $https;
    }

    سپس تنظیمات زیر را در بلاک php وارد کنید :

    location ~ \.php$ {
        ...
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param HTTP_X_FORWARDED_PROTO $http_x_forwarded_proto if_not_empty;
        fastcgi_param HTTPS $fastcgi_https if_not_empty;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    

    حالا سرور انجینکس رو ریستارت کنید. به همین راحتی مشکل بدون دستکاری فایل های وردپرس رفع خواهد شد.

  • چگونه پسورد کاربر postgres رو ریست کنیم؟

    چگونه پسورد کاربر postgres رو ریست کنیم؟

    postgre
    postgre

    برخی مواقع به دلایل مختلف ممکن است که پسورد کاربر postgres رو در دیتابیس postgre فراموش کنیم. توسط روش زیر اگه به سرور دسترسی داشته باشید. به راحتی میتونید این پسورد را ریست کنید:

    ابتدا فایل pg_hba.conf رو در آدرس زیر توسط ادیتور باز کنید :

    /var/lib/pgsql/data/pg_hba.conf

    سپس به انتهای فایل رفته و تمام host رکورد هارو کامنت کنید. و هاست رکورد زیر را به انتهای فایل اضافه کنید :

    host    all             all             127.0.0.1/32            trust

    حالا فایل رو ذخیره کرده و سرور postgre را ریستارت کنید:

    sudo systemctl restart postgresql

    سپس توسط دستور زیر وارد کامند لاین شوید:

    psql -h 127.0.0.1 -U postgres

    و توسط دستور زیر پسورد جدید را ست کنید:

    alter user postgres with password 'new_password';

    فراموش نکنید در انتهای فایل کانفیگ را به حالت قبلی برگردانید و خطی که اضافه کرده اید را حذف کنید.

  • چگونه مشکل expected shallow list را در cent os رفع کنیم؟

    چگونه مشکل expected shallow list را در cent os رفع کنیم؟

    ممکنه شما هم این مشکل رو هنگام دریافت ریپازیتوری ها، یا هنگام اجرا شدن پایپ لاین ci/cd تون داشته باشید. این یک مشکل شایع هست در git نسخه ۱.۸.۳.۱ به پایین ( اگر اشتباه نکنم ).

    برای رفع این مشکل باید نسخه گیت رو به روز رسانی کنید. اما مشکل اینجاست که این نسخه جدید هنوز به صورت رسمی در ریپو cent os منتشر نشده است( تا تاریخ انتشار این مطلب) و برای به روز رسانی باید از یک روش دیگر این کار رو انجام بدیم.

    برای شروع ابتدا گیت فعلی رو از سرور حذف کنید :

    sudo yum remove git

    ریپو جدید را نصب کنید:

    sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
    

    سپس نسخه جدید گیت را نصب کنید :

    sudo yum install git222
    

    و حتما گیت لب رانر را نصب دوباره کنید و فعال و اجراش کنید:

    sudo yum install gitlab-runner
    sudo systemctl enable gitlab-runner
    sudo systemctl start gitlab-runner

    حالا اگه نسخه گیت رو چک کنید :

    git --version

    می بینید که به روز رسانی شده است.

    مشکل در این مورد کاملا رفع خواهد شد.

    منبع

  • چگونه خطای “[: =: unary operator expected” را در هنگام راه اندزی haproxy رفع کنیم.

    چگونه خطای “[: =: unary operator expected” را در هنگام راه اندزی haproxy رفع کنیم.

    ممکنه شما هم با خطای زیر در هنگام راه اندازی haproxy برخورد کرده باشید، این خطا بسیار عجیب هست و ربطی هم به مشکل پیش آمده نداره، اما چطوری میشه این مشکل رو حل کرد؟

     

    مشکل از نبود فایل socket برای راه اندازی haproxy هست و به راحتی با ایجاد این فایل رفع میشه:

    sudo mkdir -p /run/haproxy

    امیدوارم این مشکل رو تونسته باشید به راحتی رفع کنید.

     

    برای مقالات بیشتر درباره haproxy میتوانید به اینجا مراجعه کنید.

  • چگونه بر روی یک دایرکتوری در nginx رمز بگذاریم؟

    چگونه بر روی یک دایرکتوری در nginx رمز بگذاریم؟

    حتما تا حالا با این دیالوگ رو به رو شده اید؟ برای ساخت دیالوگی مشابه بر روی یک دایرکتوری در nginx میتوانید این آموزش رو دنبال کنید.

     

    ابتدا مطمئن شوید که پکیج مورد نیاز رو نصب کرده اید:‌

    // Debian Based
    sudo apt install apache2-utils
    
    // RHEL or Cent OS
    sudo yum install httpd-tools

    سپس با دستور زیر یک کاربر به نام مورد نظر ساخته و با فشردن enter یک رمز نیز انتخاب کنید:

    sudo htpasswd -c ~/.htpasswd eseminar

    حالا باید تغییراتی به فایل کانفیگ nginx اضافه کنید:

    server {
          ...
          auth_basic           "name";
          auth_basic_user_file /home/ubuntu/.htpasswd;
          ...
    }
    

    دقت کنید که میتوانید با اجرای مجدد دستور زیر کاربر های دیگه ای اضافه کنید:

    sudo htpasswd ~/.htpasswd eseminar

    همچنین می توانید در لوکیشن‌های دیگر نیز از این فایل استفاده کنید، یا فایل های دیگری ایجاد کنید. به همین سادگی می توانید بر روی یک دایرکتوری در nginx کلمه عبور بگذارید.

     

  • چگونه Reverse Proxy را در nginx تنظیم کنیم ؟

    چگونه Reverse Proxy را در nginx تنظیم کنیم ؟

    برای این کار باید از Reverse Proxy استفاده کنید. بدین صورت که تعیین میکنید برای مثال تمام درخواست هایی که از پورت ۸۰ به سرور می رسد، باید از پورت ۳۰۰۰ داخل سرور گذر کنند.

    برای اینکار ابتدا وارد فایل کانفیگ nginx شوید. این فایل به صورت پیش فرض در مسیر زیر قرار دارد :

    /etc/nginx/sites-available/default

    هر سرور شما با بلاک server مشخص می شود. پس برای ساخت یک سرور جدید ابتدا یک بلاک سرور به کد اضافه کنید:

    server {
            listen 80;
            listen [::]:80;
    }
    

    همانطور که مشاهده می کنید سرور در حال حاضر به درخواست هایی که از پورت ۸۰ دریافت می شود پاسخ خواهد داد. هم در ip نسخه ۴ و هم در ip نسخه ۶.

    حال باید مشخص کنیم درخواست هایی که به ریشه سرور ارسال می شود، چگونه باید پردازش شوند:

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
    

    همانطور که مشاهده می کنید ، تمام درخواست هایی که به ریشه سرور ارسال شده است را به پورت ۳۰۰۰ در ip لوکال منتقل میکنیم.

    حال ، برای دیباگ کردن ، لاگ ها را نیز اضافه کنید:

    access_log /var/log/nginx/reverse-access.log;
    error_log /var/log/nginx/reverse-error.log;

    کد کامل تنظیمات nginx رو می توانید در زیر ببینید:‌

    server {
            listen 80;
            listen [::]:80;
    
            access_log /var/log/nginx/reverse-access.log;
            error_log /var/log/nginx/reverse-error.log;
    
            location / {
                        proxy_pass http://127.0.0.1:3000;
      }
    }
    

    با اجرای دستور زیر میتوانید بررسی کنید که آیا فایل تنظیمات به درستی نوشته شده است یا نه :

    nginx -t

    و در آخر سرویس nginx را ری استارت کنید:

    sudo systemctl restart nginx.service

    بعد از اجرای برنامه node (یا هر سرور دیگری) در پورت ۳۰۰۰ ، تمام ریکویست های پورت ۸۰ توسط این سرور پردازش خواهد شد.این کار توسط Reverse Proxy انجام می شود.

     

    تنظیمات بیشتر

    همچنین شما می توانید تنظیماتی بیشتری نیز به فایل تنظیمات خود اضافه کنید:

    تنظیم نسخه http:

    proxy_http_version  1.1;

    تنظیمات بای پس کردن کش :

    proxy_cache_bypass  $http_upgrade;

    اگه از وب سوکت استفاده میکنید :

    proxy_set_header Upgrade           $http_upgrade

    تنظیم هدر هاست :‌

    proxy_set_header Host              $host;

    لیست آیپی تمام پراکسی ها :

    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;

    هدر آدرس آیپی بازدید کننده :‌

    proxy_set_header X-Real-IP         $remote_addr;

    هدر آدرس هاست اصلی‌:

    proxy_set_header X-Forwarded-Host  $host;

    هدر آدرس پورت اصلی‌ :

    proxy_set_header X-Forwarded-Port  $server_port;

     

    نسخه کامل تر فایل تنظیمات ‌:

    server {
            listen 80;
            listen [::]:80;
    
            access_log /var/log/nginx/reverse-access.log;
            error_log /var/log/nginx/reverse-error.log;
    
            location / {
            proxy_pass http://127.0.0.1:3000;
                proxy_http_version  1.1;
                proxy_cache_bypass  $http_upgrade;
            
                proxy_set_header Upgrade           $http_upgrade;
                proxy_set_header Connection        "upgrade";
                proxy_set_header Host              $host;
                proxy_set_header X-Real-IP         $remote_addr;
                proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Host  $host;
                proxy_set_header X-Forwarded-Port  $server_port;
      }
    }

     

  • چطور گیت لب رو به دیسکورد متصل کنیم؟

    چطور گیت لب رو به دیسکورد متصل کنیم؟

    با اتصال گیت لب به دیسکورد میتونید کامیت ها ، جاب هایی که fail میشن و … رو توی چنل خودتون ببینید. تو این آموزش از اتصال دهنده slack استفاده میکنیم تا پیام ها به درستی به دیسکورد انتقال داده بشه.دقت کنید با متصل کننده آفیشال خود دیسکورد پیام ها به درستی منتقل نمیشود.

     

    مراحل کار

    برای اتصال اکانت گیت لب به دیسکورد ابتدا باید وارد دیسکورد بشید. سپس با دکمه + یک سرور برای خودتان بسازید:

    discord create server

    حالا از قسمت Text Channels یک کانال جدید ایجاد کنید. و سپس بر روی دکمه چرخ دنده کانال کلیک کنید و Webhooks را انتخاب کنید.

    سپس بر روی Create Webhook کلیک کنید:

    discord create webhook

    هر اسمی که مایل هستید در قسمت Name وارد کنید و پس از زدن دکمه Copy بر روی دکمه Save کلیک کنید.

    حالا وارد گیت لب بشید ( فرقی نمیکند گیت لب شخصی یا سایت اصلی ).

    سپس وارد ریپازیتوری مورد نظر بشید. از منوی سمت چپ Settings و سپس Integrations رو انتخاب کنید. از لیست باز شده Slack Notifications رو انتخاب کنید.

    ابتدا گزینه Active رو تیک بزنید و سپس در انتهای صفحه آدرسی که کپی کردید رو وارد Webhook کنید. در انتهای آدرس slack/ رو اضافه کنید و بر روی Test settings and save changes کلیک کنید.

    حالا میتونید کامیت های گیت رو داخل چنل مورد نظر تو دیسکورد ببینید.

    برای مثال کامیت جدید به این شکل نمایش داده میشود :

    discord gitlab commit msg

    یا اگه برای مثال gitlab ci راه اندازی کردید ، اگه یک جاب ران بشه و به هر دلیل fail بشه ، دیسکورد یک پیام نشون میده :

    gitlab discord job fail

    که از همینجا میتونید برید توی گیت لب و جاب مورد نظر.

     

  • رایانش ابری چیست؟ (همراه با مثالی از استقرار نرم افزار روی لایه های مختلف)

    رایانش ابری چیست؟ (همراه با مثالی از استقرار نرم افزار روی لایه های مختلف)

    بر خلاف موج های رسانه ای حوزه تکنولوژی اطلاعات یا همان  IT که هر فناوری تازه به ایران رسیده ای را شناخته شده نشان می دهند ، تجربه عینی در کسب و کارهای این حوزه و تیم های توسعه دهنده فعال در ایران ، از کم اطلاعی درباره چیستی رایانش ابری (Cloud Computing) و کاربردهای آن خبر می دهد.

    این که چه زمانی و تحت چه شرایطی یک کسب و کار IT باید به دنبال ابری شدن رفته و چگونگی مهاجرت به این پشته (Stack) فناوری هنوز برای بسیاری از کسب و کارها ناشناخته است لذا در این مطلب سعی می کنم برای بسیاری از پرسش‌ها پاسخی مناسب ارائه بدهم که برای وضوح بیشتر ابتدا پرسش ها را مرور می کنیم:

    1. «رایانش ابری» چیست (همراه با مثال)؟
    2. مزایای رایانش ابری برای توسعه دهندگان، مدیران سیستم و مهندسین DevOps نسبت به روش‌های سنتی چیست؟
    3. چه زمانی باید به دنبال «ابری شدن» رفت؟
    4. فازهای مهاجرت از زیرساخت سنتی به ابری چیست و در هر فاز باید به چه چیزی توجه کرد؟
    5. انتخاب ابر‌خصوصی یا استفاده از ابر عمومی؟

    این سوال ها اصلی‌ ترین مواردی است که هنگام مهاجرت به ابر باید برای آن‌ها پاسخی داشته باشیم و سعی میکنم در مجموعه ای ای از مطالب به هرکدام پاسخ بدهم.
    همچنین در انتهای مقاله واژه نامه ای برای شناخت بهتر اصطلاحات ارائه کردم تا تعاریف را واضح تر توضیح دهم.

    رایانش ابری چیست؟

    قبل از ارائه تعریفی برای رایانش ابری بهتر است با یک مثال قضیه را شفاف کنیم:

     

    منبع آب عظیمی را فرض کنید که هر زمان ، هر مقدار و با هر ظرفی که بخواهید می‌توانید از آن آب بردارید و دقیقا به اندازه آبی که برداشته اید هزینه کنید.

     

    اصطلاحی که اغلب برای توصیف از آن استفاده می‌شود «استخری» (Pool) از منابع سخت افزاری است که هر کاربر با توجه به سه اصل میتواند از آن برداشت کند:

    1. به محض تقاضا (on-demand):
      • به این معنا که به محض تقاضای منابع از سرویس دهنده ، منابع به صورت به کاربر تخصیص داده شود.
    2. منعطف بودن (elastic):
      • منابع با توجه به میزان تقاضای کاربر کم یا زیاد شود.
    3. برداشت به انتخاب شخصی (self service):
      • کاربر کنترل تمام عیاری روی میزان منابع، شکل آن و اعمال تغییرات روی آن داشته باشد.

    حال باید اشاره ای به لایه های پشته نیز داشته باشیم که گزینه های عمده آن:

    1. زیرساخت (Infrastructure)
    2. سکو (Platform)
    3. نرم افزار (Software)
    4. و تابع (Function)

    است.

    هر‌کدام از این موارد را پیش‌تر هنگام مقایسه رایانش ابری با راهکارهای سنتی توضیح می دهم.

    رایانش ابری در مقایسه با هاست اشتراکی و روش‌های On-Prem

    on-prem vs IaaS vs PaaS vs SaaS

    تصور کنید برنامه ای به زبان PHP و با استفاده از چارچوب (Framework) پرطرفدار آن یعنی Laravel نوشته اید و حال نوبت به استقرار (Deploy) آن روی هاست اشتراکی یا سرور شخصی رسیده است.

    با چه چالش هایی روبرو هستید؟

    در هاست اشتراکی:

    • استقرار نیاز به تغییر ساختار دایرکتوری های برنامه دارد و امکان خودکار کردن آن با توجه به محدودیت های هاست اشتراکی (مثل عدم امکان برقراری ارتباط SSH) نیست.
    • با توجه به محدودیت بالا سرعت استقرار کند است و در صورت وجود خطا در برنامه نیز نمی‌توان در زمان کوتاهی نسخه قبل را مستقر کرد.
    • برخی بسته‌ها(Packages) در سیستم عامل توسعه دهنده و سرور متفاوت هستند.
    • بسیاری از امکانات چارچوب مثل استفاده از event listener ها و … غیر قابل استفاده اند.
    • همچنین علاوه بر چالش های توسعه ، مشکلاتی هم برای نگهداری(Operation) وجود دارد مثل مقیاس پذیر(Scalable) نبودن برنامه و اجزاء آن ، دشواری نظارت(Monitoring) و تجمیع گزارشات(Log Aggregation) و …
      اگر کسب و کار شما با این مشکلات دست و پنجه نرم کرده احتمالا به فکر استفاده از سرور مجازی یا اختصاصی افتاده اید.
      استفاده از VPS یا DPS ممکن است بخشی از مشکلات مذکور را حل کند اما خالی از مشکل نیست.
      سه اصل رایانش ابری که از آن یاد کردیم در راهکارهای VPS یا DPS به صورت کلی یا جزئی وجود ندارند مثلا:
    • اغلب شرکت های ارائه دهنده خدمات سنتی هنگامی که سرورهای شما تحت فشار هستند و نیاز به منابع بیشتری دارید کند عمل می کنند و باید منابع را از طریق ارسال ticket یا ایمیل درخواست کنید.
    • منابع شما به صورت خودکار مقیاس دهی نمی شوند و باید همواره یک عامل انسانی در میان باشد.
    • نمیتوانید مشخصات سخت افزاری هر سرور را هر زمان که بخواهید تغییر یا تنظیم کنید.
    • فقط روی سرور کنترل دارید و امکان تغییر مابقی اجزا مثل شبکه ، امکانات ذخیره سازی (Storage) و … را ندارید.
    • ابزاری چون API, CLI یا واسطی مبتنی بر وب (Web UI) وجود ندارد که امکان تغییر و تنظیم منابع به شکل self-service را به کاربر بدهد.
    • امکان استفاده از منابع به شکل پرداخت به میزان استفاده وجود ندارد(Pay as you go) بنابراین شما صرفا به میزان حداکثر منابعی که هنگام تهیه سرویس انتخاب کرده اید باید هزینه پرداخت کنید و نه به میزان استفاده حقیقی سرویس شما از منابع.
      حال اگر بخواهیم از امکانات مربوط به هر لایه از رایانش ابری استفاده کنیم میتوانیم در مثال Laravel به شکل زیر عمل کنیم:

    زیرساخت به عنوان خدمت (IaaS):

    • راه اندازی برنامه Laravel مد نظر روی چندین سرور ابری(instances) که روی یک شبکه داخلی (private network) هستند و سپس اتصال آن‌ها به سرورهای پایگاه داده(که می توانند جهت امنیت بیشتر روی شبکه های داخلی دیگر باشند).
    • استفاده از LBaaS (یا Load Balancer as a Service) که ترافیک خارجی را بین سرورهای مختلف برنامه از طریق یک آی پی  مجازی(Virtual IP) توزیع می‌کند.
    • استفاده از دیواره آتش داخلی که سیاست های مختلفی را برای کنترل ترافیک بین ماشین های درون یک شبکه یا ترافیک خارجی اعمال می‌کند.
    • تخصیص چند دیسک جانبی به سرورهای دیتابیس در قالب Block Storage که کار را به نسبت VPS یا DPS راحت تر می کنند.
    • استفاده از امکاناتی مثل مقیاس دهنده خودکار(Auto Scaler) که با توجه به فراخوانی (Trigger)‌های سیستم مانیتورینگ تعداد سرورها، دیسک ها و هر منبع دیگری را کاهش یا افزایش می‌دهد.
    • سرویس هایی مثل Amazon VPC، GCP و‌… امکانات یک دیتاسنتر فیزیکی را به شکل مجازی عرضه می‌کنند و در ایران نیز سرویس دهنده هایی که از OpenStack برای ارائه زیرساخت استفاده می‌کنند چنین امکانی را ارائه می‌دهند.

    Infrastructure as a service example

    سکو به عنوان خدمت(PaaS):

    برای سرعت و راحتی بیشتر در توسعه و استقرار در لایه بعدی «سکو‌»، که وقتی توسط یک ارائه دهنده (Provider) عرضه می‌شوند به آن PaaS می‌گویند‌، اغلب از طریق راهکارهای مبتنی بر دربرگیرنده‌ها (Container-Based Solutions) استفاده می‌شود به خصوص اگر بخواهیم از معماری میکروسرویس (Microservice architecture) استفاده کنیم.

    در این صورت میتوانیم با containerized کردن برنامه و استقرار آن روی ابزار Orchestration مانند Kubernetes به هدف خود برسیم.

    تقریبا همه ارائه دهنده‌های خارجی یعنی Amazon, Google, Microsoft و اخیرا RedHat با محصول جالبش یعنی OpenShift راهکارهایی مبتنی بر Kubernetes ارائه می‌دهند اگرچه قبل از این روش ابزار دیگری مثل Beanstalk,AppEngine و Heroku وجود داشتند که راهکاری متفاوت را ارائه می‌کردند(بعضی به ابزار گروه اول CaaS یا Container as a Service نیز می‌گویند).

    نرم افزار به عنوان خدمت(SaaS):

    اگر خدمات ابری صرفا به لایه نرم افزار خلاصه شود و مشتری دغدغه دیگری جز استفاده از نرم افزار نداشته باشد به لایه SaaS رسیده ایم.

    در خدمات اینچنینی تمامی نگرانی های کاربر از جمله مقیاس پذیری، دسترس پذیری و سازگاری توسط مهندسین ارائه دهنده انجام می‌شود.

    برای مثال سرویس های شرکت Atlassian مثل Jira, Confluence, Trello یا سرویسی مثل Postgres شرکت Heroku

     

    تابع به عنوان خدمت‌(FaaS):

    FaaS vs Traditional

    تا به حال به این فکر کرده اید که برای کاربردهایی همچون پردازش تصویر، پردازش صوت و … بتوانید صرفا برای مدت کوتاهی از یک تابع استفاده کنید و این تابع به صورت خودکار تمامی منابع مورد نیاز برای این پردازش را داشته باشد؟

    خدماتی مثل AWS Lambda چنین امکانی را فراهم می‌کنند که تحت عنوانی کلی تر یعنی Serverless نیز ذکر می‌شوند(در مطالب بعد به آن خواهیم پرداخت).

     واژه نامه:

    حال که چیستی و امکانات مختلف موجود در اکوسیستم رایانش ابری را بررسی کردیم وقت آن رسیده تا برخی عبارات فنی کم تر شناخته شده در این حوزه را برای پیشروی راحت تر تعریف کنیم.

     

    معنی XaaS:

                که مخفف anything as a service است و به تحویل هر محصول (هر چیز) به عنوان خدمات به مشتری اشاره دارد.

                مثلا:

    • Storage as a Service
    • Network as a Service
    • Firewall as a Service

    معنی Stack:

     پشته یا stack به مجموعه ای از ابزار ، فناوری ها و نرم افزارهایی گفته می‌شود که برای ارائه این خدمات استفاده شده است و اغلب این ابزار نسبت به هم وابستگی هایی دارند که به همین دلیل از عنوان لایه برای توضیح رابطه این ابزار استفاده می‌شود.

    عبارت On-Prem:

    به معنی نصب نرم افزار یا ارائه خدمات با توجه به شرایط مد نظر مشتری است که بیشتر در روش های سنتی مثل Virtualization استفاده می‌شد.

    معنی Deploy:

    به راه اندازی نرم افزار روی یکی از لایه های مذکور استقرار گفته می‌شود.

    معنی Scale:

    به میزان منابع تخصیص داده شده به هر کدام از لایه ها مقیاس یا Scale می‌گویند.

    عبارت Virtual IP:

     نوعی از آی پی که به یک واسط شبکه فیزیکی تخصیص داده نشده و می تواند بنا به شرایط به سرورهای مختلف تخصیص داده شود.

    معنی Instance:

    وقتی یک سروری مجازی که میتواند حاوی برنامه در حال اجرا باشد در یک زیرساخت ابری ساخته می‌شود به آن Cloud Instance گفته می‌شود ولی امکان اطلاق این عبارت برای لایه های دیگر پشته ابری نیز وجود دارد.

     

    اصطلاح Orchestration:

    به مدیریت، تنظیم و کنترل مجموعه ای از سیستم های کامپیوتری گفته می‌شود.