In today’s competitive market, faster time to market and scalability are the two major measures of a good application. In this blog, we will discuss how SERVERLESS architecture can be a good choice for quick and scalable application development.
In this blog, you will get answers to the following questions which help you to get a better understanding of Serverless, FaaS, AWS Lambda, etc.
- Serverless architecture is really serverless?
- What is Function as a Service (FaaS)?
- Who is using Serverless architecture in production?
- What are the benefits of using Serverless architecture?
- When to go for serverless and when not to choose serverless?
- What is the future of the Serverless architecture market and who is the leader?
- What are the Serverless Services provided by AWS?
- How to create and run a Serverless “Hello, World!” with AWS Lambda?
Serverless Architecture is really serverless?
A Serverless Architecture is a method to build and run software and services without having to manage servers.Yes, you read it right! Serverless doesn’t mean without a server! The server in a Serverless Architecture is managed by the supplier, not the consumer.
In Serverless Architecture there are two main types of services:-
Function as a Service(FaaS): Stateless functions containing server-side business logic. These functions are event-triggered and executed in separate containers. Third-party providers, such as AWS Lambda or Azure functions, are in charge of fully managing these functions.
Backend as a Service(BaaS): The applications utilizing BaaS are typically client-rich applications such as SPAs or mobile apps. In this kind of application, the client handles most of the business logic with the help of external services like authentication, database, user management, etc.
What is Function as a Service?
To host the application on the internet, it needs some kind of virtual server infrastructure which includes operating systems, web servers, etc. In function as a Service, all these things are managed by the provider and not by the consumer as shown in the image below:
There are different providers like Amazon, Microsoft Azure, Google Cloud, etc. who manage virtual server and software processes. By choosing any of these providers, businesses can choose to focus on only core development.
Who is using Serverless architecture in production?
If technology gets picked up by a big company that usually means it’s here to stay and this logic is applicable to Serverless technology, too! Some of the biggest companies including Netflix, Codepen, Figma, and many more have used serverless architecture in their production, which means Serverless development is getting more and more popular every day and will be getting adopted by many companies for their applications.
Benefits of using Serverless architecture
Serverless computing is not actually serverless. Servers and computational power are still required, but they must be housed on some hardware.
The basic goal of serverless is to reduce the time, complexity, and cost of hosting a dependable and scalable server for a modern application. This can give lots of benefits to developers and business owners.
Benefits for developers
The aim of serverless architecture is to reduce efforts by developers in publishing, maintaining and scaling application servers. So they can really focus on coding. The benefits for the developers:
- The coding of the application as a single function hosted by the server is simple to grasp.
- Easy to introduce new features as functions.
- No need to handle infrastructure issues
- No need to run a server 24/7
- Focus on core development
- Less efforts in maintaining project infrastructure
Benefits for businesses
Enterprises and startups can save a lot of money by using the Serverless FaaS strategy. The benefits for the businesses:
- Pay only for what you use helps businesses to save lots of money as they will not pay for servers while not using them.
- Quick development, as businesses can launch individual functions in production, so shorter time to market.
- Event driven project scaling
- Less costs on running a server.
When to go for serverless and when not to choose serverless
Serverless approach is the best suits for the following types of applications:
- Multimedia or data processing with high latency background tasks
- Client-centric apps in which the majority of the logic is shifted to the client
- Applications with a high level of server load that fluctuates
- Applications that are rapidly growing and evolving and must be able to scale and alter features quickly.
Every technology has flaws, and serverless is no different. Here are the primary reasons why becoming serverless isn’t a good idea.
- FaaS functions have limited lifetime, so it is not good choice to use serverless approach for real-time applications that use WebSockets
- After a period of inactivity, the function will require a cold start, which can take several seconds.
- So if your application needs to give a quick response to the request, avoid serverless architecture!
Serverless architecture market as AWS as a leader
During the projection period, the global serverless architecture market is expected to increase at a Compound Annual Growth Rate (CAGR) of 22.7 percent, from USD 7.6 billion in 2020 to USD 21.1 billion in 2025.
In a 2019 O’Reilly study of 1500 IT professionals, 40% of respondents said they worked for companies that used serverless architecture.
According to a 2020 DataDog poll, more than half of AWS users are already using the serverless AWS Lambda Function as a Service (FaaS). Serverless technologies are going mainstream.
AWS Lambda is leading in the serverless market.
AWS Lambda is the first choice for today’s developers for implementing serverless architecture as it is easy to use! Now, let’s understand AWS Lambda and other serverless services of AWS
Serverless Services on AWS
Serverless first is a strategy that prioritizes the adoption of serverless services in modern systems. AWS is providing serverless services for all three layers of the development stack: compute, integration, and data stores.
“In 2020, half of the new applications that #Amazon built were built on top of #Lambda compute. I think the next generation of developers are going to grow up the building in this #serverless fashion, which is a combination of having event-driven, serverless computing service like Lambda and a bunch of enabling services…” – Andy Jassy, CEO AWS
Let’s experience it by quickly creating our first serverless function using AWS Lambda.
Create and run a Serverless “Hello, World!” with AWS Lambda
You’ve probably figured out that the Serverless strategy benefits both developers and product owners. The developers can free their minds off infrastructure concerns and focus on the development, on the other side, product owners, spend less on running a server and can have benefits like better service scalability, faster time to market, and potential to scale.
The only thing that stands in our way now is our own thinking. The realization that functions are not the same as servers will be a watershed moment. But, we are going in the right direction if starting using serverless architecture. Let’s start our journey with serverless by creating and running a serverless “Hello World” with AWS Lambda
We’ll use the AWS Lambda console to create a Hello World Lambda function, then manually run it with sample event data and examine the output metrics.
AWS Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby code, and provides a Runtime API that allows you to use any additional programming languages to author your functions.
Login into the AWS console and search for Lambda service in the services search as shown in the following screenshot:
Click on Lambda, it will open the AWS Lambda Console as shown in the following screenshot:
To create our first function, in the AWS Lambda console, click on the Create function button, it will take you to the create function page. Select Blueprints and type hello-world-python in the fiterbox as shown in the below screenshot:
Then click on the configure button, it will take you to the configuration page. In this page you will enter name workfall-serverless-helloworld, choose execute role as shown in the following screenshot:
You can make some changes (if you want) in your python function coding. I am not doing any changes in the function. Let’s keep it as it is to start with.
Then click on the Create function button as shown in the above screenshot. You will get the following screen which shows your first Lambda function got created successfully.
Configure your memory, timeout, and VPC settings by scrolling down to see the method code. I am not making any changes as of now and using the default Lambda function configuration values.
Now it’s time to put the Lambda function to the test, double-check the results, and go over the logs.
As shown in the following screenshot, select configure test event from the drop-down menu called “Select a test event…”.
It will popup the Configure test event editor. Choose hello-world from the Sample event template list on the Input test event tab, then name the event HelloWorldEvent, as shown in the screenshot.
You can also change the values in the sample JSON as shown in the following screenshot. And then click on the Create button.
Now it is time to Test this function. Click on Test button as shown in the following screenshot:
Upon successful execution, you will be able to view the execution result as shown in the below screenshot.
Let’s do a quick change in out function return value, to modify the outcome of the function. As shown in the below screenshot, now function is returning values of all three keys as a sentence. After doing required changes in the code, click on the Deploy button.
Now click on the Test button to run the updated function. You will get output as shown in the following screenshot:
The Log output section will show the logs generated by the Lambda function execution which includes detailed information about billing duration, memory size, etc. as shown in the screenshot below:
AWS Lambda analyses Lambda functions automatically and delivers metrics to Amazon CloudWatch. Click on the Monitoring tab to view the results.
The Monitoring tab will show CloudWatch metrics including Invocation count, duration, errors, etc. as shown in the following screenshot:
With AWS Lambda, you pay for what you use. After you’ve used up your free AWS Lambda tier, you’ll be charged based on the number of requests your functions receive (invocation count) and the length of time your code runs. (invocation duration)
You will not get charged by AWS for keeping your Lambda function. But if you wish to delete it from the AWS Lambda console, you can delete it from the Functions page. Select the function and choose Delete from the Actions dropdown as shown in the below screenshot:
Conclusion
In this blog, you have seen how easily we can transform traditional web development into serverless! The serverless approach allows you to build and run applications and services without thinking about servers. With a serverless approach, your application still runs on servers, but all the server management is done by AWS or other providers. AWS Serverless service Lambda comes with automatic scaling, built-in high availability, and a pay-for-value billing model.
We will discuss more about serverless architecture in our upcoming blog. Stay tuned to keep getting all updates about our upcoming new blogs on AWS and relevant technologies.
Meanwhile …
Keep Exploring -> Keep Learning -> Keep Mastering
This blog is part of our effort towards building a knowledgeable and kick-ass tech community. At Workfall, we strive to provide the best tech and pay opportunities to AWS-certified talents. If you’re looking to work with global clients, build kick-ass products while making big bucks doing so, give it a shot at workfall.com/partner today.