Service Fabric-toepassingslevenscyclus
Net als bij andere platforms doorloopt een toepassing in Azure Service Fabric meestal de volgende fasen: ontwerpen, ontwikkelen, testen, implementeren, upgraden, onderhoud en verwijdering. Service Fabric biedt eersteklas ondersteuning voor de volledige levenscyclus van cloudtoepassingen, van ontwikkeling tot implementatie, dagelijks beheer en onderhoud tot uiteindelijk buiten gebruik stellen. Met het servicemodel kunnen verschillende rollen onafhankelijk deelnemen aan de levenscyclus van de toepassing. Dit artikel bevat een overzicht van de API's en hoe deze worden gebruikt door de verschillende rollen gedurende de fasen van de levenscyclus van de Service Fabric-toepassing.
Belangrijk
Er worden twee CLI-hulpprogramma's gebruikt om te communiceren met Service Fabric. Azure CLI wordt gebruikt om Azure-resources te beheren, zoals een Service Fabric-cluster dat wordt gehost op Azure. Service Fabric CLI wordt gebruikt om rechtstreeks verbinding te maken met het Service Fabric-cluster (ongeacht waar dit wordt gehost) en om het cluster, de toepassingen en de services te beheren.
Servicemodelrollen
De servicemodelrollen zijn:
- Serviceontwikkelaar: ontwikkelt modulaire en algemene services die kunnen worden hergebruikt en gebruikt in meerdere toepassingen van hetzelfde type of verschillende typen. Een wachtrijservice kan bijvoorbeeld worden gebruikt voor het maken van een tickettoepassing (helpdesk) of een e-commercetoepassing (winkelwagen).
- Toepassingsontwikkelaar: Hiermee maakt u toepassingen door een verzameling services te integreren om te voldoen aan bepaalde specifieke vereisten of scenario's. Een e-commercewebsite kan bijvoorbeeld 'JSON Stateless Front-End Service', 'Auction Stateful Service' en 'Queue Stateful Service' integreren om een veilingoplossing te bouwen.
- Toepassingsbeheerder: neemt beslissingen over de toepassingsconfiguratie (het invullen van de configuratiesjabloonparameters), de implementatie (toewijzing aan beschikbare resources) en de kwaliteit van de service. Een toepassingsbeheerder bepaalt bijvoorbeeld de landinstelling van de taal (Engels voor de Verenigde Staten of Japans voor Japan, bijvoorbeeld) van de toepassing. Een andere geïmplementeerde toepassing kan verschillende instellingen hebben.
- Operator: Implementeert toepassingen op basis van de toepassingsconfiguratie en vereisten die zijn opgegeven door de toepassingsbeheerder. Een operator richt bijvoorbeeld de toepassing in en implementeert deze en zorgt ervoor dat deze wordt uitgevoerd in Azure. Operators bewaken de status en prestaties van toepassingen en onderhouden de fysieke infrastructuur indien nodig.
Ontwikkelen
- Een serviceontwikkelaar ontwikkelt verschillende soorten services met behulp van het Reliable Actors - of Reliable Services-programmeermodel .
- Een serviceontwikkelaar beschrijft declaratief de ontwikkelde servicetypen in een servicemanifestbestand dat bestaat uit een of meer code-, configuratie- en gegevenspakketten.
- Een toepassingsontwikkelaar bouwt vervolgens een toepassing met behulp van verschillende servicetypen.
- Een toepassingsontwikkelaar beschrijft declaratief het toepassingstype in een toepassingsmanifest door te verwijzen naar de servicemanifesten van de samenstellende services en op de juiste wijze verschillende configuratie- en implementatie-instellingen van de samenstellende services te overschrijven en te parameteriseren.
Zie Aan de slag met Reliable Actors en Aan de slag met Reliable Services voor voorbeelden.
Implementeren
- Een toepassingsbeheerder past het toepassingstype aan op een specifieke toepassing die moet worden geïmplementeerd in een Service Fabric-cluster door de juiste parameters van het ApplicationType-element in het toepassingsmanifest op te geven.
- Een operator uploadt het toepassingspakket naar het clusterinstallatiekopiearchief met behulp van de methode CopyApplicationPackage of de cmdlet Copy-ServiceFabricApplicationPackage. Het toepassingspakket bevat het toepassingsmanifest en de verzameling servicepakketten. Service Fabric implementeert toepassingen uit het toepassingspakket dat is opgeslagen in het installatiekopieënarchief. Dit kan een Azure Blob Store of de Service Fabric-systeemservice zijn.
- De operator richt vervolgens het toepassingstype in het doelcluster in vanuit het geüploade toepassingspakket met behulp van de methode ProvisionApplicationAsync, de cmdlet Register-ServiceFabricApplicationType of de bewerking Een toepassings-REST inrichten.
- Nadat de toepassing is ingericht, start een operator de toepassing met de parameters die zijn opgegeven door de toepassingsbeheerder met behulp van de methode CreateApplicationAsync, de cmdlet New-ServiceFabricApplication of de bewerking Application REST maken.
- Nadat de toepassing is geïmplementeerd, gebruikt een operator de methode CreateServiceAsync, de cmdlet New-ServiceFabricService of de create Service REST-bewerking om nieuwe service-exemplaren voor de toepassing te maken op basis van beschikbare servicetypen.
- De toepassing wordt nu uitgevoerd in het Service Fabric-cluster.
Zie Een toepassing implementeren voor voorbeelden.
Testen
- Na de implementatie in het lokale ontwikkelcluster of een testcluster voert een serviceontwikkelaar het ingebouwde failovertestscenario uit met behulp van de klassen FailoverTestScenarioParameters en FailoverTestScenario, of de cmdlet Invoke-ServiceFabricFailoverTestScenario. In het failovertestscenario wordt een opgegeven service uitgevoerd via belangrijke overgangen en failovers om ervoor te zorgen dat deze nog steeds beschikbaar is en werkt.
- De serviceontwikkelaar voert vervolgens het ingebouwde chaostestscenario uit met behulp van de klassen ChaosTestScenarioParameters en ChaosTestScenario, of de cmdlet Invoke-ServiceFabricChaosTestScenario. Het chaostestscenario veroorzaakt willekeurig meerdere knooppunt-, codepakket- en replicafouten in het cluster.
- De serviceontwikkelaar test service-naar-service-communicatie door testscenario's te ontwerpen die primaire replica's rond het cluster verplaatsen.
Zie Inleiding tot de Foutanalyseservice voor meer informatie.
Upgraden
- Een serviceontwikkelaar werkt de samenstellende services van de geïnstantieerde toepassing bij en/of lost bugs op en biedt een nieuwe versie van het servicemanifest.
- Een toepassingsontwikkelaar overschrijft en parameteriseert de configuratie- en implementatie-instellingen van de consistente services en biedt een nieuwe versie van het toepassingsmanifest. De toepassingsontwikkelaar neemt vervolgens de nieuwe versies van de servicemanifesten op in de toepassing en biedt een nieuwe versie van het toepassingstype in een bijgewerkt toepassingspakket.
- Een toepassingsbeheerder neemt de nieuwe versie van het toepassingstype op in de doeltoepassing door de juiste parameters bij te werken.
- Een operator uploadt het bijgewerkte toepassingspakket naar het clusterinstallatiekopiearchief met behulp van de methode CopyApplicationPackage of de cmdlet Copy-ServiceFabricApplicationPackage. Het toepassingspakket bevat het toepassingsmanifest en de verzameling servicepakketten.
- Een operator richt de nieuwe versie van de toepassing in het doelcluster in met behulp van de methode ProvisionApplicationAsync, de cmdlet Register-ServiceFabricApplicationType of de bewerking Een toepassings-REST inrichten.
- Een operator werkt de doeltoepassing bij naar de nieuwe versie met behulp van de methode UpgradeApplicationAsync, de cmdlet Start-ServiceFabricApplicationUpgrade of de bewerking Een toepassings-REST upgraden.
- Een operator controleert de voortgang van de upgrade met behulp van de methode GetApplicationUpgradeProgressAsync, de cmdlet Get-ServiceFabricApplicationUpgrade of de rest-bewerking Voortgang van get-toepassingsupgrade ophalen.
- Indien nodig wijzigt en past de operator de parameters van de huidige toepassingsupgrade opnieuw toe met behulp van de methode UpdateApplicationUpgradeAsync, de cmdlet Update-ServiceFabricApplicationUpgrade of de UPDATE Application Upgrade REST-bewerking.
- Indien nodig wordt de huidige toepassingsupgrade teruggedraaid met behulp van de methode RollbackApplicationUpgradeAsync, de cmdlet Start-ServiceFabricApplicationRolllicationRollback of de REST-bewerking voor het terugdraaien van de toepassingsupgrade.
- Service Fabric werkt de doeltoepassing die wordt uitgevoerd in het cluster bij zonder dat de beschikbaarheid van een van de samenstellende services verloren gaat.
Zie de zelfstudie voor toepassingsupgrades voor voorbeelden.
Onderhouden
- Voor upgrades en patches van besturingssystemen biedt Service Fabric-interfaces met de Azure-infrastructuur de beschikbaarheid van alle toepassingen die in het cluster worden uitgevoerd.
- Voor upgrades en patches naar het Service Fabric-platform wordt service fabric bijgewerkt zonder dat een van de toepassingen die op het cluster worden uitgevoerd, verloren gaat.
- Een toepassingsbeheerder keurt het toevoegen of verwijderen van knooppunten uit een cluster goed na het analyseren van historische capaciteitsgebruiksgegevens en verwachte toekomstige vraag.
- Een operator voegt knooppunten toe en verwijdert deze die zijn opgegeven door de toepassingsbeheerder.
- Wanneer er nieuwe knooppunten worden toegevoegd aan of bestaande knooppunten uit het cluster worden verwijderd, worden de actieve toepassingen automatisch verdeeld over alle knooppunten in het cluster om optimale prestaties te bereiken.
Verwijderen
- Een operator kan een specifiek exemplaar van een actieve service in het cluster verwijderen zonder de hele toepassing te verwijderen met behulp van de methode DeleteServiceAsync, de cmdlet Remove-ServiceFabricService of de bewerking Delete Service REST.
- Een operator kan ook een toepassingsexemplaren en alle bijbehorende services verwijderen met behulp van de methode DeleteApplicationAsync, de cmdlet Remove-ServiceFabricApplication of de bewerking Application REST verwijderen.
- Zodra de toepassing en services zijn gestopt, kan de operator de inrichting van het toepassingstype ongedaan maken met behulp van de methode UnprovisionApplicationAsync, de cmdlet Unregister-ServiceFabricApplicationType of de bewerking Een toepassings-REST-bewerking ongedaan maken. Als u de inrichting van het toepassingstype ongedaan maakt, wordt het toepassingspakket niet uit de ImageStore verwijderd.
- Een operator verwijdert het toepassingspakket uit de ImageStore met behulp van de methode RemoveApplicationPackage of de cmdlet Remove-ServiceFabricApplicationPackage.
Zie Een toepassing implementeren voor voorbeelden.
Schijfruimte behouden in clusterinstallatiekopieënarchief
De ImageStoreService bewaart gekopieerde en ingerichte pakketten, wat kan leiden tot accumulatie van bestanden. Bestandsaccumulatie kan ertoe leiden dat de ImageStoreService (fabric:/System/ImageStoreService) de schijf vult en de buildtijd voor ImageStoreService-replica's kan verhogen.
Gebruik de volgende inrichtingsreeks om bestandsaccumulatie te voorkomen:
Pakket kopiëren naar ImageStore en de optie comprimeren gebruiken
Het pakket inrichten
Het pakket verwijderen in het installatiekopieënarchief
De toepassing/het cluster upgraden
De inrichting van de oude versie ongedaan maken
Stap 3 en 5 in de bovenstaande procedure verhinderen de accumulatie van bestanden in het afbeeldingsarchief.
Configuratie voor automatisch opschonen
U kunt stap 3 hierboven automatiseren met Behulp van PowerShell of XML. Hierdoor wordt het toepassingspakket automatisch verwijderd na de geslaagde registratie van het toepassingstype.
Register-ServiceFabricApplicationTye -ApplicationPackageCleanupPolicy Automatic
XML:
<Section Name="Management">
<Parameter Name="CleanupApplicationPackageOnProvisionSuccess" Value="True" />
</Section>
U kunt stap 5 hierboven automatiseren met XML. Hierdoor worden ongebruikte toepassingstypen automatisch niet geregistreerd.
<Section Name="Management">
<Parameter Name="CleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="PeriodicCleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="TriggerAppTypeCleanupOnProvisionSuccess" Value="true" />
<Parameter Name="MaxUnusedAppTypeVersionsToKeep" Value="3" />
</Section>
Bestanden en gegevens op knooppunten opschonen
De replicatie van toepassingsbestanden verdeelt uiteindelijk de bestanden naar alle knooppunten, afhankelijk van taakverdelingsacties. Dit kan schijfdruk maken, afhankelijk van het aantal toepassingen en de bestandsgrootte. Zelfs wanneer er geen actief exemplaar wordt uitgevoerd op een knooppunt, worden de bestanden van een voormalig exemplaar bewaard. Hetzelfde geldt voor gegevens uit betrouwbare verzamelingen die worden gebruikt door stateful services. Dit is het doel van hogere beschikbaarheid. In het geval van een nieuw toepassingsexemplaren op hetzelfde knooppunt moeten er geen bestanden worden gekopieerd. Voor betrouwbare verzamelingen moet alleen de delta worden gerepliceerd.
Als u de binaire bestanden van de toepassing volledig wilt verwijderen, moet u de registratie van het toepassingstype ongedaan maken.
Aanbevelingen voor het verminderen van schijfdruk:
- Remove-ServiceFabricApplicationPackage hiermee wordt het pakket verwijderd uit de tijdelijke uploadlocatie.
- Unregister-ServiceFabricApplicationType brengt opslagruimte vrij door de toepassingstypebestanden te verwijderen uit de installatiekopieopslagservice en alle knooppunten. Het verwijderingsbeheer wordt elk uur per standaard uitgevoerd.
- CleanupUnusedApplicationTypes schoont automatisch oude ongebruikte toepassingsversies op.
{ "name": "Management", "parameters": [ { "name": "CleanupUnusedApplicationTypes", "value": true }, { "name": "MaxUnusedAppTypeVersionsToKeep", "value": "3" } ] }
- Remove-ServiceFabricClusterPackage verwijdert oude binaire bestanden voor de installatie van ongebruikte runtime.
Notitie
Een functie is in ontwikkeling om Service Fabric toe te staan toepassingsmappen te verwijderen zodra de toepassing is geëvacueerd vanuit het knooppunt.
Volgende stappen
Zie voor meer informatie over het ontwikkelen, testen en beheren van Service Fabric-toepassingen en -services: