According to the Cloud Native Computing Foundation (CNCF), serverless computing adoption increased 22 percent between December 2017 and November 2018. The CNCF survey also found that 26 percent of organizations expected to deploy a serverless computing solution within the next 12 to 18 months.
A separate study from RightScale found that serverless computing was growing faster than any other public cloud service from early 2017 to early 2018, with adoption jumping from 12 percent to 21 percent during that period. Overall, the serverless market is expected to reach $7.7 billion by 2021, up from $1.9 billion in 2016.
With serverless computing, servers are fully abstracted and resource allocation is handled by the cloud service provider. The customer runs code as needed and is billed for the resources that are actually used by applications. There is no need to pre-provision or overprovision compute or storage capacity.
A related concept is Function-as-a-Services (FaaS). FaaS is similar to Platform-as-a-Service (PaaS) in that it provides a platform for software development and simplifies the deployment of applications in the cloud. This allows developers to focus on building and testing applications and pushing them into production without having to worry about the operating system or infrastructure management.
But while PaaS supports entire applications, FaaS enables the deployment and management of individual application functions. It is also a type of serverless computing in that resources are allocated only when the function is running. Scaling is event-driven rather than resource-driven and occurs within seconds. The major FaaS solutions, including AWS Lambda, Azure Functions and Google Cloud Functions, provide tools for automating and orchestrating resource allocation.
FaaS supports Agile and continuous development processes, microservices architectures and continuous delivery pipelines. Serverless computing can also reduce infrastructure costs and administrative overhead, and create a more flexible IT environment capable of responding to unpredictable application demand.
However, serverless computing does present challenges in terms of application performance. Applications running on a serverless platform often coexist with other types of workloads, and cloud providers impose limits on memory and processing resources. As a result, latency (the time it takes to start a particular function) and concurrency (the number of independent functions running simultaneously) must be considered.
The dynamic nature of applications and functions running in a serverless environment make it difficult to pinpoint the source of performance problems. Traditional application performance monitoring tools focus on individual applications run in fairly static environments, giving IT teams limited visibility into ephemeral workloads.
Solutions are emerging for monitoring application performance in serverless and FaaS environments. Monitoring is activated when the application or function is invoked so that metrics and events can be collected and correlated to key performance indicators. IT teams gain insight into throughput, response times and exception rates, and the impact on users, business processes and the overall application environment.
Technologent’s deep expertise in application performance monitoring is an invaluable resource for organizations looking to adopt serverless computing and FaaS. Our team can assess your environment and help you take advantage of tools that help optimize the performance of all applications, including ephemeral workloads. Let us show you how to take full advantage of serverless computing by implementing a sound application performance monitoring strategy.