With the shift in software architectures towards microservices and containerized deployments in recent years, serverless cloud services have gained traction. Many IT teams are finding that serverless — and AWS Lambda in particular — are freeing up time for tech teams to work on more innovative software projects than in the past. And with 67% of enterprise IT spending expected to be for cloud-based offerings in 2020, there’s no end in sight for the growth of serverless services.
Let’s take a closer look at AWS Lambda, how CrafterCMS has a similar architecture, and the primary advantages the CMS has as a serverless application.
What is AWS Lambda?
AWS Lambda is a serverless computing service that lets IT teams run code without worrying about infrastructure requirements. Lambda functions — the code and its associated configuration — can be uploaded to AWS, and they’re ready to launch and scale automatically.
Lambda functions are a particular type of serverless called Function as a Service (FaaS) because they’re event-driven. That means the service has limitations, such as not allowing persistence and the ability to stop the function once the code finishes executing. These constraints are what enables AWS to scale the computing resources elasticity.
AWS Lambda functions can be triggered by HTTP requests, Amazon API calls, or other actions from AWS services. Once triggered, the code is run without any resource provisioning tasks by IT staff. These functions are often used to extend AWS services, create custom backends for applications, or deploy on-demand code in a variety of programming languages.
How CrafterCMS Is Like AWS Lambda
CrafterCMS has a similar architecture to AWS Lambda functions. A Crafter deployment consists of a set of API-driven microservices that are completely decoupled. Both CrafterCMS and AWS Lambda functions, therefore, are stateless and serverless by default.
Serverless enables IT teams to deploy applications without needing to know the infrastructure that will run it. AWS Lambda functions are an opinionated approach to serverless because it’s tied to the Amazon cloud ecosystem. Azure Functions and Google Cloud Functions are similar offerings. Starting with CrafterCMS version 3.1, the content platform began supporting serverless deployments using Docker, Kubernetes, and a bucket storage service like AWS S3.
Stateless applications don’t need to manage and persist what happens between events or interactions. That means stateless technologies like HTTP or REST APIs aren’t tied to the underlying infrastructure. AWS Lambda and other stateless services can scale automatically without worrying about conflicts or errors from inconsistent states across computing resources. Crafter Engine — the content delivery tier — has diskless support for stateless containerized deployments.
But CrafterCMS Takes It Further
CrafterCMS and AWS Lambda functions are similar in that their serverless and stateless architecture enable IT teams to deploy software to remote servers that automatically scale to meet computing demand. CrafterCMS, however, has a number of advantages over other software deployed as Lambda functions such as greater interoperability, diskless support, a shared-nothing architecture, planet-wide scalability, and cloud portability.
CrafterCMS is completely interoperable with AWS Lambda. That means the CMS can kick off Lambda actions using HTTP requests or other integration points to leverage on-demand functionality. Similarly, Lambda functions can call Crafter APIs as well. Most other CMS solutions struggle to integrate with AWS Lambda out of the box, but CrafterCMS can tightly integrate with the service to fuel content-driven apps or websites.
The ability to deploy CrafterCMS diskless is critical to having a truly stateless content management system. Most legacy CMSs require multiple calls to a database from the authoring and delivery tiers. Crafter, however, doesn’t require a database or any persistence layer at all. Instead, Crafter integrates with cloud-based blob storage service like S3 for content retrieval. That means CrafterCMS is highly elastic and can match traffic demand without compromising on global content distribution.
CrafterCMS takes stateless a step further with a shared-nothing architecture. That means globally distributed Crafter Studio and Crafter Engine instances can be deployed wherever end-users are — whether they’re marketers or consumers. These Crafter nodes have completely independent locally indexed content and in-memory caches for truly planet-scale deployments. This also eliminates a single point of failure and helps avoid unexpected downtime. A shared-nothing architecture is critical for enterprise-grade performance and reliability.
With similar architectures, CrafterCMS and AWS Lambda functions are both infinitely scalable. This is crucial when launching content-driven digital experiences that leverage both technologies without risking outages or downtime. That’s because Lambda could easily outscale a legacy CMS that’s not serverless and stateless. CrafterCMS, however, scales in the same way as AWS Lambda and won’t be brought down by one or more Lambda functions. Maximum scalability is crucial for high-performance content apps.
While CrafterCMS is similar to Lambda, the platform isn’t limited to AWS. Instead, CrafterCMS is agnostic and can be deployed to any cloud environment, whether its AWS, Google Cloud, or Microsoft Azure. Cloud vendor independent deployments are crucial for avoiding vendor lock-in situations and ensuring organizations remain digitally agile.
CrafterCMS: The Lambda-Ready Content Platform
AWS Lambda and other serverless providers are a convenient way to launch on-demand services for content-driven applications. There’s virtually no admin required and guaranteed scalability with serverless deployments. And there’s typically pay as you go for most serverless service providers. That means developers can focus on the business logic instead of the infrastructure — as long as their CMS plays nicely with serverless solutions.
CrafterCMS readily integrates with Lambda functions, without any headaches. CrafterCMS can easily call Amazon APIs or Lambda functions can call Crafter APIs. And this tight integration doesn’t risk one out scaling the other because they’re both serverless and completely stateless. CrafterCMS takes this a step further, however, because the platform is portable to any other cloud provider as well. CrafterCMS is the Lambda-friendly solution for planet-scale deployments.