Thinking IoT? Might want to mix in some modernization
It makes sense that when organizations start tackling IoT applications, they look first at the underlying architecture that acts as the foundation of these apps. Certainly, this is important in terms of interacting with the devices that are strewn across the landscape — they’ll need some mechanism to collect the data from the devices and to interact with them. This likely introduces a topology that includes gateways for collection.
Additionally, there is the very real possibility that you may need or want to do some computing or analytics on the edge. This would take place either on the device itself or on the gateway as opposed to having all compute activity occur back in a central location. While that side of the architecture is key, I’m more focused on the application side — what is the best application architecture for building new apps that use IoT data and analytics?
Redefining what a modern architecture means
Finding the answer to the application architecture question brings us straight to the topic of modernization. As most organizations have a variety of technologies, it’s interesting to consider what technology constitutes “legacy.” Certainly mainframe technology and COBOL are legacy, but have you ever considered Java and the related app servers as legacy? Maybe not — but you might want to.
As you may or may not know, Java architectures use the concept of an archive file — a packaging concept that takes a completed app and uses the archive as the deployment vehicle. The problem with this is that the archive file represents the entire application, so if you need to modify one element of the app, the entire thing needs to be recreated, tested and so forth, which introduces dependencies that often result in regression errors. It also complicates scaling efforts because if a single capability within an app gets spiked, the entire app has to be scaled, which takes more time and wastes resources.
Modern approaches allow capabilities to be abstracted, so if a capability needs to be changed or enhanced, it can be done independently. The capabilities surface an API that acts as a contract between other application logic, creating a very clean architecture design. This is the type of architecture that allows digital behemoths to push app changes at massive scale. It also allows them to scale capabilities independently, providing better agility while saving time and resources.
Supporting IoT with a modern application architecture
New IoT-based application experiences should be developed and delivered on a modern architecture that revolves around microservices and ephemeral functions. This approach is ideal for event-style applications that can be driven based on IoT analytics or events and provides the flexibility and agility that is needed to support the workloads.
And what about modernization? Most organizations can’t afford to rewrite all of their legacy apps. Additionally, most would like to move to the cloud as well. While you could take a lift-and-shift approach — and that may eliminate the need to manage a physical data center — the benefits are pretty limited.
But imagine if you could modernize appropriate slices of your existing systems. This approach allows you to be more selective about what you modernize. For example, you may have a large application that has grown over the years to something that is quite unwieldy. But if you analyze the application, you can identify slices of functionality that are more widely used — and you could benefit by turning this functionality into capabilities that can be consumed by new workloads with a modern API.
So, I would strongly recommend that if you are looking for a new app-dev platform to complement your IoT efforts, don’t just think about developing and deploying new digital experiences. Think about how the platform behind those experiences can also support a phased, incremental approach to modernization, which will bring you to a serverless and microservices-based approach that relies on standard APIs.
All IoT Agenda network contributors are responsible for the content and accuracy of their posts. Opinions are of the writers and do not necessarily convey the thoughts of IoT Agenda.