Czym jest przetwarzanie w chmurze? Omówienie technologii chmurowej
Przewodnik po przetwarzaniu w chmurze i związanych z nim korzyści dla nowoczesnych przedsiębiorstw
Przetwarzanie w chmurze to usługa udostępniania zasobów obliczeniowych za pośrednictwem Internetu. Jego zalety to między innymi ograniczenie kosztów, skalowalność, wysoka wydajność oraz oszczędność zasobów. Dla wielu firm migracja do chmury jest bezpośrednio związana z modernizacją danych i IT.
Gdy pojęcie „chmury” zaczęło być stosowane powszechnie na początku pierwszej dekady XXI wieku, miało pewien wydźwięk ezoteryczny. Pomysł dostępu do zasobów obliczeniowych umiejscowionych gdzie indziej niż lokalna infrastruktura IT (w niebie?) brzmiał jak science fiction. Ale technologia ta była znacznie bardziej realistyczna i rozwinięta, niż mogło się wydawać, i na zawsze odmieniła nasz sposób prowadzenia działalności.
Wypróbuj Compass bezpłatnie
Ulepsz środowisko programistyczne, skataloguj wszystkie usługi i popraw kondycję oprogramowania.
Czym jest przetwarzanie w chmurze?
Przetwarzanie w chmurze to dostarczanie zasobów obliczeniowych — w tym pamięci masowej, mocy obliczeniowej, baz danych, urządzeń sieciowych i analitycznych, sztucznej inteligencji czy oprogramowania — za pośrednictwem Internetu, a właściwie chmury obliczeniowej. Outsourcing tej sfery umożliwia firmom uzyskanie dostępu do potrzebnych im zasobów obliczeniowych w dowolnym momencie bez konieczności zakupu i utrzymywania lokalnej infrastruktury IT. Oznacza to elastyczność zasobów, szybsze innowacje oraz wydajne wykorzystanie efektu skali. Dla wielu firm migracja do chmury jest bezpośrednio związana z modernizacją danych i IT.
Charakterystyka przetwarzania w chmurze
Przed wprowadzeniem technologii przetwarzania w chmurze firmy nabywały i samodzielnie utrzymywały własną infrastrukturę IT. Chociaż początkowo główną motywacją do przechodzenia na model chmurowy były oszczędności, wiele organizacji dostrzegło, że utrzymywanie infrastruktury w chmurze publicznej, prywatnej czy hybrydowej wiąże się z wieloma korzyściami.
Przetwarzanie w chmurze zapewnia zespołom Agile i DevOps możliwość uproszczenia i przyspieszenia procesów programowania.
Poniżej przedstawiamy zestawienie właściwości charakteryzujących przetwarzanie w chmurze.
Samoobsługa na żądanie
Dostawcy usług w chmurze oferują interfejsy API umożliwiające użytkownikom zgłaszanie zapotrzebowania na nowe zasoby i skalowanie istniejących zasobów w zależności od potrzeb. Oznacza to wydajną automatyzację aprowizowania infrastruktury za sprawą narzędzi opartych na modelu „infrastruktura jako kod”, np. Terraform i Ansible.
Powszechny dostęp
Fizyczna lokalizacja sprzętu jest istotnym problemem przy zapewnianiu użytkownikom końcowym optymalnych wrażeń. Przetwarzanie w chmurze stanowi ogromne udogodnienie za sprawą globalnie rozproszonej infrastruktury fizycznej, umożliwiającej strategiczne aprowizowanie usług zlokalizowanych.
Łączenie zasobów
Zasoby obliczeniowe w ramach infrastruktury chmurowej są dynamicznie dzielone i przydzielane na żądanie. W związku z powyższym fizyczny sprzęt hosta chmury, udostępniany i współdzielony przez wielu dzierżawców naraz, jest dokładnie zoptymalizowany pod kątem maksymalnego wykorzystania.
Błyskawiczna elastyczność
Infrastruktury chmurowe umożliwiają dynamiczne rozszerzanie i ograniczanie, dzięki czemu dostępna jest opcja automatycznego skalowania zasobów obliczeniowych w zależności od potrzeb użytkownika. Elastyczne dopasowanie może być oparte na pojedynczej maszynie, na zasadzie przydziału zasobów w celu maksymalizacji dostępnej mocy, lub na wielu urządzeniach w ramach sieci dobieranych według skali przez aplikację.
Dokładne statystyki wykorzystania
Dostawcy infrastruktury chmurowej udostępniają szczegółowe wskaźniki użytkowania, co ułatwia zarządzanie jego kosztami. Np. Amazon Web Services (AWS) podaje wykorzystanie dla każdej kategorii usług w ujęciu godzinowym lub dziennym. Dostawcy usług w chmurze zazwyczaj przyjmują model rozliczeniowy typu pay-as-you-go — mierzony i dostarczany w taki sposób, aby klienci ponosili wyłącznie koszt faktycznie użytych zasobów obliczeniowych.
Rodzaje wdrożeń w chmurze
Istnieją trzy podstawowe rodzaje wdrożeń w chmurze. Każdy z nich odznacza się unikalnymi zaletami, a odbiorcy często korzystają z kilku rozwiązań naraz.
Chmura publiczna
Chmury publiczne udostępniają zasoby obliczeniowe — serwery, pamięci masowe, aplikacje itp. — za pośrednictwem Internetu od dostawcy usług w chmurze, takiego jak AWS czy Microsoft Azure. Dostawcy usług chmurowych są właścicielami i zarządcami całego sprzętu, oprogramowania i pozostałej infrastruktury pomocniczej.
Chmura prywatna
Chmura prywatna to zasoby obliczeniowe przydzielone wyłącznie danej organizacji. Może być fizycznie zlokalizowana w lokalnym centrum danych konkretnej organizacji lub hostowana przez dostawcę usług chmurowych. Chmura prywatna daje wyższy poziom bezpieczeństwa i prywatności niż chmury publiczne, zapewniając firmom wyłączny dostęp do ich zasobów.
Użytkownicy chmury prywatnej otrzymują wszelkie podstawowe zalety chmury publicznej, w tym samoobsługę, skalowalność i elastyczność, dysponując jednocześnie rozszerzonym zakresem kontroli i personalizacji. Ponadto chmury prywatne charakteryzują się wyższym poziomem bezpieczeństwa i prywatności, jako że są umieszczone w prywatnych sieciach niedostępnych dla użytkowników zewnętrznych.
Chmura hybrydowa
Chmura hybrydowa stanowi połączenie chmury prywatnej i publicznej (np. usługa IBM Hybrid Cloud na oprogramowaniu Red Hat) sprzężonych za pomocą technologii umożliwiających sprawne współdziałanie danych i aplikacji. Szczególnie istotne usługi i aplikacje mogą być przechowywane w bezpiecznej chmurze prywatnej, podczas gdy publicznie dostępne serwery i punkty dostępu dla klientów mogą się znajdować w chmurze publicznej. Większość popularnych dostawców usług chmurowych oferuje model hybrydowy, umożliwiając użytkownikom swobodne łączenie rozwiązań prywatnych i publicznych według potrzeb. Zapewnia to przedsiębiorstwom większą elastyczność w zakresie doboru infrastruktury do konkretnych wymagań stosowanych aplikacji.
Usługi przetwarzania w chmurze
Dynamiczne właściwości przetwarzania w chmurze są podstawą wielu nowoczesnych usług wyższego poziomu. Usługi te mogą stanowić nie tylko wsparcie, ale wręcz bywają niezbędne dla funkcjonowania zespołów Agile i DevOps.
Infrastruktura jako usługa
Infrastruktura jako usługa (IaaS) to podstawowa kategoria usług chmurowych, umożliwiająca organizacjom dzierżawę infrastruktury IT — serwerów, pamięci masowych, sieci, systemów operacyjnych — od dostawcy usługi. Model IaaS umożliwia użytkownikom rezerwację i aprowizowanie wymaganych zasobów dostępnych w ramach fizycznego magazynu serwerów. Ponadto model IaaS pozwala rezerwować wstępnie skonfigurowane maszyny do takich specjalistycznych zadań, jak równoważenie obciążenia, bazy danych, serwery poczty elektronicznej czy rozproszone kolejki.
Zespoły DevOps mogą korzystać z IaaS jako platformy bazowej do budowy łańcucha narzędzi DevOps obejmującego rozwiązania innych firm.
Platforma jako usługa
Platforma jako usługa (PaaS) oznacza infrastrukturę chmurową zbudowaną w oparciu o model IaaS, zapewniającą zasoby do budowania narzędzi i aplikacji na poziomie użytkownika. Obejmuje infrastrukturę bazową, w tym zasoby obliczeniowe, sieciowe i pamięciowe, a także narzędzia programistyczne, systemy zarządzania bazami danych oraz oprogramowanie pośredniczące.
Model PaaS wykorzystuje IaaS w celu automatycznego przydzielania zasobów niezbędnych do zasilania stosów technologicznych. Popularne stosy technologiczne obejmują takie rozwiązania, jak Ruby On Rails, Java Spring MVC, MEAN czy JAM. Użytkownicy PaaS mogą następnie po prostu przesłać artefakt kodu swojej aplikacji, który jest automatycznie wdrażany w obrębie infrastruktury PaaS. Jest to nowatorski i wydajny model przepływu pracy, który umożliwia zespołom całkowite skupienie na zastosowaniach końcowych bez martwienia się o kwestie hostingu czy problemy z infrastrukturą. PaaS automatycznie obsługuje skalowanie i monitorowanie infrastruktury, rozszerzając lub ograniczając zasoby w zależności od odnotowanego obciążenia.
Oprogramowanie jako usługa
Oprogramowanie jako usługa (SaaS) oznacza dostarczanie aplikacji za pośrednictwem Internetu, na żądanie, zazwyczaj w ramach modelu subskrypcyjnego. Dostawcy usługi dbają o hosting i zarządzanie aplikacją, zapewniając stałą aktualizację oprogramowania i wprowadzanie wszelkich wymaganych poprawek w zakresie bezpieczeństwa. Do przykładów modelu SaaS należą m.in. systemy CRM, aplikacje poczty internetowej, narzędzia zwiększające produktywność, np. Jira lub Confluence, narzędzia analityczne, narzędzia monitorujące oraz aplikacje czatowe.
Funkcja jako usługa
Funkcja jako usługa (FaaS) to model przetwarzania w chmurze oferujący platformę, na której klienci mogą tworzyć i uruchamiać aplikacje oraz na bieżąco nimi zarządzać. Zwalnia programistów z konieczności budowania i utrzymywania infrastruktury potrzebnej do tworzenia i uruchamiania aplikacji. Usługodawca dostarcza zasoby chmurowe, wykonuje dany zakres kodu, zwraca wynik, a następnie niszczy wykorzystane zasoby.
Korzyści z przetwarzania w chmurze
Unikatowe właściwości infrastruktur chmurowych zapewniają kilka nowatorskich korzyści technicznych i biznesowych. Oto kluczowe korzyści płynące z przetwarzania w chmurze dla zespołów Agile.
Ograniczenie kosztów
Zespoły korzystające z zasobów chmurowych nie muszą nabywać własnej infrastruktury sprzętowej. Ponadto dostawcy usług chmurowych robią wszystko, co w ich mocy, aby zmaksymalizować i zoptymalizować wykorzystanie swoich urządzeń. W efekcie zarówno sprzęt, jak i zasoby obliczeniowe stają się towarem, a dostawcy rozwiązań chmurowych konkurują ze sobą o zapewnienie klientom jak najkorzystniejszej ceny.
Zwiększona skalowalność
Domyślna elastyczność rozwiązań chmurowych umożliwia ich odbiorcom dowolne skalowanie zasobów na żądanie. Zespoły mogą również skorzystać z opcji skalowania automatycznego. Aplikacje chmurowe mogą automatycznie ograniczać lub rozszerzać zakres zasobów w odpowiedzi na skoki w natężeniu ruchu.
Lepsza wydajność
Przetwarzanie w chmurze oznacza dostęp do najnowocześniejszych rozwiązań w dziedzinie zasobów obliczeniowych. Użytkownicy mają do dyspozycji maszyny wyposażone w potężne, wielordzeniowe procesory przeznaczone do wymagających zadań przetwarzania równoległego. Ponadto główni dostawcy usług chmurowych oferują przełomowe procesory graficzne i TPU do intensywnych zadań z zakresu przetwarzania grafiki czy sztucznej inteligencji. Udostępniane przez nich zasoby sprzętowe są stale unowocześniane.
Infrastruktura oferowana przez głównych dostawców usług chmurowych jest zazwyczaj rozproszona po całym świecie, co zapewnia wysoką jakość połączeń niezależnie od lokalizacji. Ponadto ci dostawcy udostępniają globalne sieci dostarczania zawartości, które buforują treści i żądania użytkowników według lokalizacji.
Szybsza realizacja
Zespoły korzystające z infrastruktury chmurowej sprawniej tworzą i dostarczają wartość swoim klientom. Zespoły Agile mogą wykorzystać infrastrukturę chmurową do szybkiego uruchamiania nowych maszyn wirtualnych dla potrzeb eksperymentowania i sprawdzania unikalnych pomysłów oraz automatyzacji faz testowania i wdrażania pipeline'u.
Zwiększone bezpieczeństwo
Hosting w chmurze prywatnej oznacza odizolowaną infrastrukturę chronioną zaporą sieciową dla wzmożonej ochrony. Ponadto dostawcy usług chmurowych oferują wiele mechanizmów zabezpieczających oraz technologii ułatwiających tworzenie bezpiecznych aplikacji. Kontrola dostępu użytkowników stanowi istotny aspekt bezpieczeństwa, dlatego większość dostawców usług chmurowych oferuje narzędzia szczegółowego zarządzania dostępem.
Ciągła integracja i dostarczanie
Ciągła integracja i dostarczanie (CI/CD) to kluczowa kwestia dla praktyków DevOps, pomagająca zwiększyć prędkość zespołu i skrócić czas wprowadzania produktów na rynek. Chmurowe funkcje CI/CD, np. Bitbucket Pipelines, umożliwiają zespołom automatyczne tworzenie, testowanie i wdrażanie kodu bez obaw o sprawy zarządzania czy konserwacji infrastruktury CI. Usługa Bitbucket Pipelines jest oparta na kontenerach Docker w celu zapewnienia izolacji i odtwarzalności pipeline'u wydania. Zespoły mogą wykonywać polecenia podobnie jak na lokalnej maszynie, jednocześnie uzyskując wszelkie zalety świeżej i powtarzalnej konfiguracji dla każdej kompilacji.
Kompleksowe monitorowanie i zarządzanie incydentami
Wdrożenia w chmurze umożliwiają zespołom łączenie narzędzi na całej długości procesu, co ułatwia monitorowanie wszystkich elementów pipeline'u. Kompleksowy monitoring to funkcjonalność niezbędna dla praktyków DevOps, jako że pozwala na szybsze rozwiązywanie zaistniałych problemów i incydentów. Dostawcy usług w chmurze udostępniają wskaźniki dotyczące stanu systemu, w tym procesora aplikacji i serwera, pamięci, współczynnika żądań, współczynnika błędów, średniego czasu odpowiedzi itd. Np. monitorowanie obciążenia wielu maszyn wirtualnych naraz oznacza dla zespołów możliwość zwiększenia pojemności w przypadku wzrostu zapotrzebowania lub zautomatyzowania skalowania (w górę/w dół) w oparciu o wspomniane wskaźniki w celu ograniczenia zarówno stopnia ingerencji ludzkiej, jak i kosztów. Przeczytaj więcej o monitorowaniu DevOps.
Wnioski…
Przetwarzanie w chmurze oznacza możliwość korzystania z zaawansowanych zasobów obliczeniowych dostępnych na żądanie, skalowalnych w zależności od potrzeb, regularnie aktualizowanych oraz niewymagających zakupu i utrzymywania infrastruktury lokalnej. Za sprawą przetwarzania w chmurze zespoły stają się bardziej wydajne i skracają czas wprowadzania produktów na rynek dzięki możliwości szybkiego pozyskiwania i skalowania usług z pominięciem wysiłku, jakiego wymaga zarządzanie tradycyjną infrastrukturą stacjonarną. Zapoznaj się z ofertą usług chmurowych Atlassian.
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat tworzenia oprogramowania oraz otrzymywać bieżące aktualizacje dotyczące rozwiązania Compass.