Estilo de arquitetura dos macrodadosBig data architecture style

As arquiteturas de macrodados servem para processar a ingestão, o processamento e a análise de dados que sejam demasiado grandes ou complexos para os sistemas de base de dados tradicionais.A big data architecture is designed to handle the ingestion, processing, and analysis of data that is too large or complex for traditional database systems.

Diagrama lógico de um estilo de arquitetura de macrodados

Normalmente, as soluções de macrodados envolvem um ou mais dos seguintes tipos de cargas de trabalho:Big data solutions typically involve one or more of the following types of workload:

  • Processamento em lotes de origens de macrodados inativas.Batch processing of big data sources at rest.
  • Processamento em tempo real de macrodados em movimento.Real-time processing of big data in motion.
  • Exploração interativa de macrodados.Interactive exploration of big data.
  • Análise preditiva e machine learning.Predictive analytics and machine learning.

A maioria das arquiteturas de macrodados incluem alguns ou todos os componentes abaixo:Most big data architectures include some or all of the following components:

  • Origens de dados: Todas as soluções de macrodados começam com uma ou mais origens de dados.Data sources: All big data solutions start with one or more data sources. Os exemplos incluem:Examples include:

    • Arquivos de dados de armazenamento, como bases de dados relacionais.Application data stores, such as relational databases.
    • Ficheiros estáticos produzidos por aplicações, como ficheiros de registo de servidores Web.Static files produced by applications, such as web server log files.
    • Origens de dados em tempo real, como dispositivos IoT.Real-time data sources, such as IoT devices.
  • Armazenamento de dados: Os dados para as operações de processamento em lotes são, normalmente, armazenados num arquivo de ficheiros distribuído que pode incluir elevados volumes de ficheiros grandes em diferentes formatos.Data storage: Data for batch processing operations is typically stored in a distributed file store that can hold high volumes of large files in various formats. Este tipo de arquivo é, muitas vezes, conhecido como data lake.This kind of store is often called a data lake. As opções para implementar este armazenamento incluem contentores do Azure Data Lake Store ou contentores de blobs no Armazenamento do Azure.Options for implementing this storage include Azure Data Lake Store or blob containers in Azure Storage.

  • Processamento em lotes: Uma vez que os conjuntos de dados são tão grandes, muitas vezes, as soluções de macrodados têm de processar os ficheiros de dados através de tarefas em lote de execução longa para filtrar, agregar e preparar os dados para análise.Batch processing: Because the data sets are so large, often a big data solution must process data files using long-running batch jobs to filter, aggregate, and otherwise prepare the data for analysis. Normalmente, estes trabalhos envolvem ler os ficheiros de origem, processá-los e escrever a saída em ficheiros novos.Usually these jobs involve reading source files, processing them, and writing the output to new files. As opções incluem executar trabalhos de U-SQL no Azure Data Lake Analytics, utilizar trabalhos de Hive, Pig ou Map/Reduce personalizados num cluster Hadoop do HDInsight ou utilizar programas de Java, Scala ou Python num cluster do HDInsight Spark.Options include running U-SQL jobs in Azure Data Lake Analytics, using Hive, Pig, or custom Map/Reduce jobs in an HDInsight Hadoop cluster, or using Java, Scala, or Python programs in an HDInsight Spark cluster.

  • Ingestão de mensagens em tempo real: Se a solução incluir origens em tempo real, a arquitetura tem de ter uma forma de capturar e armazenar as mensagens em tempo real para o processamento de fluxos.Real-time message ingestion: If the solution includes real-time sources, the architecture must include a way to capture and store real-time messages for stream processing. Pode ser um arquivo de dados simples, no qual as mensagens recebidas são largadas numa pasta para processamento.This might be a simple data store, where incoming messages are dropped into a folder for processing. No entanto, muitas soluções precisam que o arquivo de ingestão de mensagens funcione como memória intermédia para as mensagens e que suporte o processamento de escalamento horizontal, a entrega fiável e outras semânticas de colocação de mensagens em fila.However, many solutions need a message ingestion store to act as a buffer for messages, and to support scale-out processing, reliable delivery, and other message queuing semantics. As opções incluem os Hubs de Eventos do Azure, os Hubs IoT do Azure e o Kafka.Options include Azure Event Hubs, Azure IoT Hubs, and Kafka.

  • Processamento de Stream: Após a captura das mensagens em tempo real, a solução tem de processá-las ao filtrar, agregar e preparar os dados para análise.Stream processing: After capturing real-time messages, the solution must process them by filtering, aggregating, and otherwise preparing the data for analysis. Os dados de fluxos processados são, depois, escritos num sink de saída.The processed stream data is then written to an output sink. O Azure Stream Analytics disponibiliza um serviço de processamento em fluxo gerido e baseado em consultas SQL de execução permanente que funcionam em fluxos independentes.Azure Stream Analytics provides a managed stream processing service based on perpetually running SQL queries that operate on unbounded streams. Também pode utilizar tecnologias de código aberto de fluxos do Apache, como o Storm e o Spark Streaming, nos clusters do HDInsight.You can also use open source Apache streaming technologies like Storm and Spark Streaming in an HDInsight cluster.

  • Arquivo de dados analíticos: Muitas soluções de macrodados preparam os dados para análise e, em seguida, disponibilizam os dados processados num formato estruturado que pode ser consultado com ferramentas analíticas.Analytical data store: Many big data solutions prepare data for analysis and then serve the processed data in a structured format that can be queried using analytical tools. O arquivo de dados analíticos utilizado para disponibilizar estas consultas pode ser um armazém de dados relacional do tipo Kimball, conforme se vê na maioria das soluções de business intelligence (BI) tradicionais.The analytical data store used to serve these queries can be a Kimball-style relational data warehouse, as seen in most traditional business intelligence (BI) solutions. Em alternativa, os dados podem ser apresentados através de uma tecnologia NoSQL de baixa latência, como o HBase, ou de uma base de dados interativa Hive que fornece uma abstração de metadados em ficheiros de dados no arquivo de dados distribuído.Alternatively, the data could be presented through a low-latency NoSQL technology such as HBase, or an interactive Hive database that provides a metadata abstraction over data files in the distributed data store. O Azure SQL Data Warehouse proporciona um serviço gerido para armazéns de dados baseados na cloud e de grande escala.Azure SQL Data Warehouse provides a managed service for large-scale, cloud-based data warehousing. O HDInsight suporta o Interactive Hive, o HBase e o Spark SQL, que também podem ser utilizados para disponibilizar os dados para análise.HDInsight supports Interactive Hive, HBase, and Spark SQL, which can also be used to serve data for analysis.

  • Análises e relatórios: O objetivo da maioria das soluções de macrodados é proporcionar informações sobre os dados através de análises e relatórios.Analysis and reporting: The goal of most big data solutions is to provide insights into the data through analysis and reporting. Para permitir aos utilizadores analisar os dados, a arquitetura pode incluir uma camada de modelação de dados, como um cubo OLAP multidimensional ou um modelo de dados em tabela no Azure Analysis Services.To empower users to analyze the data, the architecture may include a data modeling layer, such as a multidimensional OLAP cube or tabular data model in Azure Analysis Services. Também pode suportar business intelligence de gestão personalizada através da utilização das tecnologias de modelação e visualização no Microsoft Power BI ou no Microsoft Excel.It might also support self-service BI, using the modeling and visualization technologies in Microsoft Power BI or Microsoft Excel. As análises e os relatórios também podem assumir a forma de exploração de dados interativa por parte de cientistas de dados ou analistas de dados.Analysis and reporting can also take the form of interactive data exploration by data scientists or data analysts. Nestes cenários, muitos serviços do Azure suportam blocos de notas analíticos, como o Jupyter, que permitem a estes utilizadores tirar partido das respetivas competências em Python ou R. Na exploração de dados em grande escala, pode utilizar o Microsoft R Server, seja autónomo ou com o Spark.For these scenarios, many Azure services support analytical notebooks, such as Jupyter, enabling these users to leverage their existing skills with Python or R. For large-scale data exploration, you can use Microsoft R Server, either standalone or with Spark.

  • Orquestração: A maioria das soluções de macrodados consiste em operações de processamento de dados repetidas, encapsuladas em fluxos de trabalho, que transformam os dados de origem, movem os dados entre várias origens e sinks, carregam os dados processados para um arquivo de dados analíticos ou enviam os resultados diretamente para um relatório ou dashboard.Orchestration: Most big data solutions consist of repeated data processing operations, encapsulated in workflows, that transform source data, move data between multiple sources and sinks, load the processed data into an analytical data store, or push the results straight to a report or dashboard. Para automatizar estes fluxos de trabalho, pode utilizar uma tecnologia de orquestração como o Azure Data Factory ou o Apache Oozie e o Sqoop.To automate these workflows, you can use an orchestration technology such Azure Data Factory or Apache Oozie and Sqoop.

O Azure inclui vários serviços que podem ser utilizados numa arquitetura de macrodados.Azure includes many services that can be used in a big data architecture. Inserem-se em aproximadamente duas categorias:They fall roughly into two categories:

  • Serviços geridos, incluindo Azure Data Lake Store, Azure Data Lake Analytics, Azure Data Warehouse, Azure Stream Analytics, Hubs de Eventos do Azure, Hub IoT do Azure e Azure Data Factory.Managed services, including Azure Data Lake Store, Azure Data Lake Analytics, Azure Data Warehouse, Azure Stream Analytics, Azure Event Hub, Azure IoT Hub, and Azure Data Factory.
  • Tecnologias de código aberto baseadas na plataforma Apache Hadoop, incluindo HDFS, HBase, Hive, Big, Spark, Storm, Oozie, Sqoop e Kafka.Open source technologies based on the Apache Hadoop platform, including HDFS, HBase, Hive, Pig, Spark, Storm, Oozie, Sqoop, and Kafka. Estas tecnologias estão disponíveis no Azure no serviço Azure HDInsight.These technologies are available on Azure in the Azure HDInsight service.

Estas opções não são mutuamente exclusivas e muitas soluções combinam tecnologias de código aberto e serviços do Azure.These options are not mutually exclusive, and many solutions combine open source technologies with Azure services.

Quando utilizar esta arquiteturaWhen to use this architecture

Considere este estilo de arquitetura se tiver de:Consider this architecture style when you need to:

  • Armazenar e processar dados em volumes demasiados grandes para uma base de dados tradicional.Store and process data in volumes too large for a traditional database.
  • Transformar dados não estruturados para análises e relatórios.Transform unstructured data for analysis and reporting.
  • Capturar, processar e analisar fluxos independentes de dados em tempo real ou com baixa latência.Capture, process, and analyze unbounded streams of data in real time, or with low latency.
  • Utilizar o Azure Machine Learning ou os Serviços Cognitivos da Microsoft.Use Azure Machine Learning or Microsoft Cognitive Services.

BenefíciosBenefits

  • Opções tecnológicas.Technology choices. Pode combinar e serviços geridos do Azure e tecnologias Apache em clusters do HDInsight, para aproveitar as competências atuais ou os investimentos em tecnologia.You can mix and match Azure managed services and Apache technologies in HDInsight clusters, to capitalize on existing skills or technology investments.
  • Desempenho através de paralelismo.Performance through parallelism. As soluções de macrodados tiram partido do paralelismo, permitindo soluções de elevado desempenho que se dimensionam para grandes volumes de dados.Big data solutions take advantage of parallelism, enabling high-performance solutions that scale to large volumes of data.
  • Dimensionamento elástico.Elastic scale. Todos os componentes na arquitetura de macrodados suportam o aprovisionamento de escalamento horizontal, para que possa ajustar a sua solução a cargas de trabalho pequenas ou grandes e pagar apenas pelos recursos que utilizar.All of the components in the big data architecture support scale-out provisioning, so that you can adjust your solution to small or large workloads, and pay only for the resources that you use.
  • Interoperabilidade com soluções existentes.Interoperability with existing solutions. Os componentes da arquitetura de macrodados também são utilizados para processamento de IoT e soluções de BI empresarial, que lhe permitem criar uma solução integrada em várias cargas de trabalho de dados.The components of the big data architecture are also used for IoT processing and enterprise BI solutions, enabling you to create an integrated solution across data workloads.

DesafiosChallenges

  • Complexidade.Complexity. As soluções de macrodados podem ser extremamente complexas, com numerosos componentes para processar a ingestão de dados de várias origens de dados.Big data solutions can be extremely complex, with numerous components to handle data ingestion from multiple data sources. Criar, testar e resolver problemas de processos de macrodados pode ser desafiante.It can be challenging to build, test, and troubleshoot big data processes. Além disso, poderá haver um grande número de definições de configuração em vários sistemas que têm de ser utilizadas para otimizar o desempenho.Moreover, there may be a large number of configuration settings across multiple systems that must be used in order to optimize performance.
  • Competências.Skillset. Muitas tecnologias de macrodados são altamente especializadas e utilizam estruturas e linguagens que não são típicas nas arquiteturas de aplicações mais comuns.Many big data technologies are highly specialized, and use frameworks and languages that are not typical of more general application architectures. Por outro lado, as tecnologias de macrodados estão a desenvolver novas APIs que se baseiam em linguagens mais estabelecidas.On the other hand, big data technologies are evolving new APIs that build on more established languages. Por exemplo, a linguagem U-SQL no Azure Data Lake Analytics baseia-se numa combinação de Transact-SQL e c#.For example, the U-SQL language in Azure Data Lake Analytics is based on a combination of Transact-SQL and C#. Da mesma forma, APIs baseadas em SQL estão disponíveis para Hive, HBase e Spark.Similarly, SQL-based APIs are available for Hive, HBase, and Spark.
  • Maturidade tecnológica.Technology maturity. Muitas das tecnologias utilizadas para macrodados estão a evoluir.Many of the technologies used in big data are evolving. Ao passo que as principais tecnologias Hadoop, como o Hive e o Pig, estabilizaram, as tecnologias emergentes, como o Spark, apresentam enormes alterações e melhorias a cada nova versão.While core Hadoop technologies such as Hive and Pig have stabilized, emerging technologies such as Spark introduce extensive changes and enhancements with each new release. Os serviços geridos como o Azure Data Lake Analytics e o Azure Data Factory são relativamente recentes quando comparados com outros serviços do Azure e é provável que evoluam ao longo do tempo.Managed services such as Azure Data Lake Analytics and Azure Data Factory are relatively young, compared with other Azure services, and will likely evolve over time.
  • Segurança.Security. Normalmente, as soluções de macrodados dependem do armazenamento de todos os dados estáticos num data lake centralizado.Big data solutions usually rely on storing all static data in a centralized data lake. Proteger o acesso a estes dados pode ser desafiante, especialmente quando os dados têm de ser ingeridos e consumidos por várias aplicações e plataformas.Securing access to this data can be challenging, especially when the data must be ingested and consumed by multiple applications and platforms.

Melhores práticasBest practices

  • Tirar partido do paralelismo.Leverage parallelism. A maioria das tecnologias de processamento de macrodados distribuem a carga de trabalho em várias unidades de processamento.Most big data processing technologies distribute the workload across multiple processing units. Para isso, os ficheiros de dados estáticos têm de ser criados e armazenados num formato divisível.This requires that static data files are created and stored in a splittable format. Os sistemas de ficheiros distribuídos, como, por exemplo, o HDFS, podem otimizar o desempenho de leitura e escrita e o processamento propriamente dito é realizado por múltiplos nós do cluster em paralelo, o que reduz os tempos globais dos trabalhos.Distributed file systems such as HDFS can optimize read and write performance, and the actual processing is performed by multiple cluster nodes in parallel, which reduces overall job times.

  • Dados de partição.Partition data. Regra geral, o processamento de lotes ocorre numa agenda periódica, como, por exemplo, semanal ou mensal.Batch processing usually happens on a recurring schedule — for example, weekly or monthly. Crie partições de ficheiros de dados e de estruturas de dados, como tabelas, com base em períodos de tempo que correspondam à agenda de processamento.Partition data files, and data structures such as tables, based on temporal periods that match the processing schedule. Desta forma, a ingestão de dados e o agendamento de trabalhos são simplificados, o que permite resolver falhas mais facilmente.That simplifies data ingestion and job scheduling, and makes it easier to troubleshoot failures. Além disso, as tabelas de partições que são utilizadas no Hive, no U-SQL ou nas consultas SQL podem melhorar significativamente o desempenho das consultas.Also, partitioning tables that are used in Hive, U-SQL, or SQL queries can significantly improve query performance.

  • Aplicar semântica de esquema na leitura.Apply schema-on-read semantics. A utilização de um data lake permite-lhe combinar o armazenamento de ficheiros em vários formatos, quer sejam estruturados, semiestruturados ou não estruturados.Using a data lake lets you to combine storage for files in multiple formats, whether structured, semi-structured, or unstructured. Utilize a semântica de esquema na leitura, que projeta um esquema nos dados quando estes são processados e não quando são armazenados.Use schema-on-read semantics, which project a schema onto the data when the data is processing, not when the data is stored. Esta opção acrescenta flexibilidade à solução e impede estrangulamentos durante a ingestão de dados provocados pela validação de dados e a verificação de tipo.This builds flexibility into the solution, and prevents bottlenecks during data ingestion caused by data validation and type checking.

  • Processar dados no local.Process data in-place. as soluções de BI tradicionais utilizam, frequentemente, um processo de extração, transformação e carregamento (ETL) para mover dados para um armazém de dados.Traditional BI solutions often use an extract, transform, and load (ETL) process to move data into a data warehouse. Com dados de volumes maiores e uma maior variedade de formatos, as soluções de macrodados, geralmente, utilizam variações de ETL, como transformação, extração e carregamento (TEL).With larger volumes data, and a greater variety of formats, big data solutions generally use variations of ETL, such as transform, extract, and load (TEL). Com esta abordagem, os dados são processados no arquivo de dados distribuído, que os transforma na estrutura necessária antes de os mover para um arquivo de dados analíticos.With this approach, the data is processed within the distributed data store, transforming it to the required structure, before moving the transformed data into an analytical data store.

  • Equilibrar os custos de utilização e de tempo.Balance utilization and time costs. Para as tarefas de processamento de lotes, é importante considerar dois fatores: O custo por unidade de nós de computação e o custo por minuto de utilização de nós para concluir a tarefa.For batch processing jobs, it's important to consider two factors: The per-unit cost of the compute nodes, and the per-minute cost of using those nodes to complete the job. Por exemplo, um trabalho de lote pode demorar horas oito com quatro nós de cluster.For example, a batch job may take eight hours with four cluster nodes. No entanto, poderá dar-se o caso de o trabalho utilizar os quatro nós apenas durante as duas primeiras horas e, depois disso, só são precisos dois nós.However, it might turn out that the job uses all four nodes only during the first two hours, and after that, only two nodes are required. Nesse caso, executar o trabalho inteiro em dois nós aumentaria o tempo total, mas não o duplicaria, pelo que o custo total seria inferior.In that case, running the entire job on two nodes would increase the total job time, but would not double it, so the total cost would be less. Em alguns cenários empresariais, pode ser preferível ter um tempo de processamento maior do que um custo superior associado à sub-utilização de recursos do cluster.In some business scenarios, a longer processing time may be preferable to the higher cost of using under-utilized cluster resources.

  • Recursos de cluster separados.Separate cluster resources. Quando implementa clusters do HDInsight, obtém, normalmente, um desempenho superior se aprovisionar recursos de cluster separados para cada tipo de carga de trabalho.When deploying HDInsight clusters, you will normally achieve better performance by provisioning separate cluster resources for each type of workload. Por exemplo, apesar de os clusters do Spark incluírem o Hive, se tiver de fazer processamentos exaustivos com o Hive e o Spark, deve considerar implementar clusters do Spark e do Hadoop dedicados em separado.For example, although Spark clusters include Hive, if you need to perform extensive processing with both Hive and Spark, you should consider deploying separate dedicated Spark and Hadoop clusters. Da mesma forma, se estiver a utilizar o HBase e o Storm para processamento de fluxos de baixa latência e o Hive para o processamento de lotes, considere implementar clusters separados para o Storm, o HBase e o Hadoop.Similarly, if you are using HBase and Storm for low latency stream processing and Hive for batch processing, consider separate clusters for Storm, HBase, and Hadoop.

  • Orquestrar a ingestão de dados.Orchestrate data ingestion. Em alguns casos, as aplicações empresariais já existentes podem escrever ficheiros de dados para processamento de lotes diretamente em contentores de blobs de armazenamento do Azure, onde podem ser consumidos pelo HDInsight ou o Azure Data Lake Analytics.In some cases, existing business applications may write data files for batch processing directly into Azure storage blob containers, where they can be consumed by HDInsight or Azure Data Lake Analytics. No entanto, muitas vezes, terá de orquestrar a ingestão de dados de origens no local ou externas no data lake.However, you will often need to orchestrate the ingestion of data from on-premises or external data sources into the data lake. Utilize um fluxo de trabalho ou um pipeline de orquestração, como os que o Azure Data Factory ou o Oozie suportam, para fazer a orquestração de forma previsível e gerida centralmente.Use an orchestration workflow or pipeline, such as those supported by Azure Data Factory or Oozie, to achieve this in a predictable and centrally manageable fashion.

  • Limpar os dados confidenciais no início.Scrub sensitive data early. O fluxo de trabalho de ingestão de dados deve limpar os dados confidenciais no início do processo, para evitar armazená-los no data lake.The data ingestion workflow should scrub sensitive data early in the process, to avoid storing it in the data lake.

Arquitetura de IoTIoT architecture

Internet das coisas (IoT) é um subconjunto especializado de soluções de macrodados.Internet of Things (IoT) is a specialized subset of big data solutions. O diagrama seguinte mostra uma arquitetura lógica possível para IoT.The following diagram shows a possible logical architecture for IoT. O diagrama realça os componentes de transmissão em fluxo de eventos da arquitetura.The diagram emphasizes the event-streaming components of the architecture.

Diagrama de uma arquitetura de IoT

O gateway de cloud ingere os eventos de dispositivos no limite da cloud, através de um sistema de mensagens fiável de baixa latência.The cloud gateway ingests device events at the cloud boundary, using a reliable, low latency messaging system.

Os dispositivos podem enviar eventos diretamente para o gateway de cloud ou através de um gateway de campo.Devices might send events directly to the cloud gateway, or through a field gateway. Um gateway de campo é um software ou dispositivo especializado, normalmente na mesma localização dos dispositivos, que recebe eventos e os reencaminha para o gateway de cloud.A field gateway is a specialized device or software, usually colocated with the devices, that receives events and forwards them to the cloud gateway. O gateway de campo também pode pré-processar os eventos de dispositivos não processados, ao executar funções como a filtragem, a agregação ou a transformação de protocolos.The field gateway might also preprocess the raw device events, performing functions such as filtering, aggregation, or protocol transformation.

Após a ingestão, os eventos passam por um ou mais processadores de fluxos que podem encaminhar os dados (por exemplo, para o armazenamento) ou realizar análises e outros processamentos.After ingestion, events go through one or more stream processors that can route the data (for example, to storage) or perform analytics and other processing.

Seguem-se alguns tipos comuns de processamento.The following are some common types of processing. (Esta lista não é de todo exaustiva.)(This list is certainly not exhaustive.)

  • Escrita de dados de eventos no armazenamento amovível, para arquivo ou análise de lotes.Writing event data to cold storage, for archiving or batch analytics.

  • Análise de caminhos de acesso frequente, mediante a análise do fluxo de eventos (quase) em tempo real, para detetar anomalias, reconhecer padrões ao longo de períodos de tempo sucessivos ou acionar alertas quando ocorre uma condição específica no fluxo.Hot path analytics, analyzing the event stream in (near) real time, to detect anomalies, recognize patterns over rolling time windows, or trigger alerts when a specific condition occurs in the stream.

  • Processamento de tipos especiais de mensagens sem ser de telemetria provenientes dos dispositivos, como notificações e alarmes.Handling special types of non-telemetry messages from devices, such as notifications and alarms.

  • Aprendizagem automática (Machine Learning).Machine learning.

As caixas apresentadas com um sombreado cinzento mostram os componentes de um sistema de IoT que não estão diretamente relacionados com a transmissão em fluxo de eventos, mas são incluídos aqui a fim de proporcionar uma perspetiva completa.The boxes that are shaded gray show components of an IoT system that are not directly related to event streaming, but are included here for completeness.

  • O registo de dispositivos é uma base de dados de dispositivos aprovisionados, incluindo os IDs dos dispositivos e, normalmente, os metadados dos dispositivos, como a localização.The device registry is a database of the provisioned devices, including the device IDs and usually device metadata, such as location.

  • A API de aprovisionamento é uma interface externa comum para aprovisionar e registar novos dispositivos.The provisioning API is a common external interface for provisioning and registering new devices.

  • Algumas soluções de IoT permitem o envio de mensagens de comando e controlo para os dispositivos.Some IoT solutions allow command and control messages to be sent to devices.

Esta secção apresentou uma vista muito abrangente da IoT e existem muitas pequenas nuances e desafios a ter em consideração.This section has presented a very high-level view of IoT, and there are many subtleties and challenges to consider. Para ter acesso a um debate e uma arquitetura de referência mais detalhados, veja Arquitetura de referência do Microsoft Azure IoT (PDF para transferência).For a more detailed reference architecture and discussion, see the Microsoft Azure IoT Reference Architecture (PDF download).

Passos SeguintesNext steps