The buzzword Internet of Things (IoT) often conjures images of smart toasters or other smart household appliances, making it easy to miss that any internet-connected device can be a thing, and that IoT infrastructure provides solutions to very difficult business situations.
This is the first of a series of articles covering how to utilize IoT infrastructure from an enterprise point of view. This is just about household IoT, this is about Industrial IoT.
In cases where your intellectual property (IP) consists solely of business logic and data, then The Cloud is a perfect fit. A cloud provider handles the physical and logical computing resources to activate your business logic and house your data, as well as the interfaces necessary to access and maintain them. This could be a public cloud provider (i.e., Amazon Web Services [AWS]), or it could be a private cloud (i.e., an internal corporate data center). In either case, the maintainers of the business logic and data in that cloud are generally not the same as those maintaining the infrastructure.
The very nature of IoT combines electronics hardware manufacturing with cloud computing and all of the support and maintenance tasks of both. When the security, reliability, and relatively unbounded resources of The Cloud are not practically available, then you’re on the ground with the Internet of Things.
A few examples:
- Manufacturing Facilities– even completely manual manufacturing processes generate data and have materials and processes to track
- An industrial setting often makes for unreliable internet connections due to heavy equipment radio frequency (RF) interference and geographical location
- Heavy equipment requires process control and opportunities for improvement with machine learning (ML)
- Manufacturing with increasingly low margins means that data-driven decision-making is vital to be competitive, and that means collection and processing large quantities of data
- Devices with sensors and interfaces (screens, buttons, etc.) are needed to collect data, and those devices need to transmit that data for storage and processing
- Often manufacturing of a single widget is scattered across multiple facilities and often across multiple continents
- Physical Products– if there’s a processor in the product then likely it’ll need to talk to other devices, and that makes it a thing in the Internet of Things
- If there’s software then there’s likely a need to provide updates, and increasingly businesses rely on being able to update products in the field to meet timelines and deliver new features
- Many things need access to databases and have to cache that data intelligently
- Some things have to carry out tasks that are controlled and coordinated from other systems
- From an operations perspective, this means that “production” is wherever that thing is: on a customer’s desk, in the customer’s factory, in the customer’s shoe, or out to pasture
- Fleet Support– enterprises often have team members that need to work outside of a managed network and use devices that are vital to their job
- Utility workers, package carriers, etc. all use connected devices that are vital to their job
- Many times these devices are retrofitted smart phones or tablets, this doesn’t make them any
- Point of Sale– checkout registers, vending machines, interactive sales kiosks, etc.
- Often these devices need to coordinate with cloud resources to accomplish their tasks, such as a rental kiosk where you can reserve items from a web site
- Vending machines can report stock levels and internal sensor value in near-real-time to help coordinate restocking and maintenance
In all of these cases, the thing is in a relatively uncontrolled or unpredictable environment and may be operated by untrained or even hostile actors, yet they need to use vital business logic and access, store, manipulate, and report back vital data.
Many of these challenges such as hostile actors, unsanitary data, and access management are typical enterprise issues and have known existing solutions that apply directly to IoT. But when on the ground The Cloud’s guarantees of reliable internet connectivity, physical device security, and relatively unbounded computing capabilities are all gone. This is when IoT infrastructure is of value.
One of the defining aspects of IoT infrastructure is enabling limited-capability devices such as battery-powered and screen-less devices to connect to the internet. The simplicity and lack of complex input capabilities on these devices poses a different category of challenges.
In the articles that follow we’ll discuss how to utilize IoT infrastructure, starting from a high level and then diving deeper into the details, explaining what options currently exist and how to utilize them. We will cover the challenges that come up and how to implement solutions, including the at command line and code level.
We’ll also discuss patterns in typical cloud-based CI/CD, which ones are applicable to IoT and which ones are anti-patterns in IoT.