W całej branży motoryzacyjnej przejście do pojazdów zdefiniowanych programowo (SDV) wymaga unikatowego podejścia do opracowywania, wdrażania, monitorowania i zarządzania stosami oprogramowania motoryzacyjnego. Producenci oryginalnego sprzętu motoryzacyjnego (OEM) przyjmują strategię shift-left, która obejmuje przeprowadzanie testów na wczesnym etapie cyklu rozwoju produktu.
W podejściu w tym artykule stos oprogramowania w pojazdach przechodzi kompleksową symulację i testowanie w środowisku opartym na chmurze. Poniższa przykładowa architektura przedstawia sposób korzystania ze stosów i dystrybucji oprogramowania, które oferuje grupa robocza Eclipse SDV. Tych składników można używać z usługami GitHub i Azure do tworzenia kompleksowego stosu oprogramowania motoryzacyjnego, implementowania oprogramowania w testach pętli (SIL), orkiestracji sprzętu w pętli (HIL) testowaniai weryfikacji floty pojazdów inżynierów.
W tym artykule opisano, jak:
- Zintegruj najnowocześniejsze narzędzia deweloperskie do procesu programowania.
- Praca z kodem źródłowym samochodów i zarządzanie nim.
- Twórz środowiska pojazdów wirtualnych automatycznie w ramach potoków ciągłej integracji i ciągłego dostarczania (CI/CD) i zarządzaj ich wykonywaniem na potrzeby testowania wirtualnego.
- Organizowanie wdrożeń na potrzeby testowania SIL (testowanie wirtualne) i testowania HIL.
- Korzystanie z wysoce skalowalnych usług do zbierania i analizowania danych generowanych podczas testów walidacji i użycia pól.
Architektura
Na tym diagramie przedstawiono architekturę łańcucha narzędzi SDV dla samochodów.
Pobierz plik programu PowerPoint tej architektury.
Przepływ pracy
Architektura składa się z sześciu kluczowych bloków konstrukcyjnych:
łańcuch narzędzi SDV to podejście typu plug-and-play, które można otworzyć i skonfigurować. Takie podejście korzysta z zasobów i usług deweloperów firmy Microsoft oraz usług DevOps. Zmniejsza to zależność od krzemu w pojazdach poprzez ustanowienie konfigurowalnych i elastycznych wirtualnych wirtualnych jednostek sterowania (vECU) i wirtualnych komputerów o wysokiej wydajności (vHPC) środowiskach na platformie Azure. Te środowiska pomagają przyspieszyć opracowywanie, testowanie i walidację oprogramowania motoryzacyjnego. Takie podejście zapewnia zgodność z krawędzią i układem krzemowym w pojazdach w celu zapewnienia parzystości bitów, chronometrażu i kodu.
stos oprogramowania motoryzacyjnego obejmuje zróżnicowany zakres technologii i struktur. Standardy branżowe i wspólne wysiłki, takie jak grupa robocza zdefiniowana programowo Eclipse Foundation, często zarządzają tymi technologiami i strukturami. Projekty Eclipse obejmują nieróżnicujące składniki łączności pojazdów, obsługi komunikatów i protokołów komunikacyjnych, takich jak warstwa abstrakcji cyfrowej reprezentacji bliźniaczej w pojazdach, zaawansowane systemy pomocy kierowcy (ADAS) i autonomiczne rozwiązania do jazdy.
Stosy oprogramowania motoryzacyjnego stanowią solidną podstawę dla producentów samochodów i deweloperów oprogramowania. Zapewniają bezproblemową integrację i zgodność w ekosystemie motoryzacyjnym oraz zapewniają oparte na społeczności podejście do postępów technologicznych.
witrynie GitHub Marketplace i Azure Marketplace umożliwiają partnerom, takim jak dostawcy warstwy 1 i dostawcy narzędzi do oprogramowania motoryzacyjnego, oferowanie rozwiązań, takich jak zarządzane stosy oprogramowania motoryzacyjnego, jednostki vECU i narzędzia deweloperskie. Te rozwiązania można zintegrować z łańcuchem narzędzi SDV.
Dzięki testom HILmożna uruchamiać testy i walidację na sprzęcie docelowym. W celu weryfikacji za pomocą krzemu krawędzi i pojazdu badania HIL korzystają z tej samej koncepcji aranżacji co testy SIL. Wyspecjalizowany sprzęt jest połączony z szybkim dostępem do sieci i bezpiecznymi sieciami.
Obsługa komunikatów, danych i analiz pojazdów zapewnić wymaganą infrastrukturę:
- Zarządzanie pojazdami i urządzeniami.
- Wdrażanie i obsługa połączonych aplikacji pojazdów z zależnościami do składników oprogramowania w pojazdach.
- Zapewnianie analizy danych na potrzeby inżynierii, operacji i usług opartych na mobilności.
Aby uzyskać informacje o zbieraniu i analizie danych na potrzeby weryfikacji składników i systemu, zobacz Analiza danych dla flot testów samochodowych.
autonomiczne operacje pojazdów (AVOps) umożliwić producentom samochodów opracowywanie zautomatyzowanych rozwiązań do jazdy na platformie Azure. Rozwiązanie AVOps opisuje:
- Jak zarządzać operacjami danych (DataOps) dla pojazdów autonomicznych.
- Zautomatyzowane wyodrębnianie, etykietowanie i trenowanie modeli na potrzeby percepcji i łączenia czujników (MLOps).
- Testowanie opracowanych modeli w symulowanych środowiskach (ValOps).
To rozwiązanie integruje się z łańcuchem narzędzi SDV, zapewniając wytrenowane modele i wykonywanie weryfikacji oprogramowania.
Ta architektura koncentruje się na ogólnym łańcuchu narzędzi SDV i stosie oprogramowania motoryzacyjnego. Zawiera przykłady implementacji korzystających z projektów open source w ramach grupy roboczej Eclipse SDV, takiej jak Eclipse uProtocol, Eclipse Chariott, Eclipse Ibeji, Eclipse Freyjai Eclipse Agemo.
Firma Microsoft jest członkiem grupy roboczej pojazdu zdefiniowanego programowo w środowisku Eclipse, forum do współpracy typu open source dla platform oprogramowania pojazdów.
Łańcuch narzędzi SDV samochodowy składa się z następujących składników.
narzędzia programistyczne obejmują usługi programistyczne i współpracy, takie jak GitHub, Microsoft Dev Box, Visual Studio Code i Azure Container Registry. Ta architektura korzysta również z możliwości skanowania kodu w usłudze GitHub. Aparat analizy CodeQL znajduje błędy zabezpieczeń w kodzie źródłowym i udostępnia alerty w żądaniach ściągnięcia, zanim kod podatny na zagrożenia zostanie scalony i zwolniony.
programowanie, walidacja i integracja to metoda łącząca usługi metadanych i orkiestracji. Umożliwia deweloperom konfigurowanie, kompilowanie, wdrażanie i organizowanie środowisk wykonywania wirtualnego na żądanie. Deweloperzy mogą usprawnić proces programowania i testowania, integrować się z istniejącymi łańcuchami narzędzi i obsługiwać wiele formatów aplikacji, plików binarnych, systemów operacyjnych i środowisk środowiska uruchomieniowego.
Środowisko wykonywania składa się z usług i składników platformy Azure, które umożliwiają niezawodne, powtarzalne i zauważalne środowiska chmurowe i brzegowe do tworzenia, testowania i weryfikowania stosów oprogramowania motoryzacyjnego. Mogą to być następujące składniki:
- Środowiska wdrażania platformy Azure.
- Galeria zasobów obliczeniowych platformy Azure.
- Container Registry.
- Azure Arc.
- Obliczenia platformy Azure, takie jak maszyny wirtualne platformy Azure oparte na usłudze ARM64 i obliczenia o wysokiej wydajności.
- Usługi sieciowe i usługi łączności platformy Azure, takie jak Azure ExpressRoute.
Poniższe przepływy pracy pokazują, jak deweloper definiuje, organizuje i uruchamia testy wirtualne oprogramowania motoryzacyjnego.
Przepływ pracy: Wdrażanie jednostek vECU
W tym rozwiązaniu opisano, w jaki sposób fikcyjna firma Contoso Automotive używa łańcucha narzędzi SDV do:
- Skonfiguruj środowisko programistyczne w ciągu kilku minut.
- Wyzwalanie zmiany aktualizacji w infrastrukturze chmury SIL w celu wdrożenia jednostki vECU działającej na maszynie wirtualnej opartej na architekturze ARM64.
contoso Automotive dodaje nową jednostkę obliczeniową o wysokiej wydajności motoryzacyjnej (HPC) do nadchodzącego modelu pojazdów i musi dołączyć nowy zespół programistyczny do tworzenia konteneryzowanych aplikacji. Sprzęt dla pojazdu nie jest jeszcze dostępny, ale skompresowane osie czasu oznaczają, że funkcjonalność oprogramowania musi zostać opracowana i zweryfikowana równolegle.
Pobierz plik programu PowerPoint tej architektury.
Deweloper
motoryzacyjny tworzymicrosoft dev box i łączy się z nią. Pole deweloperskie jest wstępnie skonfigurowane ze wszystkimi wymaganymi narzędziami programistycznymi (takimi jak Visual Studio Code i Android Studio) oraz wszystkimi wymaganymi rozszerzeniami (takimi jak GitHub Copilot), które mają być zgodne z aplikacjami firmy Contoso Automotive. Deweloper motoryzacyjny wykonuje wyewidencjonowanie kodu aplikacji i metadanych aplikacji opisujących nadchodzącą konfigurację pojazdu, dołączone jednostki HPC i ECU oraz wymagane wdrożenie do przeprowadzenia weryfikacji SIL.
Deweloper motoryzacyjny używa rozszerzeń metadanych do dostosowywania konfiguracji, takich jak zmiana właściwości HPC na podstawie nowych informacji od zespołu inżynieryjnego.
Zmiana konfiguracji wyzwala rozszerzenie przetwarzania metadanych . Wykonuje walidację metadanych, generuje wszystkie wymagane artefakty i konfiguruje kampanię wdrażania środowiska wykonawczego.
Po zakończeniu wszystkich zmian konfiguracji deweloper przesyła żądanie ściągnięcia, które wyzwala akcji usługi GitHub do wdrożenia.
Akcja wdrożenia w usłudze GitHub wyzwala metadanych i usług orkiestracji, które uruchamiają kampanię wdrażania.
Usługi metadanych i orkiestracji używają środowiska deweloperskiego Azure do wdrażania wymaganych zasobów obliczeniowych w celu symulowania nowej wersji architektury elektronicznej samochodów.
Usługi metadanych i orkiestracji ustawić żądany stan obliczeń na podstawie kampanii. Usługi używają magazynu artefaktów do instalowania i konfigurowania wymaganych obrazów vHPC i ECU.
Przepływ pracy: Aktualizacje oprogramowania za pośrednictwem powietrza (SOTA) dla aplikacji motoryzacyjnych
Firma Contoso Automotive chce wdrożyć konteneryzowane aplikacje motoryzacyjne w swojej floty testowej inżynieryjnej w celu przeprowadzenia testów integracji. Deweloper motoryzacyjny kompiluje, testuje i weryfikuje nową wersję aplikacji i wdraża ją w pojeździe.
Pobierz plik programu PowerPoint tej architektury.
Deweloper motoryzacyjny tworzy wydanie. Wydanie zawiera definicję żądanego stanu kontenera stosu oprogramowania oraz definicję kompilacji.
Usługi łańcucha narzędzi i orkiestracji wyzwalają proces wydawania. Usługi wdrażają wymaganą infrastrukturę do kompilowania, weryfikowania i wydawania kontenerów oprogramowania.
Podczas wykonywania aplikacje są kompilowane, weryfikowane i wydawane za pomocą narzędzi opartych na kontenerach. W zależności od wymagań narzędzi można je wdrożyć w usłudze Azure Kubernetes Service (AKS) dla konteneryzowanych aplikacji lub można je wdrożyć na dedykowanych maszynach wirtualnych.
Po zakończeniu kompilacji wyniki są wypychane do usługi Container Registry dla zwolnionych kontenerów, a zmiany są rejestrowane na serwerze usługi OTA .
klienta usługi
OTA ma dedykowany agenta OTA dla aplikacji opartych na kontenerach. żądany agent wyszukiwania stanu łączy się z usługami toolchain i orchestration services w celu pobrania definicji żądanego stanu.Aparat orkiestracji kontenerów
pobiera i aktywuje żądane kontenery z usługi Container Registry .
Przepływ pracy: stos oprogramowania motoryzacyjnego
W tym rozwiązaniu ogólny stos oprogramowania motoryzacyjnego synchronizuje swój stan z chmurą platformy Azure.
Stos ma następujące składniki:
Rejestr usług umożliwia zarejestrowanie i odnalezienie usług w obrębie pojazdu.
Dynamiczne zarządzanie tematami umożliwia usługom subskrybowanie i publikowanie komunikatów w nazwanych tematach, abstrakcji protokołu komunikacyjnego.
Usługa cyfrowej reprezentacji bliźniaczej pojazdów utrzymuje stan pojazdu, w tym sygnały z jednostek ECU i jednostek obliczeniowych, takich jak AD/ADAS i infotainment.
Synchronizacja chmury cyfrowej reprezentacji bliźniaczej synchronizuje lokalny stan pojazdu ze stanem w chmurze, aby zapewnić produkty i usługi cyfrowe, które nie wymagają bezpośredniego połączenia z samochodem.
Pobierz plik programu PowerPoint tej architektury.
Wszystkie składniki rejestrują swoje możliwości za pośrednictwem rejestru usługi .
Vehicle compute rejestruje opisy stanów dostawcy cyfrowych reprezentacji bliźniaczychw pojeździe usługi cyfrowej reprezentacji bliźniaczej. Po rejestracji jednostki obliczeniowe mogą publikować aktualizacje w ich stanie.
- Pojazdu obliczeniowe rejestruje złożone obiekty stanu i interakcje.
- ECU pojazdów zarejestrować sygnały dostępne dla aplikacji motoryzacyjnych i które polecenia można zaakceptować.
cyfrowej reprezentacji bliźniaczej publikuje zmiany stanu i aktualizacje dynamicznego zarządzania tematami . Te aktualizacje są zorganizowane w tematach.
aplikacje motoryzacyjne mogą subskrybować komunikaty z dowolnego źródła zarządzanego przez dynamiczne zarządzanie tematami. Te aplikacje są subskrybowane do odpowiednich tematów i reagują na zmiany stanu. Mogą również publikować własne wiadomości.
Usługa cyfrowej reprezentacji bliźniaczej
publikuje również wybrane tematy w usłudze synchronizacji chmury cyfrowej bliźniaczej reprezentacji bliźniaczej cyfrowej reprezentacji bliźniaczej. Synchronizacja chmury cyfrowej reprezentacji bliźniaczej
może używać cartographer mapować nazwy tematów (za pośrednictwem usługi mapowania cyfrowej reprezentacji bliźniaczej) na równoważne nazwy w chmurze. Ta ujednolica zmniejsza zależność między oprogramowaniem pojazdów a oprogramowaniem w chmurze i modelami pojazdów. Łącznik w chmurze publikuje aktualizacje w chmurze i subskrybuje odbieranie zmian stanu publikowanych przez inne usługi i aplikacje.
usługa Azure Event Grid kieruje komunikaty do odpowiednich usług i aplikacji. Stan pojazdu jest przechowywany za pośrednictwem usług. Na przykład azure Cache for Redis może przechowywać ostatnią znaną wartość szybkiego dostępu i pobierania, a Azure Data Explorer może zapewnić krótkoterminową historię stanu pojazdów i analizę.
Składniki
W tej architekturze są używane następujące składniki usługi GitHub i platformy Azure.
Narzędzia programistyczne
container registry to usługa, której można użyć do tworzenia i przechowywania obrazów kontenerów oraz artefaktów oraz zarządzania nimi w rejestrze prywatnym dla wszystkich typów wdrożeń kontenerów. Oprogramowanie motoryzacyjne przyjęło aplikacje i obciążenia motoryzacyjne oparte na kontenerach. Łańcuch narzędzi SDV używa rejestrów kontenerów platformy Azure do tworzenia kontenerów, procesów wdrażania i potoków.
Dev Box zapewnia deweloperom samoobsługowy dostęp do gotowych do kodu, opartych na chmurze stacji roboczych znanych jako pola deweloperskie, które można dostosować za pomocą narzędzi specyficznych dla projektu, kodu źródłowego i wstępnie utworzonych plików binarnych na potrzeby natychmiastowej integracji przepływu pracy.
github to platforma programistycza, której można używać do hostowania i przeglądania kodu, zarządzania projektami, współpracy i tworzenia oprogramowania wraz z deweloperami, którzy znajdują się w organizacji lub poza nią.
programu Visual Studio Code jest uproszczonym edytorem kodu źródłowego dostępnym dla systemów Windows, macOS i Linux. Ma on bogaty ekosystem rozszerzeń dla kilku języków i środowisk uruchomieniowych.
Środowisko wykonywania
- środowiska wdrażania platformy Azure udostępnia wstępnie skonfigurowaną kolekcję zasobów platformy Azure. Umożliwia zespołom deweloperów szybkie i łatwe tworzenie infrastruktury przy użyciu szablonów opartych na projekcie. Szablony ustanawiają spójność i najlepsze rozwiązania przy jednoczesnym maksymalizacji zabezpieczeń.
- azure compute to kompleksowy zestaw usług w chmurze, który umożliwia deweloperom uruchamianie stosów oprogramowania motoryzacyjnego, aplikacji i obciążeń na maszynach wirtualnych i kontenerach. Istnieje wiele odmian obliczeniowych, w tym zoptymalizowane pod kątem pamięci, zoptymalizowane pod kątem procesora CPU, obliczenia o wysokiej wydajności i obliczenia ogólnego przeznaczenia.
- Compute Gallery to usługa, która obsługuje przechowywanie wersji i grupowanie zasobów w celu łatwego zarządzania. Obrazy można udostępniać społeczności, między subskrypcjami i między dzierżawami identyfikatorów Entra firmy Microsoft. Wdrożenia można również skalować przy użyciu replik zasobów w każdym regionie świadczenia usługi Azure. Galeria obliczeń udostępnia strukturę i organizację artefaktów stosu oprogramowania motoryzacyjnego.
- azure Arc upraszcza zarządzanie i zarządzanie oraz zapewnia spójną platformę zarządzania w chmurze do rozwiązania HIL. Producenci samochodów mogą używać usługi Azure Arc do kontrolowania coraz bardziej złożonych środowisk HIL w lokalnych i opartych na chmurze centrach danych.
- azure Blob Storage to usługa, która zapewnia wysoce skalowalny magazyn obiektów dla dowolnego typu danych bez struktury, takich jak obrazy, wideo, audio i dokumenty, które tworzą i zużywają stosy oprogramowania motoryzacyjnego.
- usług sieciowych platformy Azure to globalne, bezpieczne i niezawodne usługi. Stosy oprogramowania motoryzacyjnego i narzędzia programistyczne wymagają potoków przetwarzania danych, dzięki czemu mogą uzyskiwać dostęp do farm HIL w celu tworzenia i testowania autonomicznych i wspomaganych rozwiązań. Usługi sieciowe na platformie Azure zapewniają różne możliwości sieciowe, takie jak usługi łączności, usługi ochrony aplikacji, usługi dostarczania aplikacji i monitorowanie sieci.
Alternatywy
Usługi platformy Azure wybrane dla implementacji architektury zależą od wielu czynników.
Przykład w sekcji Wdrażanie tego scenariusza używa usługi AKS. Platforma Kubernetes bezserwerowa służy do uruchamiania mikrousług, zapewnienia bezpieczeństwa i ładu klasy korporacyjnej oraz zapewnienia zintegrowanego środowiska ciągłej integracji/ciągłego wdrażania. Jako alternatywna szybka i prosta metoda można uruchamiać mikrousługi w usłudze Azure Container Instances. W tej alternatywie nie trzeba wdrażać usługi wyższego poziomu, takiej jak usługa AKS.
Przykład w Wdrażanie tego scenariusza sugeruje użycie usługi Azure Event Hubs lub Azure Service Bus do zaimplementowania usługi uBus. Aby uzyskać więcej informacji, zobacz Wybieranie między usługami obsługi komunikatów platformy Azure. Usługi obsługi komunikatów często się uzupełniają i można używać więcej niż jednego.
Aplikacje i usługi w tej architekturze są wdrażane za pośrednictwem szablonów usługi Azure Resource Manager lub Bicep. Alternatywnie możesz użyć skryptów programu Terraform do aprowizowania infrastruktury chmury i zarządzania nią.
Aby uzyskać alternatywy dla warstwy obsługi komunikatów, danych i analizy pojazdu w architekturze, zobacz Alternatywy.
Szczegóły scenariusza
Autonomiczne i połączone zestawy SDK otwierają zupełnie nowy świat funkcjonalności, możliwości obsługi i niezawodności. Gdy sprzęt i oprogramowanie są oddzielone, producenci OEM mogą tworzyć niezależne aplikacje w celu obsługi określonych funkcji i usług. Ta metoda ułatwia aktualizowanie i dodawanie oprogramowania do ogólnej platformy pojazdów.
Producenci samochodów i ich dostawcy są zachęcani do dostosowywania swoich operacji motoryzacyjnych w celu umożliwienia elastycznych cykli tworzenia oprogramowania, które są elastyczne i dostosowane do krótkich cykli deweloperskich i częstych wydań. Te cykle pomagają zapewnić współpracę i ciągłe ulepszanie.
Bez standardowej, otwartej i konfigurowalnej strategii łańcucha narzędzi producenci OEM mogą mieć poziomy rozproszonych narzędzi. Aby zapewnić naprawdę elastyczną strategię tworzenia oprogramowania, firmy muszą mieć ujednolicony łańcuch narzędzi oparty na nowoczesnej platformie opartej na chmurze, która jest natywna dla platformy Azure. Platforma musi umożliwić deweloperom współpracę i ponowne używanie oprogramowania. Musi ona zapewnić deweloperom innych firm możliwość tworzenia aplikacji. Platforma jest szczególnie przydatna dla deweloperów, którzy mają silną wiedzę na temat oprogramowania, ale nie ma wcześniejszego doświadczenia w zakresie sprzętu motoryzacyjnego.
Ta przykładowa architektura motoryzacyjna spełnia wymagania szybko zmieniającej się branży motoryzacyjnej. Stosuje zasadę shift-left, która podkreśla wczesną integrację składników oprogramowania i sprzętu. Umożliwia ciągłe testowanie i walidację, począwszy od wczesnych etapów programowania. Wirtualizacja odgrywa kluczową rolę, umożliwiając tworzenie prototypów wirtualnych i środowisk testowych w celu przyspieszenia innowacji i zmniejszenia wymagań dotyczących prototypów fizycznych.
Sercem tej architektury jest niezawodna automatyzacja potoku ciągłej integracji/ciągłego wdrażania, która zapewnia bezproblemową integrację, testowanie i wdrażanie aktualizacji oprogramowania w całym cyklu życia pojazdu. Ta zwinność umożliwia szybkie aktualizacje oprogramowania, które szybko odpowiadają na luki w zabezpieczeniach, zwiększają wydajność i dostarczają nowe funkcje. Pomaga to konsumentom zapewnić bezpieczne, bogate w funkcje środowisko jazdy.
Na poniższym diagramie przedstawiono ogólne omówienie architektury łańcucha narzędzi SDV dla samochodów.
Pobierz plik programu PowerPoint tej architektury.
Potencjalne przypadki użycia
Dołączanie deweloperów: zaimplementuj w pełni skonfigurowane środowisko programistyczne dla branży motoryzacyjnej, aby przyspieszyć dołączanie deweloperów oprogramowania motoryzacyjnego.
Wydajne programowanie: symulowanie zachowania różnych kombinacji sprzętu i oprogramowania. Zmniejsz zależność od krawędzi lub krzemu w pojazdach na wczesnym etapie procesu opracowywania.
weryfikacji SIL: uruchom potoki automatycznej kompilacji, testowania i walidacji, aby zweryfikować zachowanie aplikacji oprogramowania. Użyj zasobów obliczeniowych w chmurze, aby przyspieszyć cykl programowania.
walidacji HIL: upraszcza wdrażanie i monitorowanie gospodarstw HIL.
testowanie weryfikacji floty: zbieranie metryk, dzienników i śladów aplikacji oprogramowania, a także danych telemetrycznych i sygnałowych pojazdów. Użyj tych danych, aby utworzyć kompleksowy widok zachowania pojazdu na potrzeby walidacji, analizy głównej przyczyny i zatwierdzenia.
Software releases: Create traceable software releases that can be updated and managed for the vehicle fleet via DevOps practices (Tworzenie wersji oprogramowania do śledzenia, które można aktualizować i zarządzać dla floty pojazdów za pomocą rozwiązań DevOps).
ciągłe ulepszanie: użyj informacji zebranych z pola, aby zwiększyć ulepszenia aplikacji oprogramowania.
Zalecenia
Poniższe zalecenia pomagają zapewnić efektywne zarządzanie środowiskiem platformy Azure. Postępuj zgodnie z tymi zaleceniami, chyba że wymagane jest ich zastąpienie.
Postępuj zgodnie z najlepszymi rozwiązaniami podczas wdrażania i konfigurowania usług platformy Azure, aby zapewnić bezpieczne, wydajne i ekonomiczne środowisko.
Zdefiniuj zasoby platformy Azure zgodnie z wymaganiami implementacji. Te zasoby mogą obejmować maszyny wirtualne, klastry Kubernetes, usługi obsługi komunikatów oraz usługi danych i analiz.
Zaimplementuj szablony usługi Resource Manager dla infrastruktury jako kodu (IaC), aby można było zautomatyzować wdrożenie i zachować spójność.
Zaimplementuj kontrolę dostępu opartą na rolach (RBAC), aby przyznać uprawnienia użytkownikom i usługom na zasadzie najniższych uprawnień.
Użyj usługi Azure Security Center, aby aktywnie monitorować i ograniczać zagrożenia bezpieczeństwa.
Rozważ użycie modułów równoważenia obciążenia platformy Azure i zestawów dostępności lub stref dostępności, aby zwiększyć skalowalność i nadmiarowość.
Regularnie monitoruj wydajność i użycie zasobów platformy Azure, aby zoptymalizować koszty i zwiększyć wydajność. Użyj narzędzi, takich jak Azure Monitor i Microsoft Cost Management.
Zagadnienia dotyczące
Te zagadnienia obejmują implementację filarów platformy 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.
Niezawodność
Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.
Możesz uruchomić kompleksową infrastrukturę aplikacji zorientowaną na usługę i obsługiwać implementację platformy rozproszonego protokołu komunikacyjnego na platformie Azure przy użyciu nowoczesnej integracji/ciągłego wdrażania. Jeśli używasz tego rozwiązania, potrzebujesz niezawodnej i wysokiej dostępności architektury. Aby uzyskać wskazówki dotyczące architektury i najlepsze rozwiązania dotyczące zarządzania usługami i uruchamiania ich w usłudze AKS, zobacz omówienie usługi AKS.
Testowanie HIL jest niezbędną i krytyczną częścią procesu tworzenia oprogramowania motoryzacyjnego i strategii testowania. Podczas projektowania i implementowania architektury sieci dla farm HIL należy rozważyć projektowanie pod kątem wysokiej dostępności za pomocą usługi ExpressRoute. Ta strategia pozwala zmniejszyć pojedyncze punkty awarii i zmaksymalizować dostępność środowisk zdalnych dla zespołów programistycznych i testowych.
Bezpieczeństwo
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.
Zabezpieczenia to jeden z najważniejszych aspektów architektury. Aby zapewnić bezpieczeństwo złożonych systemów, musisz zrozumieć warunki biznesowe, społeczne i techniczne. Rozważ zaimplementowanie możliwości skanowania kodu w usłudze GitHub, aby można było znaleźć i rozwiązać problemy z zabezpieczeniami oraz krytyczne wady na wczesnym etapie procesu programowania. Usługa GitHub obsługuje standardy kodowania AUTOSAR C++ i CERT C++, co umożliwia opracowywanie funkcjonalnych aplikacji bezpieczeństwa.
Rozważ zabezpieczenie kompleksowego łańcucha dostaw w usłudze GitHub.
Rozważ wdrożenie usługi Azure Key Vault, aby zachować kompleksowe zabezpieczenia w przypadku obsługi poufnych i krytycznych dla działania firmy elementów, takich jak klucze szyfrowania, certyfikaty, parametry połączenia i hasła. Moduły zabezpieczeń sprzętu zarządzanego przez usługę Key Vault oferują niezawodne rozwiązanie, które wzmacnia cały proces tworzenia oprogramowania i łańcucha dostaw. Dzięki zarządzanym przez usługę Key Vault modułom HSM można używać aplikacji motoryzacyjnych, aby bezpiecznie przechowywać poufne zasoby i zarządzać nimi oraz zapewnić ochronę przed potencjalnymi zagrożeniami bezpieczeństwa cybernetycznego. Możesz dodatkowo zwiększyć bezpieczeństwo, regulując dostęp i uprawnienia do krytycznych zasobów za pomocą kontroli dostępu opartej na rolach.
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.
Podczas tworzenia jednostek vECU upewnij się, że rozmiar maszyny wirtualnej jest zgodny z wymaganiami. Jeśli zmodyfikujesz konfigurację tak, aby używała większego rozmiaru niż jest to konieczne, zwiększa to koszt, zwłaszcza jeśli wiele maszyn działa równolegle w celu wykonywania długotrwałych zadań.
W przypadku zadań kompilacji, walidacji i testowania, które nie są krytyczne dla czasu, rozważ użycie maszyn wirtualnych typu spot platformy Azure. Możesz skorzystać z nieużywanej pojemności i ponieść znaczne oszczędności kosztów.
Jeśli masz zobowiązanie do użycia platformy Azure, rozważ użycie kwalifikujących się ofert partnerów z witryny Azure Marketplace podczas wdrażania narzędzi programistycznych i jednostek vECU w środowisku uruchomieniowym.
Aby uzyskać porady dotyczące uruchamiania obciążeń tworzenia pojazdów autonomicznych, zobacz Tworzenie rozwiązania AVOps.
Copilot udostępnia sugestie kodu w czasie rzeczywistym i autouzupełniania, które przyspieszają proces tworzenia oprogramowania. Inżynierowie oprogramowania motoryzacyjnego mogą używać Copilot do szybkiego i wydajnego pisania kodu, co skraca czas opracowywania nowych funkcji i aktualizacji pojazdów.
Doskonałość operacyjna
Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Omówienie filaru doskonałości operacyjnej.
Łańcuch narzędzi SDV w branży motoryzacyjnej obejmuje kluczowe strategie inżynierii oprogramowania, takie jak:
- Aprowizowanie środowiska IaC.
- Potoki ciągłej integracji/ciągłego wdrażania do tworzenia i wydawania stosów oprogramowania motoryzacyjnego.
- Zautomatyzowane testowanie w celu przejścia do podejścia shift-left.
- Konfiguracja jako kod, aby uniknąć dryfu konfiguracji między środowiskami.
Rozważ wdrożenie tych kluczowych strategii we wszystkich obciążeniach w celu zapewnienia spójności, powtórzeń i wczesnego wykrywania problemów.
Rozważ infrastrukturę, która jest włączona przez usługę Azure Arc, aby uprościć zarządzanie w chmurze i środowiskach lokalnych platformy Azure, testach HIL i farmach weryfikacji.
Pomoc oparta na sztucznej inteligencji copilot może zwiększyć ogólną jakość kodu, zmniejszając prawdopodobieństwo błędów ludzkich i standaryzacji praktyk kodowania. Kod wysokiej jakości ma kluczowe znaczenie w branży motoryzacyjnej, w której najważniejsze jest bezpieczeństwo oprogramowania i niezawodność.
Wydajność
Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim nakładane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.
Określanie zadań w potokach kompilacji i testowania, które mogą być równoległe w celu zwiększenia wydajności.
Rozważ zaimplementowanie wzorców wydajności dla wydajnych aplikacji i obciążeń opartych na przykładowym protokole komunikacji rozproszonej w następnej sekcji.
Wdróż ten scenariusz
Główną dzierżawą środowiska Eclipse SDV jest podejście oparte na źródle kodu, które zapewnia elastyczność implementacji. W poniższych przykładach użyto istniejących projektów środowiska Eclipse i opisano ich integrację z usługami platformy Azure.
Przykład: protokół komunikacji rozproszonej na platformie Azure
Eclipse uProtocol jest jednym z wielu rozproszonych protokołów komunikacyjnych używanych w przemyśle motoryzacyjnym. Jest to niezależny od transportu, warstwowy protokół komunikacyjny, który opiera się na istniejących standardach motoryzacyjnych i internetowych. Zapewnia wszechobecny język odnajdywania, subskrypcji i obsługi komunikatów, który umożliwia aplikacjom i usługom uruchamianym w systemie heterogenicznym komunikowanie się ze sobą.
W poniższym omówieniu opisano usługi wymagane do zaimplementowania rozproszonego protokołu komunikacyjnego. W tym przykładzie użyto usług uProtocol i Azure.
Przegląd
Pobierz plik programu PowerPoint tej architektury.
Komunikaty są wysyłane z łącznika chmury pojazdu do usługi Event Grid. Komunikaty są przesyłane za pośrednictwem definicji uProtocol za pośrednictwem MQTT.
Brama w chmurze to usługa w chmurze, z którą urządzenia łączą się w celu komunikowania się z domeną lub urządzeniem zaplecza.
uStreamer jest dyspozytorem zdarzeń, który umożliwia uEs na urządzeniach w celu bezproblemowego komunikowania się z różnymi protokołami warstwy transportu. Wykonuje ona funkcje, takie jak transfer plików i buforowanie zdarzeń. Na przykład gdy zdarzenia przechodzą z jednego transportu do następnego, przepływają przez uStreamer. UStreamer jest podobny do routera IP.
uBus to magistrala komunikatów, która wysyła urzędów certyfikacji między uEs w ramach wspólnego transportu. Zapewnia funkcję multiemisji i przekazywania. Działa jak przełącznik sieciowy.
Zestaw uCDS umożliwia es odnajdywanie siebie nawzajem, w tym ich lokalizacji (adres) i właściwości.
uSubscription to usługa zarządzania subskrypcjami, która zarządza wzorcami projektowymi wydawcy i subskrybenta dla uEs. uTwin to lokalna pamięć podręczna opublikowanych zdarzeń. UTwin przechowuje opublikowany komunikat za pomocą klucza podstawowego. Lokalne składniki oprogramowania mogą pobrać klucz. Ten klucz podstawowy jest pełną nazwą tematu, w tym nazwą urządzenia. Klucz podstawowy reprezentuje temat, więc tylko ostatnie zdarzenie danego tematu jest przechowywane w uTwin. Kolekcja zdarzeń przechowywanych w wystąpieniu urządzenia uTwin, którego klucze zawierają określoną nazwę urządzenia, reprezentują cyfrową reprezentację bliźniaczą tego urządzenia. Przykłady zdarzeń pojazdów obejmują aktualizacje ciśnienia opon, położenia okna, położenia koła zębatego i trybu pojazdu (jazda lub zaparkowanie). Zdarzenia mogą być dowolnymi informacjami opublikowanymi w pojeździe i używanymi do obsługi pojazdu lub aktywowania jego cech.
uEs to aplikacje i usługi, które zapewniają użytkownikom końcowym funkcjonalność. Te aplikacje używają podstawowych interfejsów użytkownika do odnajdywania, subskrypcji i dostępu do cyfrowej reprezentacji bliźniaczej.
W poniższej tabeli przedstawiono sugerowane usługi, które są istotne dla implementacji uProtocol na platformie Azure.
składnik uProtocol | Funkcjonalność | Usługa platformy Azure |
---|---|---|
Brama chmury | Broker MQTT | Event Grid |
uStreamer | Transfer plików, buforowanie zdarzeń, routing D2D, tłumaczenie protokołu | Event Hubs, Storage, Functions, AKS |
uDiscovery | Odnajdywanie usług | Mikrousługi w usłudze AKS |
uBus | Przekazywanie multiemisji | Event Hubs, Service Bus, Event Grid |
uSubscription | Zarządzanie tematem pub/podrzędnym | Mikrousługi w usłudze AKS |
uTwin | Ostatni znany stan | Azure Digital Twins, Azure Cache for Redis |
Aby uzyskać więcej informacji na temat składników uProtocol, zestawów SDK i dokumentacji, zobacz repozytorium GitHub uProtocol.
Aprowizuj urządzenia dla aplikacji uProtocol
Pobierz plik programu PowerPoint tej architektury.
System fabryki odleci urządzenie pojazdu do żądanego stanu budowy. Prowizja obejmuje początkową instalację i konfigurację oprogramowania układowego i oprogramowania. W ramach tego procesu system fabryki uzyskuje i zapisuje certyfikat urządzenia. Dostawca infrastruktury kluczy publicznych tworzy certyfikat.
System fabryki rejestruje pojazd i urządzenie za pośrednictwem interfejsu API aprowizacji pojazdów i urządzeń.
Aplikacja rejestracji urządzeń rejestruje tożsamość urządzenia w aprowizacji urządzeń i rejestru urządzeń.
Informacje o uwierzytelnianiu i autoryzacji są przechowywane w usłudze Microsoft Entra ID.
System fabryki wyzwala klienta aprowizacji urządzeń
w celu nawiązania połączenia z usługą aprowizacji urządzeń . Urządzenie pobiera informacje o połączeniu z przypisaną funkcją brokera MQTT w usłudze Event Grid. System fabryki wyzwala urządzenie w celu nawiązania połączenia z funkcją brokera MQTT w usłudze Event Grid po raz pierwszy. usługa Event Grid uwierzytelnia urządzenie przy użyciu certyfikatu głównego uwierzytelniania klienta i wyodrębnia informacje o kliencie.
Event Grid zarządza autoryzacją dozwolonych tematów za pośrednictwem informacji o urządzeniu przechowywanych w microsoft Entra ID.
System dealera OEM wyzwala rejestrację nowego urządzenia, jeśli wymagana jest wymiana części.
Przykład: stos oprogramowania motoryzacyjnego Eclipse
Poniższa architektura opisuje stos oprogramowania motoryzacyjnego oparty na składnikach projektu Eclipse. W tej architekturze środowisko Eclipse uProtocol może służyć jako protokół komunikacyjny.
Pobierz plik programu PowerPoint tej architektury.
Eclipse Chariott to usługa gRPC, która udostępnia wspólny interfejs do interakcji z aplikacjami. Aplikacje mogą rejestrować się w rejestrze usług środowiska Eclipse Chariott w celu anonsowania ich możliwości i włączania odnajdywania usług.
Eclipse Ibeji zapewnia możliwość wyrażania cyfrowej reprezentacji stanu pojazdu i jego możliwości dzięki rozszerzalnej, otwartej i dynamicznej architekturze, która zapewnia dostęp do sprzętu, czujników i możliwości pojazdów.
Eclipse Freyja to aplikacja, która umożliwia synchronizację między stanem cyfrowej reprezentacji bliźniaczej na pojeździe (wystąpienie cyfrowej reprezentacji bliźniaczej) i stanem cyfrowej reprezentacji bliźniaczej w chmurze (kanoniczna reprezentacja cyfrowa).
Eclipse Agemo to usługa gRPC, która udostępnia funkcje publikowania i subskrybowania aplikacji w pojeździe, w tym Eclipse Ibeji i Eclipse Chariott.
Współpracowników
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Autorzy zabezpieczeń:
- Daniel Lueddecke | Architekt rozwiązań w chmurze, automotive
- Mario Ortegon Cabrera | Główny menedżer programu, MCI SDV & Mobility
- Filipe Prezado | Główny menedżer programu, MCI SDV & Mobility
- Sandeep Pujar | Główny menedżer pm, obsługa komunikatów platformy Azure
- Ashita Rastogi | Główny menedżer programu, obsługa komunikatów platformy Azure
- Boris Scholl | Dyrektor generalny, partner Architect-Azure Cloud & AI
Inni współautorzy:
- Frederick Chong | Główny menedżer pm, MCIGET SDV & Mobility
- Frank Kaleck | Industry Advisor - Manufacturing, Mobility & Automotive
- Mehmet Kucukgoz | Główny menedżer pm, azure IoT Hub
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- usługa GitHub dodaje obsługę standardów kodowania AUTOSAR C++ i CERT C++
- rozpoczynanie pracy z Copilot
- tworzenie i nawiązywanie połączenia z usługą Dev Box przy użyciu portalu deweloperskiego usługi Dev Box
- obsługi komunikatów samochodowych, danych i analizy architektury referencyjnej