Building Connected Product Systems on GCP With Cloud IoT Core

DZone 's Guide to

Building Connected Product Systems on GCP With Cloud IoT Core

GCP is the latest cloud giant to offer a host of IoT services. Check out this overview of the Cloud IoT Core beta to see what benefits it brings to IoT development.

· IoT Zone ·
Free Resource

Image title

The release of GCP's Cloud IoT Core Beta gave us at Bright Wolf the opportunity to add support to our customizable industrial reference application for Google Cloud Platform, the most recent of the public cloud providers to provide IoT services. We’re now able to offer customers a live IoT system on GCP, Amazon Web Services (AWS), or Microsoft Azure with initial dashboards and alerts, and event data made ready for integration with their enterprise systems in 30 days or less.

Following up on the announcement of our official support for Google Cloud Platform, we’d like to share our development experience and highlight the areas where GCP truly excels.

Data Ingress and Egress

Moving data from one system to another is a key portion of any IoT system architecture. GCP uses the mature and full-featured Cloud Pub/Sub as a core component for moving messages around between system components. The wide range of methods for getting data in and out of a GCP-based IoT System make it easy to integrate with existing systems and accept data from a variety of sources. The MQTT configuration that Cloud IoT Core has enabled with Cloud Pub/Sub is very developer friendly. The support for custom protocols at Cloud Pub/Sub, as well as pull-based requests and guaranteed delivery, make it possible to unify brownfield legacy protocols with newer standards-based protocols at the Cloud Pub/Sub layer. This sort of approach will be very powerful for anyone looking to retrofit an existing fleet of devices in addition to enabling their new product lines.

Permission and Trust Model

Security is of paramount importance in IoT Systems. One of the more challenging aspects of any IoT System is making sure the Permission Model is designed and applied correctly. The GCP model of permissions, with sensible but overridable defaults values, makes it straightforward to reason about the roles of a given service and user. This should help developers to avoid building systems that accidentally leave data accessible to unauthorized parties. IoT-specific features like Device Registries help developers organize and manage groups of device, further helping reduce the likelihood of leakage of data due to accidental misconfiguration of the system. The use of strong certificate protection provides both security and device identity validation, further enhancing trust in the system.

Device Management and Over-The-Air Updates

The ability to manage and update a remote device should be one of the first concerns addressed by any Thing maker while developing their IoT solution. GCP’s leveraging of Android Things is extremely powerful in that regard. Devices and gateways with sufficient resources to run Android Things gain a tremendous amount of capability by leveraging the Android community and associated mechanisms for remotely managing devices and updates. The Device Registry features help make management more straight-forward and reduce the likelihood of operator error when performing management functions.

World-Class Machine Learning

One of the primary ways of extracting business value from an IoT system is through actions taken based on insights generated by Machine Learning algorithms. Regardless of whether your goal is predictive maintenance, asset optimization, or yield optimization, the ability to generate business value is going to rely very heavily on the suite of Machine Learning tools that are available to the IoT system. GCP’s Machine Learning services are some of the best in the industry and give IoT products some of the best tools to generate business outcomes.

google cloud platform ,iot ,cloud iot core ,iot security

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}