top of page
  • Twitter Social Icon
  • LinkedIn Social Icon
Search
  • Sidero Ltd

Serverless Computing – An Overview

Like many industry buzzwords — “cloud computing”, “DevOps”, “big data” — debates over the definition of the term “serverless” have become somewhat of a honeypot for pedants.

 

So what is Serverless :


A serverless solution is one where developers are freed up to focus more on application development without needing to worry about provisioning, scaling or maintaining servers (or containers), and whose running costs are proportional to the system’s usage levels.



Though it is called serverless , servers are still involved. Serverless computing adds another layer of abstraction on top of cloud infrastructure, so that developers no longer need to worry about servers, including virtual ones in the cloud.


In Serverless computing, the need to maintain physical infrastructure and systems software goes away, from the developer's standpoint. Serverless architectures are highly scalable , deliver high performance, and let you pay only for the resources your application actually consumes. Suddenly, there's a direct, linear relationship between the efficiency of your code and what it costs to run it.

The faster it runs, the less you pay


“Don’t bother about infrastructure, focus on your application.”

In a traditional environment, developers must provision and configure servers, install operating systems and continually manage the infrastructure. With a serverless architecture, you are free to create, manage and deploy apps that scale on demand—without worrying about infrastructure.


Why use serverless?


Serverless enables you to build modern applications with increased agility and lower total cost of ownership. Building serverless applications means that your developers can focus on their core product instead of worrying about managing and operating servers or run-times , either in the cloud or on-premises. This reduced overhead lets developers reclaim time and energy that can be spent on developing great products which scale and that are reliable.


The term Serverless covers two types of cloud computing architectures:


Backend as a Service or “BaaS”


An application runs huge chunks of its backend code on a cloud server managed by a third-party provider. BaaS clouds can cater to specific functionality like login management or API maintenance. It’s not uncommon to see UI-heavy one-page web apps to run most of their server-side code on a serverless platform.


Functions as a Service “FaaS”


Function as a service (FaaS) is a serverless way to execute modular pieces of code on the edge. FaaS lets developers write and update a piece of code on the fly, which can then be executed in response to an event, such as a user clicking on an element in a web application.


Benefits of Serverless


  • No server management

  • Flexible scaling

  • Pay for value

  • Automated high availability


Key Properties


  • Independent, server-side, logical functions

  • Stateless

  • Ephemeral

  • Event-triggered

  • Scalable by default

  • Fully managed by a Cloud vendor


Serverless is new buzz in market and most of the cloud providers providing services to implement serverless architecture.



Why serverless is a good choice for business


Serverless came about in a form that many of us didn’t even know we wanted or needed. If Amazon Web Services (AWS) had asked the people what they wanted, they would have said something like “better abstraction for servers.”


Here’s why we shouldn’t just care about serverless as a developer, manager, or business stakeholder, but why we should make it a priority to start using it in our use cases.


Why Serverless better for developers?


Developer's job is not only to write code , it is also to help businesses realise their ambitions. In most cases, that means building a product that is both financially successful and has a positive impact on its users. The desired outcome is never the code itself, even if that code is elegant and well-crafted. To deliver a product idea to the market, there’s a lot developer has to do beyond implementing the feature itself. These include configuring machine images or configuring auto-scaling for cluster of servers.



With serverless technologies like AWS Lambda, most of these become irrelevant or are drastically simplified. This lets developer focus on the more important aspects of the project, like implementing product features and thinking about architectural trade-offs. That’s a far more productive use of a developer’s time and energy

Why managers care about serverless?


As a manager, we care about the well-being of team and its ability to deliver on the demands of the business. Teams that embrace serverless deliver faster and experience less stress. As discussed earlier, AWS Lambda makes it easier for developers to build production-ready systems. It empowers to leverage an impressive number of capabilities from the platform, such as built-in auto-scaling and multi-AZ resilience. This directly translates to greater productivity and faster delivery times.


Building and managing an infrastructure that can provide the same level (serverless) of scalability and resilience is difficult and requires engineering time that teams often can’t afford. This kind of infrastructure demands skills that most teams don’t have on hand, but it’s critical to the success of your product, and that can make it a huge source of stress.


Why Business stakeholders adopt serverless?


Business stakeholder, care about things like time-to-market and maximising return on investment (ROI) for the business.


We’ve already talked about how serverless technologies allow teams to be more productive; that boost is directly reflected in reduced time-to-market. Serverless gives businesses a superhighway to take its ideas to the market.



For most technology focused businesses, the heftiest cost is going to come in the form of hiring skilled developers and to keep and help them deliver their best work, they also need an extensive support structure around them. That includes anything from office space and physical resources to good managers and a strong team to support.


To get the best possible ROI, businesses need to give developers the kind of leverage they need to do more with less. And that’s the true cost saving that comes from serverless.


Summary


To summarise, cloud computing and serverless are interesting concepts that can bring a lot to the table. But every business has different needs and it might not actually be advantageous to run serverless for all your applications. You should consider both the pros and cons:


Pros:

  • Shorter time to market and faster releases

  • Lower costs for both operation and development

  • Cheaper scaling

  • Decreases the complexity of your application


Cons:

  • Inefficient for constantly running applications

  • You will be bound to your provider. It’s often hard to make changes in the platform or switch providers without making application changes as well

  • In order to use their resources optimally, the provider could run multiple customers software on the same physical server


There are of course more advantages and disadvantages to running any version of serverless. But as every situation is different the challenges and benefits will of course also vary.


Thanks for reading guys!


References:

https://aws.amazon.com/serverless/

https://azure.microsoft.com/en-in/overview/what-is-serverless-computing/

https://martinfowler.com/articles/serverless.html

69 views

Recent Posts

See All
  • Grey Twitter Icon
  • Grey LinkedIn Icon

© 2020 by Sidero Technology Solutions                                                                                                                                   Terms & Conditions of Use

bottom of page