This is part of a series of articles about CI/CD
The term Serverless Containers represents the idea that customers can now run containers without having to manage the actual servers or compute infrastructure that the containers are running on.
In this guide, you will learn:
Serverless
Traditionally, the “Serverless” term was associated with platforms like AWS Lambda (Functions as a Service). With this new paradigm, users don’t have to deal with any maintenance or management of the underlying infrastructure in order to run their code.
Here are several characteristics that define Serverless very well:
- No maintenance of infrastructure
- Scale by request – The service will scale based on real-time requests
- Utility billing – Pay only for what you use
- Scale to zero – The service can scale all the way down to zero when there is no usage
- Fast Scaling – no waiting for threshold to satisfy container needs immediately
When these terms are met, it means a PaaS platform is “Serverless” since it handles all the infrastructure and maintenance aspects for the user.
Over time, customers wanted to extend that approach, and instead of packaging their code in a ZIP file and shipping it to a Serverless platform, they wanted to have a way to ship a standard container that includes all of their dependencies, specific OS, packages, code, and configurations. Recently, this has become available with new “Containers as a Service” technologies, and the two converged in what is now known as “Serverless Containers”.
Containers
According to Docker’s website, containers “are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers take up less space than VMs (container images are typically tens of MBs in size), can handle more applications and require fewer VMs and Operating systems.”
Containerization has become extremely popular and has modernized application architecture, helping companies move from monolithic architecture to microservices.
Bringing containers and serverless together
AWS now offers a Serverless Container product, Fargate which enables companies to run containers without having to manage EC2 servers or clusters.
Users now can run microservices in their containers in a serverless environment.
Fargate completely removes the need to touch infrastructure for companies that use AWS’s ECS or EKS services . While this helps reduce the complexity involved in managing the underlying infrastructure, Fargate can be quite expensive. Additionally, it is not currently available with spot instance pricing for Kubernetes or EKS users. Lastly, the user has zero control or visibility into which instance types are being used, which can impact performance.
Related content: Read our guide to kubernetes ci cd.
Google also offers a serverless containers option with Cloud Run and Microsoft Azure offers Container Instances so their users can run containers in the cloud without managing any servers.
Spot by NetApp’s Ocean provides an ideal Serverless Container experience for enterprises and SMBs using AWS, Azure or GCP. Ocean manages all the underlying infrastructure, removing all the time-consuming, nitty-gritty tasks, freeing DevOps to handle more important, core IT and engineering activities.
Learn more in our detailed guide to azure ci cd.
With Ocean’s built-in container-driven autoscaling, all resource requests are handled based on real requirements for CPU and Memory, resulting in high workload availability. Whenever more node optimization is possible, Ocean will cease Pod or Task scheduling, and will proactively and gracefully drain any underutilized Nodes and bin-pack containers onto the best suited instance(s).
Additionally, Ocean can run all your container workloads on EC2 spot instances with enterprise-level SLAs so you can enjoy a serverless experience without breaking the bank with up to 90% cost savings.
With Ocean you also are able to control which instance types are being used so you can make sure your workloads are running on hardware that is best suited for them.
Use All EC2 Pricing Models
Ocean also will utilize any unused AWS Savings Plans and RIs you might have, which further optimizes your overall cloud cost and ROI. In the event that there are no spot instances available, Ocean will fall-back to on-demand instances ensuring your workload always runs.