Scaling your IoT System without the headaches
Why realistic data simulations hold the answer to scaling challenges
Congratulations! You’re developing a new IoT technology. Awesome! You probably started with a big idea on how to solve a pressing need, or important problem. But, now that you have your idea there’s a catch: as a developer you will need to convert the idea into a real IoT system. This will require modern development best practices.
Usually, IoT developers struggle with some form of device access. They either..
If developers don’t have access to sufficient devices or data, how can they ensure high application quality?
Let’s say, for example, your idea is to create an intelligent irrigation system to help farmers conserve water. To scale this IoT system, you would need to test it by collecting small data samples from a prototype environment. Your prototype system may include soil moisture sensors, humidity sensors, and a sprinkler system across a one-acre plot on a farmer’s field. The sensors have a wireless connection that feeds their data to your app in the cloud. Your app has access to current weather patterns in the region and can analyze the data to determine if additional water is needed. If additional water is needed, the app wirelessly activates the sprinkler system until sensors indicate that the soil moisture is at optimal levels. This prototype allows you to collect preliminary data that you can use for app development and testing. This method works fine in general, but it does involve setting up physical sensors at the farm which adds complexity, and can often be challenging for software development.
Setting up a few sensors to collect data works during prototyping, but what happens when you need to launch your product? In the irrigation example, I described the components needed for a 1-acre plot. The app might work perfectly in that scenario. However, farmer’s fields can take up hundreds of acres…
Can your system keep up with all the data and provide information in a timely manner? Scaling would require creating more IoT devices, which is very expensive and time consuming. To make matters worse, development and testing get infinitely more complicated when you introduce multiple devices. The data can be biased by events that occur within the tested time frame. In my example, if the farmer only allowed me to run my system for a couple of weeks, unusually dry or cold weather within that time frame would skew the data. These limitations will diminish the effectiveness of testing, and may cause your app to fail in production. This is a frustrating reality that many IoT developers are forced to deal with.
One promising new IoT innovation that’s making waves is virtualization-based testing. Developers can create virtual devices by monitoring the data between real devices. They can combine this data with machine learning and make the sample data mimic real world physical device data. They can then create multiple instances of these virtual devices and simulate the IoT solution at scale with realistic data. Nice!
For the best outcome, the developer must understand how and when to capture the physical device data – so there’s certainly an element of expertise required. However, a significant amount of time and effort is saved by eliminating the reliance on physical devices.
IoT is changing the world as we know it, unlocking a whole new realm of interconnected possibilities. The fact that you’re developing a new IoT app is amazing. From one maker to another, I salute you! Remember, to ensure your app will perform, be sure to create a system prototype, and leverage modern testing possibilities to account for scale and different real-life data scenarios. I look forward to seeing your next great IoT invention.