Z dużej chmury… duży deszcz – historia usług chmurowych


Kilka słów o cichej popularności usług chmurowych

Pytając użytkowników spoza branży IT o to, czy korzystają z usług w chmurze, często słyszę odpowiedzi: „Chmura? Nieee, ja nie używam” albo „A tak, ta chmurka po prawej na dole”. Zarządy dużych firm w obawie przed wyciekiem danych pozostają przy opcji, że „w naszej firmie tego nie ma” albo „tylko w kontrolowanym stopniu”.

Tymczasem usługi chmurowe są wszechobecne. Oznacza to, że często korzystamy z usług, z których umiejscowienia w chmurze nawet nie zdajemy sobie sprawy. Jest tak chociażby w przypadku pakietów biurowych Office 365, aplikacji do wymiany plików (z ikoną chmurki OneDrive czy konkurencyjnego DropBoxa), przeglądarkowych aplikacji do sklejania stron PDF-ów czy wreszcie – bibliotek filmów, takich jak Netflix.

Samo określenie „chmura” odnosi się do dostarczania jakiejś usługi przez internet (wcześniej w nieco węższym zakresie stosowano zwrot „serwisy webowe”). Co spowodowało, że tak popularne w ostatnich latach stały się określenia „usługi chmurowe”? Czy istnieje tylko jedna chmura i co właściwie daje nam korzystanie z takich rozwiązań? Temat jest bardzo rozległy, jednak postaram się go tutaj nieco przybliżyć.

Historia współdzielenia zasobów

Jesteśmy przyzwyczajeni, że obecna dostępność zasobów obliczeniowych czy też sprzętu komputerowego (ang. hardware) jest nieograniczona albo przynajmniej bardzo duża. Wszystko da się kupić, ceny rozwiązań są akceptowalne, a jeśli ktoś musi szybko przetworzyć duże ilości danych, może skorzystać z usług takich gigantów jak Amazon, Microsoft czy Google. Jest to w dużej mierze prawda (choć niektóre przedsięwzięcia są tak duże, że i tak wymagają więcej czasu na zakup dodatkowej infrastruktury), jednak nie zawsze tak było.

Historia współdzielenia i dzierżawienia zasobów obliczeniowych jest tak stara, jak historia samych komputerów. Pierwsze tego typu urządzenia nie były produkowane masowo, a programy opracowywano długo. W latach 60. i 70. ubiegłego wieku komputery do użytku komercyjnego wymagały ogromnych nakładów finansowych. Firmy rzadko mogły pozwolić sobie na zakup kilkupokojowych „szaf”, nie wspominając o ich utrzymaniu.

Komputery często były trzymane przez wyspecjalizowane ośrodki, a czas ich pracy był współdzielony. Oznaczało to, że na przykład osoba chcąca wprowadzić swój program miała dostęp do interfejsu tylko w czwartek między godziną 15.00 a 17.00. Następnie uruchomić go można było w piątek. Jeśli okazało się, że miał błędy, poprawkę można było wprowadzić… w następny czwartek. Przykład ten dziś może się wydawać dość absurdalny, jednak takie były początki współdzielenia zasobów na wielkich, trudno dostępnych maszynach.

Komputer Harvard Mark I

Przez następne lata pomniejszano rozmiary maszyn liczących poprzez zamianę lamp próżniowych na tranzystory krzemowe, co pozwoliło zmieścić tę samą (a z czasem większą) moc obliczeniową oraz gabaryty z wielkich szaf do rozmiarów niewielkiego pudła. Zmieniały się też formy wprowadzania i zapisu danych. Początkowo wykorzystywane papierowe karty perforowane (wyglądające jak potraktowane dziurkaczem karty do gry) zastąpiły taśmy szpulowe z klawiaturami i pamięci wbudowane.

Rozwój sieci komputerowych zaowocował szybszą wymianą informacji pomiędzy placówkami. Największym jednak przełomem z punktu widzenia masowego dostępu do sprzętu komputerowego było pojawienie się komputerów osobistych. Maszyny wciąż były drogie, jednak mogły być używane ciągle i bez ograniczeń dostępu dla ich właścicieli. Pojawiły się graficzne systemy operacyjne upraszczające korzystanie ze sprzętu. Sieć WWW stworzyła warunki do gwałtownego rozwoju nowych usług.

Popularyzacja komputerów osobistych spowodowała, że zapotrzebowanie na serwery, na których utrzymywano treści, stale rosło. Z kolei nie każda firma, która widziała potrzebę ogłaszania się na stronach Internetu, chciała zbudować i utrzymywać własną serwerownie. Powstawały centra danych, w których można było wynająć serwer do utrzymania swoich zasobów internetowych. Miało to duże znaczenie głównie dla małych i średnich firm, które nie miały środków na dodatkowe finansowanie ludzi i sprzętu, tak naprawdę niezwiązanych z ich główną działalnością. Również dla powstających firm, które skupiając się na biznesie, nie mogły pozwolić sobie na duże inwestycje w IT.

Czy na tym etapie mamy już do czynienia z chmurą? Czy usługi internetowe takie jak dzierżawienie serwera nie oznaczają już, że możemy mówić o usługach chmurowych? Prawie. By tak rzeczywiście było, zabrakło kluczowych elementów, które znamy z obecnych rozwiązań: skalowalności i globalnej dostępności.

Narodziny Web 2.0

Internet pod koniec lat 90. ubiegłego wieku powoli przestawał być miejscem statycznego wyświetlania treści, a zaczął być bardziej interaktywny. Użytkownicy byli zachęcani do publikowania własnych materiałów. Początkowo były to czaty, fora, a następnie – blogi, galerie i vlogi. Spowodowało to gwałtowny przyrost danych, których wolumen wymagał coraz to większych pojemności do ich przechowywania.

Przeskalowanie rozwiązania, które początkowo obliczone było na kilkuset użytkowników, do kilkudziesięciu tysięcy z dnia na dzień było praktycznie niemożliwe bez wcześniejszego planowania zasobów. Utrzymanie nadmiarowego sprzętu pozwalającego obsłużyć większy ruch generowało koszty, a czekający i starzejący się sprzęt też trzeba serwisować i wymieniać, by mógł spełnić swoją rolę. Nie bez znaczenia były też okresy wzmożonej aktywności użytkowników stron bądź całkowitego jej braku. Jeśli konkretny biznes był aktywny tylko przez niewielką część roku, utrzymanie zasobów przez cały rok w ogóle się nie opłacało. Biznesy szukały bardziej dynamicznych rozwiązań. Ogromną rolę w powstaniu usług chmurowych, jakie znamy dzisiaj, odegrała wirtualizacja, która poprawiła dynamikę dzierżawienia zasobów.

Dziel i rządź, czyli wirtualizacja

Wirtualizacja pozwala na logiczne współdzielenie jednego fizycznego sprzętu bądź klastra zasobów, oddzielając warstwę fizyczną, przez co zasoby można przypisywać dynamicznie do komponentów wirtualnych. Dzięki takiemu zabiegowi można zbudować jednolitą warstwę logiczną w oparciu o różny sprzęt, co z kolei spowodowało poprawienie skalowalności. Automatyczne tworzenie zasobów oraz interfejs internetowy do zarządzania określano mianem platformy.

Jako pierwszy publicznie dostępny model dzierżawienia zasobów przez Internet w formie ogólnodostępnej platformy wprowadził w 2006 roku Amazon. Był to model infrastruktury dostępnej jako usługa (ang. Infrastructure as a service – IaaS), dzięki czemu można było zamówić wirtualne zasoby z płatnością „pay as you go” – czyli za czas używania – podobnie jak to miało miejsce w latach 70. Wszystko jednak odbywało się z wykorzystaniem interfejsów webowych i przy użyciu automatyzacji, co znacznie przyśpieszało ten proces. Następne zasoby można było dodać/usunąć równie szybko, co pozwalało w razie potrzeby zwiększyć lub zmniejszyć możliwości świadczenia usługi przy zmieniającej się liczbie odbiorców. W ślad za Amazonem poszły Google, Microsoft, Oracle, IBM, Alibaba i wiele innych firm. Serwisy/usługi o dostępności globalnej takie jak O365, YouTube, Netfilx są utrzymywane w usługach chmurowych pozwalających dostarczyć treści na całym świecie… Co nie oznacza wcale, że na całym świecie tak samo szybko i z taką samą jakością. Duże znaczenie ma tu rozmieszenie sieci i centr danych na mapie świata.

Popularni dostawcy usług chmurowych

No to gdzie ta chmura wisi?

Czyżby wychodziło na to, że chmura obliczeniowa to tylko znany z czasów pierwszych komputerów model współdzielenia zasobów w nowym, bardziej dynamicznym wydaniu? Krótka odpowiedź na to pytanie brzmi: TAK! A dłuższa – to skomplikowane…

Rozmieszczenie geograficzne centr danych chmury Microsoft

Do istniejących zasobów dokładane są kolejne warstwy programowe zapewniające nowe funkcjonalności. Powstają też nowe centra danych tak futurystyczne, jak zatopione w morzu kontenery z serwerami chłodzonymi wodą morską u wybrzeży Finlandii. Rozbudowane sieci szkieletowe pozawalają na przesyłanie danych do większości miejsc na świecie (choć Chiny i Afryka są tu nieco pokrzywdzone z przyczyn geopolitycznych). Poszczególne regiony (jednostki dostępu do usługi) są często rozbite na strefy dostępności (rozlokowane geograficznie centra danych) w celu zapewnienia wysokiej dostępności i minimalizacji potencjalnego ryzyka utraty zasilania bądź awarii wskutek katastrof naturalnych. A zatem mimo, że chmury pomagają nam ominąć wiele problemów związanych z dostępnością i tak dużo czasu i energii trzeba poświęcić na zbudowanie systemu o zasięgu globalnym z dużą odpornością na potencjalne utraty dróg komunikacji bądź całych punktów dostępu. Trzeba myśleć o synchronizacji dużych ilości danych oraz o pisaniu aplikacji w taki sposób, aby współdziałały z systemami rozproszonymi. Przy rozbudowanych systemach można również zapomnieć o często powtarzanym frazesie „będzie taniej” – z resztą jak w przypadku każdego skomplikowanego konceptu – trzeba poświęcić dużo czasu na optymalizację i wybór strategicznych usług. A potem „się okaże…”

CAPEx a OPEx

Właśnie, a co z ceną? Dlaczego mówi się, że chmury pozwalają obniżać koszty? Otóż może to być różnie z tymi kosztami. Jeśli wiemy, że stale będziemy potrzebować jakichś zasobów przez najbliższy rok, to inwestując z góry (CAPEX ang. Capital expenditures – inwestycje/nakłady) w infrastrukturę, prawdopodobnie podejmiemy lepszą decyzję. Natomiast jeśli musimy co jakiś czas przetworzyć dane bez wstępnych inwestycji (OPEX ang. Operational Expenditures – wydatki eksploatacyjne, utrzymaniowe), wówczas stałe utrzymanie serwera (naprawy, łaty, wymiana oprogramowania, serwisowanie etc.) może się okazać mało optymalne kosztowo.

Wydatki inwestycyjne (CapEx) i operacyjne (OpEx)

Dużą zaletą chmury jest to, że jeśli z niej nie korzystamy, nie płacimy. Co nie oznacza, że nie możemy trzymać konfiguracji i automatyzacji, która pozwoli nam zbudować naszą infrastrukturę z tysiące dolarów w kilka minut. Dodatkowo firmy inaczej rozliczają się z inwestycji i utrzymania – jednak to już temat dla księgowych.

Kto odpowiada za usługę w chmurze?

Pytanie o odpowiedzialność jest jednym z kluczowych przy zawieraniu umów biznesowych z firmami świadczącymi usługi. Zależy ona głównie od tego, jakiego rodzaju usług wykupujemy od dostawcy usług chmurowych (ang. CSP – Cloud Service Provider). Jeśli płacimy za czas maszyn wirtualnych, sieci komputerowe i tak dalej, to korzystamy z modelu IaaS (ang. Infrastructure as a Service). Jeśli przechodzimy na wyższy poziom abstrakcji i zamawiamy platformę, którą sami konfigurujemy i zarządzamy, jest to model PaaS (ang. Platform as a Service). Jeśli nie interesuje nas nic poza używaniem aplikacji końcowej, mamy z kolei do czynienia z modelem SaaS (ang. Software as a service).

Modele usług w chmurze

Każdy model wyższej warstwy opiera się na poprzednim – z tym, że jest on zarządzany przez dostawcę usług, a nie nas, przez co odchodzą nam koszty związanie z utrzymaniem. Z punktu widzenie bezpieczeństwa nawet model IaaS ma swoje zalety: nie musimy dbać o fizyczną warstwę sprzętu, bo serwerownię i jej okolicę zabezpiecza dostawca usługi i w jego odpowiedzialności leży zapewnienie odpowiednich standardów (które i tak wypadało by znać i sprawdzić).

Koleją kwestią jest to, że jakiego modelu byśmy nie wybrali, dane przechowywane w chmurze i ich ochrona są zawsze naszą odpowiedzialnością. CSP często dostarcza nam mechanizmów zmniejszających niebezpieczeństwo utraty danych, jednak ich umiejętne wykorzystanie oraz odpowiedzialności związane z administracją danymi leżą głównie po naszej stronie.

Zakresy odpowiedzialności poszczególnych warstw usług wg. Microsoft

Co dalej z tymi chmurami?

Wysoka dostępność i niski koszt wejścia powodują, że usługi chmurowe są bardzo atrakcyjne dla początkujących firm i osób prywatnych. Z kolei możliwości rozbudowy, zasięg globalny i dynamicznego skalowania przyciągają duże firmy. Kolejne usługi powstają jak grzyby po deszczu, powodując dużą konkurencyjność i nieustanny wyścig pomiędzy dostawcami (co oczywiście jest dobre dla konsumentów). Obecnie na popularności zyskują usługi związane ze sztuczną inteligencją uproszczające budowanie, utrzymanie i dostarczanie usług bazujących na AI.

Mam nadzieję, że trochę przybliżyłem temat powstania i korzyści płynących z korzystania z chmur, ale także trudności, które towarzyszą ich użytkowaniu. W następnych artykułach chciałbym zahaczyć o konkretne rozwiązania dużych graczy na rynku bądź o mechanizmy bezpieczeństwa. Dajcie znać, co was interesuje, a postaram się sprostać wymaganiom. Pozdrawiam!

Źródła:
https://www.computerhistory.org/timeline/1944/#169ebbe2ad45559efbc6eb3572060ebd
https://docs.microsoft.com/en-us/azure/security/fundamentals/shared-responsibility
https://www.educba.com/cloud-computing-service-providers/
https://wikipedia.org


Michał Sołowiej

O Michał Sołowiej

Architekt bezpieczeństwa IT w Atenie. Karierę w IT rozpoczynał od zaciskania kabli i naprawiania myszek jeszcze na studiach. Od 2010 związany z działem bezpieczeństwa głównie dla urządzeń końcowych a z czasem dla serwisów chmurowych. Po pracy odpoczywa z rodziną bądź rozwija swoje pasje jak już wszyscy zasną...

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *