Megosztás a következőn keresztül:


Alkalmazás üzembe helyezése és skálázása Orleans az Azure-ban

Ebben a rövid útmutatóban üzembe helyezhet és skálázhat egy Orleans URL-rövidítő alkalmazást az Azure Container Appsben. Az alkalmazás lehetővé teszi, hogy a felhasználók teljes URL-címet küldjenek az alkalmazásnak, amely egy rövidített verziót ad vissza, amelyet megoszthatnak másokkal, hogy az eredeti webhelyre irányítsák őket. Orleans és az Azure biztosítja a nagy forgalmú alkalmazások, például az URL-rövidítők üzemeltetéséhez szükséges méretezhetőségi funkciókat. Orleans kompatibilis a .NET-et támogató egyéb üzemeltetési szolgáltatásokkal is.

A rövid útmutató végén egy skálázható alkalmazás fut az Azure-ban az URL-lerövidítő funkció biztosításához. Az út során megtanulhatja:

  • Lekéréses és Azure Developer CLI-sablon
  • Orleans Alkalmazás üzembe helyezése az Azure-ban
  • Az alkalmazás skálázása több példányra

Előfeltételek

A mintaalkalmazás lekérése és üzembe helyezése

A mintaalkalmazás Azure Developer CLI-sablonként érhető el. Ebben a rövid útmutatóban; lekéri a sablonalkalmazást, üzembe helyezi a sablont és a mintakódot az Azure-ban, módosítja a sablont az előnyben részesített adatmegőrzési folyamat implementálásához, üzembe helyezi a szükséges erőforrásokat, majd üzembe helyezi a végső alkalmazást.

  1. Nyisson meg egy terminált egy üres könyvtárban.

  2. Hitelesítés az Azure Developer CLI-vel azd auth logina . Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.

    azd auth login
    
  3. Kérje le a mintaalkalmazást az AZD-sablon orleans-url-shortener és a azd init parancs használatával.

    azd init --template orleans-url-shortener
    
  4. Az inicializálás során konfiguráljon egy egyedi környezetnevet.

    Tipp.

    A rendszer a környezet nevét is használja a célerőforráscsoport neveként. Ebben a rövid útmutatóban fontolja meg a használatát msdocs-orleans-url-shortener.

  5. Az Azure Cosmos DB for NoSQL-fiók üzembe helyezése a következő használatával azd up: . A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.

    azd up
    
  6. A kiépítési folyamat során válassza ki az előfizetést és a kívánt helyet. Várja meg, amíg a kiépítési és üzembe helyezési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.

  7. Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. A konzol URL-címével keresse meg a webalkalmazást a böngészőben.

    Képernyőkép a futó URL-rövidítő webalkalmazásról.

  9. A böngésző címsorában tesztelje a shorten végpontot egy URL-elérési út hozzáadásával, például /shorten?url=https://www.microsoft.com. A lapnak újra kell betöltenie, és meg kell adnia egy új URL-címet egy rövidített elérési úttal a végén. Másolja az új URL-címet a vágólapra.

    {
      "original": "https://www.microsoft.com",
      "shortened": "http://<container-app-name>.<deployment-name>.<region>.azurecontainerapps.io:<port>/go/<generated-id>"
    }
    
  10. Illessze be a rövidített URL-címet a címsorba, és nyomja le az Enter billentyűt. A lapnak újra kell betöltenie, és át kell irányítania a megadott URL-címre.

További szolgáltatások üzembe helyezése

Az eredeti üzembe helyezés csak az URL-rövidítő alkalmazás üzemeltetéséhez szükséges minimális szolgáltatásokat helyezte üzembe. Ha azure-beli adatszolgáltatást szeretne használni a szemcsés adatmegőrzéshez, először konfigurálnia kell a sablont az előnyben részesített szolgáltatás üzembe helyezéséhez.

  1. A terminál használatával futtassa azd env set a környezeti változó konfigurálását az DEPLOY_AZURE_TABLE_STORAGE Azure Cosmos DB for NoSQL üzembe helyezésének engedélyezéséhez.

    azd env set DEPLOY_AZURE_TABLE_STORAGE true
    
  1. A terminál használatával futtassa azd env set a környezeti változó konfigurálását az DEPLOY_AZURE_COSMOS_DB_NOSQL Azure Cosmos DB for NoSQL üzembe helyezésének engedélyezéséhez.

    azd env set DEPLOY_AZURE_COSMOS_DB_NOSQL true
    
  1. Futtassa azd provision újra az alkalmazásarchitektúrát az új konfigurációval. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül két percet vehet igénybe.

    azd provision
    

    Tipp.

    Másik lehetőségként újra futtathatja azd up az alkalmazást, amely kiépíti az architektúrát, és újra üzembe helyezi az alkalmazást.

NuGet-csomagok telepítése

A gabona használata előtt telepítenie kell a megfelelő Microsoft.Orleans.Clustering.* és Microsoft.Orleans.Persistence.* NuGet-csomagokat. Ezek a szolgáltatások szerepköralapú hozzáférés-vezérlést használnak a jelszó nélküli hitelesítéshez, ezért a Azure.Identity NuGet-csomagot is importálnia kell.

  1. Módosítsa az aktuális munkakönyvtárat ./src/web/-ra.

    cd ./src/web
    
  2. Importálja a csomagot a Azure.Identity NuGetből a dotnet add package.

    dotnet add package Azure.Identity --version 1.*
    
  3. Importálja a csomagokat és Microsoft.Orleans.Persistence.AzureStorage a Microsoft.Orleans.Clustering.AzureStorage csomagokat.

    NuGet-csomag
    Fürtszolgáltatás Microsoft.Orleans.Clustering.AzureStorage
    Kitartás Microsoft.Orleans.Persistence.AzureStorage
    dotnet add package Microsoft.Orleans.Clustering.AzureStorage --version 8.*
    dotnet add package Microsoft.Orleans.Persistence.AzureStorage --version 8.*
    
  1. Importálja a csomagot a Azure.Identity NuGetből a dotnet add package.

    dotnet add package Azure.Identity --version 1.*
    
  2. Importálja a csomagokat és Microsoft.Orleans.Persistence.Cosmos a Microsoft.Orleans.Clustering.Cosmos csomagokat.

    NuGet-csomag
    Fürtszolgáltatás Microsoft.Orleans.Clustering.Cosmos
    Kitartás Microsoft.Orleans.Persistence.Cosmos
    dotnet add package Microsoft.Orleans.Clustering.Cosmos --version 8.*
    dotnet add package Microsoft.Orleans.Persistence.Cosmos --version 8.*
    

A mintaalkalmazás konfigurálása és ismételt üzembe helyezése

A mintaalkalmazás jelenleg úgy van konfigurálva, hogy létrehozhasson egy localhost-fürtöt, és megőrizze a szemcséket a memóriában. Az Azure-ban üzemeltetett állapot úgy konfigurálható, Orleans hogy skálázhatóbb, központosított állapotot használjon egy Azure-beli adatszolgáltatás használatával.

  1. Adja hozzá a and névterekre vonatkozó irányelveket.

    using Azure.Identity;
    using Orleans.Configuration;
    
  2. Keresse meg és távolítsa el az aktuális builder konfigurációs kódot az src/web/Program.cs fájlban.

    builder.Host.UseOrleans(static siloBuilder =>
    {
        siloBuilder
            .UseLocalhostClustering()
            .AddMemoryGrainStorage("urls");
    });
    
  1. Cserélje le a builder konfigurációt az alábbi példára, amely megvalósítja az alábbi fő fogalmakat:

    • A rendszer feltételes környezeti ellenőrzést ad hozzá, hogy az alkalmazás megfelelően fusson a helyi fejlesztési és az Azure által üzemeltetett forgatókönyvekben is.
    • A UseAzureStorageClustering metódus konfigurálja a fürtöt az Orleans Azure Table Storage használatára, és az osztály használatával hitelesíti.DefaultAzureCredential
    • A metódus használatával Configure rendeljen azonosítókat a Orleans fürthöz.
      • Ez ClusterID a fürt egyedi azonosítója, amely lehetővé teszi, hogy az ügyfelek és a silók beszéljenek egymással.
      • Ez ClusterID az üzemelő példányok között változhat.
      • Ez ServiceID egy egyedi azonosító az alkalmazáshoz, amelyet Orleans belsőleg használnak, és az üzemelő példányok között konzisztensnek kell maradniuk.
    if (builder.Environment.IsDevelopment())
    {
        builder.Host.UseOrleans(static siloBuilder =>
        {
            siloBuilder
                .UseLocalhostClustering()
                .AddMemoryGrainStorage("urls");
        });
    }
    else
    {
        builder.Host.UseOrleans(siloBuilder =>
        {
            var endpoint = new Uri(builder.Configuration["AZURE_TABLE_STORAGE_ENDPOINT"]!);
            var credential = new DefaultAzureCredential();
    
            siloBuilder
                .UseAzureStorageClustering(options =>
                {
                    options.ConfigureTableServiceClient(endpoint, credential);
                })
                .AddAzureTableGrainStorage(name: "urls", options =>
                {
                    options.ConfigureTableServiceClient(endpoint, credential);
                })
                .Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "url-shortener";
                    options.ServiceId = "urls";
                });
        });
    }
    
  1. Cserélje le a builder konfigurációt az alábbi példára, amely megvalósítja az alábbi fő fogalmakat:

    • A rendszer feltételes környezeti ellenőrzést ad hozzá, hogy az alkalmazás megfelelően fusson a helyi fejlesztési és az Azure által üzemeltetett forgatókönyvekben is.
    • A UseCosmosClustering metódus konfigurálja a fürtöt az Orleans Azure Cosmos DB for NoSQL használatára, és hitelesíti az DefaultAzureCredential osztályt.
    • A metódus használatával Configure rendeljen azonosítókat a Orleans fürthöz.
      • Ez ClusterID a fürt egyedi azonosítója, amely lehetővé teszi, hogy az ügyfelek és a silók beszéljenek egymással.
      • Ez ClusterID az üzemelő példányok között változhat.
      • Ez ServiceID egy egyedi azonosító az alkalmazáshoz, amelyet Orleans belsőleg használnak, és az üzemelő példányok között konzisztensnek kell maradniuk.
    if (builder.Environment.IsDevelopment())
    {
        builder.Host.UseOrleans(static siloBuilder =>
        {
            siloBuilder
                .UseLocalhostClustering()
                .AddMemoryGrainStorage("urls");
        });
    }
    else
    {
        builder.Host.UseOrleans(siloBuilder =>
        {
            var endpoint = builder.Configuration["AZURE_COSMOS_DB_NOSQL_ENDPOINT"]!;
            var credential = new DefaultAzureCredential();
    
            siloBuilder
                .UseCosmosClustering(options =>
                {
                    options.ConfigureCosmosClient(endpoint, credential);
                })
                .AddCosmosGrainStorage(name: "urls", options =>
                {
                    options.ConfigureCosmosClient(endpoint, credential);
                })
                .Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "url-shortener";
                    options.ServiceId = "urls";
                });
        });
    }
    
  1. Futtassa azd deploy újra az alkalmazáskódot Docker-tárolóként. Várja meg, amíg az üzembe helyezési folyamat befejeződik. A folyamat körülbelül egy percet vehet igénybe.

    azd deploy
    

    Tipp.

    Másik lehetőségként újra futtathatja azd up az alkalmazást, amely kiépíti az architektúrát, és újra üzembe helyezi az alkalmazást.

Az alkalmazás viselkedésének ellenőrzése

Ellenőrizze, hogy a frissített kód működik-e az üzembe helyezett alkalmazás ismételt használatával, és ellenőrizze, hogy hol tárolja az adatokat.

  1. A böngésző címsorában tesztelje újra a shorten végpontot egy URL-elérési út hozzáadásával, például /shorten?url=https://learn.microsoft.com/dotnet/orleans. A lapnak újra kell betöltenie, és meg kell adnia egy új URL-címet egy rövidített elérési úttal a végén. Másolja az új URL-címet a vágólapra.

    {
      "original": "https://learn.microsoft.com/dotnet/orleans",
      "shortened": "http://<container-app-name>.<deployment-name>.<region>.azurecontainerapps.io:<port>/go/<generated-id>"
    }
    
  2. Illessze be a rövidített URL-címet a címsorba, és nyomja le az Enter billentyűt. A lapnak újra kell betöltenie, és át kell irányítania a megadott URL-címre.

Ha szeretné, ellenőrizheti, hogy a fürt és az állapot adatai a várt módon tárolódnak-e a létrehozott tárfiókban.

  1. Az Azure Portalon keresse meg az ebben a rövid útmutatóban üzembe helyezett erőforráscsoportot.

    Fontos

    A rövid útmutatóban korábban megadott környezetnév a célerőforráscsoport neve is.

  1. Lépjen az Azure Storage-fiók áttekintési oldalára.

  2. A navigációs sávon válassza a Storage böngészőt.

  3. Bontsa ki a Táblák navigációs elemet a következő két tábla felderítéséhez Orleans:

    • OrleansGrainState: Ez a táblázat tárolja az alkalmazás által az URL-átirányítások kezelésére használt állandó állapotfelbontási adatokat.

    • OrleansSiloInstances: Ez a táblázat a fürt alapvető silóadatait Orleans követi nyomon.

  4. Válassza ki a OrleansGrainState táblát. A táblázat egy sorbejegyzést tartalmaz minden url-átirányításhoz, amelyet az alkalmazás a tesztelés során megőriz.

    Képernyőkép az Azure Table Storage adatairól Orleans .

  1. Lépjen az Azure Cosmos DB for NoSQL-fiók áttekintési oldalára.

  2. A navigációs sávon válassza az Adatkezelő lehetőséget.

  3. Tekintse meg az alábbi, az útmutatóban korábban létrehozott tárolókat:

    • OrleansTárolás: Ez a tábla az alkalmazás által az URL-átirányítások kezelésére használt állandó állapotfelbontási adatokat tárolja.

    • OrleansFürt: Ez a táblázat a fürt alapvető silóadatait Orleans követi nyomon.

Skálázza az alkalmazást

Orleans elosztott alkalmazásokhoz készült. Még egy olyan egyszerű alkalmazás is kihasználhatja a méretezhetőséget Orleans, mint az URL-rövidítő. Az alábbi lépések végrehajtásával skálázhatja és tesztelheti az alkalmazást több példányon:

  1. Lépjen vissza az ebben a rövid útmutatóban üzembe helyezett erőforráscsoporthoz.

  2. Lépjen az Azure Container Apps alkalmazás áttekintési oldalára.

  3. A navigációs sávon válassza a Méretezés lehetőséget.

  4. Válassza a Szerkesztés és üzembe helyezés lehetőséget, majd váltson a Méretezés lapra.

  5. A csúszka vezérlőelem használatával állítsa a minimális és a maximális replikaértéket 4-re. Ez az érték biztosítja, hogy az alkalmazás több példányon fusson.

  6. Válassza a Létrehozás lehetőséget az új változat üzembe helyezéséhez.

    Képernyőkép az Azure Container Apps alkalmazás méretezéséről.

  7. Az üzembe helyezés befejezése után ismételje meg az előző szakasz tesztelési lépéseit. Az alkalmazás továbbra is a várt módon működik több példányban, és mostantól nagyobb számú kérést képes kezelni.

Következő lépés