Co to jest chmura (Cloud Computing)?

Drogi Czytelniku,
Poniższy post został napisany przeze mnie w 2010 roku (3 lata temu). I jest to najczęściej odwiedzany post na moim blogu (wielokrotnie częściej niż inne posty). W związku z tym, że wiedza w temacie Cloud Computingu zmieniła się trochę od czasu 2010 roku to pozwoliłem sobie w oryginalnym artykule dokonać kilku zmian kosmetycznych - natomiast oczywiście kluczowe treści pozostały niezmienione. Bardzo mnie cieszy fakt, że post ten cieszy się tak dużą popularnością i w związku z tym na końcu artykułu dodałem również linki do kilku innych artykułów/postów w tym temacie.

Jeśli interesuje Cię ta tematyka (Cloud Computing, wirtualizacja, chmury prywatne, technologie Microsoft) to zachęcam Cię do regularnego odwiedzania mojego bloga oraz odwiedzenia i polubienia mojego firmowego profilu na Facebook.

Nawet nie wiecie jak trudne jest napisanie o chmurze od A do Z. Tym bardziej, że chciałbym to zrobić w sposób jednocześnie prosty, ciekawy ale też w miarę szczegółowy. No i taki, żeby jak najwięcej osób zrozumiało koncepcję chmury (nie tylko tą w wykonaniu Microsoft!).

Zanim więc przejdę do chmury od strony funkcjonalnej i technicznej to jeszcze jeden post wyjaśniający to, co się działo z usługami IT w ostatnim czasie oraz jakie rodzaje chmury działają już od dłuższego czasu oraz co pojawiło się stosunkowo niedawno.

Założenia

Na początku może zacznę od pewnego założenia, z którym można oczywiście dyskutować i zgadzać się lub nie. Ale ułatwi nam to trochę późniejsze wyjaśnienia.

Otóż według jednej z teorii chmura to przeniesienie pewnych zasobów (serwerów, danych, aplikacji) z naszej firmy/serwerowni w inne miejsce. I to bez względu na to czy to będzie tylko sprzęt, czy to będzie maszyna wirtualna, czy to będą dane, czy to będzie cała aplikacja. Oczywiście nie dotyczy to chmury prywatnej (o tym na końcu).

Jest to dosyć mocno uproszczona definicja (i tak, znam jej słabe punkty), ale pozwala nam szerzej spojrzeć na szczegóły, które już za chwilę.

Chmury i ich skróty

Przy takiej uproszczonej definicji (jak wyżej) zobaczycie, że w pewnym sensie chmury istnieją już od dawna, tylko stają się coraz bardziej zaawansowane. Po prostu dostosowują się do potrzeb rynku.

Zacznę od pewnego schematu (nie przerażajcie się skrótami!), a później go omówię krok po kroku:

image

Tak jak wspominałem chmura zaczyna się kiedy chcemy coś wynieść z własnej firmy/serwerowni (w uproszczeniu).

Kolokacja

imageKolokacja to najstarsza i najprostsza forma usług w “chmurze”. Ktoś daje nam miejsce w serwerowni, prąd, klimatyzacje i oczywiście “rurę” do Internetu.

O całą resztę zatroszyć musimy się sami. Kupujemy więc sprzęt, zabezpieczenia (firewall czy load balancery), system operacyjny, oprogramowanie i aplikacje - oraz sami o to wszystko dbamy.

Tu płacimy po prostu za użyczenie miejsca w serwerowni.

IaaS = Infrastructure as a Service

imageKolejny w kolejce jest IaaS, czyli rozszerzenie kolokacji o zapewnienie sprzętu przez dostawcę .

To dostawca daje nam sprzęt i dodatkowo czasem również zabezpieczenia. Naszym zadaniem jest dostarczyć system operacyjny, oprogramowanie i aplikacje.

Pewną grupą, którą pewnie już znacie mogą być serwery dedykowane, które u wielu dostawców można sobie kupić od dawna.

To co się zmieniło od pewnego czasu, to że dzięki wirtualizacji, to co dostarczamy dostawcy to najczęściej po prostu maszyna wirtualna.

Dzięki temu my dostarczamy jedną paczkę, a dostawca może nam zapewnić np. przenoszenie maszyny na mniej obciążone fizyczne serwery, łatwiejsze usługi utrzymania (mniej przestojów), itp.

W starszym przypadku (dedykowany serwer) płacimy za określony sprzęt (jako pudełko) i często jest to droższa sprawa + mniej elastyczna (bo dokupienie np. 5 serwerów to może nie być kwestia godzin a raczej dni). W wypadku nowszym (wirtualne maszyny) płacimy trochę wygodniej, bo za faktycznie zużytą moc serwerów + elastyczność jest praktycznie nieograniczona (możemy np. uruchomić 10 dodatkowych serwerów w 30 minut).

W tym nowszym podejściu tak działa m.in. chmura Amazon EC2 (chyba pierwsza “prawdziwa” chmura) oraz Azure Virtual Machines.

PS. Czasami IaaS nazywany jest też HaaS (Host as a Service). To tak w ramach tego, jakbyście jeszcze taki właśnie skrót zobaczyli.

PaaS = Platform as a Service

imageW wypadku PaaS bierzemy to wszystko co było w IaaS, ale dostawca dorzuca nam do tego całą platformę aplikacyjną .

Przestajemy się martwić o system operacyjny (w tym jego utrzymanie, zarządzanie, patchowanie) a zajmujemy się tylko pisaniem aplikacji i ich utrzymaniem. Aplikacje możemy użytkować sami lub po prostu je sprzedawać jako usługi.

To daje nam Microsoft w postaci Windows Azure , gdzie system operacyjny jest zapewniony przez Microsoft. Dodatkowo zapewniona jest baza danych (Windows Azure SQL Database) oraz kilka innych elementów.

Ważne jest to, że Microsoft zapewnia również oczywiście platformę do pisania aplikacji – czyli .NET Framework. Ale co równie ciekawe - aplikacje w chmurze Microsoft mogą być również napisane w językach takich jak PHP, Python czy nawet Java!

M.in. o tym będę pisał w przyszłości w cyklu o chmurze. Więc teraz nie będę się w to już zagłębiał.

Dodam tylko, że podobny rodzaj chmury oferuje również Google (choć w dużo mniejszym zakresie i o dużo mniejszych możliwościach, ale o tym też już wkrótce).

W tym wypadku rozliczamy się za zużycie zasobów (czas procesora, miejsce na dysku, liczbę zapytań czy transfer danych).

SaaS = Software as a Service

imageI dochodzimy do tego co jeszcze nam zostało w całej układance, czyli sytuacja kiedy to dostawca zajmuje się wszystkim. Od sprzętu, poprzez system operacyjny aż do finalnej aplikacji.

My korzystamy tak naprawdę tylko z określonej aplikacji i jej funkcjonalności. Czyli kupujemy trochę gotowe pudełko z aplikacją, tyle, że nie instalujemy jej u nas na komputerze a korzystamy z niej w chmurze (przez Internet).

W tym wypadku rozliczamy się najczęściej w modelu – opłata za jednego użytkownika za miesiąc korzystania z aplikacji. Minusem jest to, że nie zmienimy sobie nic w tej aplikacji ani nie mamy wpływu na jej rozwój (a przynajmniej nie decydujący wpływ).

I to z jednej strony jest coś w czym Microsoft “siedzi” od lat – bo mamy przecież Hotmail/Outlook.com (największa na świecie aplikacja w chmurze) czy inne tego typu aplikacje (Live, SkyDrive, itp.).

Z drugiej strony w obecnej chwili tak dużo się o tym mówi, bo Microsoft przenosi swoje koronne i kluczowe aplikacje (działające do tej pory na komputerze/serwerze lokalnym) do chmury.

Widoczne się to stało m.in. 12 kwietnia – kiedy w Polsce miała miejsce premiera (na razie dosyć cicha) pakietu BPOS (aktualnie Office 365), czyli: Exchange Online, SharePoint Online, Lync, Office WebApps Office Communication Server Online i Live Meeting. Ale teraz nie będę o tym pisał, bo to temat na osobnego posta.

Co bardzo ważne – Microsoft zainwestował mnóstwo pieniędzy i zasobów w to, aby większośc produktów “pudełkowych” była w niedługiej przyszłości dostępna w chmurze. Inwestycje są rzędu 2.3 miliarda dolarów (!) w ostatnim roku oraz 30.000 inżynierów (!) pracujących nad tymi aplikacjami.

Dla pełnego obrazu dodam, że tego typu chmurę ma aktualnie też m.in. Google (ze swoimi Google Apps) oraz Salesforce.com (ze swoim systemem CRM, znanym bardziej na świecie niż w Polsce). Ale o porównaniu i różnicy w ich możliwościach też już wkrótce.

Software + Services

imageDo całego obrazu brakuje nam jednego dodatkowego wyjaśnienia. Chodzi o wymieszanie tego co mamy teraz (czyli serwery w firmie, aplikacje na komputerach) z tym co daje chmura (serwery i aplikacje poza firmą).

Generalnie często nazywa się to właśnie jako Software + Services. Czyli z jednej strony możliwości korzystania z klasycznego oprogramowania (Software), z drugiej strony możliwośc skorzystania z tego na zasadzie usługi (Service). Czyli czy zainstaluję sobię Exchange na moim serwerze czy będę z niego korzystał w chmurze (Exchange Online).

To od nas ma zależeć co dla nas jest lepsze. Bo wcale nie zawsze chmura będzie super rozwiązaniem. Ale też nie zawsze kurczowe trzymanie się tego co mamy u siebie (serwerów czy aplikacji) będzie najlepsze. A może mix będzie w tym wypadku najlepszy? Pewnie dosyć często tak. Tu każdy musi zdecydować sam.

A w obecnej chwili TYLKO Microsoft ma możliwość dania nam tego wyboru. Bo w swojej ofercie ma zarówno klasyczne pudełka (z oprogramowaniem wszelkiego rodzaju) jak i ich odpowiedniki w chmurze (tych na razie jest kilka, niedługo będzie pewnie zdecydowana większość).

Ale o tym też będzie osobny post :)

Chmura prywatna

Jest jeszcze jedna rzecz, o której trzeba by teraz powiedzieć – czyli chmura prywatna. To stworzenie dosyć podobnej elastyczności w naszej serwerowni co w chmurze publicznej.

To klasyczne serwery, które trzymamy u siebie (lub jakiegoś dostawcy), na których mamy uruchomioną wirtualizację (w wypadku Microsoft w oparciu o Hyper-V z Windows Server). Daje nam to możliwość efektywnego wykorzystania zasobów naszej serwerowni oraz wygodnego przenoszenia obciążeń między serwerami.

Ale wirtualizacja to nie wszystko (bo ją znamy od lat). Kluczowym elementem chmury prywatnej jest zarządzanie tymi zasobami - czyli np. fizycznymi serwerami, maszynami wirtualnymi, aplikacjami w nich. Dzięki odpowiednim narzędziom (Microsoft ma swoje System Center do tego) możemy robić to bardzo wygodnie - monitorować nasze środowisko, wykonywać na nim zmiany (ręcznie lub automatycznie) oraz oddawać pewne narzędzia w ręce użytkowników końcowych/biznesowych a nie tylko działu IT.

Podsumowanie

Dobrze, czas na podsumowanie, bo post urósł chyba do niezłej długości. Ale myślę, że warto było o tym opowiedzieć w trochę ustrukturyzowanej formie.

Bo ja przyznam się, że wszystkie te pojęcia i skróty słyszałem już nie raz (!), a nigdy nie potrafiłem ich dobrze zrozumieć.

Ale sposób w jakim Wam to wyjaśniłem - do mnie przemówił i bardzo mi rozjaśnił to wszystko o co chodzi z chmurą i jakie są różnice między pewnymi rodzajami chmury (tym co Amazon nazywa Cloud Computing, a tym co Google czy Microsoft).

image

Mam nadzieję, że również i Wy macie pewien dodatkowy pogląd na chmurę. Jeśli udało mi się choć trochę pomóc wyjaśnić temat i sądzicie, że powinienem kontynuować ten cykl to dajcie znać w komentarzach (no dobra, jak nie dacie znać to i tak to będę opisywał :))

Chciałem dosyć szybko przejść do konkretów, ale chyba jeszcze przed omówieniem jednej części już działającej chmury Microsoft omówię jeszcze jak to się dzieje, że taka chmura działa.

Czyli to wszystko co stoi przed usługami, platformą i aplikacjami – sprzęt, zasoby, ludzie, zarządzanie. Teoretycznie nie powinno Was to interesować (bo Wy kupujecie te zasoby, żeby się nie przejmować nimi), ale myślę, że w ramach ciekawostki pokaże Wam to zaplecze Cloud Computingu i jego skalę oraz możliwości.

Więcej wiedzy

Tą część posta dopisuję 11 stycznia 2013 roku (czyli 3 lata po napisaniu oryginalnego postu). Od tego czasu trochę więcej wszyscy wiedzą na temat chmur, ale nadal tego posta odwiedza bardzo duża liczba osób. W związku z tym, pozwalam sobie dodać na koniec kilka linków do dodatkowych postów z tej tematyki, które miałem okazję napisać w ciągu tych 3 lat. Zapraszam do zdobycia jeszcze dodatkowej wiedzy w tym temacie: