Usługi chmurowe i wirtualizacja

Skip to content

To jest tekst przetłumaczony maszynowo, który może zawierać błędy!

Usługi chmurowe i wirtualizacja ściśle ze sobą współpracują: obie dotyczą wykorzystywania zasobów danych bez konieczności posiadania całego sprzętu. Istnieją jednak pewne ważne różnice.

Co to jest wirtualizacja?

Wirtualizacja oznacza uruchamianie wielu „wirtualnych” maszyn na jednej fizycznej maszynie. Zamiast mieć oddzielny fizyczny serwer dla serwera WWW, jeden dla bazy danych i jeden dla serwera plików, możesz uruchomić wszystkie trzy jako maszyny wirtualne na jednej i tej samej maszynie.

Oprogramowanie, które to umożliwia, nazywane jest hypervisorem:

Typ Wyjaśnienie Przykład
Typ 1 (bare-metal) Uruchamia się bezpośrednio na sprzęcie, bez zwykłego systemu operacyjnego poniżej Proxmox, VMware ESXi
Typ 2 (hosted) Uruchamia się na wierzchu zwykłego systemu operacyjnego VirtualBox, VMware Workstation

Type 1 vs. Type 2

  • Type 1 to to, czego używamy w produkcji i w serwerowni. Proxmox działa bezpośrednio na serwerze.
  • Type 2 to to, czego używasz na swoim komputerze do testów. VirtualBox działa na Windows lub macOS.

Co to jest maszyna wirtualna (VM)?

VM to cały system operacyjny działający wewnątrz innego. Posiada własną (wirtualną) pamięć, procesor i dysk, ale współdzieli fizyczny sprzęt z innymi VM-ami.

Zalety VM-ów:

  • Izolacja - Każdy VM jest niezależny. Jeśli jeden VM ulegnie awarii, nie wpływa to na inne.
  • Elastyczność - Możesz uruchamiać różne systemy operacyjne na tej samej maszynie (np. Ubuntu i Windows Server).
  • Snapshot/backup - Możesz zrobić migawkę VM-a i przywrócić ją w przypadku problemów.
  • Wykorzystanie zasobów - Jedna maszyna fizyczna z dużą ilością pamięci RAM i procesora może uruchamiać wiele VM-ów.

Czym są kontenery?

Kontenery są lżejsze niż maszyny wirtualne (VM). Dzielą jądro systemu operacyjnego z maszyną hostującą, ale działają w izolowanych środowiskach.

Właściwość VM Kontener
Rozmiar Duży (cały OS) Mały (tylko aplikacja i zależności)
Czas uruchomienia Minuty Sekundy
Izolacja Silna (własny OS) Dobra, ale współdzieli jądro OS
Zastosowanie Gdy potrzebujesz całego systemu OS Aplikacje jednoinstancyjne i mikroserwisy
Przykład Proxmox VM, VirtualBox Docker, Podman

Kiedy używamy czego?

  • Użyj VM kiedy potrzebujesz całego systemu operacyjnego, np. Windows Server lub serwera Linux z pełną kontrolą.
  • Użyj kontenera kiedy potrzebujesz tylko uruchomić aplikację, np. serwer WWW, bazę danych lub Grafanę.

W praktyce często używamy obu: VM jako hostów dla kontenerów Docker.

Usługi chmurowe

Usługi chmurowe oznaczają, że ktoś inny jest właścicielem i zarządcą sprzętu, a Ty wynajmujesz to, czego potrzebujesz przez Internet. Zamiast kupować i utrzymywać fizyczny serwer, płacisz za korzystanie z maszyny wirtualnej w chmurze.

Modele usług

Istnieją trzy główne modele usług chmurowych:

Model Pełna nazwa Co otrzymujesz Co zarządzasz samodzielnie Przykład
IaaS Infrastructure as a Service Wirtualne maszyny, sieć i pamięć masowa OS, aplikacje, konfiguracja Azure VM, AWS EC2
PaaS Platform as a Service Gotowa platforma do uruchamiania kodu Tylko aplikacja Azure App Service, Heroku
SaaS Software as a Service Gotowe aplikacje, z których korzystasz przez przeglądarkę Nic technicznie Microsoft 365, Google Docs

Prosty sposób, aby to zapamiętać

  • IaaS = Wynajmujesz pustą maszynę. Sam instalujesz i konfigurujesz wszystko.
  • PaaS = Wynajmujesz gotowe środowisko. Musisz tylko wstawić swój kod.
  • SaaS = Wynajmujesz gotową aplikację. Musisz tylko się zalogować i z niej korzystać.

Modele dostarczania

Usługi chmurowe mogą być dostarczane na różne sposoby:

Model Wyjaśnienie Przykład
Chmura publiczna Udostępniana infrastruktura dostępna dla wszystkich Azure, AWS, Google Cloud
Chmura prywatna Dedykowana infrastruktura dla przedsiębiorstwa Proxmox w serwerowni szkoły
Chmura hybrydowa Połączenie chmury publicznej i prywatnej Niektóre usługi lokalnie, niektóre w Azure

VPS: Popularne rozwiązanie w chmurze

VPS (Virtual Private Server) to jedno z najpopularniejszych rozwiązań IaaS. Wynajmujesz wirtualną maszynę od dostawcy chmury i masz nad nią pełną kontrolę, tak jakbyś posiadał własny serwer.

Typowe zastosowania:

  • Uruchomienie serwera WWW
  • Konfiguracja usługi VPN
  • Hostowanie aplikacji (np. Flask + baza danych)
  • Testowanie rzeczy bez ryzyka uszkodzenia własnego sprzętu

Popularni dostawcy VPS:

Dostawca Zalety
Linode (Akamai) Prosty, dobrze wyceniony, dobre poradniki
DigitalOcean Przyjazny dla użytkownika, dobra dokumentacja
Hetzner Niedrogi, europejski (zgodny z RODO)
Azure Zintegrowany z ekosystemem Microsoft

Koszty w chmurze

Usługi chmurowe kosztują pieniądze i mogą szybko stać się drogie, jeśli nie będziesz uważać. Maszyna wirtualna działająca 24/7 kosztuje więcej niż ta, którą wyłączasz po użyciu. Zawsze sprawdzaj ceny i ustaw powiadomienia o kosztach.

Lokalnie vs. w chmurze

Wiele firm korzysta z połączenia serwerów lokalnych i usług chmurowych. Oto kilka czynników do rozważenia:

Czynnik Lokalnie (on-premises) Chmura
Kontrola Pełna kontrola nad sprzętem i danymi Zależność od dostawcy
Koszt Duża inwestycja na początku Bieżące miesięczne koszty
Skalowalność Ograniczona fizycznym sprzętem Możliwość skalowania w górę i w dół w zależności od potrzeb
Utrzymanie Musisz wszystko naprawiać sam Dostawca zarządza sprzętem
Prywatność Wiesz, gdzie znajdują się dane Dane mogą być przechowywane w innych krajach

Easy Zadanie 1 - Uruchom maszynę wirtualną na swoim komputerze

Pobierz VirtualBox (bezpłatnie) i spróbuj zainstalować dystrybucję Linuksa, na przykład Ubuntu Desktop lub Linux Mint.

  • Ile RAM i CPU wybierasz przydzielić maszynie wirtualnej?
  • Czy zauważasz, że twój komputer staje się wolniejszy podczas działania maszyny wirtualnej?
  • Co się stanie, jeśli spróbujesz przydzielić maszynie wirtualnej więcej RAM-u, niż posiada twój komputer?

Daje to dobre wyczucie tego, jak maszyny wirtualne dzielą zasoby fizycznego komputera.

Easy Zadanie 2 - Uruchom kontener za pomocą Dockera

Jeśli masz zainstalowanego Dockera (lub masz dostęp do maszyny wirtualnej z Dockerem), spróbuj uruchomić:

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. -> Uruchom kontener nginx w tle i odwzoruj port 8080 na hoście do portu 80 w kontenerze.

Odwiedź następnie http://localhost:8080 w przeglądarce. Uruchomiłeś teraz serwer WWW w kontenerze! Porównaj, ile to zająło w porównaniu do skonfigurowania całej maszyny wirtualnej z Nginx.

Easy Zadanie 3 - Jakich usług chmurowych już używasz?

Zastanów się, z jakich usług korzystasz na co dzień:

  • Microsoft 365 (Word, Teams, OneDrive) to SaaS
  • GitHub Pages do hostowania strony internetowej to PaaS
  • Jeśli tworzysz VM w Proxmox w szkole, jest to w praktyce IaaS (tylko lokalnie)

Czy potrafisz skategoryzować inne usługi, z których korzystasz?

Easy Zadanie 4 - Gdzie znajdują się Twoje dane?

Przejdź do Microsoft Privacy Dashboard i sprawdź, co Microsoft przechowuje o Tobie. Sprawdź również warunki korzystania z usługi w chmurze, z której korzystasz:

  • Gdzie na świecie przechowywane są dane?
  • Co się stanie z danymi, jeśli usuniesz swoje konto?
  • Czy jesteś właścicielem swoich danych, czy dostawca?

Te pytania są szczególnie ważne w kontekście RODO i prywatności.

Podsumowanie

  • Wirtualizacja pozwala na uruchamianie wielu usług na tym samym sprzęcie, zarówno jako VM, jak i kontenery.
  • Usługi chmurowe oznaczają, że ktoś inny jest właścicielem sprzętu, a Ty wynajmujesz to, czego potrzebujesz.
  • IaaS, PaaS i SaaS opisują, jak dużą odpowiedzialność ponosisz sam.
  • W praktyce wielu korzysta z rozwiązania hybrydowego z usługami lokalnymi i chmurowymi.
  • Wybór między lokalnie a w chmurze dotyczy kontroli, kosztów, skalowalności i prywatności.