Sdílet prostřednictvím


Postupy DevOps pro SLUŽBU LUIS

Důležité

Služba LUIS bude vyřazena 1. října 2025 a od 1. dubna 2023 nebudete moct vytvářet nové prostředky LUIS. Doporučujeme migrovat aplikace LUIS do porozumění konverzačnímu jazyku, abyste mohli využívat další podporu produktů a vícejazyčné funkce.

Softwaroví inženýři, kteří vyvíjejí aplikaci LUIS (Language Understanding), můžou používat postupy DevOps týkající se správy zdrojového kódu, automatizovaných sestavení, testování a správy verzí podle těchto pokynů.

Správa zdrojového kódu a strategie větvení pro LUIS

Jedním z klíčových faktorů, na které úspěch DevOps závisí, je správa zdrojového kódu. Systém správy zdrojového kódu umožňuje vývojářům spolupracovat na kódu a sledovat změny. Použití větví umožňuje vývojářům přepínat mezi různými verzemi základu kódu a pracovat nezávisle na ostatních členech týmu. Když vývojáři vyvolají žádost o přijetí změn, aby navrhli aktualizace z jedné větve do druhé nebo když se změny sloučí, můžou to být triggerem pro automatizované buildy , které budou sestavovat a průběžně testovat kód.

Pomocí konceptů a pokynů popsaných v tomto dokumentu můžete vyvíjet aplikaci LUIS při sledování změn v systému správy zdrojového kódu a postupovat podle těchto osvědčených postupů pro softwarové inženýrství:

  • Správa zdrojového kódu

    • Zdrojový kód aplikace LUIS je ve formátu čitelného pro člověka.
    • Model lze sestavit ze zdroje opakovatelným způsobem.
    • Zdrojový kód může spravovat úložiště zdrojového kódu.
    • Přihlašovací údaje a tajné kódy, jako jsou klíče, se nikdy neukládají ve zdrojovém kódu.
  • Větvení a slučování

    • Vývojáři můžou pracovat z nezávislých větví.
    • Vývojáři můžou souběžně pracovat ve více větvích.
    • Změny aplikace LUIS je možné integrovat z jedné větve do druhé prostřednictvím opětovného základu nebo sloučení.
    • Vývojáři můžou sloučit žádost o přijetí změn do nadřazené větve.
  • Správa verzí

    • Každá komponenta ve velké aplikaci by měla být nezávisle na verzích, což vývojářům umožňuje zjišťovat zásadní změny nebo aktualizace jen tak, že se podívá na číslo verze.
  • Revize kódu

    • Změny v žádosti o přijetí změn jsou prezentovány jako čitelný zdrojový kód člověka, který je možné zkontrolovat před přijetím žádosti o přijetí změn.

Zdrojový ovládací prvek

Pokud chcete zachovat definici schématu aplikace LUIS v systému správy zdrojového kódu, použijte reprezentaci aplikace ve formátu LUDown (.lu). .lu Formát je upřednostňovaný pro .json formátování, protože je čitelný pro člověka, což usnadňuje provádění a kontrolu změn v žádosti o přijetí změn.

Uložení aplikace LUIS ve formátu LUDown

Uložení aplikace LUIS ve .lu formátu a jeho umístění do správy zdrojového kódu:

  • BUĎ: Export verze aplikace z .lu portálu LUIS a jeho přidání do úložiště správy zdrojového kódu

  • NEBO: Pomocí textového editoru .lu vytvořte soubor pro aplikaci LUIS a přidejte ho do úložiště správy zdrojového kódu.

Tip

Pokud pracujete s exportem JSON aplikace LUIS, můžete ji převést na LUDown. --sort Pomocí této možnosti zajistíte, aby se záměry a promluvy seřadily abecedně.
Všimněte si, že . Funkce exportu LU integrovaná na portálu LUIS už výstup seřadí.

Sestavení aplikace LUIS ze zdroje

Pokud chcete vytvořit novou verzi aplikace LUIS tak, že vytvoříte novou verzi aplikace LUIS tak, že naimportujete .lu zdroj , natrénujete verzi a publikujete ji. Můžete to udělat na portálu LUIS nebo na příkazovém řádku:

Soubory, které se mají udržovat ve správě zdrojového kódu

Ve správě zdrojového kódu by se měly udržovat následující typy souborů pro vaši aplikaci LUIS:

Přihlašovací údaje a klíče nejsou vráceny se změnami

Nezahrnujte klíče ani podobné důvěrné hodnoty do souborů, které se dají vrátit se změnami do úložiště, kde můžou být viditelné neoprávněným pracovníkům. Klíče a další hodnoty, které byste měli zabránit vrácení se změnami, zahrnují:

  • Klíče pro vytváření a predikce služby LUIS
  • Koncové body pro vytváření a predikce služby LUIS
  • Klíče prostředků Azure
  • Přístupové tokeny, jako je token instančního objektu Azure používaného pro ověřování automatizace

Strategie bezpečné správy tajných kódů

Mezi strategie bezpečné správy tajných kódů patří:

  • Pokud používáte správu verzí Gitu, můžete ukládat tajné kódy modulu runtime do místního souboru a zabránit vrácení souboru se změnami přidáním vzoru, který bude odpovídat názvu souboru souboru .gitignore .
  • V pracovním postupu automatizace můžete bezpečně ukládat tajné kódy do konfigurace parametrů, které tato automatizační technologie nabízí. Pokud například používáte GitHub Actions, můžete tajné kódy bezpečně ukládat do tajných kódů GitHubu.

Větvení a slučování

Distribuované systémy správy verzí, jako je Git, poskytují flexibilitu v tom, jak členové týmu publikují, sdílejí, kontrolují a iterují změny kódu prostřednictvím vývojových větví sdílených s ostatními. Přijměte strategii větvení Gitu, která je vhodná pro váš tým.

Bez ohledu na strategii větvení, kterou přijmete, je klíčovým principem všech z nich, že členové týmu můžou pracovat na řešení v rámci větve funkcí nezávisle na práci, která se děje v jiných větvích.

Podpora nezávislé práce ve větvích s projektem LUIS:

  • Hlavní větev má svou vlastní aplikaci LUIS. Tato aplikace představuje aktuální stav vašeho řešení pro váš projekt a její aktuální aktivní verze by se vždy měla mapovat na .lu zdroj, který je v hlavní větvi. Všechny aktualizace .lu zdroje pro tuto aplikaci by se měly zkontrolovat a otestovat, aby se tato aplikace mohla kdykoli nasadit do sestavení prostředí, jako je produkční prostředí. Když se aktualizace .lu sloučí do hlavní větve funkcí, měli byste v aplikaci LUIS vytvořit novou verzi a narazit na číslo verze.

  • Každá větev funkcí musí používat vlastní instanci aplikace LUIS. Vývojáři pracují s touto aplikací ve větvi funkcí bez rizika ovlivnění vývojářů, kteří pracují v jiných větvích. Tato aplikace "dev branch" je funkční kopie, která by se měla odstranit při odstranění větve funkce.

Větev funkcí Gitu

Vývojáři můžou pracovat z nezávislých větví.

Vývojáři můžou pracovat na aktualizacích v aplikaci LUIS nezávisle na ostatních větvích:

  1. Vytvoření větve funkcí z hlavní větve (v závislosti na strategii větve, obvykle hlavní nebo vývoj)

  2. Vytvořte novou aplikaci LUIS na portálu LUIS ("dev branch app") výhradně pro podporu práce ve větvi funkce.

    • .lu Pokud zdroj vašeho řešení už ve vaší větvi existuje, protože byl uložen po dokončení práce v jiné větvi dříve v projektu, vytvořte aplikaci LUIS pro vývojovou větev importem .lu souboru.

    • Pokud začínáte pracovat na novém projektu, v úložišti ještě nebudete mít .lu zdroj pro hlavní aplikaci LUIS. Soubor vytvoříte .lu exportem aplikace pro vývojovou větev z portálu, až dokončíte práci větve funkcí, a odešlete ho jako součást žádosti o přijetí změn.

  3. Pokud chcete implementovat požadované změny, pracujte na aktivní verzi aplikace pro vývojovou větev. Doporučujeme pracovat pouze v jedné verzi aplikace pro vývojovou větev pro veškerou práci ve větvi funkcí. Pokud v aplikaci pro vývojovou větev vytvoříte více verzí, dávejte pozor, abyste při vyvolání žádosti o přijetí změn sledovali, která verze obsahuje změny, které chcete vrátit se změnami.

  4. Otestujte aktualizace – podrobnosti o testování aplikace pro vývojovou větev najdete v tématu Testování služby LUIS DevOps .

  5. Vyexportujte aktivní verzi aplikace vývojové větve jako .lu ze seznamu verzí.

  6. Zkontrolujte aktualizace a pozvěte peer kontrolu vašich aktualizací. Pokud používáte GitHub, vytvoříte žádost o přijetí změn.

  7. Po schválení změn sloučíte aktualizace do hlavní větve. V tomto okamžiku vytvoříte novou verzi hlavní aplikace LUIS pomocí aktualizované .lu hlavní aplikace. Informace o nastavení názvu verze najdete v tématu Správa verzí.

  8. Po odstranění větve funkcí je vhodné odstranit aplikaci LUIS pro vývojovou větev, kterou jste vytvořili pro práci ve větvi funkcí.

Vývojáři můžou souběžně pracovat ve více větvích.

Pokud postupujete podle výše popsaného vzoru v vývojářích, můžou pracovat z nezávislých větví, pak v každé větvi funkcí použijete jedinečnou aplikaci LUIS. Jeden vývojář může pracovat na několika větvích současně, pokud přepne na správnou aplikaci LUIS pro vývojovou větev luis pro větev, na které právě pracuje.

Doporučujeme použít stejný název jak pro větev funkcí, tak pro aplikaci LUIS pro vývojovou větev, kterou vytvoříte pro práci ve větvi funkcí, aby bylo méně pravděpodobné, že na nesprávné aplikaci pracujete omylem.

Jak jsme uvedli výše, doporučujeme, abyste v každé aplikaci pro vývojovou větev pracovali v jedné verzi. Pokud používáte více verzí, při přepínání mezi aplikacemi pro vývoj větví je potřeba aktivovat správnou verzi.

Na stejné větvi může souběžně pracovat více vývojářů.

Můžete podporovat více vývojářů pracujících na stejné větvi funkcí najednou:

  • Vývojáři si prohlédnou stejnou větev funkcí, odesílají a přetahují změny odesílané sami a dalšími vývojáři, zatímco práce probíhá normálně.

  • Pokud postupujete podle výše popsaného vzoru v vývojářích, můžou pracovat z nezávislých větví, bude tato větev používat jedinečnou aplikaci LUIS k podpoře vývoje. Aplikace LUIS dev branch bude vytvořena prvním členem vývojového týmu, který začne pracovat ve větvi funkcí.

  • Přidejte členy týmu jako přispěvatele do aplikace LUIS pro vývojovou větev.

  • Po dokončení práce větve funkcí vyexportujte aktivní verzi aplikace LUIS pro vývojovou větev jako .lu ze seznamu verzí, uložte aktualizovaný .lu soubor do úložiště a uložte změny se změnami a žádost o přijetí změn.

Začlenění změn z jedné větve do druhé pomocí opětovného základu nebo sloučení

Někteří další vývojáři ve vašem týmu pracující v jiné větvi možná provedli aktualizace .lu zdroje a po vytvoření větve funkcí je sloučili do hlavní větve. Než budete pokračovat v provádění vlastních změn ve větvi funkcí, můžete chtít jejich změny začlenit do své pracovní verze. Můžete to provést opětovným nastavením nebo sloučením hlavního souboru stejným způsobem jako jakýkoli jiný prostředek kódu. Vzhledem k tomu, že aplikace LUIS ve formátu LUDown je čitelná pro člověka, podporuje sloučení pomocí standardních nástrojů pro sloučení.

Pokud používáte aplikaci LUIS ve větvi funkcí, postupujte podle těchto tipů:

  • Než znovu vytvoříte nebo sloučíte, ujistěte se, že vaše místní kopie .lu zdroje aplikace obsahuje všechny nejnovější změny, které jste použili pomocí portálu LUIS, tím, že aplikaci znovu exportujete z portálu. Tímto způsobem se můžete ujistit, že se neztratí všechny změny, které jste provedli na portálu a které jste ještě neexportovali.

  • Během sloučení můžete pomocí standardních nástrojů vyřešit případné konflikty při slučování.

  • Nezapomeňte po dokončení opětovného vytvoření základu nebo sloučení aplikaci znovu naimportovat na portál, abyste s aktualizovanou aplikací pracovali, až budete dál používat vlastní změny.

Sloučení žádostí o přijetí změn

Po schválení žádosti o přijetí změn můžete sloučit změny do hlavní větve. Na zdroj LUDown pro aplikaci LUIS se nevztahují žádné zvláštní aspekty: je čitelný pro člověka a podporuje sloučení pomocí standardních nástrojů pro sloučení. Všechny konflikty při slučování se můžou vyřešit stejným způsobem jako u jiných zdrojových souborů.

Po sloučení žádosti o přijetí změn se doporučuje vyčistit:

  • Odstranění větve v úložišti

  • Odstraňte aplikaci LUIS pro vývojovou větev, kterou jste vytvořili pro práci ve větvi funkcí.

Stejně jako u prostředků kódu aplikace byste měli napsat testy jednotek pro doprovodné aktualizace aplikace LUIS. K otestování byste měli použít pracovní postupy kontinuální integrace:

  • Aktualizace v žádosti o přijetí změn před sloučením žádosti o přijetí změn
  • Aplikace LUIS hlavní větve po schválení žádosti o přijetí změn a sloučení změn do hlavní.

Další informace o testování pro LUIS DevOps najdete v tématu Testování DevOps pro SLUŽBU LUIS. Další podrobnosti o implementaci pracovních postupů najdete v tématu Pracovní postupy automation pro LUIS DevOps.

Revize kódu

Aplikace LUIS ve formátu LUDown je čitelná pro člověka, která podporuje komunikaci změn v žádosti o přijetí změn vhodných ke kontrole. Soubory testů jednotek jsou také napsané ve formátu LUDown a také snadno kontrolovatelné v žádosti o přijetí změn.

Vytváření verzí

Aplikace se skládá z několika komponent, které můžou zahrnovat například robota běžícího ve službě Azure AI Bot Service, QnA Makeru, službě Azure AI Speech a dalších. Chcete-li dosáhnout cíle volně propojených aplikací, použijte správu verzí, aby každá komponenta aplikace byla nezávisle na verzích, což vývojářům umožňuje detekovat zásadní změny nebo aktualizace pouhým pohledem na číslo verze. Pokud ji udržujete ve vlastním úložišti, je jednodušší aplikaci LUIS spravovat nezávisle na ostatních komponentách.

Aplikace LUIS pro hlavní větev by měla mít použité schéma správy verzí. Když sloučíte aktualizace .lu aplikace LUIS do hlavní větve, naimportujete tento aktualizovaný zdroj do nové verze v aplikaci LUIS pro hlavní větev.

Doporučuje se použít schéma číselné správy verzí pro hlavní verzi aplikace LUIS, například:

major.minor[.build[.revision]]

Každá aktualizace čísla verze se zvýší na poslední číslici.

Hlavní /podverze lze použít k označení rozsahu změn funkcí aplikace LUIS:

  • Hlavní verze: Významná změna, například podpora nového záměru nebo entity
  • Podverze: Zpětná kompatibilní podverze, například po významném novém trénování
  • Sestavení: Žádné změny funkčnosti, jenom jiné sestavení.

Jakmile určíte číslo verze pro nejnovější revizi hlavní aplikace LUIS, musíte sestavit a otestovat novou verzi aplikace a publikovat ji do koncového bodu, kde se dá použít v různých prostředích sestavení, jako je Quality Assurance nebo Production. Důrazně doporučujeme automatizovat všechny tyto kroky v pracovním postupu kontinuální integrace (CI).

Přečtěte si:

  • Pracovní postupy automatizace podrobně popisuje, jak implementovat pracovní postup CI pro testování a vydání aplikace LUIS.
  • Release Management obsahuje informace o tom, jak nasadit aplikaci LUIS.

Správa verzí aplikace LUIS pro větev funkcí

Když pracujete s aplikací LUIS pro vývojovou větev, kterou jste vytvořili pro podporu práce ve větvi funkcí, budete aplikaci exportovat, až bude vaše práce hotová, a vy do žádosti o přijetí změn zahrnete aktualizaci 'lu . Větev ve vašem úložišti a po sloučení žádosti o přijetí změn do hlavní větve by se měla odstranit aplikace LUIS pro vývoj. Vzhledem k tomu, že tato aplikace existuje výhradně pro podporu práce ve větvi funkcí, není nutné v této aplikaci použít žádné konkrétní schéma správy verzí.

Když se změny v žádosti o přijetí změn sloučí do hlavního, je potřeba použít správu verzí, aby všechny aktualizace hlavní verze byly nezávisle na sobě.

Další kroky