Programowanie rozproszone w chmurze

Początkujący
Średni
Deweloper
Uczeń
Azure

Dowiedz się, dlaczego projektowanie złożonych programów komputerowych działających w chmurze wymaga programowania rozproszonego.

Zawartość tego modułu:

  • Klasyfikowanie programów jako sekwencyjnych, współbieżnych, równoległych i rozproszonych
  • Wskazywanie powodów, dla których zwykle stosuje się zrównoleglanie programów sekwencyjnych
  • Definiowanie modeli programowania rozproszonego
  • Omówienie problemów związanych ze skalowalnością, komunikacją, heterogenicznością, synchronizacją, odpornością na uszkodzenia i planowaniem, które występują podczas tworzenia programów opartych na chmurze
  • Definiowanie heterogenicznych i homogenicznych chmur oraz identyfikowanie głównych przyczyn stosowania heterogeniczności w chmurze
  • Określanie głównych problemów związanych z heterogenicznością w programach rozproszonych i wskazywanie strategii rozwiązywania tych problemów
  • Określanie warunków, w których synchronizacja jest wymagana w chmurze
  • Określanie głównej metody zapewniania odporności na uszkodzenia w chmurze
  • Różnice między planowaniem zadań i planowaniem zleceń
  • Wyjaśnienie wpływu heterogeniczności i lokalności na harmonogramy zadań

We współpracy z dr. Majdem Sakrem i uniwersytetem Carnegie Mellon University.

Wymagania wstępne

  • Zrozumienie idei przetwarzania w chmurze, w tym modeli usług w chmurze, i zapoznanie się z najpopularniejszymi dostawcami usług w chmurze
  • Znajomość technologii umożliwiających przetwarzanie w chmurze
  • Zrozumienie, jak dostawcy usług w chmurze płacą za korzystanie z chmury oraz pobierają za to opłaty
  • Wiedza o tym, czym są centra danych oraz dlaczego istnieją
  • Wiedza na temat sposobu konfiguracji, zasilania i aprowizacji centrów danych
  • Wiedza na temat sposobu aprowizacji i mierzenia zasobów chmury
  • Znajomość koncepcji wirtualizacji
  • Znajomość różnych typów wirtualizacji
  • Zrozumienie wirtualizacji procesora
  • Zrozumienie wirtualizacji pamięci
  • Zrozumienie wirtualizacji we/wy
  • Znajomość różnych typów danych i sposobów ich przechowywania
  • Znajomość działania rozproszonych systemów plików
  • Znajomość działania baz danych NoSQL i magazynu obiektów

Moduły w ramach tej ścieżki szkoleniowej

Tu dowiesz się więcej o programowaniu rozproszonym oraz dlaczego jest ono przydatne w tworzeniu rozwiązań dla chmury. Poznasz m.in. modele programowania, typy równoległości oraz różnice między architekturą symetryczną a asymetryczną.

MapReduce to przełomowa niegdyś technologia przetwarzania danych big data, która została powszechnie zaakceptowana i znacząco ulepszona. Dowiedz się, jak działa technologia MapReduce.

GraphLab to narzędzie do obsługi danych big data opracowane przez Carnegie Mellon University, które ułatwia wyszukiwanie danych. Dowiedz się, jak działa oprogramowanie GraphLab i dlaczego jest przydatne.

Spark to platforma przetwarzania w klastrach typu open source z nieco innymi zaletami niż MapReduce. Dowiedz się, jak działa platforma Spark.

Zwiększenie ilości dostępnych danych spowodowało wzrost liczby ciągłych strumieni danych przesyłanych w czasie rzeczywistym, które wymagają przetworzenia. Poznaj różne systemy i techniki służące do wykorzystywania i przetwarzania strumieni danych w czasie rzeczywistym.

Ta ścieżka szkoleniowa i moduły są licencjonowane na zasadach licencji Creative Commons Attribution-NonCommercial-ShareAlike International License.