Migrating to Kubernetes Using AI- The Container Readiness Assessment Platform
The Ask
- Check to see if existing applications can be deployed without changes to Kubernetes
- Use the least amount of information as possible
- Provide starter files to help deploy the app
The Challengers
- Be more accurate/more efficient than ‘brute force’ (just wrap an app in a container and deploy against a template)
- Be faster than refactoring
- Be more efficient than just migrating a running VM
- Don’t be dependent on a GPU to run the model!
The Answer
- The Container Readiness Assessment Platform
- Uses a single file (build file)
- Uses an LLM to determine
- what language is the app? (e.g. Java, C#, NodeJS, Python, etc…)
- can the application, based only on the build file, be deployed without changes to Kubernetes?
- if it can, generate a custom
Dockerfilefor this code - then generate a custom
deployment.ymland include things like liveness checks, environment variables, and more where appropriate - finally, generate a
service.yml
### How It Works
- It’s a simple python app with a reactjs(vitejs) frontend
- It works asynchronously –> so it can run on a CPU instead of GPU
- upload the build file
- get an ‘order’ id
- go get a coffee…
- It uses an s3 bucket and folders to maintain state
- It uses a series of prompts to get the answer (not a single prompt)
Why?
- Wanted to demonstrate CPU-based LLMs can be used in an Enterprise setting… you just have to wait
- Use the least amount of information to do a detailed step
- Reduce human analysis
- Reduce the need for complex hard coded analysis
What’s Next?
- Deployment Automation as step 6
- we have the code, the configuration, now let’s deploy the scanned app and check
- Java Binary Analysis
- take a Jar file, explode it, and use what’s inside for determination
Where Is It?
- Code is here Container Readiness Assessment Platform