What is serverless?


Serverless is a cloud architecture pattern for building scalable, event-driven applications from small discrete functions — without managing infrastructure.

Learn more about GitLab

What Is serverless?

Serverless is a software architecture pattern using event-driven code execution powered by cloud managed services. Developers build massively scalable, cost-efficient applications composed of small discrete functions without designing for underlying infrastructure.

The term emphasises an architecture where developers focus on business logic rather than infrastructure management.

What is serverless business logic?

Serverless business logic means developers concentrate solely on application functionality. Every application uses servers, but serverless architecture abstracts infrastructure concerns entirely from the development process.

Serverless is the next evolution of architectural design from monolith, to microservices, to functions as Adrian Cockcroft explains in this video.

What Is the difference between serverless and FaaS?

Serverless and FaaS (Functions as a Service) are often used interchangeably, but this is inaccurate. Serverless is an overarching architectural pattern that incorporates FaaS alongside other cloud managed services.

What is FaaS?

FaaS is a specific service type enabling developers to deploy individual functions. Examples include AWS Lambda, Google Cloud Functions, and Azure Functions. FaaS handles function execution without requiring server provisioning.

How does FaaS fit into serverless architecture?

FaaS provides the compute layer within serverless architecture. Other serverless architecture-managed services handle storage, databases, queuing, and messaging. Together, these components form a complete serverless application.

What are the core attributes of serverless?

Serverless computing removes infrastructure management requirements. Several core attributes define how serverless architecture operates. To better understand how this works, below are some of the core attributes that define serverless architecture:

Small, discrete units of code

Often services written using serverless architecture are comprised of a single function.

Event-based execution

The infrastructure needed to run a function doesn't exist until a function is triggered. Once an event is received an ephemeral compute environment is created to execute that request. The environment may be destroyed immediately, or more commonly stays active for a short period of time, commonly 5 minutes.

What does scale to zero mean?

Once a function stops receiving requests the infrastructure is taken down and completely stops running. This saves on cost since the infrastructure only runs when there is usage. If there's no usage, the environment scales down to zero.

What scale to infinity mean?

The FaaS takes care of monitoring load and creating additional instances when needed, in theory, up to infinity. This virtually eliminates the need for developers to think about scale as they design applications. A single deployed function can handle one or one billion requests without any change to the code.

Use of managed services

Often serverless architectures make use of cloud provided services for elements of their application that provide non-differentiated heavy lifting such as file storage, databases, queueing, etc. For example, Google's Firebase is popular in the serverless community as a database and state management service that connects to other Google services like Cloud Functions.

Comparison of cloud managed services

Here is a chart of with examples of managed services from AWS, Google Cloud, and Azure along with their open source counterparts.

ServiceOpen SourceAWSGoogle CloudAzure
FaaSKnativeLambdaCloud FunctionsAzure Functions
StorageMinioS3Cloud storageAzure storage
SQL DBMySQLRDSCloud SQLAzure SQL Database
NoSQL DBMongoDB, Cassandra, CouchDBDynamoDBCloud DatastoreCosmos DB
Message queueKafka, Redis, RabbitMQSQS, KinesisGoogle Pub/SubAzure Queue Storage
Service meshIstioApp MeshIstio on GKEAzure Service Fabric Mesh

What are the business values and benefits of GitLab serverless?

GitLab Serverless allows businesses to deploy their own FaaS on Kubernetes.

How does serverless Increase development speed?

Developer productivity increases when teams focus solely on business logic. Removing infrastructure concerns accelerates the pace of innovation and reduces time to deployment.

How does serverless improve stability?

Serverless provides greater stability and resiliency. Managed infrastructure reduces downtime risk and associated revenue loss compared to self-managed servers.

How does serverless handle scale?

Serverless software automatically keeps pace with business demand. Applications scale without manual intervention or capacity planning.

How does serverless reduce cost?

Compute billing occurs only when services are active. Serverless provides significant cost savings versus always-on infrastructure that bills continuously regardless of usage.

How does serverless avoid vendor lock-in?

No vendor lock-in. Organizations can choose who they want to run their compute. In any cloud that supports Kubernetes, or even on-premises servers.

How does serverless integrate with development workflow?

Your FaaS is part of the same workflow as the rest of your software lifecyle with a single appliction from planning and testing, to deployment and monitoring.

How does serverless simplify deployment?

Deploying functions is greatly streamlined and simplified vs using Knative directly.

Frequently Asked Questions

Start building faster today

See what your team can do with the intelligent orchestration platform for DevSecOps.