What is serverless?

Serverless is an application architecture that allows organizations to deploy and maintain apps without having to manage the underlying infrastructure.

While in the normal world engineers have to think about certain infrastructure elements such as load balancers and size application components such as web servers, serverless architecture makes infrastructure largely irrelevant to developers. Moreover, serverless makes infrastructure almost irrelevant to the infrastructure people.

Let’s look at a typical example. Let’s say you build an app in your favorite programming language and you use your favorite database on the backend. Normally you would provision a database server and a set of web servers behind a load balancer. You would install and configure operating systems, harden servers according to industry best security practices, setup monitoring, and install your app. You would then monitor your application and adjust your infrastructure based on use. Because you can’t exactly predict system use, you oversize your servers and pay for what you buy, even if there’s unused capacity. And then there’s nightmare associated with your servers not performing right or going down. Who is going to respond to your server performance issues at 3AM on Saturday? Who is going to update your servers every time there’s a security patch?

This is where serverless architecture comes in. Under the serverless paradigm, you don’t provision anything. You just write your software and deploy it to the vendor’s cloud and the vendor takes care of all infrastructure components, including servers, network, patching, hardening, and largely scalability.

But not all serverless offerings are created equal. You should select one based on your use case. Let’s review two use cases here.

1. Full stack web application. If you developed an app with a user interface and a database backend, you need a full stack serverless vendor like Zuilder. With Zuilder, you can build your web app which is automatically hosted in Amazon’s cloud. Once the app is ready for prime time, you deploy it and then pay for the actual use. Zuilder will manage all infrastructure behind your app, from networking to servers and storage. You only pay for storage when no one uses your app and you pay for the actual Zuilder run time when your app is being used. Depending on your app usage, this could mean pennies per month. What’s also great about this approach is Zuilder’s set of productivity tools. You can build your apps using simple XML markup that reduces the amount of code you write five fold. You can implement your server-side logic in JavaScript or XML. You can use a set of built-in wizards to create pages and write code for you. Most Zuilder apps can be written in Zuilder in 1/5 the time it takes to write them using traditional methods.

2. Backend of mobile applications. If you developed a mobile app and you’d like this app to use a database backend sitting in a data center, you should consider a service like AWS Lambda, Azure Functions, or in certain cases Zuilder. AWS and Azure will let you write your backend functions in any programming language you desire and publish them to their respective serverless environments. You can then point your mobile app to their environments and use tools like Amazon’s API gateway. If you care about the programming language or if you absolutely need to own or control or backend database, AWS and Azure will provide you with great tools. However, if the programming language is not important, you should consider Zuilder as it offers two key advantages. First, it has many wizards you can use to build your backend functions quicker and test them easier. Secondly, Zuilder doesn’t force you to break your app into thousands of functions managed independently as Lambda functions. You can build one enterprise-grade Zuilder app with millions of lines of code all centrally managed under one umbrella. In fact, Zuilder lets you view your application the way you would normally view a large project in Microsoft Visual Studio or a J2EE environment like Eclipse.

As you can see, serverless architecture can be of great benefit to both developers and infrastructure teams. At the end of the day, it delivers tremendous cost savings, lowers operating risks, shortens development timeframes, and boosts the employee morale as they learn new technology.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s