Przepływy pracy ciągłej integracji i ciągłego dostarczania dla usługi LUIS DevOps

Ważne

Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.

Inżynierowie oprogramowania, którzy opracowują aplikację Usługi Language Understanding (LUIS), mogą stosować rozwiązania DevOps dotyczące kontroli źródła, zautomatyzowanych kompilacji, testowania i zarządzania wydaniami. W tym artykule opisano pojęcia dotyczące implementowania automatycznych kompilacji dla usługi LUIS.

Tworzenie przepływów pracy automatyzacji dla usługi LUIS

CI workflows

W systemie zarządzania kodem źródłowym (SCM) skonfiguruj automatyczne potoki kompilacji do uruchamiania w następujących zdarzeniach:

  1. Przepływ pracy żądania ściągnięcia jest wyzwalany po wywołaniu żądania ściągnięcia. Ten przepływ pracy weryfikuje zawartość żądania ściągnięcia przed scaleniem aktualizacji z gałęzią główną.
  2. Przepływ pracy ciągłej integracji/ciągłego wdrażania jest wyzwalany, gdy aktualizacje są wypychane do gałęzi głównej, na przykład podczas scalania zmian z żądania ściągnięcia. Ten przepływ pracy zapewnia jakość wszystkich aktualizacji gałęzi głównej.

Przepływ pracy ciągłej integracji/ciągłego wdrażania łączy dwa uzupełniające procesy programistyczne:

  • Ciągła integracja (CI) to praktyka inżynieryjna częstego zatwierdzania kodu w udostępnionym repozytorium i przeprowadzania na nim zautomatyzowanej kompilacji. W połączeniu z podejściem do testowania automatycznego ciągła integracja pozwala nam sprawdzić, czy dla każdej aktualizacji źródło LUDown jest nadal prawidłowe i można je zaimportować do aplikacji usługi LUIS, ale także, że przechodzi grupę testów, które weryfikują, czy wytrenowana aplikacja może rozpoznać intencje i jednostki wymagane dla rozwiązania.

  • Ciągłe dostarczanie (CD) rozszerza koncepcję ciągłej integracji, aby automatycznie wdrażać aplikację w środowisku, w którym można przeprowadzić bardziej szczegółowe testowanie. Cd umożliwia nam wczesne poznanie wszelkich nieprzewidzianych problemów, które wynikają z naszych zmian tak szybko, jak to możliwe, a także dowiedzieć się więcej o lukach w naszym zasięgu testowym.

Celem ciągłej integracji i ciągłego dostarczania jest zapewnienie, że "główny jest zawsze dostarczany"." W przypadku aplikacji usługi LUIS oznacza to, że możemy, jeśli zajdzie taka potrzeba, pobrać dowolną wersję z aplikacji głównej usługi LUIS i dostarczyć ją do środowiska produkcyjnego.

Narzędzia do tworzenia przepływów pracy automatyzacji dla usługi LUIS

Napiwek

Kompletne rozwiązanie do implementowania metodyki DevOps można znaleźć w repozytorium szablonu usługi LUIS DevOps.

Istnieją różne technologie automatyzacji kompilacji dostępne do tworzenia przepływów pracy automatyzacji kompilacji. Wszystkie z nich wymagają wykonania skryptów kroków przy użyciu interfejsu wiersza polecenia (CLI) lub wywołań REST, aby umożliwić wykonywanie ich na serwerze kompilacji.

Użyj następujących narzędzi do tworzenia przepływów pracy automatyzacji dla usługi LUIS:

Przepływ pracy żądania ściągnięcia

Jak wspomniano, należy skonfigurować ten przepływ pracy tak, aby był uruchamiany, gdy deweloper zgłasza żądanie ściągnięcia w celu zaproponowania scalania zmian z gałęzi funkcji z gałęzią główną. Jego celem jest zweryfikowanie jakości zmian w żądaniu ściągnięcia przed scaleniem ich z gałęzią główną.

Ten przepływ pracy powinien:

  • Utwórz tymczasową aplikację usługi LUIS, importując źródło w żądaniu ściągnięcia .lu .
  • Trenowanie i publikowanie wersji aplikacji usługi LUIS.
  • Uruchom wszystkie testy jednostkowe .
  • Przekaż przepływ pracy, jeśli wszystkie testy przejdą pomyślnie, w przeciwnym razie nie powiedzie się.
  • Wyczyść i usuń tymczasową aplikację.

Jeśli usługa SCM jest obsługiwana przez usługę SCM, skonfiguruj reguły ochrony gałęzi, aby ten przepływ pracy musiał zostać ukończony pomyślnie przed ukończeniem żądania ściągnięcia.

Przepływ pracy ciągłej integracji/ciągłego wdrażania gałęzi głównej

Skonfiguruj ten przepływ pracy do uruchomienia po scaleniu aktualizacji w żądaniu ściągnięcia z gałęzią główną. Jego celem jest utrzymanie paska jakości dla głównej gałęzi wysokiej przez przetestowanie aktualizacji. Jeśli aktualizacje spełniają pasek jakości, ten przepływ pracy wdraża nową wersję aplikacji LUIS w środowisku, w którym można przeprowadzić bardziej szczegółowe testowanie.

Ten przepływ pracy powinien:

  • Utwórz nową wersję w podstawowej aplikacji usługi LUIS (aplikacji obsługiwanej dla gałęzi głównej) przy użyciu zaktualizowanego kodu źródłowego.

  • Trenowanie i publikowanie wersji aplikacji usługi LUIS.

    Uwaga

    Zgodnie z wyjaśnieniem w artykule Uruchamianie testów w zautomatyzowanym przepływie pracy kompilacji należy opublikować wersję aplikacji LUIS w ramach testu, aby narzędzia takie jak NLU. Metodyka DevOps może uzyskać do niej dostęp. Usługa LUIS obsługuje tylko dwa nazwane miejsca publikacji, przejściowe i produkcyjne dla aplikacji usługi LUIS, ale można również opublikować wersję bezpośrednio i wykonać zapytanie według wersji. Użyj publikowania wersji bezpośredniej w przepływach pracy automatyzacji, aby uniknąć ograniczenia używania nazwanych miejsc publikowania.

  • Uruchom wszystkie testy jednostkowe.

  • Opcjonalnie uruchom testy wsadowe , aby zmierzyć jakość i dokładność wersji aplikacji USŁUGI LUIS i porównać ją z niektórymi punktami odniesienia.

  • Jeśli testy zakończą się pomyślnie:

    • Oznacz źródło w repozytorium.
    • Uruchom zadanie ciągłego dostarczania (CD), aby wdrożyć wersję aplikacji LUIS w środowiskach w celu dalszego testowania.

Ciągłe dostarczanie (CD)

Zadanie ciągłego wdrażania w przepływie pracy ciągłej integracji/ciągłego wdrażania jest uruchamiane warunkowo po pomyślnym zakończeniu kompilacji i automatycznych testów jednostkowych. Jej zadaniem jest automatyczne wdrożenie aplikacji LUIS w środowisku, w którym można przeprowadzić więcej testów.

Nie ma jednego z zalecanych rozwiązań dotyczących najlepszego wdrażania aplikacji LUIS i musisz zaimplementować proces odpowiedni dla projektu. Repozytorium szablonu DevOps usługi LUIS implementuje proste rozwiązanie, które polega na opublikowaniu nowej wersji aplikacji USŁUGI LUIS w produkcyjnym miejscu publikowania. Jest to w porządku w przypadku prostej konfiguracji. Jeśli jednak musisz obsługiwać wiele różnych środowisk produkcyjnych w tym samym czasie, takich jak programowanie, przejściowe i UAT, limit dwóch nazwanych miejsc publikowania na aplikację okaże się niewystarczający.

Inne opcje wdrażania wersji aplikacji obejmują:

  • Pozostaw wersję aplikacji opublikowaną w punkcie końcowym wersji bezpośredniej i zaimplementuj proces konfigurowania podrzędnych środowisk produkcyjnych z punktem końcowym wersji bezpośredniej zgodnie z wymaganiami.
  • Obsługa różnych aplikacji usługi LUIS dla każdego środowiska produkcyjnego i pisanie kroków automatyzacji w celu zaimportowania .lu elementu do nowej wersji w aplikacji LUIS dla docelowego środowiska produkcyjnego, trenowania i publikowania.
  • Wyeksportuj przetestowaną wersję aplikacji LUIS do kontenera docker usługi LUIS i wdróż kontener usługi LUIS w wystąpieniach kontenera platformy Azure.

Zarządzanie wydaniami

Ogólnie rzecz biorąc, zalecamy ciągłe dostarczanie tylko do środowisk nieprodukcyjnych, takich jak programowanie i przemieszczanie. Większość zespołów wymaga ręcznego przeglądu i procesu zatwierdzania wdrożenia w środowisku produkcyjnym. W przypadku wdrożenia produkcyjnego możesz upewnić się, że ma to miejsce, gdy kluczowe osoby w zespole deweloperów są dostępne do pomocy technicznej lub w okresach niskiego ruchu.

Stosowanie metodyki DevOps do tworzenia aplikacji usługi LUIS przy użyciu funkcji GitHub Actions

Przejdź do repozytorium szablonu DevOps usługi LUIS, aby uzyskać kompletne rozwiązanie, które implementuje metodykę DevOps i najlepsze rozwiązania dotyczące inżynierii oprogramowania dla usługi LUIS. Tego repozytorium szablonu można użyć do utworzenia własnego repozytorium z wbudowaną obsługą przepływów pracy ciągłej integracji/ciągłego wdrażania oraz praktyk umożliwiających kontrolę źródła, automatyczne kompilacje, testowanie i zarządzanie wydaniami za pomocą usługi LUIS dla własnego projektu.

Repozytorium szablonów DevOps usługi LUIS zawiera instrukcje:

  • Sklonuj repozytorium szablonu — skopiuj szablon do własnego repozytorium GitHub.
  • Konfigurowanie zasobów usługi LUIS — utwórz zasoby tworzenia i przewidywania usługi LUIS na platformie Azure , które będą używane przez przepływy pracy ciągłej integracji.
  • Konfigurowanie przepływów pracy ciągłej integracji/ciągłego wdrażania — konfigurowanie parametrów przepływów pracy ciągłej integracji/ciągłego wdrażania i przechowywanie ich w wpisach tajnych usługi GitHub.
  • Przechodzi przez "wewnętrzną pętlę deweloperów" — deweloper wprowadza aktualizacje do przykładowej aplikacji LUIS podczas pracy w gałęzi programowania, testuje aktualizacje, a następnie zgłasza żądanie ściągnięcia, aby zaproponować zmiany i wyszukać zatwierdzenie przeglądu.
  • Wykonywanie przepływów pracy ciągłej integracji/ciągłego wdrażania — wykonaj przepływy pracy ciągłej integracji, aby skompilować i przetestować aplikację usługi LUIS przy użyciu funkcji GitHub Actions.
  • Przeprowadzanie testów automatycznych — przeprowadź zautomatyzowane testowanie wsadowe dla aplikacji usługi LUIS, aby ocenić jakość aplikacji.
  • Wdróż aplikację usługi LUIS — wykonaj zadanie ciągłego dostarczania (CD), aby opublikować aplikację usługi LUIS.
  • Użyj repozytorium z własnym projektem — wyjaśnia, jak używać repozytorium z własną aplikacją usługi LUIS.

Następne kroki