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 w latach prowadzenia 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 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 w obrazach kontenerów. Usługi można również mieszać w procesach i usługach w kontenerach w tej samej aplikacji.
Aby przejść bezpośrednio i wypróbować kontenery 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 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 zapewniania wszystkich zależności aplikacji, które muszą być uruchamiane 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 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: Kontenery używają pojedynczego miejsca do magazynowania i wersji warstwy oraz 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 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 wraz z obsługą trybu izolacji funkcji 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 interfejsy API do tworzenia kontenerów jądra systemu Linux i zarządzania nimi. 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ą 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 dla 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.
Scenariusze korzystania z kontenerów
Oto typowe przykłady, w których kontener jest dobrym wyborem:
Migracja metodą "lift and shift" usług IIS: 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 usługi Service Fabric: użyj istniejącego obrazu kontenera dla części 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 jedną 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ł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.
- Port kontenera do hostowania mapowania portów.
- 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 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