Serverless

Deploying applications as serverless services is a good alternative to a regular Deployment / Service model when the applications purpose is to serve HTTP or gRPC requests, either internal or from the Internet. CoreWeave uses the KNative runtime to support deploying a serverless application with a single manifest. No installation necessary.

Serverless Benefits

  • Automatic public HTTPS endpoints

  • Auto-scaling, including scale to zero

  • No public IP charges

  • ‚ÄčCanary deployments and other advanced deployment strategies

One Step Example

helloworld-ksvc.yaml
apiVersion: serving.knative.dev/v1 # Current version of Knative
kind: Service
metadata:
name: helloworld # The name of the app
annotations:
autoscaling.knative.dev/minScale: "0" # Allow scale to Zero
autoscaling.knative.dev/maxScale: "10" # Maximum number of Pods allowed to auto-scale to
spec:
template:
spec:
containerConcurrency: 10 # Container can handle 10 concurrent requests
containers:
- image: gcr.io/knative-samples/helloworld-go # The URL to the image of the app
resources:
limits:
cpu: 2
memory: 4Gi
env:
- name: TARGET # The environment variable printed out by the sample app
value: "Go Sample v1"

After applying the manifest, get the public URL of the service. The service will be scaled up and down based on demand, and scaled to zero consuming no resources and incurring no billable charges when idle.

$ kubectl get ksvc
NAME URL LATESTCREATED LATESTREADY READY REASON
helloworld https://helloworld.default.knative.chi.coreweave.com helloworld-ngzsn helloworld-ngzsn True

Monitoring

Managed Grafana provides monitoring of requests, success rates, response times and auto-scaling metrics transparently. No metrics specific code needs to be added to the serverless application.