Artykuły
Samouczki
Interaktywne przewodniki
Wprowadzenie do aplikacji ImageLabeller
ImageLabeller jest prostą aplikacją demonstracyjną, która wykorzystuje uczenie maszynowe do oznaczania etykietami obrazów. Wykorzystuje ona komponenty AWS Lambda, AWS DynamoDB, AWS S3, AWS SageMaker, AWS API Gateway, AWS CloudWatch oraz AWS CloudFormation i jest napisana w językach Go oraz Python. W tym przewodniku omówiono sposób korzystania z narzędzi Atlassian Open DevOps do wdrożenia i monitorowania podzbioru tych komponentów.
Architektura aplikacji ImageLabeller
Jak to działa
Użytkownik wywołuje funkcję AWS Lambda SubmitImage, przekazując prawidłowy adres URL obrazu jako parametr. Funkcja SubmitImage pobiera obraz, przekazuje go do zasobnika AWS S3 open-devops-images-
Funkcja AWS Lambda InvokeLabeller ma wyzwalacz zdarzenia AWS DynamoDB. InvokeLabeller pobiera odpowiedni obraz z zasobnika open-devops-images-
Użytkownik wywołuje funkcję AWS Lambda GetImageLabel, przekazując token identyfikatora obrazu jako parametr. Funkcja GetImageLabel wyszukuje etykiety powiązane z tokenem identyfikatora obrazu w tabeli ImageLabels i zwraca je użytkownikowi. Jeśli model AWS SageMaker nie zakończył przetwarzania obrazu, użytkownik otrzymuje etykietę NOT_CLASSIFIED.
Aplikacja ImageLabeller jest wdrażana w pięciu środowiskach: testowym w regionie us-west-1, przejściowym w regionie us-east-2 i trzech produkcyjnych w regionach us-west-2, us-east-1 i ca-central-1.
Komponenty
Zasobniki AWS S3 i tabele AWS DynamoDB będące częścią aplikacji ImageLabeller są wdrażane przy użyciu szablonów AWS CloudFormation. Ten przewodnik zawiera informacje na temat konfiguracji CI/CD odnośnie wdrażania zasobników AWS S3. Proces wdrażania tabel AWS DynamoDB jest niemal identyczny i możesz go wykonać samodzielnie w ramach ćwiczenia.
W aplikacji ImageLabeller występują trzy funkcje AWS Lambda: SubmitImage, InvokeLabeller i GetImageLabel. Ten przewodnik zawiera informacje o konfiguracji CI/CD dotyczącej wdrażania funkcji SubmitImage. Proces wdrażania funkcji GetImageLabel jest niemal identyczny i również możesz go wykonać samodzielnie.
InvokeLabeller jest opartą na języku Python funkcją AWS Lambda i wymaga drobnej aktualizacji przed opublikowaniem. Funkcja InvokeLabeller jest zależna od konfiguracji AWS SageMaker wprowadzanej z poziomu konsoli AWS.
Testy systemowe zawarte w projekcie ImageLabeller testują aplikację ImageLabeller jako całość. Testy zakończą się niepowodzeniem, jeśli którykolwiek komponent aplikacji ImageLabeller nie będzie działał zgodnie z oczekiwaniami lub będzie go brakowało. Wdrożenia funkcji SubmitImage, GetImageLabel i InvokeLabeller wykonują testy systemowe w ramach swoich pipeline'ów CI/CD.
W celu wstępnego wdrożenia funkcji SubmitImage, GetImageLabel i InvokeLabeller musisz ująć w komentarz kroki wykonywania testów systemowych. Gdy wdrożenia zostaną raz pomyślnie uruchomione, możesz usunąć oznaczenie komentarzem kroków wykonywania testów systemowych i ponowić wdrożenie.
Kolejność wdrażania komponentów
Ręczne wdrożenie wstępnie wytrenowanego modelu AWS SageMaker za pośrednictwem konsoli AWS
Wdrożenie repozytoriów infrastruktury AWS
- s3_infra
- dynamodb_infra
Wdrożenie funkcji AWS Lambda
- SubmitImage
- GetImageLabel
- InvokeLabeller
Wdrożenie SystemTests
Wdrożenie CloudWatchAlarms
Udostępnij ten artykuł
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.