Does the current trend towards serverless architecture offer a glimpse into cloud native future for web development? Will it be faster, cheaper, more reliable and entail less risk of points of failure?
Will serverless architecture be a standard applications of every kind from enterprise to mass market products with heavy loads? Will it help mitigate the shortage of cloud native software engineers on the market and risks involved in outsourced cooperation models?
Complex web applications which are successful enough to have a significant shelf-life require maintenance and updates for years after their original creation. Industry data suggests this ongoing development work accounts for as much as 80% of all the lifetime costs associated with an app. What is the potential influence of serverless architecture here? Can it help companies and developers avoid the risk of applications developing into ‘legacy monsters’?
When forecasting the future of web-development we should first cast an eye to the past.
How were today’s web development trends formed?
From the birth of the Web, one clear trend has remained firmly in place.
With every new iteration of web development technology, the development of web-applications becomes easier, faster and more component-configuration oriented. “Do not reinvent the wheel.” is the central maxim. Simply improve the efficiency and functionality of what has already been built, tested and proven in a production setting.
Is there any analogue industry this pattern of evolution can be compared with to offer an insight into the probably future of our own digital world?
I believe there is – mechanical engineering. It’s where our ‘don’t reinvent the wheel’ maxim originated.
In this article I’ll try to demonstrate the parallels in the evolution of the two fields of engineering (mechanical and software). It is there I believe we find the answers to all the questions posed at the outset of this article and why Serverless architecture represents the future of web development.
Archimedes’ invention of the screw pump set early mechanical engineering standards. Right up until the present day screw pumps and their derivations are used to move matter and transfer movement.
Over the years engineering elements such as gears, belts and poles have been standardised. They differ only in size and the kind of material they are made from but not in shape or function. The result is these components are cheap, tested and proven in different combinations and reduce the need for future maintenance as well as the complexity of any work that does need to be carried out.
When building a complex mechanical system, a good mechanical engineer uses as many standardised components as possible. This guarantees ease of future maintenance. It’s easy and cheap to find replacement components and any other mechanical engineer already knows how to swap them out if and when required.
New mechanical engineering products are built out of these standardised components like advanced Lego. In fact, Lego is really a simplified version of Meccano – a model construction system created in 1898 by Frank Hornby in Liverpool, United Kingdom. Meccano sets consist of reusable metal strips, plates, angle girders, wheels, axles and gears, and plastic parts that are connected together using nuts and bolts.
Design blueprints guide users in how to put these standardised components together to build models of cars, trains, planes, buildings, bridges and almost anything else you can imagine. Just like real life mechanical engineering.
Were a mechanical engineer to use a custom component, this would represent a significant business risk. Manufacturing reserves of that component would be expensive and maintenance more complicated.
As such, the risk that custom components in mechanical engineering represent is only taken on as a last resort. There should be both no other choice and the value added that the engineering solution requiring the non-standard component offers represents enough of a gain for it to be worth paying the price.
When compared to the development stage of mechanical engineering, software engineering and web development are barely out of the cradle. Standards for protocols and components are still at an early stage and, at best, have a history of a couple of decades. Usually far less.
Despite their vastly different stages of development are mechanical and software engineering really fundamentally different in nature?
If mechanical engineering moves matter and transfers motion, software engineering moves information and transfer ideas. But does software engineering already employ standardized components for cheaper, faster, lower risk product construction in a similar way to our mechanical engineering parallel? Over the years and the dozens, if not now hundreds, of projects I’ve worked on, I’ve seen an evolution within the sector that suggests it is heading in the same direction.
For example, in the world of Java enterprise, the early years saw custom components and frameworks developed independently in every organisation (parsing protocols requests). These transformed into Servlets API (which standardized production components) and finally into the Spring Framework (which is built above the Servlets API to smooth over its complexity). In a Spring Framework standardised components are configured and not developed from scratch. The building blocks are there.
In the past, creating a typical web-application could take months to first build custom web protocol processing, months to create the Servlet API and weeks to complete web frameworks.
All of that custom work doesn’t add up to a solid business model. Commercially run organisations need a degree of certainty around costs, timelines and risk profile when building products. Whether that product is the output of mechanical or software engineering doesn’t change the underlying need.
The market shows that the demand for Spring Java Engineers is much higher than for basic Java Language Engineers. That’s because Spring offers well built, tested, production proof components maintained by high level engineers ready to be configured for enterprise web development. Can developing a custom security web framework really be commercially justified (price, time, risk of failure)?
If industry has already invested in R&D, testing and production proof for components, it makes sense that these components must be re-usable. There’s no logical reason why software engineering would take a different path. Which brings us back to Serverless Architecture.
I see Cloud Serverless technology as the next step in that evolution. And standardisation in web development can go even further than in mechanical engineering. In mechanical engineering transport components and hard to standardise as they transfer things with different physical qualities.
But there are still some multi-purpose components such as, for instance, a band conveyer. An advantage of software engineering is that only information is moved and it is always in the same basic format – bytes.
This offers a unique opportunity to build and re-use high abstract-level components needed for every web application eg. user management, notifications, booking order flow and payment components to name just a few.
These common components become a wrapper for the core custom modules which propose something unique. And in the Cloud environment, core modules can be developed on any technology and connected to Serverless common cloud components to construct a web application.
For instance, you want to build a booking application for a medical clinic. The core proposition of your application is to connect doctors and patients, improving communication for both, making scheduling more efficient and including a payment solution. Literally make a Doctor one click away from the patient.
Even a relatively standard application like this involves a lot of custom work from developers. User Management, Notification, Payment, Logging and DevOps production infrastructure. And most of that is not connected to your main goal – connecting doctors and patients in a way that makes their life easier and the clinic’s business model more efficient.
As a developer, your focus is divided. Over months of work on custom components it is easy to lose sight of the final, simple aim of the application.
Serverless technology means development and configuration of this kind takes only days and not weeks or months. And without having to worry about infrastructure all of your efforts can focus on the product doing what it is supposed to do in the simplest, most effective way possible from the user journey perspective.
Problems such as scaling, reliability and security are solved in Serverless. As a developer you just need to configure out-of-the-box components. Risks posed by deploying custom solutions in a production environment are neutralised. And if it turns out your initial judgement of the need for your product was flawed you haven’t wasted a huge amount of time in money reaching that conclusion.
The faster, cheaper software engineering the standardisation of components offered by Serverless Architecture promises will also be a huge boost to innovation. It slashes it price of failure.
Web engineering with Serverless offers businesses a unique opportunity to cut costs, minimise the risk of failure of development and time-to-market. Re-using pre-fab, highest abstraction level components – Cloud components for moving and processing different kinds of information:
Serveless Cloud-powered applications are the future of mass product web-development. Standardized components that are tested, reliable, fast to implement and can be configured ‘out-of-the-box’ to build scalable web-application of any kind.
Serverless cloud components are developed and maintained daily by the best engineers in a narrow focus of expertise. The core of any product will still be tailor-made and protected but all the wrapping around this core will be built from re-usable, common, Serverless Cloud stack components.
This will allow for more development focus on users and their needs and less on infrastructure code.
The great thing is that while Serverless is still a nascent approach it has now developed enough that for your next application project you don’t have to spend time and money re-inventing the wheel. Write the core and K&C’s Serverless consultants can wrap it in the cloud-based, standardised and tested components that mean your infrastructure is secured quickly and cost effectively.
There are a lot of questions to be addressed before choosing the technology stack for your next application. At this stage of its development, Serverless is not a “silver bullet” for every kind of application. But many applications can already benefit from Serverless.
If you think yours might, just drop us a line or pick up the phone. We’d be delighted to hear the details and give you a no-obligation opinion on whether Serverless Architecture sounds applicable.
Krusche & Company is a Munich-based web development and Cloud services consultancy with over 20 years of experience helping our partners realise their digital goals. From some of Europe’s best known brands to hugely successful SMEs and start-ups, we’re proud to say our software engineers and digital transformation consultants have contributed to their enduring success. Serverless architecture consulting is one of K&C’s most popular services.