Bloki konstrukcyjne dla środowisk symulacji autonomicznej jazdy

Azure Container Instances
Identyfikator Microsoft Entra
Azure Virtual Network
Azure Virtual Machines
Azure Pipelines

W przykładowym obciążeniu opisanym poniżej opisano tworzenie symulacji, która jest uruchamiana automatycznie i ocenia symulowaną funkcję pojazdu za pośrednictwem potoku usługi Azure DevOps. Ten potok jest uruchamiany za każdym razem, gdy inżynier sprawdza nową wersję kodu źródłowego przykładowej funkcji lub jej środowiska symulacji.

Architektura

Diagram przedstawiający bloki konstrukcyjne dla środowisk symulacji autonomicznej jazdy.

Pobierz plik programu Visio z tą architekturą.

Warstwa danych wejściowych użytkownika

Deweloper będzie korzystać tylko z tej warstwy. Zawiera stację roboczą dewelopera (maszynę wirtualną platformy Azure w naszym zakresie) oraz plik specyfikacji opisujący środowisko symulacji.

Warstwa orkiestracji

"Orkiestracja" ma szerokie znaczenie: niektóre problemy opisane przez słowo są trywialnie rozwiązane; inne są o wiele bardziej złożone. Na przykład problem "orkiestracji" tworzenia, monitorowania i niszczenia kontenerów i maszyn wirtualnych jest rozwiązywany przez wiele narzędzi — sam interfejs API platformy Azure jest dla tego wystarczający "koordynatorem".

Przepływ pracy

Ważne jest jednak podzielenie czarnej skrzynki "aranżacji" na mniejsze składniki.

  • Interfejs API symulacji: ten interfejs API otrzymuje plik specyfikacji i jest punktem wejścia do kontrolowania środowisk symulacji i przebiegów symulacji za pomocą warstwy orkiestracji.

  • Interpreter: ten składnik interpretuje plik specyfikacji w strukturę logiczną Menedżera symulacji.

  • Menedżer symulacji: jest to maszyna stanu, która konwertuje obiekt środowiska symulacji logicznej na żądane stany i akcje, które mają być używane przez inne składniki. Jest to składnik, który wyzwala kompilację, wykonywanie i odrężenie symulacji. Zarządza również wewnętrznymi zależnościami i trybami awarii.

  • Harmonogram: ten składnik przypisuje bloki konstrukcyjne do zasobów infrastruktury i uruchamia je tam. Uwzględnia wymagania dotyczące sprzętu i dostępu, dostępne zasoby i limity zasobów.

  • Menedżer środowiska: ten składnik obserwuje podstawową infrastrukturę i reaguje na problemy, takie jak gdy host kontenera ulegnie awarii.

  • Menedżer sieci: ten składnik zarządza sieciami i routingiem dla środowisk symulacji. Każde środowisko musi istnieć w izolowanym środowisku sieciowym z izolowanymi blokami konstrukcyjnymi odbierającymi połączenia przychodzące na potrzeby interakcyjności. Ten składnik będzie również używany do rozpoznawania bloków konstrukcyjnych w ramach symulacji (na przykład za pośrednictwem wewnętrznego systemu DNS).

  • Access Manager: ten składnik odzwierciedla autoryzację/uwierzytelnianie z identyfikatora Entra firmy Microsoft w pozostałej części systemu.

  • Configuration Manager: ten składnik działa jako mechanizm trwałego przechowywania dla stanu infrastruktury i środowisk symulacji.

  • Abstrakcja infrastruktury: jest to warstwa abstrakcji, która tłumaczy ogólne polecenia na określone polecenia interfejsu API platformy Azure dla kontenerów i maszyn wirtualnych.

  • Menedżer magazynu: ten składnik zarządza aprowizowaniem i dołączaniem magazynu dla środowisk symulacji (na przykład urządzeń głównych maszyn wirtualnych lub dołączonych woluminów kontenera).

  • Monitor zasobów: ten składnik monitoruje użycie zasobów na poziomie infrastruktury w bazie danych szeregów czasowych na potrzeby eksportowania do podstawowego monitorowania protokołu ADP.

  • Menedżer dzienników: ten składnik agreguje dzienniki z bloków konstrukcyjnych na potrzeby inspekcji użytkownika. Eksportuje również dzienniki do rejestrowania podstawowego protokołu ADP.

Warstwa orkiestracji jest głównym celem tego przykładowego obciążenia.

Warstwa infrastruktury symulacji

Ta warstwa reprezentuje wszystkie uruchomione środowiska symulacji.

  • Środowisko symulacji: w tym miejscu tworzone są kombinacje bloków konstrukcyjnych zdefiniowanych przez plik definicji i parametry w izolacji sieciowej od innych środowisk symulacji.

  • Kontrakt bloku konstrukcyjnego: napisany standard określający sposób wysyłania danych wyjściowych, błędów i stanu wszystkich bloków konstrukcyjnych do warstwy aranżacji.

  • Potok bloków konstrukcyjnych: ten obszar zarządza tworzeniem i przechowywaniem bloków konstrukcyjnych.

  • Repozytorium bloków konstrukcyjnych: jest to system przechowywania i pobierania obrazów bloków konstrukcyjnych, takich jak rejestr kontenerów i/lub galeria obrazów platformy Azure.

  • Fabryka bloków konstrukcyjnych: potok ciągłej integracji i ciągłego wdrażania (CI/CD), który tworzy obrazy bloków konstrukcyjnych przy użyciu niezmiennych, weryfikowalnych pakietów składników (na przykład dpkg lub apt) w języku deklaratywnej konfiguracji (na przykład Chef lub Ansible).

Warstwa magazynu

Ta warstwa trwale i z dostępem przechowuje wyniki symulacji. Jest to przede wszystkim odpowiedzialność za pracę nad usługą Data Lake data lake platformy tworzenia aplikacji mobilnych (MADP), chociaż dane wyjściowe muszą być zarządzane przez ten zespół.

  • Interfejs magazynu: interfejs umożliwiający użytkownikom pracę z magazynem wyników symulacji. Działa to w bliskim koncercie lub może zostać zastąpione przez składnik aranżacji Menedżera magazynu powyżej.

  • Magazyn: mechanizm magazynu używany do zapisywania wyników symulacji (na przykład zasobów usługi Azure Blob Storage lub Azure Disk Storage).

Składniki

Usługa Azure Virtual Machines udostępnia skalowalne zasoby obliczeniowe na żądanie, które zapewniają elastyczność wirtualizacji bez konieczności kupowania i konserwacji sprzętu fizycznego.

Usługa Azure Virtual Network to podstawowy blok konstrukcyjny dla sieci prywatnej na platformie Azure. Usługa Azure Virtual Network umożliwia korzystanie z wielu typów zasobów platformy Azure, takich jak usługa Azure Virtual Machines, bezpieczne komunikowanie się ze sobą, Internetem i sieciami lokalnymi.

Usługa Azure Container Instances oferuje najszybszy i najprostszy sposób uruchamiania kontenera na platformie Azure bez konieczności zarządzania maszynami wirtualnymi i bez konieczności wdrażania usługi wyższego poziomu.

Usługa Azure Container Registry to zarządzana prywatna usługa rejestru platformy Docker oparta na rejestrze platformy Docker typu open source 2.0. Rejestry kontenerów platformy Azure można używać z istniejącymi potokami tworzenia i wdrażania kontenerów lub używać usługi Azure Container Registry Tasks do kompilowania obrazów kontenerów na platformie Azure. Twórz kompilacje na żądanie lub w pełni automatyzuj za pomocą wyzwalaczy, takich jak zatwierdzenia kodu źródłowego i aktualizacje obrazu podstawowego.

Usługa Azure Pipelines jest częścią usług Azure DevOps Services i uruchamia zautomatyzowane kompilacje, testy i wdrożenia. Możesz również użyć rozwiązań ciągłej integracji/ciągłego wdrażania innych firm, takich jak Jenkins.

Microsoft Entra ID to oparta na chmurze usługa zarządzania tożsamościami i dostępem, która uwierzytelnia użytkowników, usługi i aplikacje.

Usługa Azure Storage oferuje trwałe, wysoce dostępne i skalowalne rozwiązanie magazynu w chmurze. Obejmuje on funkcje obiektów, plików, dysków, kolejek i magazynu tabel.

Usługa Azure Monitor zbiera dane telemetryczne z różnych źródeł lokalnych i platformy Azure. Ta usługa agreguje i przechowuje dane telemetryczne w magazynie danych dziennika zoptymalizowanym pod kątem kosztów i wydajności.

Alternatywy

Ta architektura używa maszyn wirtualnych i kontenerów do wdrażania różnych narzędzi i usług. Alternatywnie możesz również użyć usług Azure Kubernetes Services (AKS). Oferuje ona bezserwerową platformę Kubernetes, zintegrowane środowisko ciągłej integracji/ciągłego wdrażania oraz zabezpieczenia i nadzór klasy korporacyjnej.

Mechanizm magazynu używany do zapisywania wyników symulacji w tej architekturze jest oparty na usłudze Azure Blob Storage lub Azure Disk Storage. Alternatywą dla większych obciążeń jest również zapoznanie się z rozwiązaniami do przechowywania i analizowania danych na dużą skalę na platformie Azure oraz analiz.

Rozważ również użycie usługi Azure Monitor do analizowania i optymalizowania wydajności infrastruktury oraz monitorowania i diagnozowania problemów z siecią bez logowania się do maszyn wirtualnych.

Szczegóły scenariusza

Aby ocenić autonomiczną jazdę (AD), inżynierowie funkcji muszą symulować zachowanie pojazdów z funkcjami usługi AD. Rozważmy następujący przykładowy scenariusz jazdy:

Pojazd testowy autonomicznie jedzie na 80 mph w prawym pasie na autostradzie 3-pasowej. Istnieje ciężarówka 600 stóp przed jazdą w tym samym pasie ruchu i w tym samym kierunku na 55 mph. Nie ma pojazdu w pobliżu na środkowym pasie ruchu. Znaczniki drogowe są widoczne, słońce świeci prostopadle do pojazdu, a droga jest sucha.

Skończona symulacja zachowania pojazdu przy użyciu takiego scenariusza jest nazywana przebiegiem symulacji. W powyższym scenariuszu oczekiwane zachowanie symulowanego pojazdu polega na wygodnej przejeżdżaniu ciężarówki bez spowodowania wypadku i bez naruszenia zasad ruchu drogowego. Uruchamiając symulację dla każdej nowej wersji funkcji, inżynierowie funkcji usługi AD przetestują, czy nowa wersja nadal wykazuje oczekiwane zachowanie.

Aby uruchomić symulację, inżynierowie funkcji usługi AD często używają zestawu aplikacji oprogramowania. Mogą one obejmować wirtualny dysk testowy (VTD), testowanie partycji czasowych (TPT), Avionics Development System 2G (ADS2) oraz dane motoryzacyjne i strukturę wyzwalaną czasowo (ADTF), z których wszystkie komunikują się ze sobą zgodnie z ich specyficznymi konfiguracjami na potrzeby testowania danej autonomicznej funkcji jazdy, takiej jak Highway Pilot. Wdrożenie tego zestawu narzędzi oprogramowania i ich konfiguracji do maszyn fizycznych i/lub wirtualnych (maszyn wirtualnych) w środowisku lokalnym i/lub w chmurze jest nazywane środowiskiem symulacji.

Aby zapewnić ważność wyników testu generowanych przez każdą uruchomioną symulację, należy upewnić się, że symulacja rozpoczyna się w nowym środowisku symulacji ustawionym na jego stan początkowy.

Każdy autonomiczny zespół potrzebuje oddzielnego zestawu aplikacji w swoim środowisku symulacji z unikatową konfiguracją. Wiele zespołów będzie również potrzebować wielu różnych środowisk symulacji. Na przykład, aby ocenić czujnik LIDAR, potrzebujesz bardzo wysokiej rozdzielczości symulacji obiektu, ale nie ma innych czynników, oznaczeń drogowych lub innych funkcji. Chociaż każde środowisko jest unikatowe, w używanych aplikacjach nakłada się znaczne nakładanie. Na przykład wiele zespołów korzysta z funkcji VTD w wielu środowiskach symulacji.

Można uruchomić symulację w środowisku symulacji składającym się z wielokrotnego użytku, hermetyzowanego i niezależnie oceniane jednostki. Te jednostki służą jako "bloki konstrukcyjne", których będziesz używać do automatycznego i na żądanie tworzenia środowisk symulacji w chmurze platformy Azure. Te środowiska symulacji są również nazywane zautomatyzowanymi platformami jazdy (ADP).

Potencjalne przypadki użycia

To rozwiązanie jest idealne dla przemysłu motoryzacyjnego i transportowego. Typowe zastosowania tego obciążenia obejmują:

  • Automatyzowanie testów jazdy.

  • Tworzenie prototypów, opracowywanie, integracja, testowanie, walidacja i weryfikacja systemów sterowania w branży motoryzacyjnej.

  • Rejestrowanie danych pojazdu na potrzeby wizualizacji.

  • Symulowanie złożonych scenariuszy jazdy w branży motoryzacyjnej.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Dostępność i odporność

Rozważ wdrożenie maszyn wirtualnych w zestawach dostępności lub strefach dostępności, które pomagają chronić aplikacje przed zdarzeniami planowanej konserwacji i nieplanowanymi awariami.

Zestaw dostępności to logiczne grupowanie maszyn wirtualnych, które umożliwia platformie Azure zrozumienie sposobu kompilacji aplikacji w celu zapewnienia nadmiarowości i dostępności.

Strefy dostępności to unikatowe lokalizacje fizyczne w regionach świadczenia usługi Azure, które pomagają chronić maszyny wirtualne, aplikacje i dane przed awariami centrum danych. Każda strefa składa się z co najmniej jednego centrum danych. Maszyny wirtualne i aplikacje w strefach mogą pozostać dostępne, nawet jeśli wystąpi awaria fizyczna w jednym centrum danych.

Skalowalność

Maszyny wirtualne platformy Azure można skalować ręcznie lub za pomocą funkcji skalowania automatycznego.

W przypadku wdrożeń kontenerów usługi Azure Containers Instances i Azure Kubernetes Services są również przeznaczone do ręcznego lub automatycznego skalowania w górę lub w poziomie.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Podobnie jak w przypadku dowolnego innego typu aplikacji, środowisko symulacji można zaprojektować do obsługi poufnych danych. W związku z tym należy ograniczyć, kto może się zalogować i używać, a także ograniczyć dostęp do danych na podstawie tożsamości lub roli użytkownika. Użyj identyfikatora Entra firmy Microsoft do kontroli tożsamości i dostępu oraz użyj usługi Azure Key Vault do zarządzania kluczami i wpisami tajnymi.

Aby uzyskać ogólne wskazówki dotyczące projektowania bezpiecznych rozwiązań, zobacz dokumentację zabezpieczeń platformy Azure.

DevOps

W przypadku wdrażania nowych środowisk symulacji najlepiej używać procesów ciągłej integracji/ciągłego wdrażania przy użyciu rozwiązania, takiego jak Azure DevOps lub GitHub Actions.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Ogólnie rzecz biorąc, możesz szacować koszty za pomocą kalkulatora cen platformy Azure. Możesz również zoptymalizować koszty, postępując zgodnie z procesem w celu odpowiedniego rozmiaru pojemności maszyn wirtualnych od początku oraz uproszczonej zmiany rozmiaru zgodnie z potrzebami. Inne zagadnienia zostały opisane w sekcji Koszt w witrynie Microsoft Azure Well-Architected Framework.

Następne kroki

Dokumentacja produktu:

Ścieżki szkoleniowe firmy Microsoft:

Artykuły o centrum architektury platformy Azure:

Odpowiednie architektury: