Low-Code Principle #4: The Cloud, Key to Smart Apps and Easy Deployment

Deel dit bericht

Pretty soon, we’re not going to be able to imagine life without the cloud. It’s difficult to imagine already.

When I think of how we got to where we are today, two events stand out above all others: the debut of Amazon Elastic Compute Cloud (the first mainstream commercial cloud service) in 2006, and the introduction of the iPhone in 2007. The first opened the gates for enterprises to revolutionize their approach to IT. The second put access to everything in the cloud into the hands, literally, of millions and millions of consumers, and paved the way for cloud adoption across the entire technology landscape.

Not coincidentally, low-code started taking shape right about this time, too. I say ‘not coincidentally’ because the cloud is encoded in the DNA of low-code (pun intended!). Many of the paradigm-shifting advantages that accrue to low-code are because of the platform’s strategic and whole-hearted leveraging of cloud services, and the ease with which it makes those services available.

And that brings us to Low-Code Manifesto Principle #4:
The Cloud: Cloud enables the ease and speed of application deployment that customers demand, and opens the door to vast resources and functionality to build powerful, smart applications.

Born and bred in the cloud
Way back when in the two-thousand-aughts, we recognized that, if you didn’t have rapid deployment, it was a lot harder to make a case for rapid development. In fact, it nearly killed our business case with some of our earliest customers. We got the apps built in no time, but it would take three months to get them into production. At that point, we decided to install servers and create our own cloud, which solved the immediate problem but clearly wasn’t going to scale. Besides, we didn’t necessarily want to be in the cloud business, which didn’t exist yet. Thank goodness Amazon paved the way.

It wasn’t just that the cloud was ideally suited for low-code (and still is). It quickly became apparent that the cloud was going to be central to all forms of software development. The Agile approach was also ascendent at the time, and the cloud was perfectly suited to support it as well. Then, as the 2010s dawned, the ‘12-Factor App’ became a respected standard for web apps, and required that apps be suitable for deployment to the cloud. Whichever direction you looked, there were clouds stretching to the horizon.

As we look around today, we see there are basically two kinds of enterprises: those that have embraced the cloud. And those that are about to. It’s simply not possible to execute any serious digitalization plan — any kind of digital transformation that better engages customers, enhances operational efficiencies, gets new innovations into the market, or generates new revenue streams — without the cloud.

The cloud is such a big deal that both Gartner and Forrester consider full cloud support to be a requirement for any low-code platform. So what are some of the main reasons low-code and the cloud are inseparable?

Enabling an agile, microservices-based architecture
Microservices are another highly important technology trend of recent years that has upended traditional development methodologies, and in general, software is better because of it. If you want to put an Agile mindset into practice, microservices support it. If you want the speed, focus and agility made possible by small, autonomous teams, microservices support it. If you want to build applications that last, that adapt and evolve with changing business needs and new technologies, reach for microservices.

Low-code and microservices together enable BizDevOps teams to maintain agility, collaboration, and speed even when building a large landscape. The cloud makes deployment of the work of autonomous microservices teams into that landscape feasible, simple, and fast. In a sense, the cloud unites small autonomous teams into a functional whole.

An added benefit is that, in a properly architected, microservices-based low-code environment, it’s easy to isolate components and pieces of functionality for purposes of governance and control. “Don’t give power tools to small children,” as the saying goes. Isolating critical components minimizes the blast radius in the event of a blow-up. That makes for a more reliable, more resilient environment.

All kinds of resources, instantly available
The predominant argument and use case for the cloud is having flexible, scalable compute resources available in an instant — servers, storage, compute power, etc. But there’s also a compelling case for the discoverability and availability of resources and services to support applications both in development and in production. Through the Mendix App Store and developer community, for example, low-code developers have access to a tremendous repository of pre-built components — connectors and APIs, pluggable widgets and actions, various feature and function modules, and so much more. Developers can grab what they need and plug it into their applications, making it drop-dead easy to add features and functionality and giving productivity a serious boost.

Powering ML, AI, AR, IoT, etcetera
What do machine learning, artificial intelligence, augmented reality, the internet of things, and just about every other breakthrough technology have in common? An almost unimaginable appetite for data and processing power. And that means a corresponding appetite for cloud services.

Whether you’re running factory automation, routing packages around the globe, searching for a cure for cancer, building facial recognition technology — the examples are far too numerous to list, but in short, enterprises and organizations that are intent on digital leadership absolutely need to have the massive, flexible computing and data capabilities of the cloud at the ready.

The low-code platform opens the gateway to all the resources and power the cloud has to offer to build smart applications. More modest enterprises (and all-size organizations, truly) can amplify their capabilities by ‘standing on the shoulders of giants’ like Amazon, IBM, Microsoft, and Google to access and leverage the resources they need to build functionality they could never build on their own.

Would you like that automated?
I’m pretty sure you’ll find me mentioning automation in every one of my posts about the Low-Code Manifesto. It’s not a principle on its own, but rather, is woven into the entire low-code application lifecycle. In terms of the cloud, automation ensures that best practices are followed, guardrails hold, and apps are cloud-ready. And most importantly and best of all, automation makes it absolutely effortless to deploy applications to the cloud, public, private or hybrid, totally supporting Agile workflows and CI/CD.

In short…
The cloud is one of two architectural components that provide the scaffolding for next-generation application development (microservices is the other). The cloud offers the flexibility and scalability to provide all the resources an application needs, when and where it needs them. Applying the core low-code principles of abstraction and automation to the cloud makes deployment easy and fast, and infuses agility into this phase of the application lifecycle. By nature and in adherence to the requirements of 12-factor applications, a low-code application must be cloud-native.

Johan den Haan is Chief Technology Officer at Mendix.