Udostępnij za pośrednictwem


Service Fabric i kontenery

Wprowadzenie

Azure Service Fabric to platforma systemów rozproszonych, która ułatwia pakowanie, 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 w latach prowadzenia usług w firmie Microsoft na ogromną skalę.

Mikrousługi można opracowywać na wiele sposobów, korzystając z modeli programowania usługi Service Fabric, ASP.NET Core, w celu wdrożenia dowolnego wybranego kodu. Jeśli jednak chcesz 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 najwyższe użycie gęstości zasobów w klastrze. Usługa Service Fabric może również wdrażać usługi przy użyciu obrazów kontenerów. Można również mieszać usługi w procesach oraz usługi w kontenerach w tej samej aplikacji.

Aby od razu przejść do wypróbowania kontenerów w usłudze Service Fabric, skorzystaj z szybkiego startu, samouczka lub przykładu.

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 kontenerów Service Fabric

Co to są kontenery

Kontenery rozwiązują problem niezawodnego uruchamiania aplikacji w różnych środowiskach obliczeniowych, zapewniając niezmienne środowisko, w którym aplikacja ma być uruchamiana. 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 w niej 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 na górze jądra 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 dostępem prywatnym do własnego izolowanego widoku systemu operacyjnego kontenera. Oprócz ułatwiania dostarczania wszystkich zależności aplikacji, niezbędnych do jej działania w różnych środowiskach obliczeniowych, bezpieczeństwo i izolacja zasobów są ważnymi korzyściami płynącymi z używania kontenerów z platformą Service Fabric — która w przeciwnym razie uruchamiałaby usługi w procesie.

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

  • Mały: Kontenery używają pojedynczej przestrzeni do przechowywania oraz wersji warstwy i aktualizacji w celu zwiększenia wydajności.
  • Szybkie: kontenery nie muszą uruchamiać całego systemu operacyjnego, dzięki czemu mogą się uruchamiać 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.
  • Nadzór nad zasobami: kontener może ograniczyć zasoby fizyczne, które mogą być używane na hoście.

Obsługa kontenerów w usłudze Service Fabric

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 wraz z obsługą trybu izolacji Hyper-V.

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

  • Linux: Docker
  • Windows:
    • Windows Server 2022: Środowisko uruchomieniowe Kontenera Mirantis
    • Windows Server 2019/2016: DockerEE

Kontenery platformy Docker w systemie Linux

Platforma Docker udostępnia API do tworzenia i zarządzania kontenerami na bazie kontenerów jądra systemu Linux. Usługa 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

System Windows Server 2016 lub nowszy udostępnia 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 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 dostarczana przez grupy cgroup i przestrzenie nazw, a kontenery systemu Windows Server zachowują się podobnie.

Kontenery systemu Windows z obsługą 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ższemu poziomowi izolacji zabezpieczeń, kontenery z obsługą Hyper-V są przeznaczone dla scenariuszy potencjalnie wrogich, 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

Oto typowe przykłady, w których kontener jest dobrym wyborem:

  • Usługa IIS 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 w systemie Windows Server ).

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

  • Zmniejszenie wpływu usług "hałaśliwych sąsiadów": 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 zaprojektowany jako jedno-dziedziczne, 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ługi. 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 struktury 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 oferuje kilka możliwości 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 ustawienie wartości zasobów domyślnie w klastrach platformy Azure.
  • Uwierzytelnianie repozytorium.
  • Mapowanie portu kontenera do portu hosta.
  • Odnajdywanie 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ą usługi Azure Kubernetes Service, jak utworzyć prywatny rejestr platformy Docker w usłudze Azure Container Registry i nie tylko, zobacz Azure for Containers.

Następne kroki

W tym artykule dowiedziałeś się o wsparciu, jakie Service Fabric oferuje dla uruchamiania 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