Bewerken

Delen via


Softwaregedefinieerde devOps-hulpprogrammaketen

Azure Event Grid
Azure Kubernetes Service (AKS)
Azure Virtual Machines
Azure Container Registry
Azure ExpressRoute

Voor de hele automobielindustrie is voor de overgang naar softwaregedefinieerde voertuigen (SDV's) een unieke benadering vereist voor het ontwikkelen, implementeren, bewaken en beheren van softwarestacks voor auto's. Oem's (Oem's) van auto-originele apparatuur omarmen een shift-left strategie, waarbij vroeg in de productontwikkelingscyclus tests worden uitgevoerd.

In de benadering in dit artikel ondergaat de softwarestack van het voertuig uitgebreide simulatie en testen in een cloudomgeving. In de volgende voorbeeldarchitectuur wordt beschreven hoe u kunt profiteren van de softwarestacks en distributies die de Eclipse SDV-werkgroep biedt. U kunt deze onderdelen gebruiken met GitHub- en Azure-services om een end-to-end automotive softwarestack te ontwikkelen, software in de lus (SIL) te testente implementeren, hardware in de lus (HIL) te organiserenen voertuigparkvalidatie te valideren.

In dit artikel wordt beschreven hoe u:

  • Integreer geavanceerde ontwikkelhulpprogramma's in het ontwikkelingsproces.
  • Werken met de broncode voor auto's en beheren.
  • Bouw automatisch virtuele voertuigomgevingen als onderdeel van CI/CD-pijplijnen (continue integratie en continue levering) en beheer hun uitvoering voor virtuele tests.
  • Implementaties organiseren voor SIL-tests (virtuele tests) en HIL-tests.
  • Gebruik uiterst schaalbare services voor het verzamelen en analyseren van gegevens die worden geproduceerd tijdens validatietests en veldgebruik.

Architectuur

In dit diagram ziet u de architectuur van de auto-SDV-hulpprogrammaketen.

Diagram met het overzicht van de auto-SDV-hulpprogrammaketen. Download een PowerPoint-bestand van deze architectuur.

Werkstroom

De architectuur bestaat uit zes belangrijke bouwstenen:

  1. De SDV-hulpprogrammaketen is een plug-and-play-benadering die open en configureerbaar is. Deze aanpak maakt gebruik van microsoft-assets en DevOps-assets en -services. Het vermindert de afhankelijkheid van in-vehicle silicium door configureerbare en flexibele virtuele elektronische besturingseenheid (vECU) en virtuele high-performance computer (vHPC) omgevingen in Azure in te stellen. Deze omgevingen helpen het ontwikkelen, testen en valideren van autosoftware te versnellen. Deze aanpak zorgt voor compatibiliteit met edge- en in-vehicle silicium om bit, timing en codepariteit te garanderen.

  2. Een autosoftwarestack omvat een breed scala aan technologieën en frameworks. Industriestandaarden en samenwerkingsinspanningen, zoals de Eclipse Foundation-werkgroep voor softwaregedefinieerde voertuigen, zijn vaak van toepassing op deze technologieën en frameworks. Eclipse-projecten omvatten niet-differentiërende onderdelen voor voertuigconnectiviteit, berichten en communicatieprotocollen, zoals een digitale dubbelabstractielaag in het voertuig, geavanceerde systemen voor rijhulp (ADAS) en autonome rijoplossingen.

    Autosoftwarestacks bieden een robuuste basis voor automakers en softwareontwikkelaars. Ze zorgen voor naadloze integratie en compatibiliteit in het auto-ecosysteem en bieden een communitygestuurde benadering van technologische vooruitgang.

  3. GitHub Marketplace en Azure Marketplace partners zoals leveranciers van laag 1 en leveranciers van autosoftwareprogramma's in staat stellen oplossingen aan te bieden, zoals beheerde softwarestacks, vECUs en hulpprogramma's voor ontwikkelaars. U kunt deze oplossingen integreren met de SDV-hulpprogrammaketen.

  4. Met HIL-testskunt u testen en valideren op doelhardware uitvoeren. Voor validatie met rand- en in-vehicle silicium maakt HIL-tests gebruik van hetzelfde indelingsconcept als SIL-tests. De gespecialiseerde hardware is verbonden met snelle netwerktoegang en beveiligde netwerken.

  5. voertuigberichten, gegevens en analyses de vereiste infrastructuur bieden voor:

    • Voertuigen en apparaten beheren.
    • Toepassingen voor verbonden voertuigen implementeren en gebruiken met afhankelijkheden voor softwareonderdelen in het voertuig.
    • Gegevensanalyse bieden voor technische, operationele en mobiliteitsservices.

    Zie voor informatie over het verzamelen en analyseren van gegevens voor onderdeel- en systeemvalidatie Gegevensanalyse voor autotest fleets.

  6. autonome voertuigbewerkingen (AVOps) auto-OEM's in staat stellen geautomatiseerde rijoplossingen te ontwikkelen in Azure. In de AVOps-oplossing wordt het volgende beschreven:

    • Gegevensbewerkingen (DataOps) beheren voor autonome voertuigen.
    • Geautomatiseerde functieextractie, labeling en modeltraining voor perception en sensor fusion (MLOps).
    • Ontwikkelde modellen testen in gesimuleerde omgevingen (ValOps).

    Deze oplossing kan worden geïntegreerd met de SDV-hulpprogrammaketen door getrainde modellen te bieden en softwarevalidatie uit te voeren.

Deze architectuur is gericht op een algemene SDV-hulpprogrammaketen en autosoftwarestack. Het bevat voorbeelden van implementaties die gebruikmaken van opensource-projecten in het kader van de Eclipse SDV-werkgroep, zoals Eclipse uProtocol, Eclipse Chariott, Eclipse Ibeji, Eclipse Freyjaen Eclipse Agemo.

Microsoft is lid van de eclipse-werkgroep voor softwaregedefinieerde voertuigen, een forum voor opensource-samenwerking voor voertuigsoftwareplatforms.

De automotive SDV toolchain bestaat uit de volgende onderdelen.

  • Ontwikkelhulpprogramma's ontwikkel- en samenwerkingsservices omvatten, zoals GitHub, Microsoft Dev Box, Visual Studio Code en Azure Container Registry. Deze architectuur maakt ook gebruik van de mogelijkheden voor codescans van GitHub. De CodeQL-analyse-engine vindt beveiligingsfouten in broncode en surface-waarschuwingen in pull-aanvragen voordat de kwetsbare code wordt samengevoegd en vrijgegeven.

  • ontwikkeling, validatie en integratie is een methode die metagegevens- en indelingsservices combineert. Hiermee kunnen ontwikkelaars virtuele uitvoeringsomgevingen op aanvraag configureren, bouwen, implementeren en organiseren. Ontwikkelaars kunnen het ontwikkel- en testproces stroomlijnen, integreren met bestaande hulpprogrammaketens en meerdere toepassingsindelingen, binaire bestanden, besturingssystemen en runtime-omgevingen ondersteunen.

  • De uitvoeringsomgeving bestaat uit Azure-services en -onderdelen waarmee betrouwbare, herhaalbare en waarneembare cloud- en randomgevingen kunnen worden gebouwd, getest en gevalideerd. Deze onderdelen kunnen het volgende omvatten:

    • Azure-implementatieomgevingen.
    • Azure Compute Gallery.
    • Container Registry.
    • Azure Arc.
    • Azure Compute, zoals op ARM64 gebaseerde virtuele Azure-machines (VM's) en high-performance computing.
    • Azure-netwerkservices en connectiviteitsservices, zoals Azure ExpressRoute.

De volgende werkstromen laten zien hoe een ontwikkelaar virtuele tests voor autosoftware definieert, organiseert en uitvoert.

Werkstroom: vECUs implementeren

In deze oplossing wordt beschreven hoe een ontwikkelaar van autosoftware voor het fictieve bedrijf Contoso Automotive gebruikmaakt van de automotive SDV-hulpprogrammaketen om:

  • Stel binnen enkele minuten een ontwikkelomgeving in.
  • Activeer een updatewijziging in de SIL-cloudinfrastructuur om een vECU te implementeren die wordt uitgevoerd op een OP ARM64 gebaseerde VM.

Contoso Automotive voegt een nieuwe HPC-eenheid (High Performance Compute) toe aan een aankomend voertuigmodel en moet een nieuw ontwikkelteam onboarden om containertoepassingen te ontwikkelen. De hardware voor het voertuig is nog niet beschikbaar, maar gecomprimeerde tijdlijnen betekenen dat de softwarefunctionaliteit parallel moet worden ontwikkeld en gevalideerd.

Diagram met de onderdelen en werkstroom van de auto-SDV-hulpprogrammaketen. Download een PowerPoint-bestand van deze architectuur.

  1. De autoontwikkelaar maakt en maakt verbinding met een Microsoft-ontwikkelvak. Het ontwikkelvak is vooraf geconfigureerd met alle vereiste ontwikkelhulpprogramma's (zoals Visual Studio Code en Android Studio) en alle vereiste extensies (zoals GitHub Copilot) die compatibel zijn met de Contoso Automotive-toepassingen.

  2. De automotive ontwikkelaar voert een check-out uit van de automotive toepassingscode en metagegevens die de toekomstige voertuigconfiguratie, de meegeleverde HPC's en ECU's beschrijft, en de vereiste implementatie om SIL-validatie uit te voeren.

  3. De automotive ontwikkelaar gebruikt metagegevensextensies om configuraties aan te passen, zoals het wijzigen van de kenmerken van de HPC op basis van nieuwe informatie van het technische team.

  4. Als u de configuratie wijzigt, wordt de extensie voor het verwerken van metagegevensgeactiveerd. Het voert validatie van metagegevens uit, genereert alle vereiste artefacten en configureert een implementatiecampagne voor de uitvoeringsomgeving.

  5. Nadat alle configuratiewijzigingen zijn voltooid, verzendt de ontwikkelaar een pull-aanvraag die een GitHub-actie activeert voor implementatie.

  6. De GitHub-implementatieactie activeert de metagegevens en indelingsservices, waarmee de implementatiecampagne wordt uitgevoerd.

  7. De metagegevens- en indelingsservices de Azure-ontwikkelomgeving gebruiken om de vereiste rekenkracht te implementeren om de nieuwe versie van de elektronische architectuur voor auto's te simuleren.

  8. De metagegevens- en indelingsservices de gewenste status van de berekening instellen op basis van de campagne. De services gebruiken het artefactarchief om de vereiste vHPC- en ECU-installatiekopieën te koppelen en te configureren.

Werkstroom: Software via the air (SOTA) updates voor autotoepassingen

Contoso Automotive wil in containers geplaatste automotive-toepassingen implementeren in zijn technische testpark om integratietests uit te voeren. De automotive ontwikkelaar bouwt, test en valideert de nieuwe versie van de toepassing en implementeert deze in het voertuig.

diagram met een software-updatearchitectuur. Download een PowerPoint-bestand van deze architectuur.

  1. De autoontwikkelaar maakt een release. De release bevat een definitie van de gewenste status voor de softwarestackcontainer en een definitie van de build.

  2. De hulpprogrammaketen- en indelingsservices het releaseproces activeren. De services implementeren de vereiste infrastructuur voor het bouwen, valideren en vrijgeven van softwarecontainers.

  3. Tijdens de uitvoering worden de toepassingen gebouwd, gevalideerd en vrijgegeven met hulpprogramma's op basis van containers. Afhankelijk van de vereisten van de hulpprogramma's kunnen ze worden geïmplementeerd in Azure Kubernetes Service (AKS) voor containertoepassingen of kunnen ze worden geïmplementeerd op toegewezen VM's.

    Nadat de build is voltooid, worden de resultaten gepusht naar Container Registry voor vrijgegeven containers en worden de wijzigingen geregistreerd in de OTA-server.

  4. De OTA-client heeft een toegewezen OTA-agent voor toepassingen op basis van containers. De gewenste statuszoekende agent maakt verbinding met de hulpprogrammaketen- en indelingsservices om de gewenste statusdefinitie op te halen.

  5. De containerindeling engine downloadt en activeert de gewenste containers uit Container Registry.

Werkstroom: Autosoftwarestack

In deze oplossing synchroniseert een algemene autosoftwarestack de status met de Azure-cloud.

De stack heeft de volgende onderdelen:

  • Met een serviceregister kunnen services binnen het voertuig worden geregistreerd en gedetecteerd.

  • Met het dynamisch onderwerpbeheer kunnen services berichten abonneren en publiceren naar benoemde onderwerpen, waarbij het communicatieprotocol wordt geabstraheerd.

  • De digitale dubbelservice in het voertuig onderhoudt de status van het voertuig, inclusief signalen van ECU's en rekeneenheden, zoals AD/ADAS en infotainment.

  • De digitale dubbel cloudsynchronisatie synchroniseert de lokale staat van het voertuig met de status in de cloud om digitale producten en services te bieden waarvoor geen directe verbinding met de auto is vereist.

diagram met de architectuur van de softwarestack. Download een PowerPoint-bestand van deze architectuur.

  1. Alle onderdelen registreren hun mogelijkheden via het serviceregister.

  2. Vehicle Compute- registreert de statusbeschrijvingen bij de digitale dubbelprovider van de digitale dubbelservice in het voertuig. Na de registratie kunnen de rekeneenheden updates publiceren over hun status.

    1. Voertuig berekenen complexe statusobjecten en interacties registreert.
    2. Voertuig-ECU's registreren welke signalen beschikbaar zijn voor autotoepassingen en welke opdrachten kunnen worden geaccepteerd.
  3. De digitale dubbel in het voertuig statuswijzigingen en updates publiceert in het dynamisch onderwerpbeheer. Deze updates zijn ingedeeld in onderwerpen.

  4. Automotive-toepassingen kunnen zich abonneren op berichten van elke bron die wordt beheerd door het dynamische onderwerpbeheer. Deze toepassingen zijn geabonneerd op relevante onderwerpen en reageren op statuswijzigingen. Ze kunnen ook hun eigen berichten publiceren.

  5. De digitale dubbelservice in het voertuig publiceert ook geselecteerde onderwerpen naar de cloudsynchronisatie van digitale dubbels service.

  6. De digital twin-cloudsynchronisatie kan een cartograaf gebruiken om de onderwerpnamen (via een digital twin mapping service) toe te wijzen aan de equivalente namen in de cloud. Deze harmonisatie vermindert de afhankelijkheid tussen voertuig- en cloudsoftware en tussen voertuigmodellen.

  7. De cloudconnector updates publiceert naar de cloud en abonneert zich op statuswijzigingen die zijn gepubliceerd door andere services en toepassingen.

  8. Azure Event Grid de berichten doorstuurt naar de relevante services en toepassingen. De toestand van het voertuig wordt opgeslagen via diensten. Zo kan Azure Cache voor Redis de laatst bekende waarde opslaan voor snelle toegang en ophalen, en Azure Data Explorer- kan de geschiedenis en analyse van de status van voertuigen op korte termijn bieden.

Onderdelen

De volgende GitHub- en Azure-onderdelen worden in deze architectuur gebruikt.

Ontwikkelhulpprogramma's

  • Container Registry is een service die u kunt gebruiken voor het bouwen, opslaan en beheren van containerinstallatiekopieën en artefacten in een privéregister voor alle typen containerimplementaties. Automotive software heeft op containers gebaseerde automotive toepassingen en workloads aangenomen. De SDV-hulpprogrammaketen maakt gebruik van Azure-containerregisters voor containerontwikkeling, implementatieprocessen en pijplijnen.

  • Dev Box biedt ontwikkelaars selfservicetoegang tot kant-en-klare werkstations in de cloud, ook wel ontwikkelvakken genoemd die kunnen worden aangepast met projectspecifieke hulpprogramma's, broncode en vooraf gedefinieerde binaire bestanden voor directe werkstroomintegratie.

  • GitHub is een ontwikkelplatform dat u kunt gebruiken om code te hosten en te controleren, projecten te beheren, samen te werken en software te bouwen naast ontwikkelaars die zich binnen of buiten uw organisatie bevinden.

  • Visual Studio Code is een lichtgewicht broncode-editor die beschikbaar is voor Windows, macOS en Linux. Het heeft een uitgebreid ecosysteem van extensies voor verschillende talen en runtimes.

Uitvoeringsomgeving

  • Azure Deployment Environments biedt een vooraf geconfigureerde verzameling Azure-resources. Het stelt ontwikkelteams in staat om snel en eenvoudig een infrastructuur te maken met behulp van projectsjablonen. Sjablonen stellen consistentie en best practices vast terwijl de beveiliging wordt gemaximaliseerd.
  • Azure Compute- is een uitgebreide suite met cloudservices waarmee ontwikkelaars hun autosoftwarestacks, toepassingen en workloads op VM's en containers kunnen uitvoeren. Er zijn veel rekenvariëteiten, waaronder geoptimaliseerd voor geheugen, geoptimaliseerd voor CPU, hoge prestaties en rekenkracht voor algemeen gebruik.
  • Compute Gallery is een service die ondersteuning biedt voor versiebeheer en groepering van resources voor eenvoudig beheer. U kunt afbeeldingen delen met de community, tussen abonnementen en tussen Microsoft Entra ID-tenants. U kunt implementaties ook schalen met resourcereplica's in elke Azure-regio. Compute Gallery biedt structuur en organisatie voor autosoftwarestackartefacten.
  • Azure Arc vereenvoudigt governance en beheer en levert een consistente cloud aan hil-beheerplatform. Oem's voor auto's kunnen Azure Arc gebruiken om steeds complexere HIL-omgevingen in on-premises en clouddatacentra te beheren en te beheren.
  • Azure Blob Storage- is een service die zeer schaalbare objectopslag biedt voor elk type ongestructureerde gegevens, zoals afbeeldingen, video's, audio en documenten, dat autosoftwarestacks produceren en gebruiken.
  • Azure-netwerkservices wereldwijde, veilige en betrouwbare services zijn. Autosoftwarestacks en ontwikkelhulpprogramma's vereisen gegevensverwerkingspijplijnen, zodat ze toegang hebben tot HIL-farms om autonome en begeleide oplossingen te ontwikkelen en te testen. De netwerkservices in Azure bieden verschillende netwerkmogelijkheden, zoals connectiviteitsservices, toepassingsbeveiligingsservices, services voor toepassingslevering en netwerkbewaking.

Alternatieven

De Azure-services die u kiest voor uw implementatie van de architectuur, zijn afhankelijk van veel factoren.

In het voorbeeld in de sectie Dit scenario implementeren AKS gebruikt. Serverloze Kubernetes wordt gebruikt om microservices uit te voeren, beveiliging en governance op bedrijfsniveau te bieden en een geïntegreerde CI/CD-ervaring te bieden. Als alternatieve snelle en eenvoudige methode kunt u microservices uitvoeren in Azure Container Instances. In dit alternatief hoeft u geen service op een hoger niveau te gebruiken, zoals AKS.

In het voorbeeld in de sectie Dit scenario implementeren wordt het gebruik van Azure Event Hubs of Azure Service Bus voorgesteld om een uBus-service te implementeren. Zie Kiezen tussen Azure Messaging-servicesvoor meer informatie. Berichtenservices zijn vaak complementair en u kunt er meer dan één gebruiken.

De toepassingen en services in deze architectuur worden geïmplementeerd via Azure Resource Manager-sjablonen of Bicep. Als alternatief kunt u Terraform-scripts gebruiken om cloudinfrastructuur in te richten en te beheren.

Zie Alternatievenvoor alternatieven voor voertuigberichten, gegevens en analyselagen van de architectuur.

Scenariodetails

Autonome en verbonden SDV's openen een hele nieuwe wereld van functionaliteit, servicebaarheid en betrouwbaarheid. Wanneer hardware en software worden losgekoppeld, kunnen OEM's onafhankelijke toepassingen ontwikkelen om specifieke functies en services aan te pakken. Met deze methode kunt u eenvoudig software bijwerken en toevoegen aan het algemene voertuigplatform.

Automakers en hun leveranciers worden aangemoedigd om hun automobielactiviteiten aan te passen om flexibele softwareontwikkelingscycli mogelijk te maken, die flexibel en aanpasbaar zijn voor korte ontwikkelingscycli en frequente releases. Deze cycli zorgen voor samenwerking en continue verbetering.

Zonder een gestandaardiseerde, open en configureerbare hulpprogrammaketenstrategie hebben OEM's mogelijk een landschap van spreidingshulpprogramma's. Voor een echt flexibele strategie voor softwareontwikkeling moeten bedrijven beschikken over een uniforme hulpprogrammaketen die is gebaseerd op een modern cloudplatform dat systeemeigen is voor Azure. Het platform moet ontwikkelaars in staat stellen samen te werken en software opnieuw te gebruiken. Het moet ontwikkelaars van derden de mogelijkheid bieden om toepassingen te maken. Het platform is vooral nuttig voor ontwikkelaars die sterke software-expertise hebben, maar geen eerdere automotive hardware-ervaring.

Deze architectuur voor autovoorbeelden voldoet aan de eisen van de snel veranderende automobielindustrie. Het past het shift-left-principe toe, dat de vroege integratie van software- en hardwareonderdelen benadrukt. Het maakt continue tests en validatie mogelijk vanaf de vroege ontwikkelingsfasen. Virtualisatie speelt een belangrijke rol, waardoor virtuele prototypes en testomgevingen kunnen worden gemaakt om innovatie te versnellen en de vereisten voor fysieke prototypen te verminderen.

Het hart van deze architectuur is de robuuste AUTOMATISERING van CI/CD-pijplijnen, die zorgt voor naadloze integratie, testen en implementatie van software-updates gedurende de levenscyclus van het voertuig. Deze flexibiliteit maakt snelle software-updates mogelijk, waarmee beveiligingsproblemen onmiddellijk worden aangepakt, de prestaties worden verbeterd en nieuwe functies worden geleverd. Het helpt consumenten een veilige, functierijke rijervaring te bieden.

In het volgende diagram ziet u een algemeen overzicht van de architectuur van de auto-SDV-hulpprogrammaketen.

diagram met SDV-scenario's. Download een PowerPoint-bestand van deze architectuur.

Mogelijke gebruiksvoorbeelden

  • onboarding van ontwikkelaars: implementeer een volledig geconfigureerde ontwikkelomgeving voor auto's om de onboarding van autosoftwareontwikkelaars te versnellen.

  • Efficiënte ontwikkeling: simuleer het gedrag van verschillende hardware- en softwarecombinaties. Verminder de afhankelijkheid van rand- of in-vehicle silicium vroeg in het ontwikkelingsproces.

  • SIL-validatie: voer geautomatiseerde build-, test- en validatiepijplijnen uit om het gedrag van uw softwaretoepassing te valideren. Gebruik rekenresources in de cloud voor een snellere ontwikkelingscyclus.

  • HIL-validatie: implementatie en bewaking van HIL-farms vereenvoudigen.

  • Test vlootvalidatie: verzamel metrische softwaregegevens, logboeken en traceringen van de softwaretoepassingen, evenals voertuigtelemetrie- en signaalgegevens. Gebruik deze gegevens om een uitgebreide weergave te maken van het gedrag van het voertuig voor validatie, hoofdoorzaakanalyse en goedkeuring.

  • Software releases: maak traceerbare softwarereleases die kunnen worden bijgewerkt en beheerd voor het wagenpark via DevOps-procedures.

  • continue verbetering: gebruik gegevens die uit het veld worden verzameld om verbeteringen in uw softwaretoepassingen te stimuleren.

Aanbevelingen

De volgende aanbevelingen helpen ervoor te zorgen dat u uw Azure-omgeving effectief beheert. Volg deze aanbevelingen, tenzij u een vereiste hebt die deze overschrijft.

  • Volg de aanbevolen procedures wanneer u Azure-services implementeert en configureert om een veilige, efficiënte en rendabele omgeving te garanderen.

  • Definieer uw Azure-resources op basis van uw implementatievereisten. Deze resources kunnen vm's, Kubernetes-clusters, berichtenservices en gegevens- en analyseservices omvatten.

  • Implementeer Resource Manager-sjablonen voor infrastructuur als code (IaC), zodat u uw implementatie kunt automatiseren en consistentie kunt onderhouden.

  • Implementeer op rollen gebaseerd toegangsbeheer (RBAC) om machtigingen te verlenen aan gebruikers en services op basis van minimale bevoegdheden.

  • Gebruik Azure Security Center om proactief beveiligingsrisico's te bewaken en te beperken.

  • Overweeg om Azure Load Balancers en beschikbaarheidssets of beschikbaarheidszones te gebruiken om de schaalbaarheid en redundantie te verbeteren.

  • Bewaak regelmatig de prestaties en het gebruik van uw Azure-resources, zodat u de kosten kunt optimaliseren en de prestaties kunt verbeteren. Gebruik hulpprogramma's zoals Azure Monitor en Microsoft Cost Management.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Frameworkvoor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijlervoor meer informatie.

U kunt een end-to-end-toepassingsinfrastructuur uitvoeren die servicegericht is en ondersteuning biedt voor de implementatie van een gedistribueerd communicatieprotocolplatform in Azure met moderne CI/CD. Als u deze oplossing gebruikt, hebt u een betrouwbare en maximaal beschikbare architectuur nodig. Zie AKS-overzichtvoor richtlijnen en best practices voor architectuur voor het beheren en uitvoeren van services op AKS.

HIL testen is een onmisbaar en essentieel onderdeel van het ontwikkelingsproces en teststrategie voor autosoftware. Wanneer u de netwerkarchitectuur voor HIL-farms ontwerpt en implementeert, kunt u overwegen ontwerpen voor hoge beschikbaarheid met ExpressRoute. Gebruik deze strategie om single points of failure te verminderen en de beschikbaarheid van externe omgevingen voor uw ontwikkel- en testteams te maximaliseren.

Veiligheid

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijlervoor meer informatie.

Beveiliging is een van de belangrijkste aspecten van een architectuur. Om de beveiliging van complexe systemen te waarborgen, moet u de zakelijke, sociale en technische voorwaarden begrijpen. Overweeg om de mogelijkheden voor codescans van GitHub te implementeren, zodat u beveiligingsproblemen en kritieke defecten vroeg in het ontwikkelingsproces kunt vinden en oplossen. GitHub ondersteunt de coderingsstandaarden AUTOSAR C++ en CERT C++, waarmee functionele veiligheidstoepassingen kunnen worden ontwikkeld.

Overweeg het beveiligen van uw end-to-end toeleveringsketen op GitHub.

Overweeg azure Key Vault te gebruiken om end-to-end beveiliging te behouden wanneer u gevoelige en bedrijfskritieke elementen verwerkt, zoals versleutelingssleutels, certificaten, verbindingsreeksen en wachtwoorden. Key Vault-beheerde HSM's (Hardware Security Modules) bieden een robuuste oplossing waarmee het volledige softwareontwikkelings- en toeleveringsketenproces wordt versterkt. Met door Key Vault beheerde HSM's kunt u autotoepassingen gebruiken om gevoelige assets veilig op te slaan en te beheren en ervoor te zorgen dat ze beschermd blijven tegen potentiële bedreigingen voor cyberbeveiliging. U kunt de beveiliging verder verbeteren door toegang en machtigingen voor kritieke resources te reguleren met RBAC.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatievoor meer informatie.

  • Wanneer u vECUs maakt, moet u ervoor zorgen dat de VM-grootte aan de vereisten voldoet. Als u de configuratie zo wijzigt dat deze groter is dan nodig, worden de kosten verhoogd, met name als meerdere machines parallel werken om langlopende taken uit te voeren.

  • Voor build-, validatie- en testtaken die niet tijdkritiek zijn, kunt u overwegen om Azure Spot Virtual Machineste gebruiken. U kunt profiteren van ongebruikte capaciteit en aanzienlijke kostenbesparingen in rekening brengen.

  • Als u een Azure Consumption Commitmenthebt, kunt u overwegen in aanmerking komende partneraanbiedingen te gebruiken vanuit Azure Marketplace wanneer u ontwikkelhulpprogramma's en vECU's implementeert in de uitvoeringsomgeving.

  • Zie Een AVOps-oplossing makenvoor tips over het uitvoeren van autonome werkbelastingen voor voertuigen.

  • Copilot biedt realtime codesuggesties en automatischecompletions, waardoor het softwareontwikkelingsproces wordt versneld. Autosoftwaretechnici kunnen Copilot gebruiken om snel en efficiënt code te schrijven, wat de tijd voor nieuwe voertuigfuncties en updates vermindert.

Operationele uitmuntendheid

Operationele uitmuntendheid omvat de operationele processen die een toepassing implementeren en deze in productie houden. Zie Overzicht van de operationele uitmuntendheidpijlervoor meer informatie.

De automotive SDV-hulpprogrammaketen omvat belangrijke software-engineeringstrategieën, zoals:

  • IaC-omgeving inrichten.
  • CI/CD-pijplijnen voor het bouwen en vrijgeven van autosoftwarestacks.
  • Geautomatiseerd testen om over te stappen op een shift-left-benadering.
  • Configuratie als code om configuratiedrift tussen omgevingen te voorkomen.

Overweeg deze belangrijke strategieën voor alle workloads te gebruiken voor consistentie, herhaling en vroege detectie van problemen.

Overweeg een infrastructuur die is ingeschakeld door Azure Arc om governance en beheer in Azure-cloud- en on-premises omgevingen, HIL-tests en validatiefarms te vereenvoudigen.

De ai-hulp van Copilot kan de algehele codekwaliteit verbeteren door de kans op menselijke fouten te verminderen en coderingsprocedures te standaardiseren. Code van hoge kwaliteit is van cruciaal belang in de automobielindustrie waar softwareveiligheid en betrouwbaarheid van cruciaal belang zijn.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om te schalen om te voldoen aan de vereisten die gebruikers op een efficiënte manier stellen. Zie Overzicht van de prestatie-efficiëntiepijlervoor meer informatie.

Bepaal taken in uw build- en testpijplijnen die u mogelijk parallelliseert om de efficiëntie van de prestaties te verbeteren.

Overweeg het implementeren van prestatie-efficiëntiepatronen voor performante toepassingen en workloads die zijn gebaseerd op het voorbeeld van het gedistribueerde communicatieprotocol in de volgende sectie.

Dit scenario implementeren

De belangrijkste tenant voor de Eclipse SDV is een codebron eerste benadering, die flexibiliteit biedt voor implementatie. In de volgende voorbeelden worden bestaande Eclipse-projecten gebruikt en worden de integratie met Azure-services beschreven.

Voorbeeld: Gedistribueerd communicatieprotocol in Azure

Eclipse uProtocol is een van de vele gedistribueerde communicatieprotocollen die worden gebruikt in de automobielindustrie. Het is een transportagnostisch, gelaagd communicatieprotocol dat voortbouwt op bestaande auto- en internetstandaarden. Het biedt een alomtegenwoordige taal voor detectie, abonnement en berichten, waarmee apps en services die op een heterogene systeem worden uitgevoerd, met elkaar kunnen communiceren.

In het volgende overzicht worden de services beschreven die nodig zijn om een gedistribueerd communicatieprotocol te implementeren. In dit voorbeeld worden uProtocol- en Azure-services gebruikt.

Overzicht

diagram met het gedistribueerde communicatieprotocol, uProtocol, in Azure. Download een PowerPoint-bestand van deze architectuur.

  • Berichten worden verzonden vanaf de cloudconnector van het voertuig naar Event Grid-. Berichten worden overgebracht via de uProtocol definitie via MQTT.

  • De cloudgateway is de cloudservice waarmee apparaten verbinding maken om te communiceren met het back-office-domein of -apparaat.

  • De uStreamer- is een gebeurtenis-dispatcher waarmee uEs- op apparaten naadloos kunnen communiceren met verschillende transportlaagprotocollen. Het voert functionaliteiten uit, zoals bestandsoverdracht en gebeurtenisbuffering. Wanneer gebeurtenissen bijvoorbeeld van het ene transport naar het andere worden verplaatst, stromen ze door de uStreamer. De uStreamer is vergelijkbaar met een IP-router.

  • De uBus is een berichtenbus die CA's tussen uEs over een gemeenschappelijk vervoer verzendt. Het biedt multicast- en doorstuurfunctionaliteit. Het werkt als een netwerkswitch.

  • De uCDS- biedt een middel voor uEs om elkaar te detecteren, inclusief hun locatie (adres) en eigenschappen.

  • De uSubscription- is een service voor abonnementsbeheer waarmee de ontwerppatronen van de uitgever en abonnee voor de uEs-worden beheerd.

  • De uTwin- is een lokale cache met gepubliceerde gebeurtenissen. De uTwin slaat het gepubliceerde bericht op via een primaire sleutel. Lokale softwareonderdelen kunnen de sleutel ophalen. Deze primaire sleutel is de volledige naam van het onderwerp, inclusief de apparaatnaam. De primaire sleutel vertegenwoordigt een onderwerp, dus alleen de laatste gebeurtenis van een bepaald onderwerp wordt opgeslagen in de uTwin. De verzameling gebeurtenissen die zijn opgeslagen in een uTwin-exemplaar van een apparaat, waarvan de sleutels een specifieke apparaatnaam bevatten, vertegenwoordigen de digitale dubbel van dat apparaat. Voorbeelden van voertuiggebeurtenissen zijn updates voor bandenspanning, vensterpositie, tandwielpositie en voertuigmodus (rijden of geparkeerd). Gebeurtenissen kunnen alle informatie zijn die in het voertuig wordt gepubliceerd en wordt gebruikt voor het bedienen van het voertuig of het activeren van de kenmerken ervan.

  • De uEs- zijn toepassingen en services die functionaliteit bieden aan eindgebruikers. Deze apps gebruiken de belangrijkste uEs voor detectie, abonnement en toegang tot de digitale dubbel.

In de volgende tabel ziet u voorgestelde services die relevant zijn voor een uProtocol-implementatie in Azure.

uProtocol-onderdeel Functionaliteit Azure-service
Cloudgateway MQTT-broker Event Grid
uStreamer Bestandsoverdracht, gebeurtenisbuffering, D2D-routering, protocolomzetting Event Hubs, Storage, Functions, AKS
uDiscovery Servicedetectie Microservices op AKS
uBus Multicast doorsturen Event Hubs, Service Bus, Event Grid
uSubscription Pub/subonderwerpbeheer Microservices op AKS
uTwin Laatst bekende status Azure Digital Twins, Azure Cache voor Redis

Zie de uProtocol GitHub-opslagplaatsvoor meer informatie over uProtocol-onderdelen, SDK's en documentatie.

Apparaten inrichten voor uProtocol

diagram met de inrichtingsstroom uProtocol. Download een PowerPoint-bestand van deze architectuur.

  1. Het fabriekssysteem het voertuigapparaat in de gewenste bouwtoestand in gebruik neemt. Inbedrijfstelling omvat firmware- en software-initiële installatie en configuratie. Als onderdeel van dit proces verkrijgt en schrijft het fabriekssysteem het apparaatcertificaat. De openbare-sleutelinfrastructuurprovider maakt het certificaat.

  2. Het fabriekssysteem registreert het voertuig en apparaat via de API voor voertuig- en apparaatinrichting.

  3. De apparaatregistratietoepassing registreert de apparaat-id in het apparaatinrichting en het apparaatregister.

  4. De informatie over verificatie en autorisatie wordt opgeslagen in Microsoft Entra ID.

  5. Het fabriekssysteem activeert de client voor apparaatinrichting om verbinding te maken met de device provisioning service. Het apparaat haalt de verbindingsgegevens op naar de toegewezen MQTT-brokerfunctie in Event Grid-.

  6. Het fabriekssysteem activeert het apparaat om voor het eerst verbinding te maken met de MQTT-brokerfunctie in Event Grid-. Event Grid verifieert het apparaat met het basiscertificaat voor clientverificatie en extraheert de clientgegevens.

  7. Event Grid beheert autorisatie voor toegestane onderwerpen via de apparaatgegevens die zijn opgeslagen in Microsoft Entra ID.

  8. Het OEM-dealersysteem activeert de registratie van een nieuw apparaat als een onderdeelvervanging vereist is.

Voorbeeld: Eclipse automotive software stack

In de volgende architectuur wordt een softwarestack voor auto's beschreven die is gebaseerd op Eclipse-projectonderdelen. In deze architectuur kan Eclipse uProtocol worden gebruikt als een communicatieprotocol.

Diagram met de architectuur voor de Eclipse SDV-softwarestack voor auto's. Download een PowerPoint-bestand van deze architectuur.

  • Eclipse Chariott is een gRPC-service die een gemeenschappelijke interface biedt voor interactie met toepassingen. Toepassingen kunnen zich registreren bij het serviceregister van Eclipse Chariott om hun mogelijkheden te adverteren en servicedetectie in te schakelen.

  • Eclipse Ibeji- biedt de mogelijkheid om een digitale weergave van de voertuigstatus en de mogelijkheden ervan uit te drukken via een uitbreidbare, open en dynamische architectuur die toegang biedt tot de voertuighardware, sensoren en mogelijkheden.

  • Eclipse Freyja is een toepassing die synchronisatie mogelijk maakt tussen de digitale dubbelstatus van het voertuig (de instantie digitale dubbel) en de digitale dubbelstatus in de cloud (de canonieke digitale dubbel).

  • Eclipse Agemo is een gRPC-service die functies voor publiceren en abonneren biedt voor toepassingen in het voertuig, waaronder Eclipse Ibeji en Eclipse Chariott.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.

Hoofdauteurs:

Andere inzenders:

Meld u aan bij LinkedIn als u niet-openbare LinkedIn-profielen wilt zien.

Volgende stappen