Virtualization Technology News and Information
Article
RSS
Serverless Computing Skyrocketing - How to Identify What Solution is Right for You

By Ben Newton, Operations Intelligence Evangelist, Sumo Logic

Serverless computing is the latest, greatest thing in the technology world, providing a way to deploy applications by running functions on-demand. The major advantage of serverless is that it allows an application, or part of an application, to be executed whenever it is needed, but without requiring an execution environment to be running constantly or managing dependencies and libraries. Although the concept has been around in one form or another for more than a decade, the introduction of serverless platforms from major cloud providers-starting with AWS Lambda in 2014-has now made serverless mainstream.

According to Sumo Logic's fourth annual Continuous Intelligence Report, one in three enterprises currently use AWS Lambda in production and it has become one of the top 10 AWS services by adoption. As serverless adoption continues to accelerate, there's a number of solutions on the market for users to consider and below is an evaluation of major cloud provider services and their unique advantages in managing specific workloads.

Serverless Computing on AWS

Although statistics on serverless computing market share are still elusive, AWS Lambda is probably the most popular serverless computing platform at the moment. In the last year, AWS Lambda adoption has grown dramatically from 29% (2018) to 36% (2019).

Lambda supports the execution of functions written in Node.js, Python, Java, C#, and Go. Lambda functions run on a shared platform, but each execution environment is isolated; in this respect, Lambda offers similar privacy and security to standard EC2 virtual servers or ECS containers.

Since functions that are executed on Lambda must be stateless, this places some limitations on the types of workloads that can be run on AWS's serverless platform. However, Lambda code can access persistent storage services on other parts of the AWS platform, such as S3, and use persistent database services like DynamoDB or Aurora Serverless.

If you already use other AWS services, deciding to adopt Lambda can be a good option. Because Lambda is the most popular serverless solution at the moment, it is easy to find documentation and third-party integrations for it. However, the list of languages supported by Lambda is not as extensive as some other serverless services.

Serverless Computing on Azure: Functions

In response to AWS Lambda, Microsoft launched  Azure Cloud Functions in late 2016.

Like Lambda, Azure Functions is a mature, widely used serverless platform. While, Azure's serverless platform offers similar functionality to Lambda, key differences include:

  • Support for a broader range of languages, including those that are available with limited support. C#, Javascript and F# are currently fully supported on Azure Functions, while Java, Python, PHP, TypeScript, Batch, Bash and PowerShell are available in experimental or preview modes. This makes Azure's list of supported languages for serverless longer overall than that of AWS Lambda, although the list of available languages is shorter.
  • The ability to create and execute stateful serverless functions using the Durable Functions feature on Azure. (Durable Functions is currently available with preview support.)

Google's Cloud Functions Serverless Platform

Although Cloud Functions, Google's main serverless platform, only debuted in February 2016, Google App Engine has offered metered billing for certain applications since in 2008. App Engine's functionality was much more limited than that of modern serverless platforms, but it was nonetheless a precedent to services like AWS Lambda.

Google Cloud Functions' biggest differentiator from Lambd and Azure Functions is that JavaScript is the only supported language on Google's serverless platform. That said, it is also possible to execute other languages, such as Python, using third-party wrappers. Google Functions also does not support environment variables, and access controls cannot be configured at a granular level.

In general, Google Functions is a less mature serverless framework than the serverless platforms from AWS and Azure. However, it is sufficient for certain workloads, and it is likely that Google Functions will continue to expand its feature set and supported languages going forward.

The Future of Serverless - More Choice and Availability

Serverless execution models help enterprises save on time and expense that is often associated with traditional models. Rather than maintaining a server 24/7 - but only using it part of the time - organizations can deploy code in a serverless environment and pay only for the resources they actually consume.

The serverless platforms available from AWS, Azure and Google Cloud Platform are by no means the only ones out there. Another option is Fn, which supports serverless computing both in the cloud and on-premise and OpenWhisk from IBM. As serverless adoption continues to accelerate, it's a safe bet that other vendors, even those outside traditional cloud providers, will be rolling out additional serverless solutions as the market expands.

##

About the Author

Ben is a veteran of the IT Operations market, with a two decade career across large and small companies like Loudcloud, BladeLogic, Northrop Grumman, EDS, and BMC. Ben got to do DevOps before DevOps was cool, working with government agencies and major commercial brands to be more agile and move faster. More recently, Ben spent 5 years in product management at Sumo Logic, and is now running product marketing for Operations Analytics at Sumo Logic. His latest project, Masters of Data, has let him combine his love of podcasts and music with his love of good conversations.

Published Friday, November 01, 2019 7:32 AM by David Marshall
Comments
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
top25
Calendar
<November 2019>
SuMoTuWeThFrSa
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567