Natywny czy naiwny w chmurze?

Zespół Eximee
Opublikowano 09 czerwca 2023 r.

Jeśli pasjonujesz się aktywnością na świeżym powietrzu, powinieneś znać różne rodzaje chmur, zwłaszcza cumulonimbusy. W przypadku chmur cyfrowych sprawa jest o wiele prostsza. Chociaż niektórzy uważają, że jedyną opcją poza byciem „w chmurze” jest bycie „poza chmurą”, kluczowe jest zrozumienie tego pojęcia w głębszym kontekście. Co więc dokładnie oznacza „chmura natywna”? Jakie są rodzaje chmur? I dlaczego niektórzy ostrzegają przed „fałszywą chmurą”? Systemy chmurowe, wdrażane przez firmy takie jak Netflix i Uber, wykorzystują model przetwarzania w chmurze, aby osiągnąć szybkość, elastyczność i skalowalność.

Zacznijmy od szybkiego omówienia czterech głównych podejść.

Brak chmury = lokalnie

Niektórzy twierdzą, że to model tradycyjny. Inni nazywają go historycznym.

W tym modelu jesteś właścicielem sprzętu, instalujesz systemy, sam je wspierasz i modernizujesz. Masz pełną kontrolę nad wszystkimi aspektami, ale z tą kontrolą wiąże się również odpowiedzialność. Odpowiadasz również za projektowanie i dostarczanie zasobów, takich jak infrastruktura (tj. serwery), w sposób efektywny kosztowo. Z drugiej strony, jesteś niezależny i masz pełną wiedzę na temat sposobu wykorzystania swoich danych. W przeciwieństwie do tego, środowisko chmurowe oferuje… usługami zarządzanymi i infrastruktury w dynamicznym, zwirtualizowanym środowisku, co zmniejsza obciążenie związane z konserwacją i zapewnia skalowalność.

Model hostowanego przetwarzania w chmurze

To wciąż nie jest chmura. To podejście jest podobne do starego podejścia „lokalnego”, z tą różnicą, że nie jesteś właścicielem sprzętu. Nadal wykonujesz większość pracy, taką jak instalacja oprogramowania, jego konserwacja i zabezpieczanie danych. Różnica polega na tym, że nie jesteś właścicielem sprzętu, więc to nie Twój problem, gdy się zepsuje. W rzeczywistości, gdy się zepsuje, masz problem, ale nie możesz go rozwiązać samodzielnie (i nie jesteś w stanie). Na czym dokładnie polega ta oferta? W zależności od dostawcy może to być „infrastruktura jako usługa” (IaaS) lub „platforma jako usługa” (PaaS).

W modelu IaaS otrzymujesz bezpieczną lokalizację fizyczną ze wszystkimi niezbędnymi komponentami infrastruktury (siecią, zaporami sieciowymi itd.), a także serwerami i pamięcią masową dostosowanymi do Twoich potrzeb.

PaaS rozszerza IaaS, dostarczając komponenty oprogramowania, takie jak systemy operacyjne, bazy danych, pulpity nawigacyjne oraz narzędzia do zarządzania i raportowania. W porównaniu ze środowiskami chmurowymi, model hostowany wymaga więcej ręcznej interwencji i nie oferuje automatyzacji w zakresie udostępniania platformy i wdrażania aplikacji. 

Chmura dla jednego najemcy

Przyjrzyjmy się temu podejściu z perspektywy dostawcy oprogramowania. Twoi klienci korzystają z Twojej aplikacji zainstalowanej na własnych serwerach lub w środowisku „hostowanym”. Dochodzą jednak do punktu, w którym wolą nie zarządzać nią samodzielnie. Uważają to za czasochłonne, spotykają się ze skargami ze strony personelu IT, który niechętnie zapewnia całodobowe wsparcie, i po prostu chcą uniknąć kłopotów. Zwracają się do Ciebie z prośbą o migrację aplikacji do Twojego środowiska w obecnej formie i są gotowi płacić miesięczną opłatę za tę usługę.

Na tym etapie Twoi klienci mogą korzystać z różnych wersji Twojego oprogramowania, zarówno uniwersalnych, jak i spersonalizowanych. Niektórzy klienci mogą nawet zażądać fizycznego oddzielenia swoich systemów od innych, ze względów prawnych lub bezpieczeństwa, a może po prostu dlatego, że mają wątpliwości co do zaufania rozwiązaniom opartym na chmurze.

Aby sprostać tym wymaganiom, Twoim celem jest zapewnienie każdemu klientowi dedykowanej instancji systemu. Z punktu widzenia klienta, oczekuje on takiego samego wdrożenia pod względem liczby wersji i możliwości personalizacji, jak w środowisku lokalnym. Oczekuje on również podobnych środków bezpieczeństwa i separacji danych od danych innych klientów. Z kolei architektura aplikacji natywnych dla chmury oferuje skalowalność, elastyczność i efektywność kosztową dzięki wykorzystaniu komponentów takich jak mikrousługi, funkcje bezserwerowe i architektura sterowana zdarzeniami, które zazwyczaj nie są dostępne w środowiskach chmurowych dla pojedynczego użytkownika.

Należy pamiętać, że jako dostawca oprogramowania możesz zostać klientem dostawców IaaS lub PaaS, aby spełnić wymagania dotyczące dostarczania klientom nowego rozwiązania opartego na chmurze.

Środowiska chmurowe wielodostępne

Wadą podejścia opartego na pojedynczym dzierżawcy jest to, że przydzielenie oddzielnej instancji sprzętowej każdemu klientowi nie jest szczególnie opłacalne. Podejście oparte na wielu dzierżawcach rozwiązuje ten problem.

Jako dostawca oprogramowania, zamiast tworzyć osobne egzemplarze swojej aplikacji dla każdego klienta, możesz zmodyfikować aplikację tak, aby była używana przez wszystkich klientów dokładnie w tym samym czasie. w ten sam sposóbW tym scenariuszu wszyscy klienci efektywnie wykorzystują te same komponenty, sprzęt i pamięć masową. Izolacja danych klientów jest osiągana na poziomie aplikacji, a nie poprzez separację fizyczną.

Aby zilustrować tę koncepcję, rozważmy prosty przykład Gmaila. Wszyscy klienci logują się do tej samej aplikacji pocztowej, ale mogą personalizować swoją skrzynkę pocztową, filtry, powiadomienia i inne ustawienia, nie mając możliwości przeglądania swoich wiadomości e-mail.

W modelu multi-tenant klienci nie mają dostępu do serwerów fizycznych ani komponentów niskiego poziomu. Płacą za usługi świadczone przez aplikację, dlatego nazywa się to oprogramowaniem jako usługą (SaaS). W tym modelu nie interesuje ich nic – płacą miesięczną opłatę, a aplikacja ma działać. Kropka.

W porównaniu z chmurą wielodostępną, aplikacje chmurowe są projektowane specjalnie pod kątem architektury przetwarzania w chmurze, wykorzystując mikrousługi i kontenery w celu zwiększenia skalowalności i elastyczności.

Tworzenie aplikacji natywnych w chmurze

Do tej pory omówiliśmy podstawy, więc przyjrzyjmy się bliżej koncepcji „natywnej chmury”. Aplikacja natywna chmury jest projektowana tak, aby w pełni wykorzystać zalety przetwarzania w chmurze, takie jak skalowalność, elastyczność i opłacalność.

Tworzenie aplikacji chmurowych oznacza zmianę kulturową w praktykach oprogramowania, mającą na celu skrócenie czasu dostarczania oprogramowania i zapewnienie dokładnych funkcji, które spełnią zmieniające się oczekiwania użytkowników.

Niektóre znane firmy technologiczne wysuwają śmiałe obietnice, sugerując, że mogą sprawić, że Twoja firma stanie się „rodzima w chmurze”, po prostu migrując Twoje systemy do chmury, bez konieczności wprowadzania jakichkolwiek zmian w istniejących aplikacjach.

To stwierdzenie jest niewystarczające. Tak jak zakup smartfona nie czyni cię automatycznie „cyfrowym tubylcem”, a lot na Marsa nie czyni cię Marsjaninem, tak samo przeniesienie systemów do chmury nie daje ci statusu „tubylca chmury”.

W istocie, „cloud native” odnosi się do specyficznej metodologii projektowania, tworzenia i uruchamiania aplikacji w celu wykorzystania potencjału funkcji chmury. Aplikacje te są elastyczne, skalowalne i rozproszone, ucieleśniając architekturę natywną dla chmury.

Oznacza to luźno powiązane komponenty, często implementowane jako mikrousługi, modułową konstrukcję i bezstanowość. Oznacza to również, że komponenty działają w środowisku zwirtualizowanym i dynamicznie skalują się w odpowiedzi na zmieniający się ruch, wolumen danych i liczbę użytkowników. Wdrożenie technologii natywnych dla chmury, takich jak kontenery i siatki usług, dodatkowo zwiększa skalowalność, odporność i elastyczność tych aplikacji.

Wniosek

„Cloud native” to chwytliwe określenie, ale pamiętaj, że migracja do chmury nie sprawi, że Twoja aplikacja będzie taka. Zrozumienie różnych podejść do przetwarzania w chmurze natywnej, wspieranych przez Fundacja Cloud Native Computing (CNCF) jest niezbędna w dzisiejszym ciągle zmieniającym się krajobrazie, gdyż chroni Cię przed byciem „naiwnym w kwestii chmur” zamiast „tubylcem w kwestii chmur”. 

FAQ

Co oznacza „cloud native”?

Termin „rozwiązania chmurowe” odnosi się do projektowania, rozwijania i uruchamiania aplikacji w celu wykorzystania zalet przetwarzania w chmurze, takich jak skalowalność, elastyczność i opłacalność.

Czym są technologie chmurowe?

Technologie chmurowe obejmują mikrousługi, kontenery i siatki usług, które zwiększają skalowalność, odporność i elastyczność aplikacji.

Czym jest tworzenie aplikacji w chmurze?

Tworzenie aplikacji chmurowych koncentruje się na tworzeniu aplikacji specjalnie dla środowisk chmurowych, kładąc nacisk na modułową konstrukcję, komponenty bezstanowe i dynamiczne skalowanie.

Czym jest model hostowanego przetwarzania w chmurze?

Model hostowanego przetwarzania w chmurze wiąże się z wynajmem sprzętu przy jednoczesnym zarządzaniu oprogramowaniem i jego konserwacją, czym różni się od modelu lokalnego, w którym jesteś właścicielem sprzętu.

Czym aplikacje natywne w chmurze różnią się od aplikacji tradycyjnych?

Aplikacje chmurowe są modułowe i skalowalne oraz działają w środowiskach wirtualnych, w przeciwieństwie do tradycyjnych aplikacji, które często są monolityczne i mniej elastyczne.

  • Trendy

Autorzy

Zespół Eximee