Dziś się wydaje że nie sposób wyobrazić sobie naszych czasów bez emalii , blogów, Google Apps, czy aplikacji na Facebooku, innych portali społecznościach. To nie dotyczy tylko naszego życia prywatnego, lecz coraz częściej narzędzi jakimi posługujemy się w pracy. Dlatego warto sprawdzić w jaki sposób nasz świat uniósł z ziemi i przeniósł pomiędzy chmury.
Historia
rok 1961 John McCarthy stwierdził, że pewnego dnia zaawansowane komputerowe obliczenia staną się publicznie dostępnym narzędziem,
rok 1966 wątek ten został podjęty przez Douglasa Parkhilla w książce „The Challenge of the Computer Utility”,
Jednak w tym czasie nie było możliwości technicznych, aby zrealizować ten pomysł. Dopiero dynamiczny rozwój sektora telekomunikacyjnego sprawił, że już na początku lat 90. Pojawiły się pierwsze sieci VPN (Virtual Private Network), które - jako sieci wirtualne - były wyjątkowo efektywne oraz tanie. VPN jest specjalnym, prywatnym a przez to bezpiecznym połączeniem biegnącym przez sieć ogólnie dostępną. Taka transmisja najczęściej oprócz tego, że jest szyfrowana, umożliwia również kompresowanie pakietów danych, co zwiększa jej wydajność. Jest to oczywiście połączenie wirtualne, ponieważ nie wykorzystuje własnych łączy, mimo że istnieje, jako indywidualna struktura logiczna. Poza tym wprowadzeniu i rozwoju standardu www. Reacja techniczna założeń przetwarzania w chmurze stała się realna Poza tym VPN cechuje jedna rzecz, która dzisiaj stała się głównym chwytem marketingowym całego obszaru IT – bezpieczeństwo przesyłanych danych. Co ma szczególne znaczenie przy usługach typu Cloud Computing.
rok 1997 pierwsze naukowe użycie terminu cloud computing przez prof. Ramnatha Chellappa,
rok 1999 powstaje firma Salesforce, która była pionierem w zakresie dostarczania aplikacji biznesowych za pośrednictwem sieci Internet,
rok 2002 uruchomienie przez Amazon usługi Amazon Mechanical Turk, która to usługa umożliwia wykonywanie pewnych działań ludziom, które nie mogą być zautomatyzowane,
Rok 2004 uruchomienie przez Google usługi Google Apps, jest zestawem produktów oferujących możliwość użytkowania pod własną nazwą domeny internetowej, przez co użytkownicy mogą uzyskać konta w formacie imie.nazwisko@nazwafirmy.Pl. Zawiera ono kilka aplikacji sieciowych oferujących funkcje podobne do tradycyjnych pakietów biurowych, w tym: Pocztę, Grupy dyskusyjne, Kalendarz, Komunikator, Edytory dokumentów i Witryny internetowe. W odróżnieniu do aplikacji instalowanych lokalnie na komputerach użytkowników, usługa pozwala na zapisywanie wiadomości, dokumentów, kalendarzy i kontaktów w "chmurze" Google, dzięki czemu użytkownicy mają do nich dostęp po zalogowaniu się do swojego konta Google z jakiejkolwiek przeglądarki internetowej.
Google Apps jest darmowym pakietem i oferuje taką samą ilość przestrzeni dyskowej na pocztę elektroniczną jak zwykłe konta Gmail. Pakiet Google Apps dla Firm, oferujący większą ilość przestrzeni dyskowej na pocztę elektroniczną jest dostępny za roczną opłatą za każde konto użytkownika. Google Apps dla Szkół i Uczelni jest wersją darmową łączącą cechy wersji standardowej i premium.
rok 2005 Microsoft uruchamia konkurencyjną dla Googel Apps usługę Windows Live, w odróżnieniu zawiera Googe Appss zawiera ponad narzędzia do edycji filmów, dysk wirtualny SkyDrive i zdjęć, oraz aplikację Live Mesh, która umożliwia synchronizację danych pomiędzy wieloma urządzeniami oraz udostępnia funkcjonalność zdalnego pulpitu.
rok 2006 Amazon uruchamia usługę Elastic Compute Cloud, która za pośrednictwem Internetu umożliwia małym firmom i osobom prywatnym na wynajem serwerów, oraz uruchamiania na nim własnych aplikacji,
rok 2010 Microsoft uruchamia platformę biznesową Windows Azure Services Platform Platforma zbudowana jest z grupy trzech technologii zapewniających specjalizowany zestaw możliwości dla programistów. Co więcej, platforma Windows Azure może być wykorzystywana zarówno przez aplikacje uruchamiane lokalnie na komputerach użytkowników, jak i aplikacje uruchomione w chmurze.
Platforma Windows Azure składa się z następujących elementów:
1)Windows Azure – platforma chmurowa firmy Microsoft stworzona w modelu PaaS (Platform as a Service). Udostępnia ona mechanizmy pozwalające przetwarzać dane (Windows Azure Compute), a także je składować (Windows Azure Storage, SQL Azure). Platforma Windows Azure występowała pod nazwa kodową ,zapewnia środowisko uruchomieniowe dla aplikacji oparte na systemie operacyjnym bazującym na Windows Server (Windows Azure Guest OS), a także przestrzeń do składowania danych. System ten uruchamiany jest na maszynach wirtualnych.
Idea
Z technicznego punktu widzenia jest to połączenie dwóch metod: Grid Computingu i Utility Computingu.
Grid Computing
Opiera się na przetwarzaniu równoległym. Duża ilość serwerów jest połączonych ze sobą w klaster/grid, dzięki temu ich moc obliczeniowa sumuje się i w efekcie dostajemy jedną "strukturę" o bardzo dużej mocy obliczeniowej.
Utility computing
Bazuje na wirtualizacji i agregowaniu dostępnych zasobów w tzw: pule ( pools ). Nie interesuje nas już sam fizyczny sprzęt, czy to serwery czy storage, mamy kilka dużych "pojemników" z np: mocą obliczeniową, przestrzenią , przepustowością łącza i w razie potrzeby wydzielamy z niej maszyny wirtualne o zadanych przez nas parametrach.
Łącząc ze sobą grid i utility computing dostajemy w rezultacie wielki zbiornik, z którego możemy czerpać ( oczywiście w ograniczony sposób ) i na bazie, którego możemy tworzyć komputery wirtualne o wymaganych w danym momencie parametrach
W cloud compuntingu zlazło praktyczne zastosowanie koncepcji SOA (Service Oriented Architecture) architektura zorientowana na usługi, której idea polega, że użytkownik nie wie(lub nie jest dla niego ważne), gdzie dokładnie zlokalizowane są komputery i aplikacje, z których korzysta nie musi znać podmiotu oferującego usługi. Wszystkie takie kwestie są ukryte w sieciowym środowisku zwanym potocznie chmurą
Stanowi ono połączenie Grid Computingu i Utility Computingu
Praktyczne zastosowanie koncepcji SOA,
Użytkownik korzysta z usługi online za pośrednictwem przeglądarki,
Dostęp do usługi odbywa się za pośrednictwem sieci,
Chmura skrywa infrastrukturę sprzętową, systemy operacyjne, zabezpieczenia, itp.,
Całością zarządza personel usługodawcy.
Co kryje chmura?
Popularne programy dla domowych użytkowników i małych firm,
systemy helpdesk zajmujące się wsparciem użytkownika i utrzymaniem usług/aplikacji/sprzętu,
Baza danych z możliwością zdalnego podłączenia,
Serwery (hosty) lub dzierżawione miejsce na serwerze,
Friewalle, systemy antywirusowe i bieżąca aktualizacja oprogramowania
Platformy umożliwiające napisanie własnego oprogramowania przez klientów,
Moc obliczeniowa do wynajęcia,
Wiele innych usług…
Rodzaje Chmur
Podstawowym kryterium, według którego możemy podzielić chmury to sposób, w jaki sposób zostanie ona zaprojektowana i stworzona, można tutaj wyróżnić trzy rodzaje:
chmury prywatne (ang. Private cloud), będące częścią organizacji, aczkolwiek jednocześnie autonomicznym dostawcą usługi. Tzn.: Cała infrastruktura stworzona w chmurze jest przydzielona dla jednego przedsiębiorstwa. Może ona być przygotowana i zarządzana przez firmę zewnętrzną lub przez dział IT danej firmy. W tym drugim przypadku firma utrzymuje swoje własne serwerownie i ludzi nim zarządzających a z samego "cloud computingu" korzystają ludzie zajmujący się administracja na poziomie OS lub wyżej ( w zależności, który model usług jest wdrożony).
Chmury publiczne (ang. Public cloud), będące zewnętrznym, ogólnie dostępnym dostawcą (np. Amazon.com, Google, Microsoft itd.) . W tym rodzaju usługobiorca może określić, jakie parametry go interesują i płaci dokładnie za, o co zamówił ( np.: daną moc obliczeniową + pewną ilość pamięci masowej o zadanej wydajności). Jeżeli jego potrzeby rosną to "na żądanie" może zwiększyć zasoby w dzierżawionym przez siebie środowisku ( np.: wykupić więcej mocy) i te dodatkowa usługa zostanie dodana w locie i bez potrzeby zatrzymywania pracujących aplikacji i maszyn wirtualnych.
chmury hybrydowe (ang. Hybrid cloud), będące połączeniem filozofii chmury prywatnej i publicznej. Które pozostają odrębnymi jednostkami, ale są ze sobą połączone przez unikalną technologię, która umożliwia przenoszenie danych i aplikacji pomiędzy nimi.
Modele Chmur
Kolejnym kryterium podziału jest model usług, jakie dana chmura oferuje, można wyróżnić pięć takich modeli:
Kolokacja, to najstarsza i najprostsza forma usług w chmurze, wykorzystywana przez firmy dysponujące sprzętem i wiedzą IT, ale, dla których tworzenie własnej serwerowni jest nieopłacalne. Polegająca na wydzierżawieniu miejsca w serwerowni(zapewnienie dostępu do sieci na określonych warunkach). Usługobiorca musi zainstalować swoje serwery i administrować nimi.
IaasS (ang. Infastructure as a Service) – Infrastruktura, jako usługa, Usługa dająca możliwość zainstalowania usługobiorcy, na jej infrastrukturze (serwerach) określonych aplikacji. Właśnie w taki sposób działają usługi hostingowe, które dostarczają miejsce na nasze strony i konta mailowe. W tym wariancie chmura skrywa sprzęt oraz systemy operacyjne, - my dostęp do określonych usług technicznych (np. konto z obsługą PHP i bazy danych określonej pojemności) i zarządzamy nimi, instalując interesujące nas aplikacje.
HaaS (ang. Host as a Service) – Host, jako usługa. W tej usłudze mamy do dyspozycji host(serwer) o określonych parametrach z preinstalowanym oprogramowaniem. Na początku to były zazwyczaj fizyczne komputery, obecnie zastąpione przez maszyny wirtualne. Takie rozwiązanie jest bardzo korzystne, gdyż łatwo jest manipulować ich wydajnością np. zwiększając przydział pamięci RAM danej maszynie wirtualnej.
PaaS (ang. Platform as a Service) – Platforma, jako usługa, W tej usłudze mamy wszystkie facjalności IaaS i HaaS wraz zainstalowaną platformą programową pozwalającą na tworzenie i udostępnianie całych aplikacji, jako wirtualnego środowiska pracy(np. komplet specjalnie napisanych aplikacji finansowych, którymi przez przeglądarkę posługuje się dział księgowości firmy). W tym wariancie za utrzymanie systemu operacyjnego jest odpowiedzialny usługodawca. Usługobiorca zaś zajmuje się pisaniem aplikacji i ich utrzymaniem. Taką usługą jest np. Windows Azure.
SaaS (ang. Software as a Service) – Oprogramowanie, jako usługa, Z puntu widzenia klienta najprostszy model chmury. Usługa ta polega na udostępnianiu wybranego oprogramowania dostarczonego przez Usługodawcę. Klient obsługuje tylko aplikację, ale w formie zaoferowanej przez usługodawcę. Przykładem takiego modelu usługi jest Google Apps, czy znana powszechnie usługa emial
CaaS(ang. Comunication as a Service) - Komunikacja, jako usługa. Tutaj usługodawca zapewnia platformę pod telekomunikacyjne środowisko pracy.
System operacyjny ChromeOS
oparty na jądrze Linuxa,
działa na rodzinie procesorów ARM i x86,
instalowany jest tylko na tzw. Chromebookach cena lekko ponad 1000 zł (odmiana netbooków),
zamiast klasycznego pulpitu specjalna wersja przeglądarki Chrome (jedyna aplikacja instalowana na dysku netbooka),
wszystkie aplikacje są dostępne za pośrednictwem Internetu,
darmowe alternatywy Cloudo, eyeOS dostępne za pośrednictwem wielu przeglądarek.
Oczywistą wadą tego rozwiązania jest ich bezużyteczność w warunkach braku dostępu do globalnej sieci.
Google Analytics
instalowany jest na stronie www przez wklejenie fragmentu kodu JavaScript,
generowanie około 80 rodzajów raportów związanych z zbieraniem danych dotyczących ruchu internetowego, wskaźników konwersji,
integracja z aplikacjami e-commerce,
łatwe integrowanie konta z kontami AdWords,
jedynym ograniczeniem jest limit 5 milionów odsłon na miesiąc dla osób, które nie korzystają z programu AdWords.
Microsoft Dynamics CRM
zarządzanie kontaktami i relacjami z klientami,
dostęp do pełnych danych związanych z klientem w każdym momencie,
tworzenie, udostępnianie i wykorzystywanie raportów bez wsparcia działu IT,
kontrolę nad pocztą elektroniczną w dowolnym miejscu,
dostęp do usługi poprzez przeglądarkę(najlepiej IE) lub niezależną aplikację ,
dostępna wersja dla urządzeń mobilnych i telefonów komórkowych z zainstalowanym systemem Windows Mobile.
Amazon Cloud Drive/Cloud Player
zakupiona w sklepie Amazon muzyka trafia na wirtualny dysk, ( po kupieniu 1 albumu dostajemy 20 GB miejsca na rok),
zakupioną muzykę możemy odtwarzać przez Internet na dowolnym komputerze lub urządzeniu mobilnym za pomocą aplikacji Amazon Cloud Player,
nie ma potrzeby mozolnego kopiowania muzyki na poszczególne urządzenia.
Ta usługa będzie bardziej użyteczna i praktyczna gdy ceny i szybkości bezprzewodowego transferu danych ulegną poprawie.
Jak widomo każda rzecz stworzona ma swoje zalety i wady, więc najpierw zobaczmy jakie są zalety tej technologii :
Zwiększone możliwości Korzystając z rozwiązań dostarczanych przez dostawcę "chmury" możemy wykorzystywać nowe funkcjonalności i rozwiązania techniczne bez żmudnego procesu przekonfigurowania i migrowania aplikacji. Thin Provisioning , Automated tiering , deduplikacja - wykupujemy to jako usługę i praktycznie od razu korzystamy z ich dobrodziejstw.
Zwiększona wydajność Za to odpowiada dynamiczna alokacja zasobów, np. nasza aplikacja w pewnym momencie wykazuje o wiele większe zapotrzebowanie na moc obliczeniową ( tzw: peak )- od razu dynamicznie większa moc zostaje z "chmury" przydzielona - nie ma spowolnienia działania i utraty wydajności.
Mniejsze koszty Przede wszystkim płacimy za to co tak naprawdę wykorzystujemy. W normalnych warunkach projektując środowisko serwerowe musimy dostarczyć taką wydajność żeby nasze serwery mogły obsłużyć momenty gdy obciżenie bardzo rośnie ( wspomniane w poprzednim punkcie "peaks" ). Korzystając z chmury wykupujemy tylko tyle mocy ( i innych zasobów ) ile realnie zużywamy , gdy w krótko trwających okresach będziemy potrzebowali dużo więcej "chmura" automatycznie nam to przydzieli a potem zabierze gdy już szczyt obciążenia minie. Dodatkowo odchodzą nam koszty związane z utrzymaniem infrastruktury ( prąd , klimatyzacja , koszty powierzchni w datacenter itd...)”
Ograniczenie ryzyka. Chodzi tutaj o ryzyko "przeinwestowania". Nie musimy inwestować dużych środków na infrastrukturę , nie musimy podpisywać długoterminowych kontraktów na wsparcie. Nie ma ryzyka że zainwestujemy w coś , co okaże się niepotrzebne.
Łatwa skalowalność Jeśli nasze wygania rosną to po prostu wykupujemy od "właściciela" chmury dodatkowe zasoby. Nie ma problemów z instalacją nowego sprzętu, migracjami ze starych struktur na nowe , pogodzenia ze sobą może nie do końca kompatybilnych architektur itd...
Łatwość zarządzania Koniec z wieloma punktami zarządzania. Osobnym na poziomie storage ( często i tak podzielonym jeszcze na poszczególne macierze, biblioteki itd. sieć pamięci masowej; SAN obszar sieci zapewniający systemom komputerowym dostęp do zasobów pamięci masowej. Zwykle odległa pamięć masowa stanowi centralną przestrzeń składowania współdzieloną poprzez SAN przez wiele hostów w środowisku rozproszonym...) , osobnym zarządzaniem na systemach , zarządzaniem serwerami , mainfraimem , zasobami sieciowymi itd... to wszystko jest już zrobione w "chmurze" , do nas trafia już sama usługa pod postacią zasobów gotowych do wykorzystania.
Teraz więc zobaczmy jakie wady(ograniczenie) ma ta technologia:
Ograniczenia związane z bezpieczeństwem danych. Jeżeli mowa o chmurze prywatnej to użytkownik ma całkiem sporą kontrolę nad tym gdzie i w jaki sposób przechowywane są jego dane, sprawa się komplikuje jeżeli w grę wchodzi chmura publiczna lub hybrydowa - nasze dane mogą i najprawdopodobniej są rozrzucone po wielu lokacjach, które obejmować mogą więcej niż jeden kraj. Niektóre przedsiębiorstwa ( np: sektor bankowy ) mają bardzo restrykcyjne i narzucone odgórnie wymogi dotyczące przechowywania i dostępu do informacji jakie przetwarzają - umieszczenie ich gdzieś w nieokreślonej przestrzeni chmury może stanowić naruszenie tych standardów.
Ograniczenia związane z wydajnością w chmurze aplikacji pracujących w czasie rzeczywistym.Jednym z plusów działania w chmurze jaki został wymieniony jest "Zwiększona wydajność". Tylko że aplikcaje działające w czasie rzeczywistym i wymagające bardzo szybkich odpowiedzi ze strony komponentów sprzętowych, ponieważ korzystamy z chmury więc sam końcowy hardware ( dyski , ram , procesory ) może być od nas bardzo odległy ( w sensie sieci czyli wiele "hopów" po drodze ), co z kolei spowoduje że opóźnienia będą na tyle duże iż nie da się zaspokoić potrzeb aplikacji działającej w czasie rzezczywistym
Obawy związane z dostępnością danych i aplikacji. Migracja do chmury może także budzić obawy dotyczące dostępności do danych w niej umieszczonych. Normalnie przedsiębiorstwa budują swoje polityki tzw "zachowania ciągłości" (eng: bussines continuity ) zawierające różne mechanizmy zabezpieczania się przed utratą danych , od stosowania redundantnych struktur na każdym poziomie i redukowania tzw SPOFów ( eng: Single Points of Failure ) aż po dublowanie całych centrów obliczeniowych i rozmieszczanie ich w różnych częściach kraju a następnie synchronizowanie i replikowanie zasobów między nimi. Korzystając z chmury publicznej użytkownik końcowy nie sposobności takiego wglądu w strukturę i zabezpieczenia jakim podlegają jego dane, musi pod tym względem zdać się na dostawcę danej usługi i umowę SLA jaką z nim podpisuje.
Na koniec cytat red. Piotra Nowosielskiego o Cluod
„Jeśli myślisz o powtórzeniu sukcesu portalu nasza.klasa.pl teraz nk.pl to już dziś sprawdź, czy nie warto umieścić serwisu w chmurze. Zamiast martwić się o rozwój serwerowni zdolnej obsłużyć coraz więcej odsłon będziesz mógł się skupić na rozwijaniu witryny, a niezbędne zasoby sukcesywnie dokupywać bez konieczności wymiany sprzętu.”