Service Fabric en containers
Inleiding
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 jaren dat services worden uitgevoerd 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 uitstekende keuze.
Service Fabric implementeert en activeert deze services standaard als processen. Processen bieden de snelste activering en het hoogste dichtheidsgebruik van de resources in een cluster. Service Fabric kan ook services implementeren in containerinstallatiekopieën. U kunt ook services combineren in processen en services in containers, in dezelfde toepassing.
Als u meteen containers in Service Fabric wilt uitproberen, probeert u een quickstart, zelfstudie of voorbeeld:
Quickstart: Een Linux-containertoepassing implementeren in Service Fabric
Quickstart: Een Windows-containertoepassing implementeren in Service Fabric
Een bestaande .NET-app in een container opnemen
Voorbeelden van Service Fabric-containers
Wat zijn containers?
Containers lossen het probleem van het uitvoeren van toepassingen betrouwbaar op 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 dat nodig is om de software in de container uit te voeren. Waar de container ook wordt uitgevoerd, heeft de toepassing in de container altijd alles wat nodig is om te worden uitgevoerd, zoals de juiste versies van de afhankelijke bibliotheken, eventuele configuratiebestanden en alles wat er nog meer nodig is om uit te voeren.
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 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 dat het eenvoudig is om alle afhankelijkheden van uw toepassing te bieden, moet deze worden uitgevoerd in verschillende computeromgevingen, zijn beveiligings- en resourceisolatie belangrijke voordelen van het gebruik van containers met Service Fabric. Anders worden services in een proces uitgevoerd.
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 geen volledig besturingssysteem op te starten, zodat ze veel sneller kunnen starten, meestal in seconden.
- Draagbaarheid: een installatiekopieën van een containertoepassing 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 de isolatiemodus van Hyper-V.
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 is deze isolatie traditioneel geleverd door cgroups en naamruimten en gedragen Windows Server-containers zich op dezelfde manier.
Windows-containers met Hyper-V-ondersteuning bieden meer isolatie en beveiliging omdat er geen container de kernel van het besturingssysteem deelt met een andere container of met de host. Met deze hogere beveiligingsisolatie zijn hyper-V-containers gericht op potentieel vijandige scenario's met meerdere tenants. Zie Uw eerste Service Fabric-containertoepassing maken in Windows voor een zelfstudie op basis van Windows.
In de volgende afbeelding ziet u de verschillende typen virtualisatie- en isolatieniveaus die beschikbaar zijn.
Scenario's voor het gebruik van containers
Hier volgen typische voorbeelden waarbij 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 IIS (Internet Information Services). U kunt deze toepassingen in containerinstallatiekopieën verpakken vanuit de vooraf gemaakte IIS-installatiekopieën en deze 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 webfront-end van uw toepassing en stateful services voor de intensieve back-endberekening.
Verminder de impact van 'luidruchtige buren'-services: 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 resources (zoals een langlopende, queryachtige bewerking), kunt u overwegen deze services in containers te plaatsen die resourcebeheer hebben.
Notitie
Een Service Fabric-cluster is standaard één tenant en gehoste toepassingen worden beschouwd als vertrouwd. Als u overweegt om niet-vertrouwde toepassingen te 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 scenario met uitvoerbare gastbestanden waarin u de ingebouwde Service Fabric-programmeermodellen niet gebruikt, maar in plaats daarvan een bestaande toepassing verpakt, geschreven met behulp van een taal of framework, in een container. Dit scenario is de algemene use-case voor containers.
U kunt Service Fabric-services ook 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 in containers geplaatste microservices, zoals:
- Implementatie en activering van containerinstallatiekopieën.
- Resourcebeheer, inclusief het instellen van resourcewaarden standaard op Azure-clusters.
- Verificatie van opslagplaats.
- Containerpoort naar hostpoorttoewijzing.
- Container-naar-containerdetectie en -communicatie.
- 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 privé Docker-register in Azure Container Registry en meer.
Volgende stappen
In dit artikel hebt u meer 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