Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Ta treść jest fragmentem eBooka "Architektura mikrousług .NET dla konteneryzowanych aplikacji .NET", dostępnego na .NET Docs lub jako bezpłatny plik PDF do pobrania i czytania w trybie offline.
Konteneryzacja to podejście do tworzenia oprogramowania, w którym aplikacja lub usługa, jej zależności i konfiguracja (abstrakcja jako pliki manifestu wdrożenia) są pakowane razem jako obraz kontenera. Aplikacja konteneryzowana może być testowana jako pojedyncza jednostka i wdrażana jako instancja obrazu kontenerowego na systemie operacyjnym hosta.
Podobnie jak kontenery wysyłkowe umożliwiają transport towarów statkiem, pociągiem lub ciężarówką niezależnie od ładunku wewnątrz, kontenery oprogramowania działają jako standardowa jednostka wdrażania oprogramowania, która może zawierać inny kod i zależności. Konteneryzowanie oprogramowania w ten sposób umożliwia deweloperom i specjalistom IT wdrażanie ich w różnych środowiskach bez modyfikacji.
Kontenery izoluje również aplikacje od siebie w udostępnionym systemie operacyjnym. Konteneryzowane aplikacje działają na hoście kontenera, który z kolei działa w systemie operacyjnym (Linux lub Windows). W związku z tym kontenery mają znacznie mniejszy rozmiar niż obrazy maszyn wirtualnych.
Każdy kontener może uruchamiać całą aplikację internetową lub usługę, jak pokazano na rysunku 2–1. W tym przykładzie host platformy Docker jest hostem kontenera, a aplikacje App1, App2, Svc 1 i Svc 2 to konteneryzowane aplikacje lub usługi.
Rysunek 2–1. Wiele kontenerów uruchomionych na hoście kontenera
Kolejną zaletą konteneryzacji jest skalowalność. Możesz szybko zwiększyć skalę, tworząc nowe kontenery dla krótkoterminowych zadań. Z punktu widzenia aplikacji zainstalowanie obrazu (tworzenie kontenera) jest podobne do uruchamiania procesu, takiego jak usługa lub aplikacja webowa. Dla zapewnienia niezawodności, uruchamiając wiele instancji tego samego obrazu na różnych serwerach hosta, zazwyczaj zaleca się, aby każdy kontener (instancja obrazu) działał na innym serwerze hosta lub maszynie wirtualnej w odmiennych strefach awarii.
Krótko mówiąc, kontenery oferują zalety izolacji, przenośności, elastyczności, skalowalności i kontroli w całym przepływie pracy cyklu życia aplikacji. Najważniejszą korzyścią jest izolacja środowiska zapewniana między rozwiązaniami Dev i Ops.