Upraszczanie mikrousług: Azure Container Apps vs. AKS
By Mirko Peters ·
Kiedy nowoczesne zespoły programistyczne zaczynają budować skalowalne aplikacje natywne dla chmury, konteneryzacja szybko staje się standardowym podejściem. Jednak zarządzanie kontenerami…
Automatically translated with AI from the original post. Read the English original
Kiedy nowoczesne zespoły programistyczne zaczynają budować skalowalne aplikacje natywne dla chmury, konteneryzacja szybko staje się standardowym podejściem. Zarządzanie kontenerami na dużą skalę tradycyjnie wymagało jednak głębokiego zrozumienia Kubernetesa – narzędzia znanego z stromej krzywej uczenia się, złożonego zarządzania klastrami i dużego obciążenia operacyjnego. Dla wielu organizacji droga do mikrousług była hamowana przez kwestie infrastruktury, a nie przez projektowanie oprogramowania.
Na szczęście Microsoft Azure oferuje potężne rozwiązania, które mają ukryć tę złożoność. W tym kompleksowym przewodniku przyjrzymy się, jak uprościć architekturę mikrousług, porównując Azure Container Apps i Azure Kubernetes Service (AKS). Niezależnie od tego, czy jesteś doświadczonym architektem chmury, czy programistą, który chce szybciej wdrażać kod, wybór odpowiedniej platformy hostingowej jest kluczowy dla zrównoważenia kontroli operacyjnej, szybkości i efektywności kosztowej.
Wprowadzenie do upraszczania mikrousług
Architektury mikrousług zrewolucjonizowały sposób projektowania oprogramowania, pozwalając zespołom dzielić monolityczne aplikacje na mniejsze, niezależnie wdrażane usługi. Wraz ze wzrostem liczby usług rośnie jednak złożoność ich orkiestracji. Zespoły często spędzają więcej czasu na konfigurowaniu zasad sieciowych, zarządzaniu kontrolerami ruchu przychodzącego i rozwiązywaniu problemów z węzłami klastra niż na pisaniu rzeczywistej logiki biznesowej.
Uproszczenie tego procesu wymaga przejścia od wdrażania zorientowanego na infrastrukturę do wdrażania zorientowanego na aplikację. Programiści chcą wypychać kod, definiować podstawowe reguły skalowania i pozostawić dostawcy chmury obsługę warstwy orkiestracji. Dzięki platformom kontenerów bezserwerowych zespoły inżynierskie mogą znacznie ograniczyć obciążenie poznawcze i przyspieszyć czas wprowadzenia produktu na rynek. Ta filozofia stanowi fundament nowoczesnego rozwoju aplikacji natywnych dla chmury na platformie Azure.
Przegląd Azure Container Apps

Azure Container Apps to potężna platforma zaprojektowana, aby uprościć proces wdrażania aplikacji. Pozwala tworzyć i zarządzać aplikacjami kontenerowymi bez złożoności tradycyjnego zarządzania Kubernetesem. Oto bliższe spojrzenie na to, co wyróżnia Azure Container Apps.
Kluczowe funkcje
- Pozycja w ekosystemie Azure: Azure Container Apps znajduje się między usługami Azure Container Instances a Azure Kubernetes Service. Oferuje bardziej zorientowane na aplikację, prostsze i bezserwerowe doświadczenie niż Azure Kubernetes Service (AKS), który jest bardziej zorientowany na klaster. Podczas gdy AKS zapewnia bezpośredni dostęp do interfejsów API Kubernetesa w zaawansowanych scenariuszach, Azure Container Apps stawia na łatwość użycia, co czyni go idealnym wyborem dla programistów, którzy mogą nie znać Kubernetesa.
- Automatyczne skalowanie: Jedną z najbardziej wyróżniających się cech Azure Container Apps jest zdolność do automatycznego skalowania w zależności od zapotrzebowania. Reguły skalowania można oprzeć na ruchu HTTP lub na niestandardowych metrykach. Oznacza to, że aplikacje mogą skalować się do zera, gdy nie są używane, co pozwala oszczędzać koszty, a jednocześnie są gotowe do obsługi ruchu, gdy zajdzie taka potrzeba. Oto szybkie porównanie możliwości skalowania:
| Funkcja | Azure Container Apps | Azure App Services |
|---|---|---|
| Automatyczne skalowanie | Na podstawie ruchu HTTP lub metryk niestandardowych | Skaluje w górę lub w poziomie w zależności od zapotrzebowania |
| Szczegółowość kontroli | Wysoka, umożliwia skalowanie poszczególnych kontenerów | Niższa, mniejsza kontrola nad skalowaniem |
| Obsługa mikrousług | Doskonała, zaprojektowana z myślą o mikrousługach | Ograniczona, lepiej dopasowana do aplikacji monolitycznych |
- Wbudowana sieć: Azure Container Apps upraszcza konfigurację sieci dla aplikacji. Zapewnia bezpieczne środowiska, w których kontenery mogą się komunikować. Ustawienia sieciowe można współdzielić, a reguły zabezpieczeń łatwo utrzymywać. Ta wbudowana sieć pozwala wdrażać aplikacje w sieciach wirtualnych, zwiększając ochronę i w razie potrzeby izolując je od publicznego internetu.
- Doświadczenie bezserwerowe: Dzięki usłudze Azure Container Apps zyskujesz prawdziwie bezserwerowe środowisko. Oznacza to, że nie musisz martwić się zarządzaniem infrastrukturą. Platforma zajmuje się wszystkim za Ciebie, dzięki czemu możesz skupić się na swojej aplikacji. Oto, jak funkcje bezserwerowe wpływają na efektywność operacyjną:
| Funkcja | Opis | Wpływ na efektywność operacyjną |
|---|---|---|
| Procesory GPU bezserwerowe | Integracja z usługą NVIDIA NIM na potrzeby obciążeń AI. | Ogranicza nakład pracy związany z zarządzaniem i zwiększa wydajność. |
| Zaawansowana sieć | Integracja z niestandardową siecią wirtualną, punkty końcowe prywatne oraz obsługa bramy NAT. | Umożliwia płynne skalowanie i bardziej precyzyjne architektury sieciowe. |
| Funkcje obserwacji | Rozszerzone monitorowanie wydajności i wizualizacja danych telemetrycznych. | Poprawia wydajność aplikacji i możliwości diagnozowania problemów. |
- Integracja z technologiami open source: Azure Container Apps płynnie integruje się z technologiami open source, takimi jak KEDA i Dapr. KEDA umożliwia automatyczne skalowanie kontenerów na podstawie zdarzeń z różnych źródeł, co zwiększa skalowalność. Dapr działa jako sidecar, udostępniając funkcje do tworzenia aplikacji bez konieczności bezpośredniego zarządzania infrastrukturą. Ta integracja upraszcza proces programistyczny i pozwala skupić się na tworzeniu wartościowych aplikacji.
Jak działa Azure Container Apps

Poznając Azure Container Apps, znajdziesz solidną architekturę zaprojektowaną tak, aby uprościć wdrażanie aplikacji kontenerowych. Ta w pełni zarządzana usługa pozwala skupić się na kodzie, a nie na infrastrukturze pod spodem. Przyjrzyjmy się bliżej, jak to wszystko działa.
Proces wdrażania
Architektura Azure Container Apps została stworzona z myślą o obsłudze mikrousług i aplikacji sterowanych zdarzeniami. Oferuje płynne doświadczenie wdrażania bez konieczności zarządzania serwerami. Oto krótki przegląd jej kluczowych funkcji:
| Funkcja | Opis |
|---|---|
| Usługa zarządzana | Azure Container Apps to w pełni zarządzana, bezserwerowa usługa kontenerowa dla mikrousług. |
| Autoskalowanie | Wbudowane możliwości autoskalowania, w tym skalowanie do zera. |
| Integracja | Integruje się z usługą Azure Kubernetes Service (AKS) na potrzeby zaawansowanej sieci i monitorowania. |
| Wdrażanie | Upraszcza wdrażanie i zarządzanie aplikacjami kontenerowymi bez konieczności troszczenia się o infrastrukturę. |
| Obsługa aplikacji | Obsługuje zarówno aplikacje oparte na HTTP, jak i sterowane zdarzeniami, idealne do tworzenia aplikacji natywnych dla chmury. |
W tym środowisku Twoje aplikacje komunikują się za pośrednictwem interfejsów API Dapr. Interfejsy te obsługują różne wzorce komunikacji, takie jak wywołania między usługami oraz komunikaty publikuj-subskrybuj. Ponadto Envoy działa jako brzegowy serwer proxy HTTP, zarządzając routingiem ruchu i zapewniając bezpieczne połączenia dzięki zakończeniu TLS. Dzięki temu rozwiązaniu aplikacje współpracują ze sobą płynnie i bezpiecznie.
Utworzenie nowej aplikacji kontenerowej jest proste. Wystarczy wykonać następujące kroki:
- Otwórz paletę poleceń, naciskając F1 lub Ctrl+Shift+P.
- Wpisz „container apps” i wybierz pozycję „Azure Container Apps: Create Container App”.
- Postępuj zgodnie z monitami, aby wybrać subskrypcję, środowisko, nazwę aplikacji, źródło obrazu i inne konfiguracje.
- Skonfiguruj tożsamość zarządzaną przypisaną przez użytkownika, korzystając z poleceń interfejsu wiersza polecenia Azure CLI.
- Jeśli wdrażasz aplikację Django, w razie potrzeby przeprowadź migrację schematu bazy danych.
- Po zakończeniu procesu tworzenia przetestuj swoją witrynę.
Gdy aplikacja będzie już uruchomiona, możesz skonfigurować reguły wejścia i skalowania, aby zarządzać sposobem obsługi ruchu przychodzącego. Możesz ustawić reguły oparte na żądaniach HTTP lub niestandardowych metrykach, dzięki czemu aplikacja będzie skalowana automatycznie w zależności od zapotrzebowania. Ta elastyczność sprawia, że aplikacje pozostają responsywne i opłacalne.
Dzięki Azure Container Apps możesz szybko i wydajnie wdrażać aplikacje, co czyni tę usługę doskonałym wyborem dla programistów, którzy chcą usprawnić swoją pracę.
Korzyści z Azure Container Apps i przypadki użycia
Azure Container Apps wnosi bardzo wiele, jeśli chodzi o wdrażanie aplikacji. Jej skalowalność, opłacalność i łatwość użycia sprawiają, że jest pierwszym wyborem programistów. Zobaczmy, jak upraszcza wdrażanie dla zespołów każdej wielkości.
- Uproszczone wdrażanie: Azure Container Apps pozwala skupić się na logice aplikacji, bez zajmowania się konfiguracją serwerów. Usługa abstrahuje złożoność orkiestracji kontenerów, dzięki czemu wdrażanie aplikacji jest prostsze. Oto kluczowe korzyści:
- Azure Container Apps to platforma bezserwerowa, która ogranicza złożoność operacyjną.
- Oferuje automatyczne skalowanie, dzięki czemu obsłuży zmienne obciążenia.
- Wdrożenia bez przestojów zapewniają ciągłą dostępność.
Oznacza to, że niezależnie od tego, czy jesteś małym startupem, czy dużym przedsiębiorstwem, możesz szybko i sprawnie wdrażać swoje aplikacje.
- Mikrousługi i aplikacje zdarzeniowe: Azure Container Apps świetnie sprawdza się w obsłudze architektur mikrousługowych. Przykładowo warto przyjrzeć się aplikacji PetClinic, która prezentuje zarządzanie konfiguracją i wykrywanie usług. Można też zajrzeć do Node.js Microservices Workshop, który uczy podstaw mikrousług w oparciu o Azure Container Apps. Te przykłady pokazują, jak budować solidne aplikacje, które skalują się bezproblemowo.
| Nazwa aplikacji | Opis | Wykorzystywana technologia |
|---|---|---|
| PetClinic | Wersja oparta na mikrousługach, prezentująca zarządzanie konfiguracją. | Spring Framework |
| Node.js Microservices Workshop | Uczy podstaw mikrousług z wykorzystaniem Node.js i Docker. | Node.js, Docker |
| AI Travel Agents | Modularna aplikacja referencyjna demonstrująca orkiestrację wielu agentów. | Python, Node.js, Java, .NET |
| Orleans Cluster | Kompletny przykład uruchamiania klastra Microsoft Orleans. | Microsoft Orleans |
| Shopping Cart App | Przykładowa aplikacja koszyka zakupów zbudowana w ASP.NET Core Blazor Server. | ASP.NET Core Blazor Server |
- Środowiska deweloperskie i testowe: Azure Container Apps to także doskonały wybór dla środowisk deweloperskich i testowych. Zapewnia platformę bezserwerową, która abstrahuje zarządzanie infrastrukturą, dzięki czemu możesz skupić się na logice aplikacji. Oto, jak ta usługa pomaga:
- Obsługuje aplikacje wielokontenerowe i integruje się z potokami CI/CD w celu automatycznego testowania i wdrażania.
- Możesz używać obrazów Docker, aby zapewnić spójne środowiska w fazach programowania, testów i produkcji.
- Bezpieczne zarządzanie wrażliwymi danymi ułatwiają usługa Azure Key Vault oraz zmienne środowiskowe.
Aby wdrożyć aplikacje zdarzeniowe, możesz wykonać następujące kroki:
- Utwórz środowisko Container Apps dla swoich aplikacji kontenerowych.
- Skonfiguruj kolejkę usługi Azure Storage, która będzie wysyłać komunikaty do aplikacji kontenerowej.
- Zbuduj obraz kontenera uruchamiający zadanie.
- Wdróż zadanie w środowisku Container Apps.
- Sprawdź, czy komunikaty z kolejki są przetwarzane przez aplikację kontenerową.
Dzięki Azure Container Apps możesz korzystać z uproszczonego procesu wdrażania, który odpowiada potrzebom zarówno małych, jak i dużych zespołów. Ta elastyczność pozwala skutecznie wprowadzać innowacje i skalować aplikacje.
Porównanie Azure Container Apps i AKS
Wybór między Azure Container Apps a Azure Kubernetes Service (AKS) w dużej mierze sprowadza się do doświadczenia zespołu, wymagań operacyjnych i głębokości architektury. Obie platformy uruchamiają kontenery w Azure, ale służą różnym celom na spektrum rozwiązań chmurowych.
Azure Container Apps opiera się na Kubernetes, ale ukrywa jego złożoność. Nie zarządzasz węzłami, płaszczyzną kontroli ani surowymi plikami konfiguracyjnymi Kubernetes. Zamiast tego korzystasz z uproszczonych interfejsów API i przyjaznych portali. Dzięki temu ACA jest idealnym wyborem dla programistów, którzy chcą niezawodności i skalowalności Kubernetes, bez konieczności zostawania certyfikowanymi administratorami Kubernetes.
Z kolei Azure Kubernetes Service zapewnia pełny, nieograniczony dostęp do interfejsu API Kubernetes. Jeśli Twoja organizacja wymaga precyzyjnej kontroli nad siecią klastra, niestandardowych kontrolerów admisji, złożonych topologii service mesh lub specjalistycznych konfiguracji węzłów, AKS jest standardem branżowym. Ta moc wiąże się jednak z odpowiedzialnością za aktualizacje klastrów, poprawki bezpieczeństwa i skalowanie pul węzłów.
Pierwsze kroki z Azure
Gotowy, by zajrzeć do Azure Container Apps? Rozpoczęcie pracy jest łatwiejsze, niż myślisz! Wystarczy wykonać poniższe proste kroki, aby skonfigurować środowisko i zacząć sprawnie zarządzać kontenerami:
- Utwórz konto Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, wejdź na stronę Azure i zarejestruj się.
- Zarejestruj dostawcę zasobów
Microsoft.Appw swojej subskrypcji platformy Azure. Ten krok jest kluczowy, ponieważ umożliwia korzystanie z usługi Container Apps. - Zaloguj się do portalu Azure. To tutaj będziesz zarządzać wszystkimi zasobami platformy Azure.
- Wyszukaj Container Apps w górnym pasku wyszukiwania. Przeniesie Cię to na stronę usługi Container Apps.
- Wybierz opcję Utwórz > Container App i skonfiguruj podstawowe informacje o aplikacji. Będziesz musiał podać takie dane, jak nazwa aplikacji, region i źródło obrazu kontenera.
Po wykonaniu tych kroków Twoja aplikacja kontenerowa platformy Azure będzie działać w mgnieniu oka!
Wskazówka: Nie zapomnij poznać portalu Azure. Oferuje wiele funkcji, które pomogą sprawniej zarządzać kontenerami i aplikacjami.
Aby pogłębić swoją wiedzę i umiejętności, skorzystaj z następujących cennych zasobów:
- Oficjalna dokumentacja: zapoznaj się z dokumentacją Azure Container Apps, która zawiera kompleksowe przewodniki i najlepsze praktyki.
- Przewodniki szybkiego startu: dowiedz się, jak wdrożyć pierwszą aplikację kontenerową za pomocą polecenia 'az containerapp up'. Te przewodniki są idealne dla początkujących.
- Samouczki: znajdziesz tu różne samouczki obejmujące tematy takie jak wdrażanie aplikacji natywnych dla chmury i korzystanie z procesorów GPU w modelu bezserwerowym.
- Wsparcie społeczności: bądź na bieżąco z społecznością platformy Azure, obserwując Azure Container Apps w mediach społecznościowych. Możesz też skorzystać z repozytorium GitHub, gdzie znajdziesz zasoby i dyskusje społeczności.
Korzystając z tych zasobów, pogłębisz wiedzę o Azure Container Apps i w pełni wykorzystasz jego funkcje. Niezależnie od tego, czy jesteś początkującym, czy doświadczonym deweloperem, zawsze jest coś nowego do odkrycia!
Dzięki Azure Container Apps możesz skupić się na tworzeniu aplikacji, podczas gdy platforma przejmuje cięższą pracę. Zacznij więc już dziś i odblokuj pełny potencjał swoich aplikacji kontenerowych!
Podsumowując, Azure Container Apps to potężne rozwiązanie, które ułatwia wdrażanie aplikacji kontenerowych. Zyskujesz takie funkcje, jak automatyczne skalowanie, wbudowana sieć i możliwości bezserwerowe. Ta platforma upraszcza orkiestrację kontenerów bez złożoności Kubernetes, dzięki czemu sprawdza się zarówno w małych zespołach, jak i w dużych przedsiębiorstwach.
Oto najważniejsze wnioski:
- Azure Container Apps ogranicza zarządzanie infrastrukturą i koszty.
- Obsługuje długotrwałe obciążenia, na przykład aplikacje internetowe.
- Platforma bezproblemowo integruje się z technologiami open source, takimi jak KEDA i Dapr.
Dzięki tym zaletom możesz usprawnić proces tworzenia oprogramowania i skupić się na budowaniu innowacyjnych aplikacji. Dlaczego więc nie sprawdzić Azure Container Apps w swoim kolejnym projekcie?
Wskazówka: Zacznij od małej skali i stopniowo rozbudowuj aplikacje, w miarę jak poznajesz platformę!
Często zadawane pytania
Czym są Azure Container Apps?
Azure Container Apps to w pełni zarządzana usługa, która upraszcza wdrażanie i zarządzanie aplikacjami kontenerowymi. Umożliwia uruchamianie mikrousług i obciążeń sterowanych zdarzeniami bez konieczności troszczenia się o zarządzanie infrastrukturą.
Jak utworzyć środowisko Container Apps?
Aby utworzyć środowisko Container Apps, zaloguj się do portalu Azure, wyszukaj „Container Apps” i wybierz „Utwórz”. Postępuj zgodnie z instrukcjami, aby skonfigurować ustawienia środowiska, w tym region i grupę zasobów.
Czy mogę używać CI/CD z Azure Container Apps?
Tak! Azure Container Apps obsługuje potoki CI/CD. Możesz zintegrować swój proces programistyczny z narzędziami takimi jak GitHub Actions lub Azure DevOps, aby zautomatyzować wdrożenia i usprawnić proces tworzenia oprogramowania.
Jakie typy aplikacji mogę uruchamiać?
Możesz uruchamiać różne aplikacje, w tym interfejsy API, mikrousługi i obciążenia sterowane zdarzeniami. Azure Container Apps jest zaprojektowane tak, aby skutecznie obsługiwać zarówno aplikacje oparte na HTTP, jak i aplikacje przetwarzające dane w tle.
Jak działa automatyczne skalowanie?
Automatyczne skalowanie dostosowuje zasoby aplikacji do bieżącego zapotrzebowania. Możesz ustawić reguły skalowania oparte na ruchu HTTP lub na niestandardowych metrykach, dzięki czemu aplikacja będzie się skalować w górę lub w dół zgodnie z potrzebami.
Czy Azure Container Apps nadaje się dla małych zespołów?
Zdecydowanie tak! Azure Container Apps jest idealne dla małych zespołów. Upraszcza wdrażanie i zarządzanie, dzięki czemu możesz skupić się na tworzeniu aplikacji, bez konieczności posiadania rozległej wiedzy o infrastrukturze.
Jaki jest model cenowy usługi Azure Container Apps?
Usługa Azure Container Apps korzysta z modelu płatności za faktyczne użycie. Płacisz wyłącznie za zasoby zużywane przez Twoje aplikacje, dzięki czemu jest opłacalna zarówno w małych, jak i dużych projektach.
Jak mogę monitorować swoje aplikacje?
Aplikacje możesz monitorować za pomocą usług Azure Monitor i Application Insights. Narzędzia te dostarczają informacji o wydajności, wykorzystaniu i błędach, dzięki czemu skuteczniej optymalizujesz swoje aplikacje.
🎧 Posłuchaj tego odcinka
Chcesz praktycznego wyjaśnienia usługi Azure Container Apps? Ten odcinek przedstawia temat jasnym językiem i pokazuje, dlaczego ma znaczenie dla Microsoft 365, Azure, Power Platform, bezpieczeństwa, AI i nowoczesnej pracy.
Aby zgłębić ten temat i poznać opinie ekspertów, posłuchaj towarzyszącego odcinka podcastu: Azure Container Apps - Simply Explained.
Posłuchaj tego odcinka, jeśli chcesz:
- Zrozumieć kluczowe pojęcia związane z usługą Azure Container Apps
- Zobaczyć, jak usługa wpisuje się w szerszy ekosystem technologii Microsoft
- Dowiedzieć się, gdzie może przynieść praktyczną wartość Twojej organizacji
Może Ci się również spodobać ten powiązany odcinek M365 FM:
- Microsoft Defender for Cloud Apps - Simply Explained
- Power Apps - Simply Explained
- Azure Logic Apps - Simply Explained
- Canvas Apps vs Model-Driven Apps - Wyjaśnione prosto
- Power Apps Code Apps - Simply Explained
Odkrywaj więcej praktycznych rozmów o technologiach Microsoft na M365 FM.