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
    1. what language is the app? (e.g. Java, C#, NodeJS, Python, etc…)
    2. can the application, based only on the build file, be deployed without changes to Kubernetes?
    3. if it can, generate a custom Dockerfile for this code
    4. then generate a custom deployment.yml and include things like liveness checks, environment variables, and more where appropriate
    5. 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?