Pierwsze kroki w chmurze
- Jarosław Badurek,
- 25.11.2008
Analitycy Gartner Group umieścili cloud computing na drugim miejscu listy 10. najważniejszych technologii 2009 r. Z przetwarzaniem chmurowym łączy się zaś pierwsza z pozycji cytowanego zestawienia - wirtualizacja.
Analitycy Gartner Group umieścili cloud computing na drugim miejscu listy 10. najważniejszych technologii 2009 r. Z przetwarzaniem chmurowym łączy się zaś pierwsza z pozycji cytowanego zestawienia - wirtualizacja.
Wirtualizację możemy plastycznie zdefiniować jako zastępowanie materii informacją, co w sferze IT odbywa się na drodze wyizolowania w konfiguracji warstwy fizycznej i logicznej. Powszechnie znanym przykładem takiego mechanizmu jest przyporządkowanie grupie dysków ich logicznego odpowiednika. Z kolei w sferze bazodanowej, grupie relacyjnych tabel także można przyporządkować jedną tabelę wirtualną, będącą ich projekcją (view). Inne, znane zastosowania wirtualizacji, to wirtualne pamięci czy emulatory, a nawet całe maszyny wirtualne (virtual machine). Także najważniejszy program każdego komputera - system operacyjny - też może być postrzegany jako rozszerzenie sprzętu, czyli jego wirtualizacja. Istnieją również wirtualne klawiatury i monitory. Są już wirtualne sklepy, organizacje, przedsiębiorstwa i wirtualna rzeczywistość (virtual reality).
W tym ostatnim przypadku mamy do czynienia z procesem towarzyszącym całemu rozwojowi ludzkości - wirtualizacją rzeczywistości było pismo obrazkowe, naturalistyczne malarstwo, a później kolejne media: fotografia czy film. Technologie komputerowe jedynie potęgują możliwości tego trendu, którego celem jest osiągnięcie poziomu, na którym wirtualność stanie się podobnie realna jak "rzeczywista" rzeczywistość. Wirtualizacja jest zatem megatrendem rozwojowym informatyki, a jedną z grup technologii służącą do jej realizacji jest właśnie cloud computing, czyli rodzaj globalnego przetwarzania rozproszonego (distributed computing), które z kolei stanowi drugi filar genezy omawianego fenomenu.
Od obrony powietrznej do "przetwarzania chmurowego"
Mówimy tu o "grupie technologii", bo w początkowej fazie ich rozwoju standardy dopiero się krystalizują, a szereg wcześniej znanych rozwiązań nakłada się dynamicznie na siebie w różnych wariantach. Wymieńmy tu przetwarzanie klastrowe (clustering), gridowe (grid) czy metaprzetwarzanie (metacomputing) oraz inną grupę technologii - SaaS, "zasób jako usługa" - udostępniających w tej formie pamięci czy oprogramowanie (storage/software as a service). A wszystko zaczęło się od systemów wielomaszynowych, które rozwijały się niezależnie od systemów wieloprocesorowych i w najwcześniejszych wersjach składały się z niemal identycznych konfiguracji, wykonujących te same programy na tych samych danych.
Pierwszym najbardziej znanym systemem zdwojonym był SAGE (Semi-Automatic Ground Environment), czyli "mędrzec" (ang. sage), konstruowany od roku 1952 i wspomagający obronę powietrzną USA. Ponieważ maszyny, których z czasem było 26, komunikowały się ze sobą i wymieniały dane, to możemy tu także mówić o pierwszej w historii sieci komputerowej. Natomiast praktycznie pierwszymi systemami wieloprocesorowymi były modele Burroughs, w szczególności D-825 (występował pod wieloma nazwami), stosowane od początku lat 60.
W ten sposób stworzono inżynieryjne podwaliny dla rozwoju przetwarzania rozproszonego, co znalazło odzwierciedlenie w klasyfikacji Flynna, dzielącej konfiguracje komputerowe wg sposobu wykonywania operacji na danych:
- SISD (Single Instruction Single Data) - architektura odpowiadająca pierwotnym założeniom von Neumanna, tj. przetwarzaniu sekwencyjnemu; również grupa komputerów odpowiada tej kategorii, o ile ich procesory pracują niezależnie;
- SIMD (Single Instruction Multiple Data) - odpowiada maszynie wektorowej (macierzowej, array processor), przetwarzającej równolegle szeregi danych o stałej długości; technologia pierwotnie stosowana tylko w superkomputerach, obecnie wykorzystywana także w typowych mikroprocesorach komputerów osobistych, np. podczas wykonywania operacji graficznych MMD (MultiMedia eXtension);
- MIMD (Multiple Instruction Multiple Data) - systemy wieloprocesorowe
- przetwarzające zadanie równolegle, na zależnych od siebie procesorach; szczególnym przykładem może tu być komputer osobisty korzystający z procesorów pomocniczych (koprocesor);
- MISD (Multiple Instruction Single Data) - kategoria głównie teoretyczna, z reguły przyjmuje się, że nie ma odpowiedników praktycznych (możliwość zaliczenia do tej klasy systemów redundantnych).
W tym miejscu pojawia się pytanie: jak dokonuje się przejście od znanych architektur wielokomputerowo-wieloprocesorowych do cloud computing i jakie miejsce na tej drodze zajmują systemy gridowe?
Wielkie Przetwarzacze Danych
Kluczowym czynnikiem pozwalającym uzyskać odpowiedź jest tu klastering, który pozwala postrzegać sieć komputerową (grono) jako system wirtualny. Formalnie taką konfiguracją był już ARCNET (Attached Resource Computer NETwork, Datapoint, 1976), ale dopiero sukces legendarnej serii VAX-ów (Virtual Address eXtension, DEC, 1983) spopularyzował tę technologię, która służy co najmniej trzem celom:
- dostępność (niezawodność) - klastry HAC (High Availability Cluster);
- wydajność (szybkość) - klastry HPC (High Performance Cluster);
- przepustowość - klastry HTC (High Throughput Cluster).
Połączenie pierwszych dwóch rodzajów tworzy nową kategorię - klastrów skalowalnych SC (Scalable Cluster), stanowiących podstawę rozwiązań gridowych.
Jeśli zatem zdefiniujemy "przetwarzanie chmurowe" jako skalowalne udostępnianie usług IT na bazie internetowej dla wielu klientów, to zauważymy, że cloud computing jest, w uproszczeniu, wirtualnym przetwarzaniem gridowym. Zwróćmy przy tym uwagę na nieporozumienia, jakie wiążą się z tym ostatnim terminem, sięgając do klasycznej już wykładni Iana Fostera (http://www.fp.mcs.anl.gov/~foster/Articles/WhatIsTheGrid.pdf ), zawierającej trzy kryteria "gridowości":
- koordynacja zdecentralizowanych zasobów;
- otwarte, standaryzowane protokoły;
- rozbudowane usługi.