Internet Of Things: Big Data & Analytics - Rozdział 6

1. Przetwarzanie danych w cenne informacje wymaga mocy obliczeniowej i pojemności przechowywania. W różnych architekturach IoT dane są przetwarzane i przechowywane w różnych miejscach. W modelu Urządzenie-Sieć-Chmura dane są wysyłane bezpośrednio do chmury. Tam są przekształcane za pomocą analityki opisowej i prezentowane użytkownikowi na profilu internetowym. Ten model jest prosty, ale nie skalowalny. Gdy ilość danych wzrasta lub wymagany jest krótszy czas odpowiedzi, dane muszą być przetwarzane bliżej miejsca, w którym są generowane. Wtedy używany jest model Urządzenie-Brama-Sieć-Chmura, znany również jako przetwarzanie mgłowe (fog computing) lub analityka krawędziowa (edge analytics). Niezależnie od architektury, większość danych ostatecznie jest przechowywana w chmurze, gdzie dostępna jest niemal nieskończona moc obliczeniowa i pojemność przechowywania. Za chmurą znajduje się sieć centrów danych korzystających z technologii wirtualizacji.

2. Dane przemieszczają się po infrastrukturze sieciowej, a organizacje są zależne od swoich operacji IT. Wykorzystanie Big Data do wydobycia informacji dla biznesu wymaga potężnych rozwiązań, takich jak centra danych. W miarę jak organizacje rosną, potrzebują coraz więcej mocy obliczeniowej i przestrzeni na dysku twardym. Duże przedsiębiorstwa zwykle posiadają własne centrum danych, ale z powodu rosnącej ilości danych, korzystają również z usług centrów danych wielodomenowych. Centra danych mogą służyć do obsługi wewnętrznych potrzeb IT (chmura prywatna) lub oferować te same usługi innym firmom (chmura publiczna).

3. Aby sprostać wyzwaniom związanym z dużą ilością danych, wiele organizacji korzysta z chmury obliczeniowej. Chmura umożliwia dostęp do danych organizacyjnych w dowolnym miejscu i czasie, upraszcza operacje IT, redukuje potrzebę posiadania na miejscu sprzętu IT i obniża koszty. Model "płać za to, co zużywasz" pozwala traktować wydatki na obliczenia i przechowywanie jako usługę. Główne usługi chmury obliczeniowej to:
  • SaaS - Software as a Service (Oprogramowanie jako usługa) - dostawca chmury jest odpowiedzialny za dostęp do narzędzi programistycznych i usług wykorzystywanych do dostarczenia aplikacji
  • PaaS - Platform as a Service (Platforma jako usługa) - dostawca chmury odpowiada za dostęp do usług tj. poczta elektroniczna, komunikacja oraz wirtualne pulpity.
  • IaaS - Infrastructure as a Service (Infrastruktura jako usługa) - dostawca chmury odpowiada za dostęp do sprzętu sieciowego, zwirtualizowanych usług sieciowych i wspierającą infrastrukturę sieciową.
Dostawcy usług chmurowych oferują również wsparcie IT dla każdej z usług chmury obliczeniowej (ITaaS). Obecnie istnieje ponad 3000 centrów danych oferujących usługi hostingowe dla organizacji.\

4. Centra danych to scentralizowane lokalizacje zawierające dużą ilość sprzętu komputerowego i sieciowego. Sprzęt ten jest używany do zbierania, przechowywania, przetwarzania, dystrybucji i zapewniania dostępu do ogromnych ilości danych. Jego główną funkcją jest zapewnienie ciągłości działania biznesu poprzez utrzymanie dostępności usług komputerowych, kiedykolwiek i gdziekolwiek są potrzebne.

Aby zapewnić niezbędny poziom usług dla swoich klientów, przy budowie centrum danych uwzględnia się kilka czynników, takich jak:
  • Elektryczne
  • Lokalizacja
  • Projekt sieci
  • Bezpieczeństwo
  • Środowiskowe
5. Prawie każda organizacja potrzebuje własnego centrum danych lub dostępu do centrum danych. Niektóre organizacje budują i utrzymują własne centra danych wewnętrznie. Inne organizacje wynajmują serwery w centrach ko-lokacji (colo). Jeszcze inne korzystają z publicznych usług chmurowych. Amazon Web Services, Microsoft Azure, Rackspace i Google to przykłady firm, które oferują publiczne usługi chmurowe.

Ze względu na złożoność operacyjną centrów danych, bardzo niewiele organizacji zarządza własnym obiektem centrum danych. Byłoby bardzo trudne i kosztowne dla małej lub średniej firmy wybudowanie własnej przestrzeni ze wszystkimi funkcjami, które oferuje centrum danych colo. Dlatego wiele organizacji wynajmuje przestrzeń od specjalistycznych centrów danych należących do dostawców usług, aby hostować swoje systemy. 

6. Centra danych to scentralizowane lokalizacje zawierające dużą ilość sprzętu komputerowego i sieciowego. Są one używane do zbierania, przechowywania, przetwarzania, dystrybucji i zapewniania dostępu do ogromnych ilości danych. Ich główną funkcją jest zapewnienie ciągłości działania biznesu poprzez utrzymanie dostępności usług komputerowych, kiedykolwiek i gdziekolwiek są potrzebne.

Podczas budowy centrum danych uwzględnia się kilka czynników, takich jak:
  • Zabezpieczenia zewnętrznego obwodu - Mogą obejmować pracowników ochrony na miejscu, ogrodzenia, bramy, ciągły monitoring wideo i alarmy naruszenia bezpieczeństwa, jak pokazano na rysunku.
  • Zabezpieczenia wewnętrznego obwodu - Mogą obejmować ciągły monitoring wideo, elektroniczne detektory ruchu, pułapki bezpieczeństwa oraz sensory dostępu i wyjścia biometrycznego.
7. Centra danych są narażone na te same zagrożenia co sieci przedsiębiorstw. Istnieje wiele problemów związanych z bezpieczeństwem w centrum danych:
  • Instant On - W centrum danych są maszyny wirtualne (VM), które są używane okazjonalnie. Gdy VM, która nie była używana przez pewien czas, jest ponownie uruchamiana, może mieć nieaktualne polityki bezpieczeństwa, które odbiegają od podstawowego bezpieczeństwa i mogą wprowadzać luki bezpieczeństwa. 
  • Hyperjacking - Atakujący może przejąć kontrolę nad hipernadzorcą VM i następnie użyć go jako punktu wyjścia do ataku na inne urządzenia w sieci centrum danych. 
  • Antivirus Storms - Dzieje się tak, gdy wszystkie VM próbują jednocześnie pobrać pliki danych antywirusowych. Cisco Cloudlock to broker bezpieczeństwa dostępu do chmury (CASB) i platforma do cyberbezpieczeństwa w chmurze. Chroni użytkowników, dane i aplikacje na platformach SaaS, PaaS i IaaS.
8. Cisco Cloudlock wykorzystuje zaawansowane algorytmy uczenia maszynowego do wykrywania anomalii, identyfikując działania poza białą listą i wykrywając podejrzane aktywności na platformach SaaS, PaaS, IaaS i IDaaS. Dzięki ciągłemu monitorowaniu aktywności użytkownika, Cloudlock wykrywa potencjalne anomalie sugerujące złośliwe zachowanie i wysyła alerty do operacji bezpieczeństwa w czasie rzeczywistym.

9. Technologia zapobiegania utracie danych (DLP) Cloudlocka monitoruje środowiska chmurowe, aby wykryć i zabezpieczyć wrażliwe informacje. Cisco Cloudlock oferuje gotowe i niestandardowe polityki, chroniąc organizacje przed naruszeniem danych za pomocą konfigurowalnego silnika DLP. Dzięki automatycznym, sterowanym politykami działaniom reagującym, takim jak szyfrowanie na poziomie plików i kwarantanna, Cloudlock zapewnia pokrycie ruchu w chmurze, zarówno w sieci, jak i poza nią, zarówno wstecz, jak i w czasie rzeczywistym.

10. Systemy operacyjne (OS) oddzielają aplikacje od sprzętu. OS tworzą “abstrakcję” szczegółów zasobów sprzętowych dla aplikacji. Wirtualizacja oddziela system operacyjny od sprzętu.

Dostawcy chmur oferują usługi, które mogą dynamicznie dostarczać serwery w razie potrzeby. Wirtualizacja serwerów wykorzystuje wolne zasoby na fizycznej maszynie i konsoliduje kilka wirtualnych serwerów na jednej maszynie. Pozwala to również na istnienie wielu systemów operacyjnych na jednej platformie sprzętowej.

Użycie wirtualizacji zwykle obejmuje redundancję, aby chronić przed pojedynczym punktem awarii. Redundancja może być zaimplementowana na różne sposoby. Jeśli hipervisor zawiedzie, VM może zostać uruchomiony ponownie na innym hipervisorze. Również ta sama maszyna wirtualna może być uruchomiona na dwóch hipervisorach jednocześnie, kopiując pomiędzy nimi pamięć RAM i instrukcje procesora. Jeśli jeden hipervisor zawiedzie, maszyna wirtualna kontynuuje działanie na innym hipervisorze.


11. Hypervisor, zwany również menedżerem maszyny wirtualnej, to część sprzętu, kodów maszynowych lub aplikacji, które umożliwiają wirtualizację, czyli utworzenie środowiska chmurowego. Jego zadaniem jest separacja oprogramowania od fizycznego sprzętu, tworząc warstwę abstrakcji, która zapewnia wirtualizację zasobów i umożliwia uruchamianie wielu maszyn wirtualnych. 

Komputer, na którym działa hypervisor, jest nazywany „hostem”, podczas gdy powstałe maszyny wirtualne nazywane są „gośćmi”. Hypervisor oddziela komponenty fizyczne, takie jak pamięć RAM, od utworzonych maszyn wirtualnych, budując warstwy wirtualizacji. 

Istnieją dwa główne typy hypervisorów: Typ 1 i Typ 2. Hypervisor typu 1 jest również nazywany hypervisorem typu bare-metal lub natywnym. Uruchamiany jest bezpośrednio na zasobach hardware (sprzętowych) hosta, więc oprogramowanie hypervisora jest systemem operacyjnym. Hypervisor typu 2 dodaje dodatkową warstwę abstrakcji. Wynika to z faktu, że hypervisor to aplikacja działająca na systemie operacyjnym fizycznego hosta, a dodatkowe instancje systemu operacyjnego są instalowane w hypervisorze




12. Hypervisory pozwalają każdej maszynie wirtualnej mieć swój własny system operacyjny, jednocześnie korzystając z tego samego sprzętu. Ta konfiguracja jest marnotrawna, jeśli systemy operacyjne używane w maszynach wirtualnych są takie same jak system operacyjny działający na komputerze hosta. Kontenery rozwiązują ten problem.

13. Kontenery to specjalizowany “wirtualny obszar”, w którym aplikacje mogą działać niezależnie od siebie, jednocześnie korzystając z tego samego systemu operacyjnego i sprzętu. Z punktu widzenia aplikacji, jest to jedyna aplikacja działająca na komputerze. Dzięki współdzieleniu systemu operacyjnego hosta, większość zasobów oprogramowania jest ponownie wykorzystywana, co optymalizuje działanie.

14. To, że na serwerze można uruchomić więcej programów za pomocą technologii kontenerowej, nie oznacza, że tradycyjna maszyna wirtualna jest martwa. Kontenery wymagają, aby system operacyjny maszyny wirtualnej był taki sam jak komputera hosta. Jeśli istnieje potrzeba korzystania z wielu systemów operacyjnych, muszą być używane hypervisory. Decyzja o tym, czy używać maszyny wirtualnej, czy kontenerów, zależy od tego, co chcesz osiągnąć. Chociaż wymóg korzystania z tego samego systemu operacyjnego może wydawać się ograniczeniem, aplikacje środowiska produkcyjnego zwykle wymagają tego samego systemu operacyjnego.

15. Wirtualizacja pamięci masowej łączy fizyczną pamięć z wielu urządzeń do przechowywania danych w sieci w co wydaje się być pojedynczym urządzeniem do przechowywania danych. To urządzenie do przechowywania danych jest zarządzane z centralnej konsoli. Upraszcza i przyspiesza tworzenie kopii zapasowych, archiwizację i odzyskiwanie danych, ukrywając złożoność sieci pamięci masowej (SAN). Implementowana jest za pomocą oprogramowania lub hybrydowych urządzeń z oprogramowaniem i sprzętem. Korzyści z wirtualizacji pamięci masowej obejmują zwiększoną pojemność pamięci, automatyczne zarządzanie, zmniejszony czas przestoju i uproszczenie aktualizacji.

16. Inżynieria danych zazwyczaj obejmuje system informacyjny oparty na komputerach, związany z biznesem, gdzie informacje (dane) są przechwytywane lub generowane, przetwarzane, przechowywane, dystrybuowane i analizowane.

Zdolność do przechwytywania danych i analizowania ich w sensowny sposób zazwyczaj jest realizowana za pomocą bazy danych i systemu zarządzania bazą danych (DBMS). Inżynieria danych i analiza danych jest przydatna dla każdego biznesu lub organizacji, która chce kierować swoimi zasobami na podstawie istotnych informacji i statystyk. Dzisiaj, postęp technologiczny w zakresie mocy przetwarzania komputerów, możliwości przechowywania, szybkości Internetu oraz rozwój technologii chmurowych i wirtualizacji, dał nam możliwość zbierania i przetwarzania ogromnych ilości danych z niesamowitą prędkością.

17. Relacyjna baza danych organizuje dane w kolumnach (atrybuty), tabelach (relacje) i wierszach (krotki), gdzie każda tabela może być używana do różnego rodzaju informacji. SQL to język programowania, który został opracowany do zbierania informacji z baz danych relacyjnych za pomocą systemów zarządzania bazą danych relacyjnej (RDBMS). Dzisiaj, systemy baz danych relacyjnych, takie jak MySQL, Microsoft SQL Server, Oracle i IBM DB2, są najpopularniejszymi systemami zarządzania bazami danych. W RDBMS może być wielu użytkowników z wieloma transakcjami baz danych. Model transakcji ACID (Atomic, Consistent, Isolated, Durable) określa, jak transakcje baz danych utrzymują integralność danych i przetrwają awarie.

18. NoSQL to duże rodziny baz danych, które nie polegają na podejściu baz danych relacyjnych z powiązanymi tabelami. Bazy danych NoSQL mogą zamiast tego korzystać z podejścia opartego na przechowywaniu klucz-wartość. Inne bazy danych NoSQL przechowują dane jako strukturyzowane dokumenty w formatach XML lub JSON. Bazy danych NoSQL są znacznie szybsze niż bazy danych relacyjne i mogą importować dane nieskładne. Bazy danych NoSQL są zaprojektowane do skalowania poziomego, co oznacza, że ​​możliwości przechowywania i zarządzania można zwiększyć po prostu dodając inne maszyny do klastra. Przykładem systemu NoSQL jest MongoDB.

19. Wszystkie te technologie pojawiły się jako rozwiązanie problemu Big Data. Dane tak duże, szybkie lub różnorodne, że nie można ich zarządzać za pomocą jednego komputera, bez względu na to, jak duży jest ten komputer. Z tego powodu, często nazywa się te rozwiązania oprogramowania “technologiami Big Data”. W rzeczywistości, problemy związane z Big Data nie mogą być zredukowane do jakiejkolwiek pojedynczej technologii, ale muszą obejmować nowe i stare technologie.

20. Wraz z pojawieniem się IoT i Big Data, pojawiają się nowe kategorie zawodów i modyfikacje istniejących stanowisk. Są to między innymi:
  • Analityk biznesowy: Eksperci od danych, którzy formułują konkretne pytania dotyczące biznesu i tworzą raporty z zakresu inteligencji biznesowej.
  • Analityk danych: Przetwarzają dane, dostarczają raporty, podsumowują i wizualizują dane. Pomagają zrozumieć konkretne zapytania za pomocą ad-hoc raportów i wykresów.
  • Naukowiec danych: Przekształcają surowe dane w sensowne informacje, stosują statystykę, uczenie maszynowe i podejścia analityczne, aby odpowiedzieć na kluczowe pytania biznesowe.
  • Inżynier danych: Tworzą infrastrukturę, która wspiera Big Data. Projektują i budują platformę, na której przechowywane i przetwarzane są wszystkie dane.
21. Skalowalność w kontekście Big Data oznacza projektowanie rozwiązania, które może sprostać rosnącym wymaganiom firm takich jak Google i Facebook. Hadoop, system Big Data, rozszerza swoją skalę poprzez dodawanie więcej komputerów i dysków twardych. Dodatkową moc przetwarzania zapewnia technologia MapReduce. Firmy muszą również sprostać wyzwaniu skalowania baz danych, co jest możliwe dzięki bazom danych nierelacyjnym, takim jak Google's BigTable, Amazon's Dynamo i Hadoop's HBase, które są zaprojektowane do dystrybucji na wielu serwerach.

22. Utrzymanie dostępności jest głównym problemem dla wielu firm pracujących z Big Data. Strona internetowa, która nie jest w stanie odpowiedzieć w ciągu 3 sekund, traci odwiedzających. Eksplozja e-commerce opartego na sieci web oznacza, że dla firmy takiej jak Amazon niezwykle kosztowne jest niemożność natychmiastowego przetwarzania tysięcy transakcji na całym świecie.
  • Równoważenie obciążenia - Firmy mogą poprawić dostępność stron internetowych, wdrażając serwery równoważące obciążenie i serwery DNS równoważące obciążenie. Duplikaty serwerów internetowych mogą być wdrażane w centrach danych w różnych lokalizacjach na całym świecie, aby poprawić czas reakcji sieci web.
  • Rozproszone bazy danych - W Big Data, dostępność odnosi się do prędkości, z jaką można przeszukiwać i przetwarzać ogromne ilości danych. Rozproszone obliczenia, w tym przetwarzanie, przechowywanie i zarządzanie bazami danych, poprawiają prędkość i dostępność.
  • Memcaching - Serwery Memcaching mogą odciążyć serwery baz danych, utrzymując często żądane dane dostępne w pamięci do szybkiego dostępu.
  • Sharding - Baza danych relacyjna została zaprojektowana do pracy na jednym serwerze, a nie do dystrybucji na wielu serwerach. Aby dostosować się do potrzeb obliczeń rozproszonych, baza danych relacyjna może być sharded, czyli podzielona na wiele serwerów. Sharding wymaga niesamowitej złożoności i redukuje bazę danych relacyjną do dostępu na poziomie wiersza na jednym shardzie za każdym razem.
23. Hadoop Distributed File System (HDFS) to system plików, w którym Hadoop przechowuje dane. HDFS przechowuje dane w blokach o wielkości 64Mb, korzystając co najmniej z trzech serwerów DataNode. HDFS zarządza informacjami w klastrze z centralnego serwera koordynującego o nazwie NameNode. Gdy dane są wprowadzane do systemu, są importowane do NameNode, który następnie dzieli dane na bloki o wielkości 64Mb, które są następnie duplikowane na trzech lub więcej DataNodes. Ta redundancja zapewnia tolerancję na błędy, podobną do lustrzanego tablicy RAID.



24. Hadoop to nie pojedyncza aplikacja, ale ekosystem aplikacji współpracujących ze sobą. Hadoop v2.0 zawiera następujące podstawowe technologie:

  • Rozproszony system plików HDFS
  • Rozproszona baza danych HBase
  • Rozproszone przetwarzanie MapReduce
  • Hive zapewnia interfejs podobny do SQL
  • Negocjator zasobów YARN

YARN negocjuje zasoby dla wielu silników przetwarzania:

  • Spark do uruchamiania procesów w pamięci
  • Tez do uruchamiania procesów wsadowych

Istnieją dodatkowe aplikacje klienckie, które mogą uzyskać dostęp do Hadoop:

  • Pig jako interfejs skryptowy
  • Mahout jako interfejs do uczenia maszynowego