Azure IoT-referensarkitektur

Blob Storage
Functions
IoT Hub
Logic Apps
Stream Analytics

Den här referensarkitekturen visar en rekommenderad arkitektur för IoT-program på Azure med PaaS-komponenter (plattform som en tjänst).This reference architecture shows a recommended architecture for IoT applications on Azure using PaaS (platform-as-a-service) components.

Diagram över arkitekturen

IoT-program kan beskrivas som saker (enheter) som skickar data som genererar insikter.IoT applications can be described as things (devices) sending data that generates insights. De här insikterna genererar åtgärder för att förbättra ett företag eller en process.These insights generate actions to improve a business or process. Ett exempel är en motor (saken) som skickar temperaturdata.An example is an engine (the thing) sending temperature data. Dessa data används för att utvärdera om motorn fungerar som förväntat (insikten).This data is used to evaluate whether the engine is performing as expected (the insight). Insikten används för att proaktivt prioritera underhållsschemat för motorn (åtgärden).The insight is used to proactively prioritize the maintenance schedule for the engine (the action).

Den här referensarkitekturen använder Azure PaaS-komponenter (plattform som en tjänst).This reference architecture uses Azure PaaS (platform-as-a-service) components. Ett annat rekommenderat alternativ för att skapa IoT-lösningar på Azure är:Another recommended option for building IoT solutions on Azure is:

  • Azure-IoT Central.Azure IoT Central. IoT Central är en fullständigt hanterad SaaS-lösning (programvara som en tjänst).IoT Central is a fully managed SaaS (software-as-a-service) solution. Den abstraherar de tekniska valen så att du kan fokusera enbart på lösningen.It abstracts the technical choices and lets you focus on your solution exclusively. Den här enkelheten medför en kompromiss eftersom den är mindre anpassningsbar än en PaaS-baserad lösning.This simplicity comes with a tradeoff in being less customizable than a PaaS-based solution.

På en hög nivå finns det två sätt att bearbeta telemetridata, het sökväg (hot path) och kall sökväg (cold path).At a high level, there are two ways to process telemetry data, hot path and cold path. Skillnaden har att göra med krav på svarstid och dataåtkomst.The difference has to do with requirements for latency and data access.

  • Den heta sökvägen analyserar data nästan i realtid, när de anländer.The hot path analyzes data in near-real-time, as it arrives. I den heta sökvägen måste telemetri bearbetas med mycket kort svarstid.In the hot path, telemetry must be processed with very low latency. Den heta sökvägen implementeras vanligtvis med en strömbearbetningsmotor.The hot path is typically implemented using a stream processing engine. Utdata kan utlösa en avisering eller skrivas till ett strukturerat format som kan efterfrågas med analysverktyg.The output may trigger an alert, or be written to a structured format that can be queried using analytical tools.
  • Den kalla sökvägen utför batchbearbetning med längre intervall (varje timme eller varje dag).The cold path performs batch processing at longer intervals (hourly or daily). Den kalla sökvägen hanterar vanligtvis stora mängder data, men resultatet behöver inte vara lika snabbt som den heta sökvägen.The cold path typically operates over large volumes of data, but the results don't need to be as timely as the hot path. I den kalla sökvägen inhämtas råtelemetri och skickas sedan till en batchprocess.In the cold path, raw telemetry is captured and then fed into a batch process.

ArkitekturArchitecture

Den här arkitekturen består av följande komponenter.This architecture consists of the following components. Vissa program kanske inte kräver alla komponenter som anges här.Some applications may not require every component listed here.

IoT-enheter.IoT devices. Enheter kan på ett säkert sätt registrera med molnet, och kan ansluta till molnet för att skicka och ta emot data.Devices can securely register with the cloud, and can connect to the cloud to send and receive data. Vissa enheter kan vara gränsenheter som utför viss databehandling på själva enheten eller i en fältgateway.Some devices may be edge devices that perform some data processing on the device itself or in a field gateway. Vi rekommenderar Azure IoT Edge för gränsbearbetning.We recommend Azure IoT Edge for edge processing.

Molngateway.Cloud gateway. En molngateway tillhandahåller en molnhubb så att enheter kan ansluta säkert till molnet och skicka data.A cloud gateway provides a cloud hub for devices to connect securely to the cloud and send data. Den tillhandahåller också funktioner för enhetshantering, bland annat kontroll av enheter.It also provides device management, capabilities, including command and control of devices. För molngatewayen rekommenderar vi IoT Hub.For the cloud gateway, we recommend IoT Hub. IoT Hub är en värdbaserad molntjänst som matar in händelser från enheter och fungerar som en asynkron meddelandekö mellan enheter och serverdelstjänster.IoT Hub is a hosted cloud service that ingests events from devices, acting as a message broker between devices and backend services. IoT Hub tillhandahåller säkra anslutningar, händelseinmatning, dubbelriktad kommunikation och enhetshantering.IoT Hub provides secure connectivity, event ingestion, bidirectional communication, and device management.

Enhets etablering.Device provisioning. För registrering och anslutning av stora uppsättningar enheter rekommenderar vi att du använder IoT Hub Device Provisioning Service (DPS).For registering and connecting large sets of devices, we recommend using the IoT Hub Device Provisioning Service (DPS). Med DPS kan du tilldela och registrera enheter till specifika Azure IoT Hub-slutpunkter i stor skala.DPS lets you assign and register devices to specific Azure IoT Hub endpoints at scale.

Bearbetning av dataströmmen.Stream processing. Strömbearbetning analyserar stora strömmar med dataposter och utvärderar regler för de strömmarna.Stream processing analyzes large streams of data records and evaluates rules for those streams. För strömbearbetning rekommenderar vi Azure Stream Analytics.For stream processing, we recommend Azure Stream Analytics. Stream Analytics kan köra komplexa analyser i stor skala, med hjälp av tidsfönsterfunktioner, strömsammansättningar och externa datakällkopplingar.Stream Analytics can execute complex analysis at scale, using time windowing functions, stream aggregations, and external data source joins. Ett annat alternativ är Apache Spark på Azure Databricks.Another option is Apache Spark on Azure Databricks.

Maskininlärning gör det möjligt att köra förutsägande algoritmer för historiska telemetridata, vilket möjliggör scenarier som exempelvis förutsägande underhåll.Machine learning allows predictive algorithms to be executed over historical telemetry data, enabling scenarios such as predictive maintenance. För maskininlärning rekommenderar vi Azure Machine Learning.For machine learning, we recommend Azure Machine Learning.

Varm sökvägslagring innehåller data som måste vara tillgängliga direkt från enheten för rapportering och visualisering.Warm path storage holds data that must be available immediately from device for reporting and visualization. För varm sökvägslagring rekommenderar vi Cosmos DB.For warm path storage, we recommend Cosmos DB. Cosmos DB är en globalt distribuerad databas för flera modeller.Cosmos DB is a globally distributed, multi-model database.

Kall sökvägslagring innehåller data som sparas på längre sikt och används för batchbearbetning.Cold path storage holds data that is kept longer-term and is used for batch processing. För kall sökvägslagring rekommenderar vi Azure Blob Storage.For cold path storage, we recommend Azure Blob Storage. Data kan arkiveras i Blob Storage på obestämd tid till låg kostnad och är lättillgängliga för batchbearbetning.Data can be archived in Blob storage indefinitely at low cost, and is easily accessible for batch processing.

Datatransformering ändrar eller aggregerar telemetriströmmen.Data transformation manipulates or aggregates the telemetry stream. Exempel innefattar protokolltransformering, till exempel konvertering av binärdata till JSON eller kombinering av datapunkter.Examples include protocol transformation, such as converting binary data to JSON, or combining data points. Om data måste transformeras innan de når IoT Hub rekommenderar vi att du använder en protokollgateway (visas inte).If the data must be transformed before reaching IoT Hub, we recommend using a protocol gateway (not shown). Annars kan data transformeras efter att de når IoT Hub.Otherwise, data can be transformed after it reaches IoT Hub. I så fall bör du använda Azure Functions, som har inbyggd integrering med IoT Hub, Cosmos DB och Blob Storage.In that case, we recommend using Azure Functions, which has built-in integration with IoT Hub, Cosmos DB, and Blob Storage.

Affärsprocessintegration utför åtgärder baserat på insikter från enhetsdata.Business process integration performs actions based on insights from the device data. Det kan omfatta att lagra informationsmeddelanden, utlösa larm, skicka e-post- eller SMS-meddelanden eller integrera med CRM.This could include storing informational messages, raising alarms, sending email or SMS messages, or integrating with CRM. Vi rekommenderar att du använder Azure Logic Apps för affärsprocessintegration.We recommend using Azure Logic Apps for business process integration.

Användarhantering begränsar vilka användare eller grupper som kan utföra åtgärder med enheter, till exempel uppgradera inbyggd programvara.User management restricts which users or groups can perform actions on devices, such as upgrading firmware. Den definierar också funktioner för användare i program.It also defines capabilities for users in applications. Vi rekommenderar att du använder Azure Active Directory för att autentisera och auktorisera användare.We recommend using Azure Active Directory to authenticate and authorize users.

Med säkerhets övervakning Azure Security Center för IoT får du en komplett säkerhets lösning för IoT-arbetsbelastningar och fören klar sitt skydd genom att leverera enhetlig synlighet och kontroll, anpassningsbart hot skydd och intelligent hot identifiering och svar mellan arbets belastningar från löv enheter genom Edge och upp till molnet.Security monitoring Azure Security Center for IoT provides an end-to-end security solution for IoT workloads and simplifies their protection by delivering unified visibility and control, adaptive threat prevention, and intelligent threat detection and response across workloads from leaf devices through Edge as well as up through the clouds.

SkalbarhetsövervägandenScalability considerations

Ett IoT-program bör skapas som diskreta tjänster som kan skalas oberoende av varandra.An IoT application should be built as discrete services that can scale independently. Tänk på följande skalbarhetspunkter:Consider the following scalability points:

IoTHub.IoTHub. För IoT Hub bör du tänka på följande skalningsfaktorer:For IoT Hub, consider the following scale factors:

  • Maximal dagskvot för meddelanden till IoT Hub.The maximum daily quota of messages into IoT Hub.
  • Kvot för anslutna enheter i en IoT Hub-instans.The quota of connected devices in an IoT Hub instance.
  • Inmatningsdataflöde — hur snabbt IoT Hub kan mata in meddelanden.Ingestion throughput — how quickly IoT Hub can ingest messages.
  • Bearbetningsdataflöde — hur snabbt inkommande meddelanden bearbetas.Processing throughput — how quickly the incoming messages are processed.

Varje IoT-hubb etableras med ett visst antal enheter på en specifik nivå.Each IoT hub is provisioned with a certain number of units in a specific tier. Nivå och antal enheter avgör den maximala dagskvoten för meddelanden som enheter kan skicka till hubben.The tier and number of units determine the maximum daily quota of messages that devices can send to the hub. Mer information finns i Kvoter och begränsningar för IoT Hub.For more information, see IoT Hub quotas and throttling. Du kan skala upp en hubb utan att avbryta befintliga åtgärder.You can scale up a hub without interrupting existing operations.

Stream Analytics.Stream Analytics. Stream Analytics-jobb skalas bäst om de är parallella vid alla punkter i Stream Analytics-pipelinen, från indata till fråga till utdata.Stream Analytics jobs scale best if they are parallel at all points in the Stream Analytics pipeline, from input to query to output. Ett fullständigt parallellt jobb gör det möjligt för Stream Analytics att dela upp arbetet på flera beräkningsnoder.A fully parallel job allows Stream Analytics to split the work across multiple compute nodes. Annars måste Stream Analytics kombinera strömdata på ett och samma ställe.Otherwise, Stream Analytics has to combine the stream data into one place. Mer information finns i Utnyttja frågeparallellisering i Azure Stream Analytics.For more information, see Leverage query parallelization in Azure Stream Analytics.

IoT Hub partitionerar automatiskt enhetsmeddelanden baserat på enhets-ID.IoT Hub automatically partitions device messages based on the device ID. Alla meddelanden från en viss enhet anländer alltid på samma partition, men en enskild partition har meddelanden från flera enheter.All of the messages from a particular device will always arrive on the same partition, but a single partition will have messages from multiple devices. Därför är enheten för parallellisering partitions-ID.Therefore, the unit of parallelization is the partition ID.

Functions.Functions. Vid läsning från Event Hubs-slutpunkten finns det ett maximum för funktionsinstans per händelsehubbpartition.When reading from the Event Hubs endpoint, there is a maximum of function instance per event hub partition. Maximal bearbetningsfrekvens avgörs av hur snabbt en funktionsinstans kan bearbeta händelserna från en enskild partition.The maximum processing rate is determined by how fast one function instance can process the events from a single partition. Funktionen bör bearbeta meddelanden i batchar.The function should process messages in batches.

Cosmos DB.Cosmos DB. Om du vill skala ut en Cosmos DB-samling skapar du samlingen med en partitionsnyckel och anger partitionsnyckeln i varje dokument du skriver.To scale out a Cosmos DB collection, create the collection with a partition key and include the partition key in each document that you write. Mer information finns i Metodtips när du väljer en partitionsnyckel.For more information, see Best practices when choosing a partition key.

  • Om du lagrar och uppdaterar ett enskilt dokument per enhet är enhets-ID en bra partitionsnyckel.If you store and update a single document per device, the device ID is a good partition key. Skrivningar fördelas jämnt mellan nycklarna.Writes are evenly distributed across the keys. Storleken på varje partition är strikt begränsad, eftersom det finns ett enskilt dokument för varje nyckelvärde.The size of each partition is strictly bounded, because there is a single document for each key value.
  • Om du lagrar ett separat dokument för varje enhetsmeddelande skulle gränsen på 10 GB per partition snabbt överskridas med enhets-ID som partitionsnyckel.If you store a separate document for every device message, using the device ID as a partition key would quickly exceed the 10-GB limit per partition. Meddelande-ID är en bättre partitionsnyckel i så fall.Message ID is a better partition key in that case. Vanligtvis skulle du fortfarande ange enhets-ID i dokumentet för indexering och frågor.Typically you would still include device ID in the document for indexing and querying.

Azure Time Series Insights (TSD) är en analys-, lagrings-och visualiserings tjänst för Time Series-data, vilket ger funktioner som SQL-liknande filtrering och agg regering, vilket minskar behovet av användardefinierade funktioner.Azure Time Series Insights (TSI) is an analytics, storage and visualization service for time-series data, providing capabilities including SQL-like filtering and aggregation, alleviating the need for user-defined functions. Time Series Insights tillhandahåller en data Utforskare för att visualisera och fråga efter data samt REST-API: er för frågor.Time Series Insights provides a data explorer to visualize and query data as well as REST Query APIs. Förutom Time Series-data passar TSD också bra för lösningar som behöver fråga samman mängder av stora data uppsättningar.In addition to time series data, TSI is also well-suited for solutions that need to query aggregates over large sets of data. Med stöd för lagring med flera lager, omfattande API: er, modell och dess integrering med Azure IoT-eko system, Explorer för visualiseringar och utöknings barhet via Power BI osv. TSD är vår rekommendation för tids serie data lagring och analys.With support for multi layered storage, rich APIs, model and it’s integration with Azure IoT ecosystem, explorer for visualizations, and extensibility through Power BI, etc. TSI is our recommendation for time series data storage and analytics.

SäkerhetsövervägandenSecurity considerations

Tillförlitlig och säker kommunikationTrustworthy and secure communication

All information som tas emot från och skickas till en enhet måste vara tillförlitlig.All information received from and sent to a device must be trustworthy. Om en enhet inte kan hantera följande kryptografifunktioner bör den begränsas till lokala nätverk och all internätverkskommunikation bör gå via en fältgateway:Unless a device can support the following cryptographic capabilities, it should be constrained to local networks and all internetwork communication should go through a field gateway:

  • Datakryptering med en bevisbart säker, offentligt analyserad och brett implementerad krypteringsalgoritm med symmetrisk nyckel.Data encryption with a provably secure, publicly analyzed, and broadly implemented symmetric-key encryption algorithm.
  • Digital signatur med en bevisbart säker, offentligt analyserad och brett implementerad signaturalgoritm med symmetrisk nyckel.Digital signature with a provably secure, publicly analyzed, and broadly implemented symmetric-key signature algorithm.
  • Stöd för antingen TLS 1.2 för TCP eller andra strömbaserade kommunikationsvägar eller DTLS 1.2 för datagrambaserade kommunikationsvägar.Support for either TLS 1.2 for TCP or other stream-based communication paths or DTLS 1.2 for datagram-based communication paths. Stöd för hantering av X.509-certifikat är valfritt och kan ersättas med det beräknings- och överföringseffektivare läget med i förväg delade nycklar för TLS, som kan implementeras med stöd för AES- och SHA-2-algoritmerna.Support of X.509 certificate handling is optional and can be replaced by the more compute-efficient and wire-efficient pre-shared key mode for TLS, which can be implemented with support for the AES and SHA-2 algorithms.
  • Uppdateringsbart nyckellager och nycklar per enhet.Updateable key-store and per-device keys. Varje enhet måste ha unikt nyckelmaterial eller token som identifierar den mot systemet.Each device must have unique key material or tokens that identify it toward the system. Enheterna bör lagra nyckeln på ett säkert sätt på enheten (till exempel med hjälp av ett säkert nyckellager).The devices should store the key securely on the device (for example, using a secure key-store). Enheten bör kunna uppdatera nycklar eller token med jämna mellanrum eller reaktivt i nödsituationer, till exempel ett systemintrång.The device should be able to update the keys or tokens periodically, or reactively in emergency situations such as a system breach.
  • Inbyggd programvara och program på enheten måste tillåta uppdateringar för att möjliggöra reparation av identifierade säkerhetsrisker.The firmware and application software on the device must allow for updates to enable the repair of discovered security vulnerabilities.

Men många enheter är för begränsade för att kunna hantera de här kraven.However, many devices are too constrained to support these requirements. I så fall bör en fältgateway användas.In that case, a field gateway should be used. Enheter ansluter på ett säkert sätt till fältgatewayen via ett lokalt nätverk och gatewayen möjliggör säker kommunikation till molnet.Devices connect securely to the field gateway through a local area network, and the gateway enables secure communication to the cloud.

Fysiskt manipuleringsskyddPhysical tamper-proofing

Vi rekommenderar starkt att enhetens design har funktioner som skyddar mot försök till fysisk manipulering, för att säkerställa säkerhet, integritet och tillförlitlighet för hela systemet.It is strongly recommended that device design incorporates features that defend against physical manipulation attempts, to help ensure the security integrity and trustworthiness of the overall system.

Till exempel:For example:

  • Välj mikrokontrollanter/mikroprocessorer eller extra maskin vara som tillhandahåller säker lagring och användning av kryptografiska nyckel material, till exempel TPM-integrering (Trusted Platform Module).Choose microcontrollers/microprocessors or auxiliary hardware that provides secure storage and use of cryptographic key material, such as trusted platform module (TPM) integration.
  • Säkert startprogram och säker programinläsning, förankrade i TPM.Secure boot loader and secure software loading, anchored in the TPM.
  • Använd sensorer för att identifiera intrångsförsök och försök att manipulera enhetsmiljön med aviseringar och potentiell ”digital självförstörelse” av enheten.Use sensors to detect intrusion attempts and attempts to manipulate the device environment with alerting and potentially "digital self-destruction" of the device.

Ytterligare säkerhetsöverväganden finns i Säkerhetsarkitektur för Sakernas Internet (IoT).For additional security considerations, see Internet of Things (IoT) security architecture.

Övervakning och loggningMonitoring and logging

Loggnings- och övervakningssystem används för att fastställa om lösningen fungerar och för att felsöka problem.Logging and monitoring systems are used to determine whether the solution is functioning and to help troubleshoot problems. Övervaknings- och loggningssystem hjälper dig att besvara följande frågor om drift:Monitoring and logging systems help answer the following operational questions:

  • Är enheter eller system i ett feltillstånd?Are devices or systems in an error condition?
  • Är enheter eller system korrekt konfigurerade?Are devices or systems correctly configured?
  • Genererar enheter eller system korrekta data?Are devices or systems generating accurate data?
  • Uppfyller system både företagets och slutkundernas förväntningar?Are systems meeting the expectations of both the business and end customers?

Loggnings- och övervakningsverktyg består vanligtvis av följande fyra komponenter:Logging and monitoring tools are typically comprised of the following four components:

  • Visualiseringsverktyg för systemets prestanda och tidslinje för att övervaka systemet och för grundläggande felsökning.System performance and timeline visualization tools to monitor the system and for basic troubleshooting.
  • Buffrad datainmatning, för att buffra loggdata.Buffered data ingestion, to buffer log data.
  • Persistencelager för att lagra loggdata.Persistence store to store log data.
  • Sök- och frågefunktioner, för att visa loggdata för användning i detaljerad felsökning.Search and query capabilities, to view log data for use in detailed troubleshooting.

Övervakningssystem ger insikter i en IoT-lösnings hälsa, säkerhet, stabilitet och prestanda.Monitoring systems provide insights into the health, security, and stability, and performance of an IoT solution. De här systemen kan också ge en mer detaljerad vy, där de registrerar ändringar av komponentkonfiguration och tillhandahåller extraherade loggningsdata som kan lyfta fram potentiella säkerhetsproblem, förbättra incidenthanteringsprocessen och hjälpa systemets ägare att felsöka problem.These systems can also provide a more detailed view, recording component configuration changes and providing extracted logging data that can surface potential security vulnerabilities, enhance the incident management process, and help the owner of the system troubleshoot problems. Omfattande övervakningslösningar innehåller möjligheten att efterfråga information för specifika undersystem eller aggregering över flera undersystem.Comprehensive monitoring solutions include the ability to query information for specific subsystems or aggregating across multiple subsystems.

Utveckling av övervakningssystem bör börja med att definiera felfri drift, regelefterlevnad och granskningskrav.Monitoring system development should begin by defining healthy operation, regulatory compliance, and audit requirements. Mått som samlas in kan vara:Metrics collected may include:

  • Fysiska enheter, gränsenheter och infrastrukturkomponenter som rapporterar konfigurationsändringar.Physical devices, edge devices, and infrastructure components reporting configuration changes.
  • Program som rapporterar konfigurationsändringar, säkerhetsgranskningsloggar, begärandefrekvenser, svarstider, felfrekvenser och skräpinsamlingsstatistik för hanterade språk.Applications reporting configuration changes, security audit logs, request rates, response times, error rates, and garbage collection statistics for managed languages.
  • Databaser, persistencelager och cacheminnen som rapporterar fråge- och skrivprestanda, schemaändringar, säkerhetsgranskningslogg, låsningar eller deadlocks, indexprestanda, CPU, minne och diskanvändning.Databases, persistence stores, and caches reporting query and write performance, schema changes, security audit log, locks or deadlocks, index performance, CPU, memory, and disk usage.
  • Hanterade tjänster (IaaS, PaaS, SaaS och FaaS) som rapporterar hälsomått och konfigurationsändringar som påverkar beroende systems hälsa och prestanda.Managed services (IaaS, PaaS, SaaS, and FaaS) reporting health metrics and configuration changes that impact dependent system health and performance.

Visualisering av övervakningsmått uppmärksammar operatörer på systemproblem och underlättar incidenthantering.Visualization of monitoring metrics alert operators to system instabilities and facilitate incident response.

SpårningstelemetriTracing telemetry

Spårningstelemetri gör att en operatör kan följa förloppet för telemetri från att den skapades och genom systemet.Tracing telemetry allows an operator to follow the journey of a piece of telemetry from creation through the system. Spårning är viktigt för felsökning.Tracing is important for debugging and troubleshooting. För IoT-lösningar som använder Azure IoT Hub och SDK:erna för IoT Hub-enheter kan spårningsdatagram ha sitt ursprung som meddelanden från moln till enhet och ingå i telemetriströmmen.For IoT solutions that use Azure IoT Hub and the IoT Hub Device SDKs, tracing datagrams can be originated as Cloud-to-Device messages and included in the telemetry stream.

LoggningLogging

Loggningssystem är avgörande för att förstå vilka åtgärder eller aktiviteter en lösning har utfört, fel som har inträffat och kan ge hjälp med att åtgärda de felen.Logging systems are integral in understanding what actions or activities a solution has performed, failures that have occurred, and can provide help in fixing those failures. Loggar kan analyseras för att förstå och åtgärda fel, förbättra prestanda och säkerställa att regler och förordningar följs.Logs can be analyzed to help understand and remedy error conditions, enhance performance characteristics, and ensure compliance with governing rule and regulations.

Oformaterad loggning har mindre påverkan på utvecklingskostnader i förskott, men det är svårare för en dator att parsa/läsa.Though plain-text logging is lower impact on upfront development costs, it is more challenging for a machine to parse/read. Vi rekommenderar att strukturerad loggning används, eftersom insamlad information både kan parsas av datorer och läsas av människor.We recommend structured logging be used, as collected information is both machine parsable and human readable. Strukturerad loggning lägger till situationssammanhang och -metadata i logginformationen.Structured logging adds situational context and metadata to the log information. I strukturerad loggning är egenskaper ”first class citizens” formaterade som nyckel/värde-par eller med ett fast schema, för att förbättra sök- och frågefunktioner.In structured logging, properties are first class citizens formatted as key/value pairs, or with a fixed schema, to enhance search and query capabilities.

DevOps-övervägandenDevOps considerations

Använd infrastrukturen som kod (IaC).Use the Infrastructure as code (IaC). IaC är hanteringen av infrastruktur (nätverk, virtuella datorer, belastningsutjämnare och nätverkstopologi) med en deklarativ metod.IaC is the management of infrastructure (networks, virtual machines, load balancers, and connection topology) with a declarative approach. Mallarna bör vara versioner av och en del av pipelinen för release.Templates should be versioned and part of the release pipeline. De mest tillförlitliga distributions processerna är automatiserade och idempotenta.The most reliable deployment processes are automated and idempotent. Ett sätt är att skapa Azure Resource Manager mall för att tillhandahålla IoT-resurser och infrastrukturen.One way is to create Azure Resource Manager template for provisioning the IoT resources and the infrastructure.

Om du vill automatisera distributionen av infrastrukturen kan du använda Azure DevOps Services, Jenkins eller andra CI/CD-lösningar.To automate infrastructure deployment, you can use Azure DevOps Services, Jenkins, or other CI/CD solutions. Azure-pipelines ingår i Azure DevOps Services och kör automatiserade versioner, tester och distributioner.Azure Pipelines is part of Azure DevOps Services and runs automated builds, tests, and deployments.

Överväg att mellanlagra arbets belastningarna genom att distribuera till olika steg och köra valideringar i varje steg innan du går vidare till nästa. på så sätt kan du skicka uppdateringar till produktions miljöer på ett starkt styrt sätt och minimera oväntade distributions problem.Consider staging your workloads by deploying to various stages and running validations at each stage before moving on to the next one; that way you can push updates to your production environments in a highly controlled way and minimize unanticipated deployment issues. De blå och gröna distributions- och Kanarie-versionerna är rekommenderade distributions strategier för att uppdatera Live-produktions miljöer.Blue-green deployment and Canary releases are recommended deployment strategies for updating live production environments. Överväg också att ha en bra återställnings strategi för när en distribution Miss lyckas. Du kan till exempel automatiskt omdistribuera en tidigare, lyckad distribution från distributions historiken, flaggan--rollback-On-Error i Azure CLI är ett bra exempel.Also consider having a good rollback strategy for when a deployment fails; for example you could automatically redeploy an earlier, successful deployment from your deployment history, the --rollback-on-error flag parameter in Azure CLI is good example.

Överväg att övervaka din lösning med hjälp av Azure Monitor.Consider monitoring your solution by using Azure Monitor. Azure Monitor är den huvudsakliga källan för övervakning och loggning för alla dina Azure-tjänster, så tillhandahåller diagnostikinformation för Azure-resurser.Azure Monitor is the main source of monitoring and logging for all your Azure services, it provides diagnostics information for Azure resources. Du kan till exempel övervaka de åtgärder som sker i din IoT-hubb.You can for example, monitor the operations that take place within your IoT hub. Det finns vissa mått och händelser som Azure Monitor stöder, samt tjänster, scheman och kategorier för Azure Diagnostic-loggar.There are specific metrics and events that Azure Monitor supports, as well as services, schemas, and categories for Azure Diagnostic Logs.

Mer information finns i avsnittet DevOps i Microsoft Azure Well-Architected Framework.For more information, see the DevOps section in Microsoft Azure Well-Architected Framework.

KostnadsövervägandenCost considerations

I allmänhet använder du pris Kalkylatorn för Azure för att beräkna kostnaderna.In general, use the Azure pricing calculator to estimate costs. Andra överväganden beskrivs i avsnittet Cost i Microsoft Azure Well-Architected Framework.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Det finns olika sätt att optimera kostnader som är kopplade till tjänsterna som används i denna referens arkitektur.There are ways to optimize costs associated the services used in this reference architecture.

Azure IoT HubAzure IoT Hub

I den här arkitekturen är IoT Hub den moln-gateway som matar in händelser från enheter.In this architecture, IoT Hub is the cloud gateway that ingests events from devices. IoT Hub debitering varierar beroende på typ av åtgärd.IoT Hub billing varies depending on the type of operation. Skapa, uppdatera, infoga och ta bort är kostnads fria.Create, update, insert, delete are free. Lyckade åtgärder som till exempel enhet till molnet och meddelanden från molnet till enheten debiteras.Successful operations such as device-to-cloud and cloud-to-device messages are charged.

Meddelanden från enheten till molnet skickas ut i 4 KB-segment vid ingångar i IoT Hub.Device-to-cloud messages sent successfully are charged in 4-KB chunks on ingress into IoT Hub. Till exempel debiteras ett 6 KB-meddelande som två meddelanden.For example, a 6-KB message is charged as two messages.

IoT Hub underhåller tillståndsinformation om varje ansluten enhet i en enhet med dubbla JSON-dokument.IoT Hub maintains state information about each connected device in a device twin JSON document. Läs åtgärder från en enhets dubbla dokument debiteras.Read operations from a device twin document are charged.

IoT Hub erbjuder två nivåer: Basic och standard.IoT Hub offers two tiers: Basic and Standard.

Överväg att använda standard nivån om din IoT-arkitektur använder dubbelriktade kommunikations funktioner.Consider using the Standard tier if your IoT architecture uses bi-directional communication capabilities. Den här nivån erbjuder också en kostnads fri version som passar bäst för test ändamål.This tier also offers a free edition that is most suited for testing purposes.

Om du bara behöver enkelriktad kommunikation från enheter till molnet använder du Basic -nivån, som är billigare.If you only need uni-directional communication from devices to the cloud, use the Basic tier, which is cheaper.

Mer information finns i IoT Hub prissättning.For more information, see IoT Hub Pricing.

Azure Stream AnalyticsAzure Stream Analytics

Azure Stream Analytics används för data bearbetning och utvärdering av regler.Azure Stream Analytics is used for stream processing and rules evaluation. Azure Stream Analytics priss ätts antalet enheter för strömning (SU) per timme, vilket tar i beräkning, minne och data flöde som krävs för att bearbeta data.Azure Stream Analytics is priced by the number of Streaming Units (SU) per hour, which takes into compute, memory, and throughput required to process the data. Azure Stream Analytics på IoT Edge faktureras per jobb.Azure Stream Analytics on IoT Edge is billed per job. Faktureringen startar när ett Stream Analytics jobb distribueras till enheter, oavsett jobb status, körs, misslyckades eller stoppas.Billing starts when a Stream Analytics job is deployed to devices regardless of the job status, running, failed, or stopped.

Mer information om priser finns i Stream Analytics prissättning.For more information about pricing, see Stream Analytics pricing.

Azure FunctionsAzure Functions

Azure Functions används för att transformera data när de har nått IoT Hub.Azure Functions is used to transform data after it reaches the IoT Hub. Från ett kostnads perspektiv är rekommendationen att använda förbruknings planen eftersom du endast betalar för de beräknings resurser som du använder.From a cost perspective, the recommendation is to use consumption plan because you pay only for the compute resources you use. Du debiteras baserat på resurs förbrukning per sekund varje gång en händelse utlöser körningen av funktionen.You are charged based on per-second resource consumption each time an event triggers the execution of the function. Att bearbeta flera händelser i en enda körning eller batchar kan minska kostnaderna.Processing several events in a single execution or batches can reduce cost.

Azure Logic AppsAzure Logic Apps

I den här arkitekturen används Logic Apps för integrering av affärs processer.In this architecture, Logic Apps is used for business process integration.

Prissättningen för Logic Apps fungerar på modellen betala per användning.Logic apps pricing works on the pay-as-you-go model. Utlösare, åtgärder och anslutnings körningar mäts varje gången en Logic App körs.Triggers, actions, and connector executions are metered each time a logic app runs. Alla lyckade och misslyckade åtgärder, inklusive utlösare, betraktas som körningar.All successful and unsuccessful actions, including triggers, are considered as executions.

Din Logic app bearbetar till exempel 1000 meddelanden per dag.For instance, your logic app processes 1000 messages a day. Ett arbets flöde med fem åtgärder kostar mindre än $6.A workflow of five actions will cost less than $6.

Mer information finns i Logic Apps prissättning.For more information, see Logic Apps pricing.

DatalagringData Storage

För lagring av kyl Sök vägar är Azure Blob Storage det mest kostnads effektiva alternativet.For cold path storage, Azure Blob Storage is the most cost-effective option.

Överväg att använda Azure Cosmos DB för lagring av varma sökvägar.For warm path storage, consider using Azure Cosmos DB. Mer information finns i Cosmos DB prissättning.For more information, see Cosmos DB pricing.

Nästa stegNext steps