Service Fabric i kontenery

Wprowadzenie

Usługa Azure Service Fabric to platforma systemów rozproszonych ułatwiająca pakowanie i wdrażanie skalowalnych i niezawodnych mikrousług i kontenerów oraz zarządzanie nimi.

Usługa Service Fabric jest koordynatorem kontenerów firmy Microsoft do wdrażania mikrousług w klastrze maszyn. Usługa Service Fabric korzysta z lekcji uzyskanych podczas lat uruchamiania usług w firmie Microsoft na ogromną skalę.

Mikrousługi można tworzyć na wiele sposobów, na przykład korzystając z modeli programowania usługi Service Fabric czy struktury ASP.NET Core lub wdrażając dowolnie wybrany kod. Jeśli jednak chcesz tylko wdrażać kontenery i zarządzać nimi, usługa Service Fabric jest również doskonałym wyborem.

Domyślnie usługa Service Fabric wdraża i aktywuje te usługi jako procesy. Procesy zapewniają najszybszą aktywację i największe użycie gęstości zasobów w klastrze. Usługa Service Fabric może również wdrażać usługi w obrazach kontenerów. Możesz również mieszać usługi w procesach i usługach w kontenerach w tej samej aplikacji.

Aby przejść bezpośrednio do kontenerów i wypróbować je w usłudze Service Fabric, wypróbuj przewodnik Szybki start, samouczek lub przykład:

Szybki start: wdrażanie aplikacji kontenera systemu Linux w usłudze Service Fabric
Szybki start: wdrażanie aplikacji kontenera systemu Windows w usłudze Service Fabric
Konteneryzowanie istniejącej aplikacji .NET
Przykłady kontenera usługi Service Fabric

Co to są kontenery

Kontenery rozwiązują problem z niezawodnym uruchamianiem aplikacji w różnych środowiskach obliczeniowych, zapewniając niezmienne środowisko uruchamiania aplikacji. Kontenery opakowuje aplikację i wszystkie jej zależności, takie jak biblioteki i pliki konfiguracji, do własnego izolowanego "pudełka", które zawiera wszystkie elementy potrzebne do uruchomienia oprogramowania wewnątrz kontenera. Wszędzie tam, gdzie jest uruchamiany kontener, aplikacja wewnątrz niego zawsze ma wszystko, czego potrzebuje do uruchomienia, takie jak odpowiednie wersje bibliotek zależnych, wszystkie pliki konfiguracji i wszystkie inne elementy, które musi uruchomić.

Kontenery działają bezpośrednio nad jądrem i mają izolowany widok systemu plików i innych zasobów. Aplikacja w kontenerze nie zna żadnych innych aplikacji ani procesów poza kontenerem. Każda aplikacja i jej środowisko uruchomieniowe, zależności i biblioteki systemowe działają wewnątrz kontenera z pełnym, prywatnym dostępem do własnego izolowanego widoku systemu operacyjnego kontenera. Oprócz ułatwienia zapewniania wszystkich zależności aplikacji, które muszą być uruchamiane w różnych środowiskach obliczeniowych, zabezpieczenia i izolacja zasobów są ważnymi korzyściami płynjącymi z używania kontenerów z usługą Service Fabric — które w przeciwnym razie uruchamiają usługi w procesie.

W porównaniu z maszynami wirtualnymi kontenery mają następujące zalety:

  • Mały: w celu zwiększenia wydajności kontenery używają pojedynczego miejsca do magazynowania i wersji warstwy oraz aktualizacji.
  • Szybkie: kontenery nie muszą uruchamiać całego systemu operacyjnego, więc mogą być uruchamiane znacznie szybciej — zwykle w sekundach.
  • Przenośność: konteneryzowany obraz aplikacji można przenosić do uruchamiania w chmurze, lokalnie, wewnątrz maszyn wirtualnych lub bezpośrednio na maszynach fizycznych.
  • Zarządzanie zasobami: kontener może ograniczyć zasoby fizyczne, które mogą być używane na hoście.

Obsługa usługi Service Fabric dla kontenerów

Usługa Service Fabric obsługuje wdrażanie kontenerów platformy Docker w systemie Linux oraz kontenerów systemu Windows Server w systemie Windows Server 2016 i nowszych oraz obsługę trybu izolacji funkcji Hyper-V.

Środowiska uruchomieniowe kontenerów zgodne z usługą ServiceFabric:

  • Linux: Docker
  • W systemie Windows:
    • Windows Server 2022: Środowisko uruchomieniowe kontenera Mirantis
    • Windows Server 2019/2016: DockerEE

Kontenery platformy Docker w systemie Linux

Platforma Docker udostępnia interfejsy API do tworzenia kontenerów jądra systemu Linux i zarządzania nimi. Docker Hub udostępnia centralne repozytorium do przechowywania i pobierania obrazów kontenerów. Aby zapoznać się z samouczkiem opartym na systemie Linux, zobacz Tworzenie pierwszej aplikacji kontenera usługi Service Fabric w systemie Linux.

Kontenery systemu Windows Server

Windows Server 2016 i później udostępniają dwa różne typy kontenerów, które różnią się poziomem izolacji. Kontenery systemu Windows Server i kontenery platformy Docker są podobne, ponieważ obie te kontenery mają izolację przestrzeni nazw i systemu plików, a jednocześnie współużytkują jądro z hostem, na którym są uruchomione. W systemie Linux ta izolacja jest tradycyjnie zapewniana przez grupy cgroups i przestrzenie nazw, a kontenery systemu Windows Server działają podobnie.

Kontenery systemu Windows z obsługą funkcji Hyper-V zapewniają większą izolację i zabezpieczenia, ponieważ żaden kontener nie współużytkuje jądra systemu operacyjnego z żadnym innym kontenerem lub hostem. Dzięki temu wyższego poziomu izolacji zabezpieczeń kontenery z włączoną funkcją Hyper-V są przeznaczone do potencjalnie wrogich scenariuszy obejmujących wiele dzierżaw. Aby zapoznać się z samouczkiem opartym na systemie Windows, zobacz Tworzenie pierwszej aplikacji kontenera usługi Service Fabric w systemie Windows.

Na poniższej ilustracji przedstawiono różne typy dostępnych poziomów wirtualizacji i izolacji. Platforma Service Fabric

Scenariusze korzystania z kontenerów

Poniżej przedstawiono typowe przykłady, w których kontener jest dobrym wyborem:

  • Usługi IIS metodą "lift and shift": możesz umieścić istniejącą aplikację MVC ASP.NET w kontenerze zamiast migrować ją do ASP.NET Core. Te ASP.NET aplikacje MVC zależą od usług Internet Information Services (IIS). Te aplikacje można spakować do obrazów kontenerów ze wstępnie utworzonego obrazu usług IIS i wdrożyć je za pomocą usługi Service Fabric. Aby uzyskać informacje o kontenerach systemu Windows, zobacz Container Images on Windows Server (Obrazy kontenerów kontenerów w systemie Windows Server ).

  • Mieszanie kontenerów i mikrousług usługi Service Fabric: użyj istniejącego obrazu kontenera dla części aplikacji. Na przykład możesz użyć kontenera NGINX dla frontonu internetowego aplikacji i usług stanowych na potrzeby bardziej intensywnych obliczeń zaplecza.

  • Zmniejszenie wpływu "hałaśliwych sąsiadów" usług: możesz użyć możliwości zarządzania zasobami kontenerów, aby ograniczyć zasoby używane przez usługę na hoście. Jeśli usługi mogą zużywać wiele zasobów i wpływać na wydajność innych (na przykład długotrwałą operację przypominającą zapytania), rozważ umieszczenie tych usług w kontenerach, które mają nadzór nad zasobami.

Uwaga

Klaster usługi Service Fabric jest pojedynczą dzierżawą zgodnie z projektem, a hostowane aplikacje są uznawane za zaufane. Jeśli rozważasz hostowanie niezaufanych aplikacji, zobacz Hosting niezaufanych aplikacji w klastrze usługi Service Fabric.

Usługa Service Fabric udostępnia model aplikacji , w którym kontener reprezentuje hosta aplikacji, w którym umieszcza się wiele replik usług. Usługa Service Fabric obsługuje również scenariusz wykonywalny gościa , w którym nie używasz wbudowanych modeli programowania usługi Service Fabric, ale zamiast tego pakuj istniejącą aplikację napisaną przy użyciu dowolnego języka lub platformy wewnątrz kontenera. Ten scenariusz jest typowym przypadkiem użycia kontenerów.

Usługi Service Fabric można również uruchamiać w kontenerze. Obsługa uruchamiania usług Service Fabric wewnątrz kontenerów jest obecnie ograniczona.

Usługa Service Fabric udostępnia kilka funkcji kontenera, które ułatwiają tworzenie aplikacji składających się z konteneryzowanych mikrousług, takich jak:

  • Wdrażanie i aktywacja obrazu kontenera.
  • Nadzór nad zasobami, w tym ustawianie wartości zasobów domyślnie w klastrach platformy Azure.
  • Uwierzytelnianie repozytorium.
  • Port kontenera do hostowania mapowania portów.
  • Odnajdywanie kontenerów i komunikacja między kontenerami.
  • Możliwość konfigurowania i ustawiania zmiennych środowiskowych.
  • Możliwość ustawiania poświadczeń zabezpieczeń w kontenerze.
  • Wybór różnych trybów sieciowych dla kontenerów.

Aby zapoznać się z kompleksowym omówieniem obsługi kontenerów na platformie Azure, takimi jak tworzenie klastra Kubernetes za pomocą Azure Kubernetes Service, tworzenie prywatnego rejestru platformy Docker w Azure Container Registry i nie tylko, zobacz Azure for Containers.

Następne kroki

W tym artykule przedstawiono informacje o obsłudze usługi Service Fabric dla uruchomionych kontenerów. Następnie omówimy przykłady poszczególnych funkcji, aby pokazać, jak ich używać.

Tworzenie pierwszej aplikacji kontenera usługi Service Fabric w systemie Linux
Tworzenie pierwszej aplikacji kontenera usługi Service Fabric w systemie Windows
Dowiedz się więcej o kontenerach systemu Windows