Service Fabric en containers

Introductie

Azure Service Fabric is een platform voor gedistribueerde systemen waarmee u gemakkelijk schaalbare en betrouwbare microservices en containers verpakt, implementeert en beheert.

Service Fabric is de containerorchestrator van Microsoft voor het implementeren van microservices op een cluster van machines. Service Fabric profiteert van de lessen die zijn geleerd tijdens de jarenlange uitvoering van services bij Microsoft op grote schaal.

Microservices kunnen op tal van manieren worden ontwikkeld met behulp van de Service Fabric-programmeermodellen, ASP.NET Core, voor het implementeren van code naar keuze. Of als u alleen containers wilt implementeren en beheren, is Service Fabric ook een goede keuze.

Service Fabric implementeert en activeert deze services standaard als processen. Processen bieden de snelste activering en het gebruik van de hoogste dichtheid van de resources in een cluster. Service Fabric kan ook services implementeren in containerinstallatiekopieën. U kunt ook services in processen en services in containers combineren in dezelfde toepassing.

Als u meteen containers in Service Fabric wilt uitproberen, kunt u een quickstart, zelfstudie of voorbeeld proberen:

Quickstart: Een Linux-containertoepassing implementeren in Service Fabric
Quickstart: Een Windows-containertoepassing implementeren in Service Fabric
Een bestaande .NET-app in een container plaatsen
Voorbeelden van Service Fabric-containers

Wat zijn containers?

Containers lossen het probleem op van het betrouwbaar uitvoeren van toepassingen in verschillende computeromgevingen door een onveranderbare omgeving te bieden waarin de toepassing kan worden uitgevoerd. Containers verpakken een toepassing en alle bijbehorende afhankelijkheden, zoals bibliotheken en configuratiebestanden, in een eigen geïsoleerde 'box' die alles bevat wat nodig is om de software in de container uit te voeren. Waar de container ook wordt uitgevoerd, de toepassing in de container heeft altijd alles wat nodig is om uit te voeren, zoals de juiste versies van de afhankelijke bibliotheken, eventuele configuratiebestanden en al het andere dat moet worden uitgevoerd.

Containers worden rechtstreeks boven op de kernel uitgevoerd en hebben een geïsoleerde weergave van het bestandssysteem en andere resources. Een toepassing in een container heeft geen kennis van andere toepassingen of processen buiten de container. Elke toepassing en de bijbehorende runtime, afhankelijkheden en systeembibliotheken worden uitgevoerd in een container met volledige, persoonlijke toegang tot de eigen geïsoleerde weergave van het besturingssysteem van de container. Naast het eenvoudig maken om alle afhankelijkheden van uw toepassing te bieden die nodig zijn voor uitvoering in verschillende computeromgevingen, zijn beveiliging en resource-isolatie belangrijke voordelen van het gebruik van containers met Service Fabric, die anders services in een proces uitvoeren.

In vergelijking met virtuele machines hebben containers de volgende voordelen:

  • Klein: Containers gebruiken één opslagruimte en laagversies en updates om de efficiëntie te verhogen.
  • Snel: Containers hoeven niet een volledig besturingssysteem op te starten, zodat ze veel sneller kunnen worden gestart, meestal binnen enkele seconden.
  • Draagbaarheid: Een installatiekopieën van een toepassing in een container kunnen worden overgezet om te worden uitgevoerd in de cloud, on-premises, binnen virtuele machines of rechtstreeks op fysieke machines.
  • Resourcebeheer: een container kan de fysieke resources beperken die deze op de host kan gebruiken.

Service Fabric-ondersteuning voor containers

Service Fabric ondersteunt de implementatie van Docker-containers in Linux en Windows Server-containers op Windows Server 2016 en hoger, samen met ondersteuning voor hyper-V-isolatiemodus.

Containerruntimes die compatibel zijn met ServiceFabric:

  • Linux: Docker
  • Windows:
    • Windows Server 2022: Mirantis Container Runtime
    • Windows Server 2019/2016: DockerEE

Docker-containers in Linux

Docker biedt API's voor het maken en beheren van containers boven op Linux-kernelcontainers. Docker Hub biedt een centrale opslagplaats voor het opslaan en ophalen van containerinstallatiekopieën. Zie Uw eerste Service Fabric-containertoepassing maken in Linux voor een zelfstudie op basis van Linux.

Windows Server-containers

Windows Server 2016 en hoger bieden twee verschillende typen containers die verschillen per isolatieniveau. Windows Server-containers en Docker-containers zijn vergelijkbaar omdat beide naamruimte- en bestandssysteemisolatie hebben, terwijl de kernel wordt gedeeld met de host waarop ze worden uitgevoerd. In Linux wordt deze isolatie traditioneel geleverd door cgroups en naamruimten, en Windows Server-containers gedragen zich op dezelfde manier.

Windows-containers met Hyper-V-ondersteuning bieden meer isolatie en beveiliging omdat geen enkele container de kernel van het besturingssysteem deelt met een andere container of met de host. Met dit hogere niveau van beveiligingsisolatie zijn Hyper-V-containers gericht op mogelijk vijandige scenario's met meerdere tenants. Zie Uw eerste Service Fabric-containertoepassing maken in Windows voor een windows-zelfstudie.

In de volgende afbeelding ziet u de verschillende typen virtualisatie- en isolatieniveaus die beschikbaar zijn. Service Fabric-platform

Scenario's voor het gebruik van containers

Hier volgen typische voorbeelden waarin een container een goede keuze is:

  • IIS lift-and-shift: u kunt een bestaande ASP.NET MVC-app in een container plaatsen in plaats van deze te migreren naar ASP.NET Core. Deze ASP.NET MVC-apps zijn afhankelijk van Internet Information Services (IIS). U kunt deze toepassingen verpakken in containerinstallatiekopieën vanuit de vooraf gemaakte IIS-installatiekopieën en ze implementeren met Service Fabric. Zie Containerinstallatiekopieën op Windows Server voor informatie over Windows-containers.

  • Containers en Service Fabric-microservices combineren: gebruik een bestaande containerinstallatiekopieën voor een deel van uw toepassing. U kunt bijvoorbeeld de NGINX-container gebruiken voor de web-front-end van uw toepassing en stateful services voor de meer intensieve back-endberekening.

  • De impact van services voor 'luidruchtige buren' verminderen: u kunt de mogelijkheid van resourcebeheer van containers gebruiken om de resources te beperken die een service op een host gebruikt. Als services veel resources kunnen verbruiken en van invloed kunnen zijn op de prestaties van andere services (zoals een langdurige query-achtige bewerking), kunt u overwegen deze services in containers met resourcebeheer te plaatsen.

Notitie

Een Service Fabric-cluster is standaard één tenant en gehoste toepassingen worden als vertrouwd beschouwd. Als u niet-vertrouwde toepassingen wilt hosten, raadpleegt u Niet-vertrouwde toepassingen hosten in een Service Fabric-cluster.

Service Fabric biedt een toepassingsmodel waarin een container een toepassingshost vertegenwoordigt waarin meerdere servicereplica's worden geplaatst. Service Fabric ondersteunt ook een uitvoerbaar gastscenario waarin u niet de ingebouwde Service Fabric-programmeermodellen gebruikt, maar in plaats daarvan een bestaande toepassing in een container verpakt, geschreven met behulp van een willekeurige taal of framework. Dit scenario is de algemene use-case voor containers.

U kunt ook Service Fabric-services uitvoeren in een container. Ondersteuning voor het uitvoeren van Service Fabric-services in containers is momenteel beperkt.

Service Fabric biedt verschillende containermogelijkheden waarmee u toepassingen kunt bouwen die bestaan uit microservices in containers, zoals:

  • Implementatie en activering van containerinstallatiekopieën.
  • Resourcebeheer, inclusief het instellen van resourcewaarden standaard in Azure-clusters.
  • Verificatie van opslagplaats.
  • Toewijzing van containerpoort naar hostpoort.
  • Detectie en communicatie van container naar container.
  • Mogelijkheid om omgevingsvariabelen te configureren en in te stellen.
  • Mogelijkheid om beveiligingsreferenties in te stellen voor de container.
  • Een keuze uit verschillende netwerkmodi voor containers.

Zie Azure for Containers voor een uitgebreid overzicht van containerondersteuning in Azure, zoals het maken van een Kubernetes-cluster met Azure Kubernetes Service, het maken van een persoonlijk Docker-register in Azure Container Registry en meer.

Volgende stappen

In dit artikel hebt u geleerd over de ondersteuning die Service Fabric biedt voor het uitvoeren van containers. Vervolgens bekijken we voorbeelden van elk van de functies om u te laten zien hoe u deze kunt gebruiken.

Uw eerste Service Fabric-containertoepassing maken in Linux
Uw eerste Service Fabric-containertoepassing maken in Windows
Meer informatie over Windows-containers