Intro To Fermyon Platform for Kubernetes
MacKenzie Adam
spin
fermyon platform for kubernetes
fermyon
kubernetes
If you’ve been following Fermyon, you’ve joined us on quite a journey as we’ve worked through the mechanics of running Spin applications at scale for quite some time.
We started with the original Fermyon Platform a few years ago, which empowered platform engineers to run their Spin applications on a self-hosted Nomad cluster. This was the predecessor to Fermyon Cloud, a fully managed serverless environment for running Spin applications built for those not interested in platform management. Fermyon Cloud was designed with efficiency and performance at the top of our minds, to accommodate the requirement of running thousands of Spin applications on behalf of our users on a multi-tenant platform with unpredictable traffic patterns.
Over time, we received overwhelming feedback from Spin users who saw the benefit of running WebAssembly (Wasm) applications but needed the ability to run these applications as first-class workloads in their Kubernetes cluster. Thus, the next incarnation of Fermyon Platform began; bringing Kubernetes orchestration support. A few weeks ago, we released SpinKube, an open source platform for efficiently running Spin-based Wasm applications on Kubernetes. SpinKube is built with love by folks from Microsoft, SUSE, LiquidReply, and us here at Fermyon. With all of the SpinKube fundamentals and all of the past achievements in optimizing the efficiency, security, density and performance of Fermyon Cloud, we now have Fermyon Platform for Kubernetes.
What Is Fermyon Platform for Kubernetes?
Fermyon Platform for Kubernetes is Hyper-Efficient Compute With Stunning Performance.
Let’s take a closer look into why you should consider using the Fermyon Platform for Kubernetes and how it works.
At Fermyon, we’re passionate about bringing you the next generation of serverless, and we believe that enabling developers to quickly deploy Wasm applications to Kubernetes via Fermyon Platform for Kubernetes is a cornerstone of that mission. We’re not alone in this vision, either – at KubeCon Paris this year, Wasm was cited as the top-most trending topic.
Let’s explore how you might leverage the Fermyon Platform for Kubernetes to unlock new possibilities.
Why Use Fermyon Platform for Kubernetes?
Cost
Perhaps the first response to this question is simple; to meet your cost-saving goals for 2024. Fermyon Platform for Kubernetes can help you reach your cost savings goals without compromising on performance or availability. We achieve this by harnessing the best Wasm has to offer and bringing that power directly to your Kubernetes cluster as first-class workloads. We offer enterprise-grade support and hyper-efficient allocating of workloads across nodes to optimize resource utilization and reduce costs; refined by our industry experience from managing Fermyon Cloud workloads at scale. Cost-saving goals in the context of Kubernetes are well documented. For example, Google’s State of Kubernetes Cost Optimization paper discusses better utilization of resources and mentions practices implemented by high and elite performers to meet the demands of cost-efficient Kubernetes clusters without compromising reliability and performance. In addition to this, the 2023 State of FinOps report highlights the increase in container costs and the need to reduce waste as top challenges. Flexera’s 2023 State of Cloud Report also notes optimizing the existing use of the cloud as the top initiative for the seventh year in a row.
Density and Performance
Fermyon Platform for Kubernetes is built with core components from Fermyon Cloud to optimize for density and performance. When we talk about density in the context of Fermyon Platform for Kubernetes, we’re looking at the maximum number of Spin applications you can run on a single host. With Fermyon Platform for Kubernetes’ specialized runtime, you can host up to 5,000 Spin applications on a single node (nearly 20x the existing pod limit in Kubernetes today). You can take a look at Fermyon Platform for Kubernetes in action in this short demonstration:
Considering you don’t need to run pre-warmed instances to benefit from the sub-millisecond start-up time, it becomes significantly easier to bridge the gap between average and peak (99th percentile) resource utilization figures.
Portability
Depending on your specific scenario you may be able to further deepen the cost savings discussed above by moving your workload to a potentially cheaper architecture such as ARM64; given that Wasm workloads are inherently portable across a range of architectures and operating systems. No rewrites are required.
How Does Fermyon Platform for Kubernetes Work?
Let’s look at the Fermyon Platform for Kubernetes Stack. Fermyon Platform for Kubernetes provides an end-to-end toolkit to ensure you have everything you need to run your Spin applications on Kubernetes:
- Application developers will use Spin to compose their applications and test them locally.
- Spin Apps are run as custom resources on your Kubernetes cluster, which rely on a unique executor specifically designed for Fermyon Platform for Kubernetes. Configuration for these can be written or transposed (i.e. from TOML to YAML) using the
spin kube scaffold
command:
apiVersion: core.spinoperator.dev/v1
kind: SpinApp
metadata:
name: hello
spec:
executor: cyclotron
image: "public.ecr.aws/myregistry/my-fp4k-demo-app:v1"
replicas: 2
- Platform engineers will install the necessary shim, CRDs, and controllers to deploy Spin Applications as “Spin Apps” to their clusters and manage the resources accordingly.
What’s Next?
You may be wondering whether your workload is well-suited for Wasm or what sort of prototypical workloads we encounter here at Fermyon. If so, check out the second series of this article in which we discuss enterprise patterns and architectures where Wasm workloads shine.
If you’d like to chat more about whether your workloads are a fit for Fermyon Platform for Kubernetes, or if you’re interested in a live demo, please reach out here.
Want to learn more? Check out these resources:
- The Fermyon Platform for Kubernetes announcement page (where you can schedule a demonstration and a technical walk-through).
- The SpinKube project’s website to get a feel for the ergonomics of the platform.
- Spin application examples on the Spin Up Hub for inspiration on what to build.