Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Techniki chmur obliczeniowych

Informacje ogólne

Kod przedmiotu: 103A-IRxxx-ISP-TECHO
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Techniki chmur obliczeniowych
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty obieralne )-Techniki teleinformatyczne-inż.-EITI
( Przedmioty techniczne )---EITI
( Teleinformatyka )-Inżynieria internetu rzeczy-inż.-EITI
Punkty ECTS i inne: 5.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

TECHO

Numer wersji:

1

Skrócony opis:

W ramach przedmiotu zostanie omówiona architektura chmur obliczeniowych, techniki wirtualizacji, techniki sieciowe stosowane w centrach danych, zasady projektowania aplikacji i usług w rozproszonym środowisku chmurowym z wykorzystaniem zasobów dostępnych w chmurze oraz zasobów urządzeń na brzegu sieci (edge computing) i dostępnych w otoczeniu użytkownika (fog computing). Zostaną przedstawione narzędzia do zarządzania i orkiestracji usługami chmurowymi oraz zasady programowania aplikacji Internetu Rzeczy wykorzystujące specjalizowane środowiska chmurowe. Przedstawiona na wykładzie wiedza zostanie zweryfikowana praktycznie w ramach laboratoriów dot. wirtualizacji, zbudowania środowiska chmurowego wykorzystującego zasoby centrów danych oraz dostępne na brzegu sieci, orkiestracji aplikacji i usług, testowania wydajności systemów oraz wybranych mechanizmów np. skalowania aplikacji, równoważenia obciążenia, a także implementacji wybranej aplikacji IoT w rozproszonym środowisku chmurowym.

Pełny opis:


Treść wykładu

  1. Wprowadzenie:

    • definicja chmury obliczeniowej,
    • ewolucja rozwiązań chmurowych,
    • porównanie modeli: public/private/hybrid cloud,
    • modele biznesowe,
    • możliwości i ograniczenia.
  2. Architektury chmur obliczeniowych:
    • modele usług,
    • standaryzacja,
    • zagadnienie współpracy pomiędzy operatorami chmur (w tym modele federacji chmur obliczeniowych).
  3. Techniki sieciowe i protokoły dla centrów danych:
    • infrastruktura centrum danych,
    • techniki sieciowe (InfiniBand, SDN,…),
    • mechanizmy i protokoły dla centrum danych (wirtualizacja, HADOOP, Spark, DCTCP, DC ruting),
    • rozproszona kolejka zadań i broker wiadomości (Celery, RabbitMQ).
  4. Techniki wirtualizacji:
    • wirtualizacja jako narzędzie umożliwiające efektywne wykorzystanie zasobów fizycznych,
    • porównanie rodzajów wirtualizacji (w tym hipernadzorca typu 1 i 2, zagadnienia izolacji), architektura i przypadki użycia,
    • narzędzia do wirtualizacji (pełna: KVM, XEN, VMWare, VBox; kontenerowa: LXC, Docker, oraz hybrydowa: kata kontenery),
    • techniki realizacji połączeń sieciowych dla maszyn wirtualnych i kontenerów zapewniające wysoką wydajność, w tym techniki sprzętowego wspiercia wirtualizacji np. narzędzia DPDK, SR-IOV w architekturach x86 oraz ARM,
    • mechanizmy przydziału i zarządzania zasobami (cpu/gpu, pamięć operacyjna i składowania, sieć, energia, ...) oraz mechanizmy zapewnienia izolacji,
    • zarządzenie cyklem życia maszyn wirtualnych / kontenerów, v) szczególne właściwości kontenerów (np. efemeryczność) i dobre praktyki tworzenia obrazów i kontenerów.
  5. Systemy zarządzania i orkiestracji usług i aplikacji w chmurach obliczeniowych na przykładzie narzędzi Docker Swarm, Claudify, Kubernetess oraz OpenStack:
    • porównanie systemów,
    • realizowane funkcje podstawowe, np. umieszczenie/usunięcie obrazu, uruchomienie/zatrzymanie instancji, przydział zasobów, migracja maszyn wirtualnych/kontenerów, skalowanie usług (scale out & in), równoważenie obciążenia,
    • usługi wspomagające działanie chmury (np. monitorowanie stanu usług, obsługa mobilności aplikacji, zapewnienie niezawodności, w tym obsługa awarii i anomalii,
    • zarządzanie cyklem życia aplikacji, np. aktualizacja oprogramowania,
    • repozytoria obrazów i kontenerów (np. OSBoxes, Docker Hub) - przykłady użycia.
  6. Edge vs. Fog computing:
    • koncepcja wykorzystania obliczeń realizowanych na brzegu sieci,
    • architektura systemów MEC (MultiAcess Edge Computing) oraz systemów mgły obliczeniowej (fog computing),
    • orkiestracja aplikacji i usług w takich systemach na przykładzie środowisk OpenFog, KubeEdge, SyMEC,
    • projektowanie aplikacji i usług z wykorzystaniem zasobów w oferowanych na brzegu sieci,
    • przykłady wykorzystania.
  7. Przykłady chmur obliczeniowych MS Azure, AWS, Google Cloud:
    • porównanie systemów,
    • przedstawienie podstawowych modułów do tworzenia aplikacji (np. przestrzeń dyskowa, baza danych, bramka API),
    • model Serverless (Azure Functions, AWS Lambda, Google Cloud Functions).
  8. Zasady projektowania aplikacji i usług IoT w środowisku Microsoft Azure IoT, AWS IoT oraz Google Cloud IoT, środowisko deweloperskie, podstawy API, zasady projektowania i implementacji aplikacji, np. inteligentnego domu, aplikacji multimedialnych, zastosowań przemysłowych.


Zakres laboratorium


Laboratorium obejmuje 7 ćwiczeń każde po 4 godziny. W ramach poszczególnych laboratoriów studenci poznają:

  1. Techniki wirtualizacji: wirtualizacja pełna, np. KVM, kontenerowa, np. Docker oraz hybrydowa, np. kata kontenery.

    W ramach laboratorium studenci poznają zasady uruchamiania i konfiguracji maszyn wirtualnych oraz kontenerów. Omówiony zostanie sposób definiowania maszyn wirtualnych (informacje zawarte w deskryptorach maszyn/kontenerów, zasady realizacji połączeń sieciowych pomiędzy wirtualnymi i fizycznymi urządzeniami oraz parametry podawane przy uruchamianiu kontenerów. Studenci utworzą własne maszyny wirtualne przydzielając im odpowiednią ilość zasobów, utworzą wymaganą liczbę interfejsów sieciowych i powiążą je z odpowiednimi interfejsami serwera goszczącego zapewniając wymaganą wydajność i połączenia z sieciami. Studenci uruchomią kontener Docker - użyją gotowego obrazu np. Nginx, który udostępnią na odpowiednim porcie serwera goszczącego i do którego przekażą pliki konfiguracyjne programu znajdujące się na serwerze. Następnie przeprowadzone zostaną testy wydajności urządzeń wirtualnych w porównaniu do wydajności odpowiadających im urządzeń fizycznych.
  2. Techniki sieciowe centrów danych, np. SDN (protokół openflow, przełącznik programowy openvswitch, sterownik sieci ONOS).
    W ramach laboratorium studenci poznają zasadę działania sieci sterowanych programowo. W szczególności, zaprezentowana zostanie struktura tabeli przepływów - możliwe pola dopasowania oraz możliwe akcje do wykonania, a także sposób realizacji wybranych funkcji (np. routing, firewalling, NAT, …) na podstawie odpowiednich wpisów w tej tabeli. Przedstawiona zostanie rola sterownika SDN oraz przełącznika programowego openvswitch (OVS), również wykorzystującego wsparcie sprzętowe DPDK. Studenci zainstalują i uruchomią przełącznik OVS na maszynach wirtualnych, następnie skonfigurują go i dodadzą do niego odpowiednie interfejsy fizyczne oraz interfejsy maszyn wirtualnych oraz kontenerów. Dalej uruchomiony zostanie kontener ze sterownikiem ONOS, który będzie zarządzał OVSem (lub grupą OVSów) zgodnie z przyjętym scenariuszem. W GUI sterownika studenci będą mogli zweryfikować poprawność swojej konfiguracji.
  3. Techniki równoległego przetwarzania i przechowywania danych, np. HADOOP, SPARK, CEPH, NVIDIA CUDA.
    W ramach tego laboratorium studenci poznają zasady działania systemów rozproszonego przetwarzania i przechowywania danych stosowanych w centrach danych. gólności, w ramach laboratorium zostaną omówione, zaprojektowane, uruchomione oraz przetestowane z punktu widzenia wydajności systemy rozproszonego przetwarzania i przechowywania danych zbudowane z wykorzystaniem wybranego systemu HADOOP, Spark lub CEPH lub technik równoległych obliczeń realizowanych na wysokowydajnych kartach graficznych w architekturze NVIDIA CUDA. Następnie zostaną przeprowadzone testy wydajności zaprojektowanego rozproszonego systemu w porównaniu do systemu niewykorzystującego zrównoleglenia.
  4. Zasady tworzenia chmur obliczeniowych wykorzystując zasoby centrum danych oraz na brzegu sieci.
    W ramach tego laboratorium studenci poznają zasady budowania centrów obliczeniowych oraz rozproszonych chmur obliczeniowych wykorzystujących zasoby obliczeniowe dostępne w ramach centrum danych, a także dostępne na brzegu sieci (edge computing). W ramach ćwiczenia zostanie zbudowany model rozproszonego środowiska chmurowego oferującego zasoby obliczeniowe (CPU oraz GPU), zasoby pamięci (operacyjna i składowania danych), zasoby sieciowe. Opracowany model będzie wykorzystywany w kolejnych laboratoriach. Ponadto, zostaną przeprowadzone testy wydajności obliczeniowej opracowanego środowiska.
  5. Narzędzia do orkiestracji zasobów i usług Kubernetess, KubeEdge, Cloudify.
    W ramach laboratorium studenci poznają narzędzia do zarządzania i orkiestracji usług w środowisku chmury obliczeniowej. Studenci poznają etapy wchodzące w skład cyklu życia aplikacji. Stworzą własną usługę złożoną z kilku komponentów (podów). Zostanie zapewniona komunikacja pomiędzy podami, ustalone zostaną zasady ich skalowania. Zbudowana usługa zostanie udostępniona poprzez Ingress. Następnie zostanie zbadana wydajność systemu oraz jego zachowanie przy zwiększającym się obciążeniu. Przeprowadzona zostanie aktualizacja usługi w trakcie jej działania.
  6. Środowiska chmurowe: MS Azure, AWS, Google Cloud.
    W ramach laboratorium studenci poznają publiczne środowiska chmurowe. W szczególności przedstawione zostaną poszczególne komponenty dostępne na tych platformach, zasady projektowania usługi z ich wykorzystaniem a także zasady naliczania opłat. Studenci stworzą proste mikroserwisy (np. kompresja pliku i wyliczanie jego skrótu) korzystające z REST API, które umiejscowią w publicznej chmurze na maszynach wirtualnych. Następnie rozbudują system o dodatkowe moduły, jak np. baza danych, load balancer, strona internetowa (frontend). Ostatecznie mikroserwisy zostaną przeniesione do środowiska operacyjnego, a system zostanie udostępniony w Internecie. Następnie zostaną przeprowadzone testy wydajności opracowanej usługi.
  7. Zasady projektowania oraz implementacji aplikacji IoT w środowisku chmurowym.
    W ramach laboratorium studenci poznają zasady projektowania aplikacji IoT wybranym środowisku chmurowym specjalizowanym dla realizacji aplikacji IoT, np. Microsoft Azure IoT, AWS IoT oraz Google Cloud IoT. Celem laboratorium zaprojektowanie, implementacja oraz przetestowanie funkcjonalności oraz wydajność) przykładowej aplikacji IoT w wybranym środowisku chmurowym dotyczącej zastosowań np. inteligentnego domu, aplikacji multimedialnych.
Literatura:

Literatura:

  1. Slajdy do wykładu.
  2. Wybór dokumentów standaryzacyjnych i zaleceń dotyczących przedstawianych zagadnień, m.in., IEEE Cloud WG P230x, P2032, ISO27, ETSI MEC.
  3. Książki i raporty:
    • Thomas Erl et al, “Cloud Computing: Concepts, Technology & Architecture”, Prentice Hall, ISBN 978-0133387520.
    • Rajkumar Buyya et al, “Cloud computing: principles and paradigms”, Wiley, ISBN 9780470887998.
    • Zbigniew Fryźlewicz, Łukasz Leśniczek, “Usługi Microsoft Azure: programowanie aplikacji”, Warszawa 2015, ISBN 9788375411577.
    • W. Burakowski, A.Beben et al, “Trafic Management for Cloud Federation” in Autonomous Control for a Reliable Internet of Services: Methods, Models, Approaches, Techniques, Algorithms and Tools, LNCS, Springer 2018.
    • T. Teleb, “On Multi-Access Edge Computing: A Survey of the Emerging 5G Network Edge Cloud Architecture and Orchestration”, IEEE Communications Surveys & tutorials, vol.19, issue 3, 2017.
    • NIST Cloud Computing Security Reference Architecture, NIST 2013.
  4. Wybór bieżących artykułów naukowych dotyczących przedstawianych metod, które zostały opublikowane na wiodących konferencjach lub w czasopismach - udostępnione na stronie wykładu.
  5. Dokumentacja techniczna wykorzystywanego oprogramowania.

Oprogramowanie:

  1. Infrastruktura badawcza PL-LAB umożliwiająca przeprowadzenie eksperymentów w rozproszonym środowisku sieci krajowej.
  2. Narzędzia pomiarowe (generator/analizator): Spirent, Avalanche Virtual, IXIA.
  3. Narzędzia do wirtualizacji: pełnej (KVM, XEN, VMWare, VBox), kontenerowej (LXC, Docker), hybrydowej (kata-containers).
  4. Narzędzia do równoległego przechowywania i przetwarzania danych: HADOOP, Spark, NVIDIA CUDA.
  5. Narzędzia do zarządzania i orkiestracji: OpenStack, Kubernetess, Cloudify, OSM, KubeEdge.
  6. Narzędzie programowania w środowisku Microsoft Azure IoT, AWS IoT oraz Google Cloud IoT.

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. letni" (w trakcie)

Okres: 2024-02-19 - 2024-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 48 miejsc więcej informacji
Wykład, 30 godzin, 48 miejsc więcej informacji
Koordynatorzy: Andrzej Bęben
Prowadzący grup: Andrzej Bęben, Witold Jóźwiak, Jordi Mongay Batalla, Maciej Sosnowski, Piotr Wiśniewski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. letni" (zakończony)

Okres: 2023-02-20 - 2023-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Andrzej Bęben
Prowadzący grup: Andrzej Bęben, Jordi Mongay Batalla, Maciej Sosnowski, Piotr Wiśniewski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 44 miejsc więcej informacji
Wykład, 30 godzin, 44 miejsc więcej informacji
Koordynatorzy: Andrzej Bęben
Prowadzący grup: Andrzej Bęben, Maciej Sosnowski, Piotr Wiśniewski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)