I'm trying to run a few integration services that only operate for about 2 to 3 hours weekly. Here's what my setup looks like: I have a web portal that manages auth and user routing into their respective integrations, and each integration is a separate service. Most of these integrations are multi-tenant, but the user demand is pretty low. Since users go through the portal before accessing an integration, I can afford a cold boot before they need the services. I'm looking to scale these integration services down to zero replicas when they're not in use and start them on-demand. Additionally, I want to implement a rolling deployment process where I can deploy, boot, validate, tear down, and then move to the next service. My stack consists of AKS, Spring Boot, and Go. Any suggestions on how to approach this?
6 Answers
+1 for Knative Serving! It's super effective for your use case, especially with the recent release supporting scale-to-zero natively with HPA. Definitely give it a look!
Knative and OpenFaaS are excellent solutions for what you’re trying to achieve. They both support serverless functions that can scale to zero when idle, which fits your needs perfectly.
Yes, you can definitely do this! The most common options are Knative and KEDA. Knative Serving is designed for this purpose, automatically scaling to zero for HTTP requests. If an incoming request comes in and there are no pods running, it'll queue it, start a pod, and then redirect traffic once it's ready. KEDA is more event-driven but has an HTTP add-on that works similarly. Just a heads-up: while your Go services start instantly, Spring can take longer to boot up, so consider looking into GraalVM native images to speed that up. For your rolling deploys, you can automate the process: deploy a service, trigger it, test it, and let Knative or KEDA scale it back down once idle before moving on to the next service.
Knative is a great choice! In version 1.36, they will officially support scaling to zero naturally. It seems like it could work well for your scenario too.
For your setup on AKS, KEDA is often the simplest solution since you can use HTTP triggers to start pods as needed and scale down to zero when they’re not in use. Knative offers more traditional serverless features with request-based autoscaling. It's worth exploring both options depending on your specific needs!
You should check out KEDA; it allows you to scale based on requests. It provides a nice way to handle scaling in Azure Kubernetes Services. Here's a good starting point for KEDA: [Learn More About KEDA](https://learn.microsoft.com/en-us/azure/aks/keda-about).

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically