این یک متن ترجمه شده ماشینی است که ممکن است حاوی خطا باشد!
سرویسهای ابری و مجازیسازی ارتباط نزدیکی با هم دارند: هر دو مربوط به استفاده از منابع دادهای بدون مالکیت تمام سختافزار هستند. اما تفاوتهای مهمی وجود دارد.
مجازیسازی چیست؟
مجازیسازی به معنای اجرای چندین ماشین «مجازی» بر روی یک ماشین فیزیکی واحد است. به جای داشتن یک سرور فیزیکی جداگانه برای وبسرور، یک سرور برای پایگاه داده و یک سرور برای سرور فایل، میتوانید هر سه را به عنوان ماشینهای مجازی بر روی یک ماشین واحد اجرا کنید.
نرمافزاری که این امر را ممکن میسازد، هایپروایزر نامیده میشود:
| نوع | توضیح | مثال |
|---|---|---|
| نوع 1 (فلز لخت) | مستقیماً بر روی سختافزار اجرا میشود، بدون سیستمعامل معمول در زیر | Proxmox, VMware ESXi |
| نوع 2 (میزبان) | بر روی یک سیستمعامل معمول اجرا میشود | VirtualBox, VMware Workstation |
Type 1 vs. Type 2
- Type 1 چیزی است که ما در تولید و در اتاق سرور از آن استفاده میکنیم. Proxmox مستقیماً روی سرور اجرا میشود.
- Type 2 چیزی است که شما برای آزمایش روی کامپیوتر شخصی خود استفاده میکنید. VirtualBox روی ویندوز یا macOS اجرا میشود.
ماشین مجازی (VM) چیست؟
یک VM یک سیستمعامل کامل است که درون سیستمعامل دیگری اجرا میشود. این سیستم دارای حافظه (مجازی)، CPU و دیسک خود است، اما سختافزار فیزیکی را با سایر VMها به اشتراک میگذارد.
مزایای VMها:
- جداسازی - هر VM مستقل است. اگر یک VM از کار بیفتد، بر روی سایر VMها تأثیری نمیگذارد.
- انعطافپذیری - میتوانید سیستمعاملهای مختلف را روی یک دستگاه اجرا کنید (به عنوان مثال Ubuntu و Windows Server).
- Snapshot/backup - میتوانید از یک VM یک عکس فوری بگیرید و در صورت بروز مشکل به عقب برگردید.
- بهرهوری از منابع - یک دستگاه فیزیکی با مقدار زیادی RAM و CPU میتواند بسیاری از VMها را اجرا کند.
контейнерها چه هستند؟
Контейнерها سبکتر از ماشینهای مجازی هستند. آنها هسته سیستمعامل را با ماشین میزبان به اشتراک میگذارند، اما در محیطهای ایزوله اجرا میشوند.
| ویژگی | ماشین مجازی | контейнер |
|---|---|---|
| اندازه | بزرگ (کل سیستمعامل) | کوچک (فقط برنامه و وابستگیها) |
| زمان راهاندازی | دقیقه | ثانیه |
| ایزولاسیون | قوی (سیستمعامل جداگانه) | خوب، اما هسته سیستمعامل را به اشتراک میگذارد |
| مورد استفاده | زمانی که به یک سیستمعامل کاملاً جداگانه نیاز دارید | برنامههای تکی و میکرو سرویسها |
| مثال | Proxmox VM, VirtualBox | Docker, Podman |
Når bruker vi hva?
- Bruk en VM når du trenger et helt operativsystem, f.eks. en Windows Server eller en Linux-server med full kontroll.
- Bruk en container når du bare trenger å kjøre en applikasjon, f.eks. en webserver, en database eller Grafana.
I praksis bruker vi ofte begge deler: VMer som verter for Docker-containere.
چه زمانی از چه چیزی استفاده میکنیم؟
- از یک VM زمانی استفاده کنید که به یک سیستم عامل کامل نیاز دارید، به عنوان مثال یک Windows Server یا یک سرور Linux با کنترل کامل.
- از یک container زمانی استفاده کنید که فقط نیاز به اجرای یک برنامه دارید، به عنوان مثال یک وب سرور، یک پایگاه داده یا Grafana.
در عمل، اغلب از هر دو استفاده میکنیم: VMها به عنوان میزبان برای کانتینرهای Docker.
خدمات ابری
خدمات ابری به این معنی است که شخص دیگری سختافزار را مالک و اداره میکند و شما آنچه را که نیاز دارید از طریق اینترنت اجاره میکنید. به جای خرید و نگهداری یک سرور فیزیکی، برای استفاده از یک ماشین مجازی در فضای ابری هزینه میپردازید.
مدلهای خدمات
سه مدل اصلی برای خدمات ابری وجود دارد:
| مدل | نام کامل | آنچه دریافت میکنید | آنچه خودتان مدیریت میکنید | مثال |
|---|---|---|---|---|
| IaaS | Infrastructure as a Service | ماشینهای مجازی، شبکه و ذخیرهسازی | سیستم عامل، برنامهها، تنظیمات | Azure VM, AWS EC2 |
| PaaS | Platform as a Service | یک پلتفرم آماده برای اجرای کد شما | فقط برنامه | Azure App Service, Heroku |
| SaaS | Software as a Service | برنامههای آمادهای که از طریق مرورگر استفاده میکنید | هیچ چیز فنی | Microsoft 365, Google Docs |
En enkel måte å huske det på
- IaaS = شما یک ماشین خالی اجاره میکنید. شما همه چیز را خودتان نصب و پیکربندی میکنید.
- PaaS = شما یک محیط آماده اجاره میکنید. شما فقط باید کد خود را وارد کنید.
- SaaS = شما یک برنامه آماده اجاره میکنید. شما فقط باید وارد شوید و از آن استفاده کنید.
مدلهای ارائه
سرویسهای ابری میتوانند به روشهای مختلف ارائه شوند:
| مدل | توضیح | مثال |
|---|---|---|
| ابر عمومی | زیرساخت مشترک در دسترس همه | Azure, AWS, Google Cloud |
| ابر خصوصی | زیرساخت اختصاصی برای یک سازمان | Proxmox در اتاق سرور مدرسه |
| ابر ترکیبی | ترکیبی از عمومی و خصوصی | برخی از خدمات به صورت محلی، برخی در Azure |
VPS: یک راه حل ابری رایج
یک VPS (سرور خصوصی مجازی) یکی از رایجترین راه حلهای IaaS است. شما یک ماشین مجازی را از یک ارائهدهنده خدمات ابری اجاره میکنید و کنترل کاملی بر آن دارید، درست مانند اینکه یک سرور اختصاصی خود داشته باشید.
موارد استفاده معمول:
- اجرای یک وب سرور
- راهاندازی یک سرویس VPN
- میزبانی یک برنامه (به عنوان مثال Flask + پایگاه داده)
- آزمایش چیزها بدون به خطر انداختن سختافزار خود
ارائهدهندگان محبوب VPS:
| ارائهدهنده | مزایا |
|---|---|
| Linode (Akamai) | ساده، قیمت مناسب، راهنماهای خوب |
| DigitalOcean | کاربر پسند، مستندات خوب |
| Hetzner | مقرون به صرفه، اروپایی (مطابق با GDPR) |
| Azure | یکپارچه با اکوسیستم مایکروسافت |
Kostnader i skyen
خدمات ابری هزینه دارند و اگر مراقب نباشید، ممکن است به سرعت پرهزینه شوند. یک ماشین مجازی که 24 ساعت در روز در حال اجرا است، بیشتر از ماشینی که پس از استفاده خاموش میکنید، هزینه دارد. همیشه قیمتها را بررسی کنید و هشدارهای مربوط به هزینهها را تنظیم کنید.
محلی در مقابل ابری
بسیاری از شرکتها ترکیبی از سرورهای محلی و خدمات ابری استفاده میکنند. در اینجا چند نکته برای در نظر گرفتن وجود دارد:
| عامل | محلی (on-premises) | ابری |
|---|---|---|
| کنترل | کنترل کامل بر سختافزار و دادهها | وابسته به ارائهدهنده |
| هزینه | سرمایهگذاری اولیه زیاد | هزینههای ماهانه جاری |
| مقیاسپذیری | محدود به سختافزار فیزیکی | میتواند در صورت نیاز افزایش یا کاهش یابد |
| نگهداری | شما باید همه چیز را خودتان تعمیر کنید | ارائهدهنده سختافزار را مدیریت میکند |
| حریم خصوصی | شما میدانید دادهها کجا هستند | دادهها ممکن است در کشورهای دیگر ذخیره شوند |
وظیفه 1 - اجرای یک ماشین مجازی بر روی دستگاه خود
VirtualBox (رایگان) را دانلود کنید و سعی کنید یک توزیع لینوکس، مانند Ubuntu Desktop یا Linux Mint را نصب کنید.
- چه مقدار رم و CPU را برای ماشین مجازی انتخاب میکنید؟
- آیا متوجه میشوید که کامپیوتر شما هنگام اجرای ماشین مجازی کندتر میشود؟
- اگر سعی کنید رم بیشتری به ماشین مجازی اختصاص دهید تا رم موجود در دستگاه شما، چه اتفاقی میافتد؟
این کار درک خوبی از نحوه اشتراکگذاری منابع توسط ماشینهای مجازی با دستگاه فیزیکی به شما میدهد.
مسئله 2 - شروع یک کانتینر با Docker
اگر Docker را نصب کردهاید (یا به یک ماشین مجازی با Docker دسترسی دارید)، سعی کنید دستور زیر را اجرا کنید:
docker run -d -p 8080:80 nginx # Kjør en nginx-container i bakgrunnen og mapp port 8080 på verten til port 80 i containeren. # اجرای یک کانتینر nginx در پسزمینه و نگاشت پورت 8080 هاست به پورت 80 در کانتینر.
سپس به http://localhost:8080 در مرورگر خود مراجعه کنید. اکنون یک وبسرور را در یک کانتینر اجرا میکنید! مقایسه کنید که این کار چقدر طول کشید در مقابل راهاندازی یک VM کامل با Nginx.
مسئله 3 - از چه سرویسهای ابری در حال حاضر استفاده میکنید؟
به سرویسهایی که در زندگی روزمره خود استفاده میکنید فکر کنید:
- Microsoft 365 (Word, Teams, OneDrive) یک SaaS است
- GitHub Pages برای میزبانی یک وبسایت یک PaaS است
- اگر یک ماشین مجازی در Proxmox در مدرسه ایجاد کنید، در عمل IaaS است (فقط به صورت محلی)
آیا میتوانید سایر سرویسهایی که استفاده میکنید را دستهبندی کنید؟
تکلیف ۴ - دادههای شما کجا قرار دارند؟
به Microsoft Privacy Dashboard بروید و ببینید مایکروسافت درباره شما چه چیزی ذخیره میکند. همچنین شرایط یک سرویس ابری که استفاده میکنید را بررسی کنید:
- دادهها در کجا در جهان ذخیره میشوند؟
- اگر حساب کاربری خود را حذف کنید چه اتفاقی برای دادهها میافتد؟
- آیا شما مالک دادههای خود هستید یا ارائهدهنده خدمات؟
این سوالات به ویژه با توجه به GDPR و حریم خصوصی مهم هستند.
خلاصه
- مجازیسازی به شما امکان میدهد چندین سرویس را بر روی یک سختافزار اجرا کنید، چه به صورت ماشینهای مجازی (VM) و چه به صورت کانتینرها
- خدمات ابری به این معنی است که شخص دیگری صاحب سختافزار است و شما آنچه را که نیاز دارید اجاره میکنید
- IaaS، PaaS و SaaS میزان مسئولیتی که خودتان بر عهده دارید را توصیف میکنند
- در عمل، بسیاری از افراد از یک راه حل هیبریدی با استفاده از خدمات محلی و ابری استفاده میکنند
- انتخاب بین محلی و ابری در مورد کنترل، هزینه، مقیاسپذیری و حریم خصوصی است