Demand for enterprise applications is on the rise, with many IT departments staring down the barrel of a massive app backlog that they can’t possibly work through fast enough. And so, the gauntlet has been thrown — IT needs to rethink its approach to app dev to increase the speed of delivery. Enter two unique solutions to this problem: low-code and serverless.
But what are low-code and serverless? And on top of that, what does this all have to do with IoT? Sit back and relax — I’ll get there eventually. But first, let’s take a look at low-code and serverless and get you up to speed if you aren’t familiar with these technologies.
A song of ice and fire
Low-code and serverless technologies were both designed to simplify the app development process, thus speeding the delivery of new apps. Serverless does this by relieving developers of the burden of server management. While the name may imply there aren’t any servers, servers ARE involved. It’s just that from the developer’s perspective, it appears serverless because she can simply focus on developing the app instead of worrying about provisioning, managing or scaling servers.
On the other hand, low-code is all about simplifying app development by abstracting the developer from the code. The thought process is that if a developer can drag and drop GUI components to create a user interface and then use flowchart-like diagrams to create business logic, he will be able to deliver apps much faster.
Both of these technologies exist to solve what is basically the same issue — accelerating app development. However, the companies behind these technologies have taken dramatically different approaches, which makes serverless and low-code seem more like ice and fire.
Public cloud vendors like AWS, Google, Azure and IBM all provide serverless options, but for the most part, they focus on lower-level capabilities and most organizations can’t address the complexity to build on these technologies. Organizations that work directly with these vendors have greater control over the output, but it requires much more development effort.
Meanwhile, the traditional low-code vendors are heralding the rise of the “citizen developer” by making app development accessible to business users. Given that most business users don’t have computer science degrees, the low-code approach is perfect for them. Unlike serverless offerings, low-code enables faster application delivery but at the cost of control — the developer is greatly limited in terms of what they can do by the low-code environment set by the vendor.
Opposites attract: Combining ice and fire
With pressure mounting to find a solution to the app dev challenge, there is no reason that these technologies can’t coexist. It’s just that traditional low-code vendors predate the serverless concept and use older technologies that require an app server. Yes, app servers are considered legacy technology, even if they are open source! And providing a low-code approach for citizen developers is just not in the DNA for AWS, Google or IBM. Microsoft is a little different, but its business development efforts are not currently tied to its serverless work.
So, what problem does this pose? For people looking at low-code options, they should carefully consider the architecture of the system. This can be difficult because vendors like to throw technology names around, which complicates the research. Unfortunately, the fact of the matter is that many traditional low-code vendors often rely on older technologies. Compared to serverless, you can think of them as Monolithic architectures — and that means you don’t have the flexibility to design, develop, test, deploy and scale capabilities independently.
The good news is that there are now low-code options that are also based on serverless. These options take a different approach by focusing on making professional developers more productive instead of shifting the responsibility of app dev to citizen developers. In essence, they are designed to provide developers with a higher level of control by using common web skills that are designed for existing tools and processes.
Serverless, low-code and the IoT app experience
So, why is all of this important to IoT? Traditional low-code touts the ability to support IoT applications, but they are limited to calling packaged services (e.g., analytics) and consuming the service within the application.
Serverless, on the other hand, is a great architecture for IoT because event-based workloads run very well in a serverless environment. And event-based is key to IoT applications, as events that are derived from the analysis of sensor data can enable a more natural, interrupt-driven application experience. This allows the application to act on behalf of the user, minimizing the work that the user has to do.
So, if you are considering low-code, make sure you also consider the architecture of the system carefully instead of focusing only on drag-and-drop UI — it can make a big difference on the final product.
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.