Alan Zeichick | Starszy redaktor | 8 października 2025 r.
Model projektowania dla chmury to sposób opracowywania, tworzenia, wdrażania i uruchamiania aplikacji, który w pełni wykorzystuje zdolności platformy chmurowej. Chociaż oprogramowanie tradycyjne (często nazywane oprogramowaniem monolitycznym) może być uruchamiane zarówno w centrum przetwarzania danych, jak i w chmurze publicznej, nie pozwala ono w pełni wykorzystać skalowalności i efektywności kosztowej środowiska chmury.
W tym miejscu pojawia się model projektowana dla chmury. Zamiast bycia pojedynczą aplikacją instalowaną na serwerze, oprogramowanie zaprojektowane dla chmury jest kompilowane z dziesiątek, setek, a nawet tysięcy małych elementów oprogramowania. Elementy te, zwane mikrousługami, są umieszczane w kontenerach zainstalowanych na serwerach w chmurze. Wspomniane mikrousługi komunikują się następnie za pośrednictwem szybkich, bezpiecznych sieci, współdziałając ze sobą w celu rozwiązywania problemów biznesowych.
Jakie korzyści płyną z tego modułowego podejścia? Jest ich wiele i zostaną omówione poniżej. Oto cztery najważniejsze z nich.
Przyjrzyjmy się bliżej koncepcjom i terminom używanym do opisania specyfiki modelu projektowania dla chmury.
Termin „projektowane dla chmury” (cloud native) odnosi się do koncepcji opracowywania, tworzenia, wdrażania i uruchamiania aplikacji oraz zarządzania nimi w sposób wykorzystujący dostępne w chmurze rozproszone przetwarzanie danych. Projektowane dla chmury aplikacje są tworzone z myślą o wykorzystaniu skalowalności, elastyczności, odporności i wszechstronności, jaką zapewnia chmura.
Cloud Native Computing Foundation (CNCF), niezależna organizacja zarządzająca wieloma otwartymi standardami, które umożliwiają działanie modelu projektowania dla chmury, definiuje tę koncepcję w ten sposób.
Technologie projektowane dla chmury umożliwiają organizacjom tworzenie i uruchamianie skalowalnych aplikacji w nowoczesnych, dynamicznych środowiskach, takich jak chmury publiczne, prywatne i hybrydowe. Przykładem takiego podejścia są kontenery, siatki usług, mikrousługi, niezmienna infrastruktura i deklaratywne interfejsy API.
Technologie te umożliwiają stosowanie luźno sprzężonych systemów, które są odporne oraz łatwe w zarządzaniu i obserwowaniu. W połączeniu z dobrą automatyzacją umożliwiają inżynierom wprowadzanie częstych i przewidywalnych zmian o dużym wpływie przy minimalnym nakładzie pracy.
Warto poświęcić chwilę na rozwinięcie tej definicji.
Skalowalne aplikacje to aplikacje, które mogą obsługiwać zwiększone obciążenia bez konieczności przepisywania lub przeprojektowywania oprogramowania. Wspomniane w definicji dynamiczne środowiska to platformy przetwarzania w chmurze, takie jak Oracle Cloud Infrastructure (OCI), a także inne chmury publiczne, prywatne i hybrydowe oferowane przez głównych dostawców usług chmurowych.
Wspomniane w definicji technologie to kontenery przechowujące poszczególne mikrousługi i infrastrukturę siatki usług, która łączy ze sobą te kontenery ze sobą za pośrednictwem sieci zapewniających bezpieczeństwo, obserwowalność, egzekwowanie zasad i wykrywanie usług. Niezmienna infrastruktura oznacza, że wdrożone kontenery nigdy nie są modyfikowane, ale zamiast tego są zastępowane w ściśle kontrolowany sposób. Dzięki temu aplikacja rozproszona jest zarówno przewidywalna, jak i powtarzalna, co oznacza, że wszystkie kopie kontenera lub mikrousługi będą dokładnie takie same.
Ostatnim i bardzo ważnym pojęciem jest „luźne powiązanie” (loosely coupled). Oznacza to, że mikrousługi współdziałają ze sobą w ramach jasno zdefiniowanych protokołów, zwanych deklaratywnymi interfejsami API, które szczegółowo opisują, czym zajmuje się dana mikrousługa, jakich danych potrzebuje i jakie dane zwraca po zakończeniu działania. Wewnętrzne działanie takiej mikrousługi jest ukryte i może zostać zmienione w dowolnym momencie bez wpływu na pozostałe części aplikacji, dzięki czemu cała aplikacja jest odporna, skalowalna i łatwiejsza do aktualizacji.
Aplikacje projektowane dla chmury mogą być uruchamiane w dowolnej architekturze chmury: publicznej, prywatnej, hybrydowej lub wielochmurowej. Chmura publiczna to chmura, w której dane są przesyłane przez Internet między aplikacją w chmurze a użytkownikiem końcowym lub centrum przetwarzania danych przedsiębiorstwa. Chmura prywatna to chmura, w której dane są przesyłane wyłącznie w ramach bezpiecznych sieci, na przykład w ramach usługi chmurowej uruchomionej w centrum przetwarzania danych Chmura hybrydowa łączy chmury publiczne, chmury prywatne centra przetwarzania danych przedsiębiorstw. Wdrożenie wielochmurowe (multicloud) obejmuje więcej niż jednego komercyjnego dostawcę chmury i na przykład część aplikacji może działać na platformie OCI, a inna — na platformie Microsoft Azure.
Kluczowe wnioski
Aplikacje projektowane dla chmury są niezależnymi mikrousługami w lekkich, samowystarczalnych kontenerach. Kontenery te są przenośne i można je szybko skalować w górę lub w dół w zależności od zapotrzebowania. Dzięki umieszczeniu mikrousług w kontenerach, model projektowania dla chmury może być płynnie wdrażany w wielu różnych środowiskach operacyjnych, w tym w centrach przetwarzania danych i komercyjnych usługach w chmurze, a także uruchamiany na różnych typach serwerów, takich jak Linux lub Windows.
W najpopularniejszych rozwiązaniach projektowanych dla chmury aplikacja jest opracowana tak, aby jej funkcjonalność była podzielona na dziesiątki, setki, a nawet tysiące mikrousług, z których każda jest przeznaczona do wykonywania określonego zadania. Napisana mikrousługa jest instalowana w obrazie kontenera, czyli w pakiecie wdrożeniowym, który można załadować do usługi, a następnie wykonać. Najpopularniejszym standardem dla kontenerów jest Docker, czyli wspierany przez fundację CNCF otwarty format, który jest obsługiwany przez prawie wszystkich dostawców usług chmurowych.
Gotowa aplikacja dla przedsiębiorstw może zawierać tysiące kontenerów Docker. Jak jednak wdrożyć wszystkie te kontenery w usłudze chmurowej, zapewnić im odpowiednie zabezpieczenia i szybkie połączenia, zagwarantować, że wiadomości z danej mikrousługi trafią do właściwych odbiorców oraz poradzić sobie ze skalowalnością i ewentualnymi awariami? Odpowiedzią na to jest otwarta platforma Kubernetes. Podobnie jak w przypadku technologii Docker, system Kubernetes jest wspierany przez fundację CNCF i ma status standardu branżowego. W skrócie można powiedzieć, że system Kubernetes obsługuje i automatyzuje całą złożoną infrastrukturę niezbędną do uruchamiania, zarządzania i skalowania dużych aplikacji zaprojektowanych dla chmury.
Dzięki mikrousługom w kontenerach Docker i kontenerom Docker wdrożonym w usługach chmurowych za pomocą systemu Kubernetes użytkownik otrzymuje kompletną, skalowalną i odporną aplikację zaprojektowaną dla chmury.
Przeciwieństwem aplikacji projektowanej dla chmury może być aplikacja tradycyjna (monolityczna) opracowana jako pojedyncza baza kodu, zazwyczaj przez jeden zespół deweloperów. Zespół taki tworzy i testuje oprogramowanie, a następnie przekazuje je zespołowi operacyjnemu w celu wdrożenia na serwerze. Jeśli oprogramowanie ma wadę, zespół deweloperów znajduje problem, wprowadza poprawki i przekazuje nową wersję zespołowi operacyjnemu. Następnie zespół operacyjny zatrzymuje działanie oryginalnego oprogramowania, instaluje nową wersję i ją uruchamia. Ten sam proces jest stosowany w przypadku dodawania nowych funkcji. Cała aplikacja musi zostać zastąpiona i ponownie zainstalowana.
Aplikacja projektowana dla chmury jest natomiast zbiorem wielu mikrousług, z których każda stanowi oddzielny element oprogramowania. Elementy te są opracowywane, kodowane, testowane i wdrażane niezależnie, bez wpływu na pozostałą część aplikacji, co przyspiesza proces weryfikacji i usprawnia aktualizacje. Deweloperzy mogą dobierać najlepsze narzędzia, w tym języki programowania, do tworzonych przez siebie konkretnych mikrousług.
Użyjmy analogii: w naszym domu zaczął przeciekać kran w łazience dla gości. Aby to naprawić, trzeba wyprowadzić się z domu 4.1, zastąpić go domem 4.2, który nie ma cieknącego kranu, a następnie wprowadzić się z powrotem. Chcemy zamienić pojedynczą umywalkę na podwójną? Trzeba się wyprowadzić i zainstalować dom w wersji 4.3. Na tym polega tradycyjny (monolityczny) model oprogramowania. Czy tak zrobimy? Oczywiście, że nie. Hydraulik wymieniłby kran, a wykonawca — przebudowałby łazienkę dla gości, nie naruszając pozostałych elementów domu. Na tym polega model projektowany dla chmury.
Wraz z wprowadzeniem modelu projektowania dla chmury pojawiło się również wiele nowych koncepcji i terminów, które są ważne dla zrozumienia korzyści płynących z zastosowania tego modelu. Wspomniane koncepcje i terminy to m.in.:
System Kubernetes został zaprojektowany z myślą o zapewnieniu wysokiej dostępności (high availability, HA). Jego automatyczne mechanizmy naprawy nieprawidłowo działających kontenerów stanowią podstawę modelu projektowania dla chmury. Te lekkie, samowystarczalne pakiety, często tworzone za pomocą narzędzi Docker, obejmują wszystkie zależności niezbędne do spójnego działania aplikacji w różnych środowiskach obliczeniowych. Konteneryzacja umożliwia przenoszenie aplikacji i pozwala na szybkie ich wdrażanie.
Kontenery zapewniają ustandaryzowane, izolowane środowisko, pozwalając aplikacjom działać niezależnie i ograniczając ryzyko konfliktów między zależnościami. Izolacja ta zwiększa bezpieczeństwo, ograniczając potencjalne luki w zabezpieczeniach do pojedynczych kontenerów. Lekka konstrukcja kontenerów przyczynia się również do efektywnego wykorzystania zasobów.
Mikrousługi biorą się z podziału złożonych aplikacji na mniejsze, niezależne usługi. Każda usługa realizuje określoną funkcję, co umożliwia szybszy rozwój dzięki równoległej pracy nad różnymi usługami.
Architektura mikrousług promuje sprawność i elastyczność działania. Każda mikrousługa może być rozwijana, wdrażana i skalowana niezależnie, co pozwala na ich szybką aktualizację oraz na szybkie tworzenie ich nowych wersji. Taka modułowość ulepsza również izolację błędów, dzięki czemu problemy z jedną usługą nie wpływają na całą aplikację.
Niezmienna infrastruktura to zasada, zgodnie z którą wdrożone zasoby nigdy nie są modyfikowane bezpośrednio. Zmiany są wdrażane poprzez tworzenie nowych instancji ze zaktualizowanymi konfiguracjami, co zapewnia spójność i upraszcza procedury wycofywania zmian. Narzędzia IaC (infrastruktura jako kod) automatyzują proces przydzielania zasobów, zwiększając efektywność i powtarzalność.
IaC umożliwia zdefiniowanie infrastruktury jako kodu na potrzeby lepszej kontroli wersji, automatycznego testowania i spójnego wdrażania w różnych środowiskach. W tym podejściu infrastruktura jest traktowana jako istotny element aplikacji, podlegający takim samym rygorystycznym zasadom zarządzania i kontroli jak kod źródłowy.
Automatyzacja jest newralgicznym aspektem modelu projektowania dla chmury, umożliwiającym wdrożenia na szeroką skalę, co byłoby trudne do osiągnięcia przy ręcznym zarządzaniu. Narzędzia orkiestracji kontenerów, takie jak Kubernetes, automatyzują zarządzanie i wdrażanie aplikacji kontenerowych. Zapewniają one wysoką dostępność, wydajne przydzielanie zasobów i uproszczone skalowanie, dzięki czemu złożone systemy rozproszone stają się łatwiejsze w zarządzaniu.
Automatyzacja i orkiestracja są niezbędne do zapewnienia skalowalności, odporności na uszkodzenia i zdolności do samonaprawy, czyli cech, które definiują systemy projektowane dla chmury. Usługi w chmurze Kubernetes umożliwiają dynamiczne przydzielanie zasobów, dzięki czemu aplikacje mogą być skalowane w zależności od zapotrzebowania i łatwiej przywracać je do działania po awariach.
Aplikacje projektowane dla chmury są opracowywane pod kątem obserwowalności, co oznacza, że deweloperzy mogą lepiej rozumieć wewnętrzne działanie swoich systemów. Obejmuje to zbieranie i analizowanie metryk, dzienników i śladów w celu uzyskania informacji na temat wydajności, wykorzystania zasobów i potencjalnych problemów.
Zaawansowane narzędzia monitorujące zapewniają widoczność kondycji i wydajności aplikacji w czasie rzeczywistym. Narzędzia te umożliwiają proaktywne identyfikowanie i rozwiązywanie problemów, zanim dotkną one użytkowników. Usługi w zakresie obserwowalności i zarządzania mają kluczowe znaczenie w kontekście optymalizacji działania aplikacji i alokacji zasobów.
Odporność to kluczowa cecha systemów projektowanych dla chmury, pomagająca im odzyskać sprawność po awariach i zachować stabilność. Osiąga się to za pomocą takich strategii, jak replikacja, równoważenie obciążenia lub automatyczne odzyskiwanie danych. Funkcje samonaprawy wykrywają i eliminują problemy bez konieczności ręcznej interwencji, zapewniając wysoką dostępność.
Aplikacje projektowane dla chmury opracowano tak, aby minimalizowały czas przestojów, sprawnie radząc sobie z awariami. Mechanizmy samonaprawy automatycznie wykrywają i rozwiązują problemy, zapewniając płynne działanie aplikacji. Odporność ta ma kluczowe znaczenie dla newralgicznych operacji biznesowych i zapewnia niezawodne środowisko użytkownika.
Podejście oparte na projektowaniu dla chmury może przynieść przedsiębiorstwom znaczne korzyści w porównaniu z podejściem opartym na aplikacjach tradycyjnych (monolitycznych). Wśród tych korzyści można wymienić m.in.:
Poniżej przedstawiono kilka z najważniejszych funkcji i korzyści z modelu projektowania dla chmury.
| Funkcje | Korzyści |
|---|---|
| Architektura mikrousług | Gdy aplikacje korporacyjne są tworzone jako małe fragmenty kodu, z których każdy wykonuje inną funkcję biznesową (mikrousługi), aplikacja staje się szybsza w tworzeniu, łatwiejsza w zarządzaniu, bardziej skalowalna, bardziej odporna i znacznie łatwiejsza do uaktualniania i ulepszania. |
| Kontenery i konteneryzacja | Mikrousługi są często pakowane w kontenery, które można łatwo wdrożyć na serwerach w chmurze. Kontenery są starannie budowane i definiowane, mogą więc działać na każdym zgodnym serwerze w danej usłudze w chmurze. W razie potrzeby można uruchomić wiele kopii kontenera, aby obsłużyć duże obciążenie, a potem zamienić stary kontener na jego uaktualnioną wersję bez wpływu na resztę aplikacji. |
| Ciągła integracja i ciągłe dostarczanie (CI/CD) | CI/CD to proces, w którym zespoły deweloperskie wykorzystują podejście potokowe na potrzeby projektowania, tworzenia, testowania i wdrażania mikrousług w kontenerach. Następnie kontenery te są wdrażane na serwerach w chmurze. Wspomniany proces skraca cykl wprowadzania nowych wersji, zwiększa produktywność deweloperów i wspomaga automatyzację przepływu zadań, co pozwala na szybsze wdrażanie oprogramowania. |
| Niezmienna infrastruktura | Niezmienne komponenty, takie jak kontenery, nigdy nie są modyfikowane po wdrożeniu. W przypadku wprowadzenia zmian kontener zostaje zastąpiony nową wersją. Zapewnia to są spójność oprogramowania, upraszcza wdrożenia oraz pozwala na łatwe replikowanie aplikacji w nowym centrum przetwarzania danych w chmurze lub nawet u nowego dostawcy usług. |
| Praktyki DevOps | DevOps to połączenie tradycyjnych zespołów developerskich i operacyjnych w jedną jednostkę. Zespoły DevOps zajmują się pisaniem, testowaniem i wdrażaniem oprogramowania, a także zarządzaniem nim po wdrożeniu. W połączeniu z procesami CI/CD i automatyzacją umożliwia to szybkie wdrażanie nowych wersji oraz sprawne rozwiązywanie problemów bez pojawiania się konfliktów między zespołami. |
| Obserwowalność i monitorowanie | Obserwowalność to cecha, która pomaga zespołom DevOps zrozumieć, co dzieje się w aplikacji podczas jej działania. Monitorowanie to przeglądanie plików dziennika i analiza wskaźników wydajności. Połączenie tych elementów pozwala na szybsze wykrywanie i rozwiązywanie problemów, dostrajanie wydajności oraz spełnianie wymagań dotyczących poziomu usług w zakresie dostępności i szybkości działania aplikacji. |
| Platformy chmurowe | Platformy chmurowe, takie jak OCI, zazwyczaj zapewniają wszystko, co jest potrzebne do uruchamiania aplikacji projektowanych dla chmury, w tym serwery do hostowania kontenerów Docker, bezpieczne sieci o dużej przepustowości, wstępnie zainstalowane silniki Kubernetes oraz narzędzia wspomagające obserwowalność i monitoring. Dzięki skalowalności aplikacji projektowanych dla chmury można zwiększać ich wydajność oraz zmniejszać koszty związane z ich obsługą. |
Model projektowania dla chmury może wydawać się skomplikowany I rzeczywiście taki jest, zwłaszcza w przypadku organizacji, które dopiero zaczynają korzystać z chmury a przez lata lub nawet dziesięciolecia budowały tradycyjne (monolityczne) środowiska oprogramowania. Poniżej przedstawiono kilka z wyzwań, przed którymi stają organizacje, gdy po raz pierwszy decydują się na wdrożenie modelu projektowania dla chmury.
Nie ma jednej, uniwersalnej ścieżki przejścia do modelu projektowania dla chmury. Każda z możliwych ścieżek cechuje się jednak następującymi siedmioma najlepszymi praktykami.
Oracle zapewnia wszystko, co potrzebne do tworzenia i wdrażania aplikacji projektowanych dla chmury, w tym narzędzia, usługi i automatyzację, dzięki czemu zespoły deweloperskie mogą szybko tworzyć oprogramowanie, ograniczając jednocześnie liczbę zadań operacyjnych.
Usługi Oracle projektowanej dla chmury działają w ramach Oracle Cloud Infrastructure (OCI), czyli opartej na standardach platformy, która zapewnia wyższą wydajność i niższe koszty w porównaniu z ofertą innych dostawców usług chmurowych. Dzięki korzystaniu z usług opartych na kodzie open source i otwartych standardach platforma OCI umożliwia deweloperom uruchamianie aplikacji w dowolnym środowisku w chmurze lub zainstalowanym lokalnie bez konieczności refaktoryzacji. Ta elastyczność pozwala skupić się na rozwoju i innowacjach, na przykład w oparciu o zaawansowaną generatywną sztuczną inteligencję, a nawet gotowe usługi AI/ML, aby wzbogacać istniejące aplikacje o nowe funkcje i inteligencję.
Czy aplikacje projektowane dla chmury są naprawdę lepsze od aplikacji tworzonych w tradycyjny sposób? Tak. Korzyści są oczywiste: aplikacje projektowane dla chmury mogą być skalowane, ponieważ ich funkcje są podzielone na mikrousługi i można nimi zarządzać niezależnie. Ponadto aplikacje projektowane dla chmury mogą działać w sposób silnie rozproszony, zachowując niezależność i alokując zasoby w zależności od potrzeb aplikacji.
Aplikacje projektowane dla chmury mogą pomóc we wzmocnieniu strategii biznesowej i zwiększeniu wartości przedsiębiorstwa, ponieważ oferują spójne doświadczenia w chmurach prywatnych, publicznych i hybrydowych. Umożliwiają pełne wykorzystanie potencjału chmury obliczeniowej poprzez uruchamianie responsywnych, niezawodnych i skalowalnych aplikacji.
Chcesz dowiedzieć się więcej o architekturach projektowanych dla chmury? Pobierz nasz bezpłatny e-book, aby przekonać się, że obecnie każda organizacja może wdrożyć strategie rozwoju oparte na projektowaniu dla chmury.
Czym architektura projektowana dla chmury różni się od tradycyjnych architektur aplikacji?
Architektura projektowana dla chmury dzieli dużą, złożoną aplikację biznesową na wiele mikrousług, z których każda wykonuje określoną funkcję biznesową. Aplikacja działa, gdy wspomniane mikrousługi komunikują się ze sobą za pośrednictwem szybkiej sieci w celu współpracy przy realizacji zadania. Każda mikrousługa jest osobno definiowana, projektowana, tworzona, testowana, wdrażana, zarządzana i uaktualniana, co może skutkować szybszym wdrażaniem i znacznie większą skalowalnością. Jeśli na przykład mikrousługa wykryje duże obciążenie, aplikacja projektowana dla chmury może automatycznie utworzyć kopię tej mikrousługi na innym serwerze i rozdzielić obciążenie między jej dwoma instancjami. Tymczasem architektura aplikacji tradycyjnej składa się z jednej bazy kodu oprogramowania, czyli monolitu, który jest projektowany, tworzony, testowany i wdrażany jako jedna całość. Poprawki błędów lub uaktualnienia powodują zmiany w monolicie, który następnie musi zostać ponownie wdrożony. Z tej przyczyny wdrażanie oprogramowania często przebiega powoli. Trudniejsze jest też skalowanie, które często wymaga albo przeprojektowania (i przepisania) oprogramowania, albo zainstalowania go na szybszym, droższym serwerze.
Jak przedsiębiorstwo może skutecznie przejść z aplikacji tradycyjnych na aplikacje projektowane dla chmury?
Istniejące aplikacje monolityczne można przerobić na aplikacje projektowane dla chmury. Proces ten polega na zidentyfikowaniu fragmentów kodu, które można wydzielić jako mikrousługi, często zaczynając od sekcji kodu najłatwiejszych do wydzielenia lub powodujących wąskie gardła wydajności. Stopniowe wydzielanie kolejnych komponentów pozwala aplikacji monolitycznej osiągnąć wiele korzyści typowych dla modelu projektowania dla chmury.
Czym jest CNCF?
Fundacja Cloud Native Computing Foundation (CNCF) to niezależna organizacja open source działająca pod egidą Linux Foundation. Celem CNCF jest promowanie technologii projektowanych dla chmury oraz wspieranie różnych projektów i standardów branżowych, takich jak format kontenerów Docker oraz platforma Kubernetes do automatyzacji i orkiestracji kontenerów. Wielu dostawców usług chmurowych, w tym Oracle, angażuje się w prace CNCF i przyjmuje jej standardy w celu promowania interoperacyjności między ekosystemami chmurowymi.
Czym różni się model chmury od modelu projektowanego dla chmury?
Model „chmury” dotyczy usług komputerowych świadczonych przez komercyjnych dostawców usług, takich jak Oracle. Te usługi komputerowe obejmują różne typy serwerów, szybkie sieci, systemy pamięci masowej, biblioteki zaawansowanych funkcji komputerowych (takich jak sztuczna inteligencja i zabezpieczenia) a nawet aplikacje biznesowe. Prawie każda witryna internetowa lub aplikacja, do której uzyskuje się dostęp za pośrednictwem przeglądarki internetowej, znajduje się w całości lub częściowo w chmurze; pozostała część znajduje się w centrach przetwarzania danych różnych przedsiębiorstw. Wiele aplikacji na telefony komórkowe również korzysta z chmury, aby oferować najważniejsze funkcje.
Model „projektowany dla chmury” dotyczy tworzenia aplikacji biznesowych, w ramach którego aplikacja jest dzielona na dziesiątki lub setki mikrousług. Każda mikrousługa obejmuje kluczową część funkcji biznesowej. Aplikacja realizuje cele biznesowe, gdy mikrousługi współdziałają ze sobą za pośrednictwem bezpiecznych, szybkich sieci, a każda z nich wykonuje swoją część pracy. Aplikacje projektowane dla chmury wykorzystują zasoby dostawcy usług chmurowych, aby zapewnić skalowalność, wydajność i odporność aplikacji.