Wirtualizacja Wykład PDF
Document Details
Uploaded by Deleted User
Tags
Summary
Ten dokument przedstawia koncepcje wirtualizacji, obejmujące typy hypervisorów, kryteria Popka-Goldberga oraz konteneryzację. Zawiera również informacje o virtualizacji procesów i pamięci oraz o chmurach obliczeniowych.
Full Transcript
Wirtualizacja – użycie dedykowanego oprogramowana w celu stworzenia abstrakcji posiadanych zasobów informatycznych Host – maszyna fizyczna Guest – maszyna wirtualna Hypervisor – monitor maszyny wirtualnej kontroluący, udostępniający oraz zarządzającym dostępem do zasobów fizycznych hosta’ Typy hype...
Wirtualizacja – użycie dedykowanego oprogramowana w celu stworzenia abstrakcji posiadanych zasobów informatycznych Host – maszyna fizyczna Guest – maszyna wirtualna Hypervisor – monitor maszyny wirtualnej kontroluący, udostępniający oraz zarządzającym dostępem do zasobów fizycznych hosta’ Typy hypervisorów Typ (natywny) Uruchamiany na dedykowanej platformie sprzętowej System operacyjny z zaszytym oprogramowaniem kontrolującym maszyny wirtualne Guest OS uruchamiany jest na drugim poziomie nad sprzętem Przykłady Vmware ESX/ESXi Server Oracle VM Microsoft’s Hyper-v Xen Citrix Xen Serwer VM1 – Aplikacje -Os1 VM2 – Aplikacje – Os 2 VM3 – Aplikacje - OS3 Hypervisor Sprzęt Hypervisor Typ 2 (gospodarz) Uruchamiany na innym systemie operacyjnym Przykłady: VMWare WorkStation/Fusion QEMU Microsoft Virtualn PC/Server Oracle VirtualBox VM1 – APLIKACJE OS1 VM2 – APLIKACJE – OS2 Aplikacje Hypervisor Natywny System Operacyjny Sprzet Kryteria Popka-Goldberga Kryteria Geralda J.Popka i Robetrta P.Goldberga (1974): Kryteria właściwego funkcjonowania maszyny wirtualne Kryteria możliwości zbudowania maszyny wirtualnej na zadanej architekturze komputera Warunki: Odpowiedniość – zachowanie programu uruchomionego na maszynie wirtualnej musi być dokładnie takie samo jak uruchomionego na rzeczywistym sprzęcie Kontrola zasobów – pełna kontrola wirtualizowanych zasobów przez maszynę wirtualną Wydajnośc – możliwie jak największa liczba instrukcji musi być wykonywana bez udziału maszyny wirtualnej Zbiory instrukcji: Instrukcje uprzywilejowane – efekt: przerwanie lub wywołanie systemowe w trybie użytkownika lub ich brak w trybie jąda Instrukcja wrażliwa ze względu na kontrolę – Mogą dokonywać zmian konfiguracji zasobów systemowych Instrukcje wrażliwe ze względu na wykonanie – działanie zależne od konfiguracji systemu Twierdzenie Popka-Goldberga – Dla każdego standardowego komputera trzeciej generacji wirtualna maszyna może zostać skonstruowana, jeśli zbiór instrukcji wrażliwych jest podzbiorem zbioru instrukcji uprzywilejowanych Każda operacja powodująca niepoprawne działanie maszyny wirtualnej powoduje przerwanie lub wywołanie systemowe, dzięki czemu maszyna wirtualna może podjąć odpowiednie działanie Instrukcje nieuprzywilejowane przekazywane są do fizycznego sprzętu w celu maksymalizacji wydajności Wirtualizacja a emulacja Emulacja API (Application Programming Interface) – Rozwiązanie programowe wykorzystujące sposób działania aplikacji jako rozdzielnych procesów w stosunku do systemu operacyjnego Emulacja pełna – emulacja postawowych podzespołów komputera (CPU, HDD, RAM, CD, OS itp.) na nie kompatybilnym sprzęcie i OS Wirtualizacja – uruchomienie wielu OS na tej samej platformie fizycznej przy maksymalizacji wydajności. Typy wirtualizacji Parawirtualizacja: Wirtualizowany OS guest współpracuje z OS hosta Hypervisor typu 1 Wydajnośc zbliżona do natywnego OS Brak bezpośrednich odwołań do sprzętu ( zamiast tego odwołania typu hypercall) Pełna wirtualizacja: Zawirtualizowany OS działa jak na maszynie fizycznej Odwołania do sprzętu i OS hosta sa przechwytywane i obsługiwane przez hypervisor typu 2 a następnie emulowane Pożadane sprzętowe wsparcie wirtualizacji (Intel VT-X; AMD-V) Wirtualizacja na poziomie OS OS hosta obsługuje kilka odseparowanych od siebie środowisk wirtualnych Konteneryzacja Kontener – ustandaryzowany moduł zawierający kod wykonywalny aplikacji, środowisko uruchomieniowe oraz wszystkie niezbędne pliki binarne i biblioteki oraz zależności między nimi Pliki obrazu kontenera – Wykonywalna paczka oprogramowania zawierająca wszystko co niezbędne do uruchomienia danej aplikacji: kod aplikacji, środowisko uruchomieniowe, wymagane narzędzia systemowe, pliki binarne i biblioteki oraz konfigurację środowiska Defacto standard przemysłowy, umożliwiający uruchomienie aplikacji nie zależnie od platformy sprzętowej, systemu operacyjnego oraz usługodawcy chmurowego Kontenery umożliwiją optymalizację oraz efektywne wykorzystanie zasobów fizycznych oraz redukcję kosztów, zarówno względem koniecznoci zakupu serwerów jak i wymaganych licencji Izolacja uruchomionych aplikacji oraz podniesienie poziomu bezpieczeństwa Docker – instalacja -import klucza GPG repozytorium Docker -curl-fsSL https://download.docker.com/linux/ ->ubuntu|gpg|sudo apt-key add – -dodanie repozytorium APT Docker -sudo add-apt-repository „deb [arch=amd64] Docker -instalacja -Instalacja -sudo apt update -sudo apt install docker-cer docker-ce-cli containered.io Weryfikacja startu Dockera -sudo systemctl status docker Uruchomienie Dockera przez użytkownika nie będącego rootem -sudo usermod -aG docker $USER -sudo reboot Docker-podsumowanie -Pobieranie obrazów kontenerów https://hub.docker.com/ Szczegóły – docs.dcoker.com Docker pull Utworzenie wolumenu Portainer -Sudo docker volume create portainer data Utworzenie kontenera Portainer -Sudo docker run -d -p 8000:8000 -p 9000:9000 –name=portainer –restart=always-v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce Ostrzeznie Ataki na serwisy i/lub usługi internetowe, nawet nieudane prowadzone metodami pokazanymi w dalszej części wykładu (eskalacja uprawnień użytkownika) – są naruszane prawa. Sprawca takiego ataku może zostać pociągnięty do odpowiedzialności cywilnej, a w pewnych sytuacjach nawet do odpowiedzialno Eskalacja uprawnini FROM debian:wheezy -źródłowy obraz OS ENV WORKDIR /dajroot – Zmienna środowiskowa RUN mkdir -p $WORKDIR – Punkt montowania systemu plików VOLUME $WORKDIR WORKDIR $WORKDIR Eskalacja uprawnień użytkownika Utworzenie pliku obrazu „dajroot” Docker images Uruchomienie kontenera Docker run -v /:/dajroot -it dajroot /bin/bash Gdzie -v /:/dajroot – monotwanie systemu plików do wskazanej lokalizacji kontenera -it dajroot /bin/bash – „-i” tryb interaktywny „-t” wykorzystanie terminala „dajroot” nazwa kontenera „/bin/bash” powłoka OS Weryfikacja zwartości pliku /etc/sudoers: Dodanie wpisu „mwar ALL=(ALL) NOPASSWD:ALL” do pliku /etc/sudoers.. Echo „mwar ALL = (ALL) NOPASSWD:ALL” >> /dajroot/etc/sudoers Podsumowanie Przeciwdziałenie eskalacji uprawnień: -Uruchamianie kontenerów bez uprawnień „root-a” -Stososwanie PoLP (Principle of Least Privilege) -Wyłacznie (ew. ograniczenie do niezbędnego minimum poprzez wskazanie jedynie koniecznych zasobów) konieczności współdzielenia systemu plików hosta z kontenerem sudo apt update sudo apt upgrade apt-transport-https ca-certificates curl gnupg-agent software-properties-common sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg dodanie repo echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker- compose-plugin sudo systemctl status docker sudo usermod -aG docker $USER sudo reboot test: docker container run hello-world Wirtualizacja Procesów Interpereter cpu jest uruchamiany jako proces Możliwość pracy w piaskownicy (wyizolowane środowisko pracy danej aplikacji) Brak możliwości „udawania” dostępu do platformy sprzętowej – obsługa wywołania funkcji w celu uzyskania dostępu do: Funkcji systemowych hosta Sprzetu hosta Wirtualizacja CPU (wywłaśczenie systemu !!!!!) Każdy proces uruchomiany w VM pracuje w taki sam sposób jak na maszynie fizycznej Brak możliwości wykonywania instrukcji uprzywilejowanych: Instrukcje jednostki zarządzania pamięcią (MMU – Memory Management Unit) Dostęp do urządzeń i interfejsów I/O Iluzja pracy na CPU realizowana jest przez wywłaszczenie systemu operacyjnego, planowanie i zarzadzanie zadaniami oraz MMU Wirtualizacja pamięci Stronnicowanie pamięci MMU odpowiada za tłumaczenie adresów logicznych pamięci procesów na adresy fizyczne Pamięć fizyczna dzielona jest na bloki stałej długości zwane ramkami Pmięć logiczna dzielona jest na bloki stałej długości zwane stronami Rozmiar stron i ramek są identyczne Gdy proces przechodzi w stan wykonania jądro OS przekazuje do MMU adres tablicy stron procesu Indeksami tej tablicy są logiczne numery stron procesu, a wartościami – adresy ramek Stronnicowanie pamięci Stronnicowanie pamięci – zalety: Podział dostępnej pamięci na bloki ustalonej wielkości Ułatwienie obsługi pamięci Brak fragmentacji zewnętrzenj powstania sytuacji gdy uruchomiony proces A nie wykorzysta całości przydzielonego bloku pamięci i nie znajdzie się inny proces B mający zapotrzebowanie na niezagospodarowany fragment bloku pamięci. Najmniejszy nie użyty blok amięci ma rozmiar pojedynczego bloku Proces mający zapotrzebowanie na więcej niż jeden blok pamięci dostaje je pojedynzo, przez co nie musi to być blok spójny Stronnicowanie pamięci – wady: Fragmentacja wewnętrzna – uruchomiony proces może potrzebować mniej pamięci niż rozmiar bloku (4kB) wówczas pozostała część może pozostać niewykorzystana Koszt utrzymania pamięci – dla każdej strony i ramki trzyma się informacje o nich, co sumarycznie absorbuje znaczny fragment pamięci Wirtualizacja pamięci Współdzielenie stron -TPS : Część pamięci alokowanej przez aplikacje jest identyczna Można wymusić na systemach aby alokowały te fragmenty w odpowiednich stronach pamięci Współdzielenie stron realizowane jest na zasadzie copy-on-write Konieczna modyfikacja OS gościa Współdzielenie stron bazującej na zawartości: Hypervisor/VMM przechowuje tablicę z sumami kontrolnymi (bądź funkcjami skrótu – „hashe”) stron pamięci W momencie alokacji danej strony wyznaczana jest wartość jej funkcji skrótu oraz sprawdzana tabela stron pamięci W przypadku udanego dopasowania nastepuje ponowne sprawdzenie identyczności stron – i w przypadku jej potwierdziea – wspóldzenlenie na zasdach CoW Balonikowanie pamięci: Technika odyzskiwania nie używanej, przez VM, pamięci i współdzielenie jej z innymi maszynami wirtualnymi w razie wystąpienia takiej potrzeby Balonikowanie pamięci pozwalna na alokację na potrzeby maszyn wirtualnych całkowitej pamięci RAM sumarycznie wiekszje niż fizycznie dostępniej na mszynie hosta OSV VM nie ma informacji o rozmiarze zainstalowanej pamięci RAM w hoście, balonikowanie pamięci pozwala na informowanie maszyn wirtualnych o ograniczeniach w dostępności zasobów w pamięci na hoście Gdy na mszynie fizycznej zaczyna brakować wolnych zasobów pamięci RAM balonikowanie pamięci pozwala na za jej selektywną alokację do poszczególnych VM Jeśli dana VM nie wykrozystuje całej zaalokowanej pamięci hypervisor może pozyczyc nie używana pamięci VM1 i pozostawić do zarzaddzania hyperivsor Wirtualizacja napędów dyskowych Każda VM ma do dyspozycji cały swój dysk twardy Hypervisor tworzy dedykowany do obsługi dyski VM plik, lub alokuje region dysku na potrzeby VM Hyprevisor dokonuje translacji instrukcji dysku (np. SCSI) VM w celu sterowaniem dyskiem hosta (np. IDE) Wirtualizacja insterfejsów sieciowych Każdy interfejs sieciowy VM posiada unikalny adres MAC Wirtualizacja interfejsów I/O OS gościa nie ma możliwości bezpośredniej interakcji z interfejsami I/O hosta Hypervisor musi multiplesować dostęp do urządzenia fizycznych hosta Hypervisor musi umożliwiać utworzenie i zarzadzanie mostami sieciowymi VM, oraz tworzenie wirtualnych adapterów sieciowych z unikalnym adresem fizycznym (MAC) Wirtualizacja interfejsów I/O Sterowniki urządzeń VM muszą mieć możliwość komunikacji z abstrakcyjną implementacją urządzenia zarządzanym przez hypervisor Hypervisor otrzymuje i zarządza przerwaniami i wyjątkami OSVM oraz symuluje obsługę danego wyjątku bądź przerwania w OS gościa Bezpieczeństwo VM Rootkit’y dedykowane poszczególnym hypervisorom Rootkit uruchamiany jest z wyższymi uprawnieniami niż OS Eskalacja uprawnień użytkownika Problemy kolokacji infrastruktury Wycieki danych i/lub informacji Degradacja wydajności Ograniczenia dostępności serwowanych usług Zagadnienia bezpieczeństwa VM tożsame z problemami bezpieczeństwa informatycznego infrastruktury fizycznej Chmura obliczeniowa Zasoby obliczeniowe oraz oprogramowanie dostarczane na życenie użytkownikowi końcowemu Chmura obliczeniowa Chmura Chmura -> Wszechobecny dostęop do sieci Pula dostępnych zasobów Wysoka elastycznośc Plany opłat abonentowych Usługi na żądania Zalety Chmury -Obniżenia kosztów przetwarzania danych -Wydajność -Redukcja kosztów oprogramowania -Bieżąca aktualizoacja oprogramowania -Niezawodność danych -Niezalezność od platformy sprzętowej -Bezobsługowość Warstowy model chmury obliczeniowej: Infrastruktura -> Platforma -> Aplikacja Modele dostpępowe usług chmurowych Software as a Service (SaaS) Platform as a Service (PaaS) Infastructe as a Service (IaaS) Software as a Service: Oprogramowanie jako usługa – model udostępniania oprogramowania w chmurze Dostawca chmury: -Rozwija i utrzymuje aplikacje chmurowe -Zapewnia ich autmoatyczne aktualizacje -Udostepniania oprogramowania klientom za pośrednictwem Internetu na zasadzie „pay-as-you-go” -Zarzadza całym sprzętem i tradycyjnym oprogramowaniem ( w tym oprogramowaniem pośredniczącym, oprogramowaniem aplikacji i zabezpieczeniami) Klient SaaS - może znaczniej obniżyć koszty, wdrażać, skalować i uaktualniać rozwiązania biznesowe szybciej niż w przypadku utrzymywania systemów i oprogramowania lokalne -Przewidywać całkowity koszt eksploatacji Platform-as-a-Service (Paas) Platforma jako usługa – model udostępniania przygotowanego środowiska chmurowego Dostawca chmury: -Udostepnia przygotowane i skonfigurowane środowisko w chmurze Klient PaaS: -Uzyskuje dostep do dedykowanego środowiska produkcyjnego -Korzysta z dowolnych z aplickacji oraz może nimi zarządzać -otrzymuje dostep do środowsiak dedykowanego tworzeniu i wdrażaniu aplikacji -Nie musimy posiadać wiedzy, doświadczenia oraz zasobów niezbędnych do utrzymania w/w infrastrukturze Infastructure-as-a-Service – IaaS Infrastruktura jako usługa – model udsotępniania przygotowanego środowiska chmurowego Dostawca chmury : Udostępnia użytkownikowi kompletną infrastrukturę informatyczną (usługi sieciowe, serwery wirtualne, moc obliczeniowa, pamięć masowa oraz systemy operacyjne) -Pozostaje właścicielem udostępionych VM Obciąża klienta za korzystanie z udostępnionej infrastruktury wg. Bieżącego użycia Klient IaaS -Korzysta z udostępnionych usług chmurowych i zasobów -Nie ponosi kosztów związanych z budową i utrzymania własnej infrastruktury teleinformatycznej Rozkaład opdpowiedzial Modele drażania usług chmurowych Chmura publczna -Za sprawą współdzielenia zasobów dużej skali chmura publiczna cechuje się -Wysoką skalowalnością -Stosunkowo niskimi kosztami użytkowania -Może być jednak mnie bezpieczna niż chmura prywatna -Redukcją kosztów funkcjonowania instytucji -Odpowiedzialność zarządzania środowiskiem spoczywa na dostawcy usługi: -Uniemożliwia to firmowemu działowi IT skupienie się na projetkacha któ®e bezpośrednio przekładają sięna rozwój biznesu, bądź mają wpływ ma optymalizację działania organizacji -Wykorzystywanie modelu chmury publicznej przynosi też nowe wyzwania związan z integracją między różnymi środowiskami chmurowymi czy lokalnymi zasobami Typowe zastosowanie chmur publicznych -Chwilowe zaspokojenie potrzeb na moc obliczeniową i pamięć masowe – podczas skokowych wzrostów obciążenia firmy bądź instytucje mogą skorzystać z zasobów chmurowych do obsłużenia zwiększonego ruchu -Testowanie i rozwój aplikacji – budowanie środowiska testowego w chmurze jeśli łatwiejsze dzięki możliwości elastycznegp sięgania po potrzebne zasoby i zwalniani ich, gdy prace nad aplikacjami nie są prowadzone Uruchamianie wirtualnych stacji roboczych – Usługi typu Desktop-as-a-Service (DaaS) eliminują koniecznośc prowadzenia złożonego wdrożenia własnej infrastruktury VDI Długoterminowa archiwizacja danych – pod warunkiem, że infrastruktura chmury publicznej spełnia wymagania narzucane przez regulację prawne Wsparcie sprdaży – w chmurze możan uruchmoić szereg aplikacji ułatwiających działania sprzedażowe często na potrzeby konkretnych działań Aplikacje mobilne – niezależnie czy są używane wewnętrzenie, przez partnerów, czy przez klientów, mogą być dostarczane z ch ury publicznej ze względu na szeroki i łątwy dostep do takiego środowiska Dane – zbierane z miediów społecznościowych, blogów czy folderów internetpwych zamiast przechowywać z lokalnym rodowisku można łatwo przenieść i trzymać w chmurze. Z pomocą nowych usług chmurowych takie dane mogą być też łątwo prztwarzane Chmura prywatna: -Podstawową zaletą modelu prywatnej chmry obliczneiowej jest wysoki poziom kontroli na dałyś środowiskiem oraz dopasowanei poziomu bezpieczeństwa do potrzeb, ale i możliwości danej firmy -W przypadku chmury prywatnej należy być przygotowanym na inwestycję w budowę i utrzymanie własnego centrum danych -Mimo wyzwań oraz kosztów związanych w wdrożeniem i utrzymanei, wiele większych firm decyduje się na budowę chmury prywatnej min ze względu na obawy związane z bezpieczeństwem chmury publicznej -Potencjalne ryzyko naruszanie reputacji i utraty zaufania klientów na skutek włamania do chmury publicznej często jest wyceniane wyżej niż koszty budowy chmury prywatnej Zastsowoania chmury prywatnej -Potrzeby zapewnienia wysokiej wydajności np. do przetwarzania dużych ilości danych (Big-Data) czy plikó iwdeo -koniecznośc używania specyficznych rozwiązań sprzętowych -Korzystanie z aplikacji, które zachowują się w przewidywalny sposób od strony zapotrzebowanai na zasoby i nie wymagają nadmiernych ilości przetrzeni dykowej -Dodatkowym wskazaniem są aplikacji, których utrzymanie w chmurze do chmury publicznej -W ten sposób zachowuje się zgodność z regulacjami prawnymi, a także zyskuje się elastycznośc i niższe koszty utrzymania infrastruktury Chmura hubrydowa -Umożliwia przechowywanie i przetwarzanie ważnych informacji we własnej lub wynajętej serwerowni )chmura prywatna) -Otwiera drogę do optymalizacji najbardziej obciązajacych działań, poprzez przeniesienie ich do chmyry publicznej Część zasobów może być przechowywana lokalnie, zapewniając zgodność z wymaganiami związanymi z ustawą o ochronie danych osobowych, a pozostałe zostają przeniesione do chmury publicznej -W ten sposób zachowuje się zgodność z regulacjami prawnymi, a także zyskuje się elstycznośc i iniższe koszty utrzymania infrastruktury IT Zastosowania hybrodwej chmury -ograniczenia wynikające z regulacji prawnych, które utrudniają lub całkowiecie wykluczają migrację niektórych danych lub aplikacji do chmury -Dostawca chmury stale poprawiają zgodnośc swoich środowisk z wymogamia praca, otwiera drogę do budowy środowisk chmurowych nawet w przypadku najbardziej wrażliwych danych -Wymuszona skalowalność zasobów IT – np. związana z rozwojem danego podmiotu -Model hybrydowy zakłada przneiesienie tylko części danych i aplikacji do chmury publicznej -Zwiększnie dostępności do zasobów IT i skalować je płynnie w miarę rosnącego zapotrzebowania -Budowa zapasowego centrum przetwarzania danych -Możliwość wykorzystania zasobów chmury publicznej zamiast utrzymywania własnego, zapasowgo centrum danych -Chmura umożliwia korzystanie z tych zasobów na żadanie z rozliczeniem za zużytą moc obliczeniową od momentu awarii do wprzywrócenia sprawności podstawowego centrum danych przedsiębiorstwa -Plany przywracania po awarii, w których wykorzystuje siechmurę publiczna. Chmura jest dobrym miejsce do przechowywania czy wykonywania kopii zapasowych aplikacji o mniejszym znaczeniu ze względu na stosunkowo o niskie koszty \Wielochmura (mulitcloud) -pojęcie nie do końca sprecyzowane -Wykorzystywanie wielu dostawców chmur publicznych w połączeniu z chmurą prywatną -Wielochmura pozwala na: -Zapewnianie redundancji -Zwiększanie odporności aplikacji.usługi na awarię Wielochmura (multicloud) Zalety: -Niewrażliwośc na awarie poszczególnych dostawców usług chmurowych -Możliwość wykorzystania najlepszych usług różnych usługodawców -Wprzypadku wykorzystania chmury prywatnej – szerokie możliwości konfiguracji oraz zwiększone bezpieczeństwo wrażliwych usług i danych Wady: -Trudne i kosztowne wdrożenie oraz utrzymanie -Usługi oferowane przez dostawców chmury obliczeniowej zazwyczaj stworzone są w taki sposóbm aby integrowały się ze sobą w nieskomplikowany sposób Budowa rozwiązania opartego na usługach różych dostawóc oznacza koniecznośc tworzenia połączeń pomiędzy nieprzystosowanymi do tego usługami Edge computing -kratownicowa sięc mikrocentrów danych przetwarzająca i/lub przechowywująca dane (najczęściej pochodząca z urządzeń IOT), a następnie przesyłające je do właściwej chmury – prywatnej bądź publicznej -Wydajność i zmniejszenie zapotrzebowanai na przepustowość -Niweleowanie opóźnień (transmisja danych, przetwarzanie danych) -Przybliżenie danych do użytkowników i systemów -Spełlnienei wymogów prawnych -Odpowiedź na preferencje użytkowników Fog computing -Koncepcja zdecentralizowanej infrastruktury teleinformatycznej w której dane są agregowane, przetwarzen i przechowywane oraz aplikacje są rozproszone w optymalnych lokalizacjach pomiędzy źródłem danych a chmurą -Poprawa wydajności i zmniejszenie ilości danych przesyłanych do chmury do przetwarzania, analiz i przechowywania -Wykorzystywany ze względów bezpieczeństwa i konieczności spełniania wymogów wynikających z obowiązujących przepisów w zakresie przetwarzania danych Przykładowe aplikacje: -inteligentna sieć (smart grid) -Inteligentne miasto (smart city) -Inteligente budynki (smart building) -pojazdy podłączone do sieci (connected car) -Siecie definiowane programowo (SDN -Software Defined Networks) -Internet Rzeczy (IoT)