What developers need to know about serverless technology
What does serverless technology bring to the table? In this article, Jignesh Solanki goes over some of the top tips developers need to know about this emerging tech solution.
If you’ve kept yourself updated about the emerging technologies, you have come across the buzzword serverless computing. While serverless does look fairly mysterious, it’s definitely one of the most valuable tools available to developers today.
Back in 2014, AWS unveiled their serverless computing services- AWS Lambda. By 2016, all the cloud service providers jumped in this pool and the race has been on since then. Now, this promising technology is only going to develop more and more.
Gartner has referred to serverless technology in their annual Top 10 Strategic Technology Trends for 2017. The firm claims this trend to be a part of MASA, “the mesh app and service architecture (MASA) is a multichannel solution architecture that leverages cloud and serverless computing, containers and microservices as well as APIs and events to deliver modular, flexible and dynamic solutions.” However, this is a long-term approach which will necessitate IT to adopt new tools and implementations for doing things.
This is why we are going to discuss the top things that all developers should know about serverless technology and what exactly it brings to the table. Let’s get started.
1. Serverless still includes servers
Mike Roberts define serverless technology as “ an approach that replaces long-running virtual machines with ephemeral compute power that comes into existence on request and disappears immediately after use.”
Serverless architecture is an umbrella which includes backend-as-a-service (BaaS) and function-as-a-service (FaaS). Functions are small code packages which runs inside containers. They are invoked due to specific event and die once the specific task is finished.
This doesn’t mean the absence of servers. Servers are still involved in the process, although, it might make the name confusing. What makes serverless different from cloud computing and server-less is that servers are not always running and spinning. Also, you don’t have to manage your servers or worry about their scaling. All you have to do is write your code and hit deploy. Another benefit of this is that it costs less to operate since your servers are not running 24/7.
2. Microservices aren’t going to die
Now that we are moving towards functions, you might wonder about microservices. While it seems like microservices have just appeared on the scene, the idea has been around for some time.. Basically, the idea of microservices is to break down your code into small services which makes it easy to develop, deploy and scale as per the individual requirements. And FaaS is taking this beyond this!
However, there will be place for both microservices and FaaS. The main reason is that you won’t be able to do everything with functions due to its granularity. For instance, if your API/microservice is going to deal with database, it will be able to respond faster since things are open and ready which won’t be the case with functions.
The important thing to note here is that a group of functions is nothing but a microservice. And hence, functions and microservice can co-exist in a way which is complementary to each other. After all, to an end user it doesn’t make any difference if behind the scenes whether your API is executed as a microservice or a bunch of single app. Hence, microservices are here to stay!
3. Focus on development cycle
Cloud computing may have freed us from a big investment in infrastructure. Still, we all know that there is someone who is always busy managing cloud virtual machines. However, with serverless, that is not the case!
The rise of serverless has decoupled application delivery from infrastructure management and ownership. What it means is that it has enabled developers to focus solely on application development without ever worrying about managing servers. Serverless providers are solely responsible for your infrastructure management.
In this way, serverless lightens the load on application developers. In turn, this makes possible for IT companies to give more time for innovation. Also, since you can deploy and scale functions individually, the time to market is also reduced. Got an idea? Write the code and execute it in seconds!
4. Pay for what you actually use
People are really not appreciating how cost-effective serverless approach is going to be. As I said earlier, with serverless architecture, you don’t have to pay anything for the resources when they are idle. And most of the organisations have no idea how to cut down on these cost as it is unpredictable when your computing resources will be in use or not.
According to a research conducted by a leading cloud economics management company, most of the virtual machine instances run at sub-20% load. However, things are considerably different with serverless. Since you pay for what you use actually, you avoid the big headache of VMs.
Moreover, every serverless provider has provision of free tier services. At a recent Serverlessconf, there were two presentation on AWS Lambda based applications where they didn’t even surpass the free tier limit, i.e. they didn’t pay anything to AWS. One should note that these applications were not prototype, they were real-world applications.
Learn more about serverless
If you’re new to serverless, here are some useful resources that can help you can get started:
- Serverless Architecture by Mike Roberts
- The Comprehensive Guide to Serverless Architecture
- Exploring the Ecosystem of Serverless Technologies
- Follow the Serverless Forum.
- Serverless Slack Community
Books on serverless:
- Serverless – Patterns of Modern Application Design Using Microservices
- Serverless Single Page Apps – The Pragmatic Bookshelf.
- Going Serverless – Practical guide to building applications with the Serverless Framework.
- Serverless Architectures on AWS.
- Building Serverless Architectures – Book about building serverless applications in JAVA.
- AWS Lambda in Action – An example-driven tutorial that teaches you how to build applications that use an event-driven approach on the back end.
- Agile Development for Serverless Platforms – This is a free eBook on how to apply Agile practices in fully serverless architectures.
- Exploring Cloud Computing – Here’s another free eBook. This is an introduction to the two most popular cloud providers, Amazon and Google, and insights to help you get started.
- Serverless Weekly – Everything you need to know about Serverless, week by week.
- Serverless Status – A weekly digest of the latest serverless news and articles.