Den här exempelarkitekturen visar en metod från slutpunkt till slutpunkt för en oem-tillverkare (automotive original equipment manufacturer) och innehåller en referensarkitektur och flera publicerade stödbibliotek med öppen källkod som kan återanvändas. Microsoft har omcertifierat programvaran för vagnparkskontroll så att den är mycket tillgänglig, geo-redundant och leverantörsneutral och att köras i en hybridmolnkontext.
Arkitektur
Geo-redundans med noll stilleståndstid för redundans för 99,9 % tillgänglighet och haveriberedskap
Ladda ned en Visio-fil med den här arkitekturen.
Arbetsflöde
- En instans av serverdelen, som består av följande komponenter, distribueras till två Azure-regioner: Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager och Geo DB. IoT Hub ansluter till den uppsättning program som skapats med hjälp av en mikrotjänstarkitektur som kan distribueras i Azure App Service med hjälp av funktionen Web Apps i Azure App Service, Web App for Containers eller Kubernetes.
- Ett valsystem för ledare avgör vilken serverdel som kontrollerar AGV:er på verkstadsgolvet vid en viss tidpunkt. Om serverdelen i ledningen misslyckas överför ledarvalet omedelbart kontrollen till serverdelen i den andra regionen.
- Tack vare den här geo-redundanta och noll-stilleståndstidens redundansarkitektur uppnår AGV-kontrollprogramvaran som körs i Azure 99,9 % tillgänglighet, förutsatt att Internetanslutningen och externa undersystem, till exempel SAP, inte begränsar faktorerna.
Kubernetes och RabbitMQ för datacenteragnostiska distributioner
Ladda ned en Visio-fil med den här arkitekturen.
I scenarier där Internetanslutningen mellan en produktionsanläggning och Azure är en begränsande faktor kan vår AGV-kontrollprogramvara också distribueras till lokala beräkningsnoder. Genom att använda Kubernetes och RabbitMQ som plattformsoberoende tekniker distribueras programskiktet som beskrivs i föregående avsnitt på en Azure IoT Edge-enhet.
Implementering av VDA 5050-specifikationen för AGV-vendor-agnostic communication
Ladda ned en Visio-fil med den här arkitekturen.
Tack vare efterlevnaden av VDA 5050-fordonsanslutningsspecifikationen kan vår AGV-kontrollprogramvara kommunicera med alla typer av AGV:er från olika leverantörer som också följer VDA 5050.
Arbetsflöde
I den här arkitekturen kan du se en översikt över de olika tjänster och komponenter som används för att köra agv-vagnparkskontrolllösningen i Azure:
- När utvecklare checkar in ny kod genomsöker GitHub Actions automatiskt koden för att snabbt hitta sårbarheter och kodfel. Den kan också användas för att distribuera program och infrastrukturkomponenter automatiskt.
- Ett containerregister lagrar de containeravbildningar som används för de olika tjänsterna i AGV-vagnparkskontrollens serverdel.
- Serverdelstjänster distribueras till Web App for Containers.
- Dessa serverdelstjänster kan ansluta till externa system med hjälp av VDA 5050-protokollet. De kan också ansluta till en hanterad strömningsplattform, till exempel Kafka, och kan lagra fordonsinformation i en Azure SQL-databas.
- Azure Key Vault lagrar lösenord, nycklar och certifikat.
- Application Insights implementerar loggning och övervakning för de program som körs som serverdelstjänster.
- Hanterade identiteter ansluter till de olika tjänsterna och resurserna i Azure, vilket eliminerar behovet av att utvecklare hanterar autentiseringsuppgifter. De tillhandahåller en identitet som program kan använda när de ansluter till resurser som stöder Microsoft Entra-autentisering.
Komponenter
Azure App Service är en plattform som en tjänst (PaaS) för att skapa och vara värd för appar på hanterade virtuella datorer (VM). Den hanterar den underliggande beräkningsinfrastruktur som dina appar körs på. App Service tillhandahåller övervakning av resursanvändningskvoter och appmått, loggning av diagnostikinformation och aviseringar baserat på mått.
Azure Virtual Network är den grundläggande byggstenen för ditt privata nätverk i Azure. Med den här tjänsten kan många typer av Azure-resurser, till exempel Virtuella Azure-datorer, kommunicera säkert med varandra, Internet och lokala nätverk.
IoT Hub är en PaaS-hanterad tjänst som finns i molnet och som fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ett IoT-program och de enheter som det hanterar.
Azure Container Apps är en fullständigt hanterad serverlös containertjänst för att skapa och distribuera containrar i stor skala.
Azure Container Registry är en hanterad, privat Docker-registertjänst baserad på Docker Registry 2.0 med öppen källkod. Du kan använda Azure-containerregister med dina befintliga pipelines för containerutveckling och distribution, eller så kan du använda Azure Container Registry Tasks för att skapa containeravbildningar i Azure. Skapa på begäran eller automatisera helt versioner med utlösare, till exempel incheckningar av källkod och uppdateringar av basavbildningar.
Microsoft Entra ID är den molnbaserade identitets- och åtkomsthanteringstjänsten som autentiserar användare, tjänster och program.
Azure Storage erbjuder en hållbar, mycket tillgänglig och mycket skalbar molnlagringslösning. Den innehåller funktioner för objekt-, fil-, disk-, kö- och tabelllagring.
RabbitMQ är en programvara med öppen källkod för meddelandeköer som ursprungligen implementerade Advanced Message Queuing Protocol och har sedan dess utökats med en plugin-arkitektur för att stödja Streaming Text Oriented Messaging Protocol, MQ Telemetry Transport och andra protokoll.
Azure Virtual Machines tillhandahåller skalbara datorresurser på begäran som ger dig flexibiliteten i virtualisering, utan att behöva köpa och underhålla den fysiska maskinvaran.
Azure SQL Database är en fullständigt hanterad PaaS-databasmotor som hanterar de flesta av databashanteringsfunktionerna, till exempel uppgradering, korrigeringar, säkerhetskopieringar och övervakning, utan användarengagemang.
Azure Key Vault är en molntjänst för säker lagring och åtkomst till hemligheter. En hemlighet är allt som du vill kontrollera åtkomsten till, till exempel API-nycklar, lösenord, certifikat eller kryptografiska nycklar.
Application Insights, en funktion i Azure Monitor, är en utökningsbar tjänst för programprestandahantering (APM) för utvecklare och DevOps-proffs. Du kan använda den för att övervaka liveprogram. Den identifierar automatiskt prestandaavvikelser och innehåller kraftfulla analysverktyg som hjälper dig att diagnostisera problem och förstå vad användarna faktiskt gör med din app.
Alternativ
Den här arkitekturen använder Kubernetes och funktionen Web Apps i Azure App Service för att köra programmen för den här lösningen. Som ett alternativ kan du köra dessa mikrotjänster i Azure Container Instances, som erbjuder det snabbaste och enklaste sättet att köra en container i Azure, utan att behöva använda en tjänst på högre nivå, till exempel Azure Kubernetes Service (AKS).
Det lokala exemplet använder virtuella Azure-datorer, som också kan ersättas av containertekniker.
Ett annat alternativ för att köra dessa tjänster är i Azure Kubernetes Service (AKS). Detta erbjuder serverlösa Kubernetes för att köra mikrotjänster, en integrerad ci/CD-upplevelse (kontinuerlig integrering och kontinuerlig distribution) och säkerhet och styrning i företagsklass.
Överväg också att använda Azure Monitor i kombination med Application Insights för att analysera och optimera prestanda för dina program, containrar, databaser och andra resurser och för att övervaka och diagnostisera nätverksproblem.
Den här arkitekturen använder RabbitMQ som meddelandekö. Microsoft Azure har också inbyggt stöd för meddelandelösningar, till exempel Azure Queue Storage eller Azure Service Bus. En jämförelse finns i Azure Storage-köer och Service Bus-köer – jämförd och kontrasterad.
Programmen och tjänsterna i Azure distribueras med Hjälp av Terraform-skript . Överväg att använda Azure-interna Azure Resource Manager-mallar (ARM-mallar) eller Bicep för att skapa skript.
Information om scenario
Fordonstillverkning förlitar sig på automatiserade guidade fordon (AGV) för att leverera delar till monteringslinjer. AGV:er är en verksamhetskritisk del av just-in-time-tillverkning och automatiserad logistik på verkstadsgolvet. Butiksgolv som använder AGV:er står ofta inför tre utmaningar:
- Tillgänglighet. Alla tjänstavbrott stör produktionen.
- Anslutning. Butiksgolv saknar ofta en tillförlitlig anslutning till det offentliga molnet.
- Leverantörslåsning. Traditionella AGV-lösningar förlitar sig på upphovsrättsskyddade kommunikationsprotokoll.
Den här exempelarkitekturen är indelad i tre verksamhetsområden:
- En Azure-baserad referensarkitektur för flottkontroll med geo-redundans, redundans med noll stilleståndstid, 99,9 % tillgänglighet och effektiv haveriberedskap.
- En datacenteragnostisk och lokal distribution som bygger på Kubernetes och RabbitMQ.
- Leverantörsneutral AGV-kommunikation bygger på den gemensamma VDA 5050-specifikationen.
Potentiella användningsfall
Den här lösningen är idealisk för tillverknings-, fordons- och transportindustrin. Den gäller för följande scenarier:
- Kunden använder för närvarande AGV:er i sin tillverkningsprocess.
- Kunden har låg tillgänglighet med agv:erna, vilket påverkar deras avkastning på investeringen (ROI).
- Verkstadsgolvet har en inkonsekvent anslutning till det offentliga molnet.
- Kunden är medlem i Open Manufacturing Platform (OMP).
- Kunden är medlem i OMP:s arbetsgrupp för autonomt transportsystem (OMP ATS).
Viktiga problem
Lågkostnadsproduktion av varor bygger på automatisering av tillverkningsprocessen och just-in-time-leverans av delar till monteringslinjer. Genom att automatiskt transportera delar till monteringslinjer bidrar automatiserade guidade fordon både till just-in-time-tillverkning och till automatisering av logistik på verkstadsgolvet. I en typisk massproduktionsanläggning av personbilar rullas till exempel en personbil ut varje minut. Därför orsakar varje minuts avbrott i en monteringslinje i en produktionsanläggning en ekonomisk förlust – i storleksordningen tiotusentals us-dollar. Oem-tillverkare för fordon kräver hög tillförlitlighet och tillgänglighet för sina automatiserade system, och de står inför ett antal utmaningar:
- Tillgänglighetsproblem. Den befintliga AGV-maskinparkskontrollprogramvaran uppfyller inte tillgänglighetskravet på 99,9 %.
- Anslutningsproblem. Vissa produktionsanläggningar har inte en tillräckligt stabil Internetanslutning med den bandbredd som krävs för att möjliggöra kommunikationen mellan AGV-vagnparkskontrollprogramvaran som finns i azures offentliga moln och AGV:erna på verkstadsgolvet. Därför var det inte ett alternativ att vara värd för AGV-maskinparkskontrollprogramvaran i ett datacenter som ligger utanför intranätet för en sådan produktionsanläggning.
- Problem med AGV-leverantörslåsning. Det gick inte att byta ut befintliga AGV:er mot nya från en annan leverantör, eftersom AGV-maskinparkskontrollprogramvaran var beroende av det egna kommunikationsprotokollet för de befintliga AGV:erna.
En arkitektur som stöder geo-redundans med noll stilleståndstid vid redundans för 99,9 % tillgänglighet och haveriberedskap kan lösa dessa problem.
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Tillgänglighet och skalbarhet
De program och tjänster som utgör AGV-vagnparkskontrolllösningen distribueras till två Azure-regioner med hjälp av tillgänglighetszoner, som är unika fysiska platser i Azure-regioner som hjälper till att skydda virtuella datorer, program och data från datacenterfel. Azure App Service och AKS kan också distribueras i tillgänglighetszoner. IoT Hub ger hög tillgänglighet inom regionen genom att implementera redundanser i nästan alla lager i tjänsten.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.
Använd Microsoft Entra-ID för identitets- och åtkomstkontroll och använd Azure Key Vault för att hantera nycklar och hemligheter.
DevOps
För att distribuera mikrotjänster till Kubernetes eller Azure App Service automatiskt är det bäst att använda CI/CD-processer. Överväg att använda en lösning som Azure DevOps eller GitHub Actions.
Kostnadsoptimering
Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.
I allmänhet använder du Priskalkylatorn för Azure för att beräkna kostnader och använder AKS-kalkylatorn för att beräkna kostnaderna för att köra AKS i Azure. Mer information om andra överväganden finns i avsnittet "Kostnadsoptimering" i Microsoft Azure Well-Architected Framework.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- Gürcan Güleşir | Senior Program Manager
Nästa steg
Produktdokumentation:
- Application Insights
- Microsoft Entra ID
- Azure App Service
- Azure Container Instances
- Azure Container Registry
- Azure IoT Hub
- Azure Kubernetes Service
- Azure Key Vault
- Azure Monitor
- Azure SQL Database
- Azure Virtual Machines
- Azure Virtual Network
- GitHub
Microsofts utbildningsvägar:
- Introduktion till Azure IoT
- Introduktion till Kubernetes i Azure
- Administrera containrar i Azure
- Skapa mikrotjänster med .NET och ASP.NET Core
- Hantera identiteter och styrning för Azure-administratörer
Relaterade resurser
Översiktsartiklar för Azure Architecture Center:
- Arkitekturformat för mikrotjänster
- Välja ett Azure-beräkningsalternativ för mikrotjänster
- Webbprogram med zonredundant baslinje
- Webbprogram med hög tillgänglighet i flera regioner
- Avancerad arkitektur för Azure Kubernetes Service (AKS) för mikrotjänster
- CI/CD för AKS-appar med Azure Pipelines
Relaterade arkitekturer: