The real impact of Serverless

Davide Panelli
Byte-Code
Published in
3 min readOct 25, 2018
“aerial view of mountains covered with clouds” by Kristóf Vizy on Unsplash

Serverless computing is a paradigm shift that has excited both the software development and the business community because it finally delivers the promises of the cloud.

With the first cloud wave, we’ve been promised to get almost infinite scale, save costs, and a pay per use billings. However, the reality was a bit different. The on-premise infrastructure just moved to some cloud providers, but we still have to manage an infrastructure ( app servers, VMs, containers, load balancers, etc.)and to plan out and reserve capacity for peak loads and pay for it, even if it was underutilized. However some pain points were anyway addressed: not having to manage hardware, low-level infrastructure, provisioning of new resources went from months to minutes.

Moreover, of course, if your application were slow and unstable, no amount of computing power would have saved your day.

However, now Serverless breaks all these boundaries.

In simple words, Serverless (or Function as a Service) provides a platform allowing the developers to execute code in response to events without the complexity of building and maintaining the IT infrastructure and paying only for the real execution time of your code.

Serverless has several advantages and leveraging them can optimize operational costs and development costs.

Now pay-as-you-go is real.

With Serverless you deploy the single function, and you will pay only for the execution time.
No execution, no money spent. This is a game changer. For some applications, this means a reduction of operational costs of over 90%. For example, you can have as many test and pre-production environments as you need if no one is using it cost you zero.

Resiliency and scalability

When you deploy a function you care about almost nothing; all the infrastructural heavy lifting is on the FaaS platform provider. When an event comes in, like an HTTP request, the provider spins up and execute your function, if many events occur more functions are spawned and run in parallel. What does that mean?

You are always online, you can scale to meet load peaks and the good thing is that you have to do almost nothing, but you have to know how to write a stateless function that doesn’t kill the rest of your infrastructure.

Infrastructure is fully managed.

Serverless cloud providers monitor and manage the underlying groups of servers running your code. They renew hardware, manage redundancy, and apply security patches as they are published.

For example, if you were running your EC2 instances or running your Docker containers, you would have to apply patches and upgrades yourself, and you would have to keep on top of them as they are published.

Accelerated development

By going Serverless you focus your coding on the business of the single function, this dramatically reduces the amount of boilerplate code developed to connect the pieces of your architecture. Each function is a small independent chunk of code that you can deploy alone without fear of breaking anything else, or you can have multiple versions to allow testing of different solutions. Even more, they also can be written in many different languages which allows you to choose the language best fitted for the job individually.

All these advantages can boost your development productivity by order of magnitude.

Risks and pitfalls

Serverless is an entirely new landscape, and many of the old “best practices” about the architecture design, coding and deployment are now useless or even wrong.

Serverless Architectures requires a new way of thinking about the whole system to reap the full potential of this new platforms!.

Originally published at www.byte-code.com.

--

--

Davide Panelli
Byte-Code

Helping organisations to create value with software.