So just what is Serverless Computing?
This website is running serverless. Doesn’t tell you much, does it?
Let’s take a website for example. Most websites run with a Content Management System (Wordpress, Drupal, etc…) or in some kind of framework (laravel, etc…) that has all of the backend stuff needed to make a pretty webpage that does all sorts of magical things, which means display text on a screen.
Sites like this require a computing instance or physical server to run not only the web server software (apache, nginx, and others) but the software used to interpret the code that makes up the backend of the website and transform it into HTML code suitable for viewing in a web browser (such as PHP, or Python).
Serverless computing does not need any of these. Granted, some computing resources are going to be required, but running a server or a docker container or whatever to house all of these processor and memory intensive apps is unnecessary. In the case of a website, a piece of code is run only when changes to the underlying website code are changed. The output is a bunch of static objects, which can be served up from an object-based storage. This site uses Hugo and the content is served from Amazon’s S3. When I post a new article or change a piece of the code, Hugo is invoked only long enough to transform all of the site’s content into static files, which are then synced to S3. Boom. Done.
The end result of this is a MUCH faster website that is open to nearly none of the common security exploits that plague most other CMS/Frameworks. Since there is no active connections to a database (or a database at all), nor is any server-side code executed when the page is loaded, there is nowhere to inject SQL, or XSS, or any of that jazz.
Now, take this same idea and replace an application server with it. See where this is going? Why spend gobs of cash maintaining a set of computing resources when they aren’t always necessary? Starting to sound more attractive eh?
It sold me.
It’s no secret from those who know me that I think Cloud Computing is one of the most transformative technologies out there. We’re just now starting to think outside the “box” so to speak - Instead of taking our physical environments and transforming them into virtual ones to run in “The Cloud,” we are beginning to see how we can use an entire set of provided services (such as queueing, messaging, processing, storage, databases, and on and on and on) and link them together to deliver a finished product instead of creating our own set of computing resources to maintain to do the same basic thing. The sooner we realize that we have to transform the way we use computing resources, the faster we can respond to the changes in our industry, and the better we will be able to deliver our services to our customers.