Skip to content

Extending AppScale to Run Arbitrary Code

shatterednirvana edited this page Sep 22, 2012 · 1 revision

AppScale can run arbitrary code via the NeptuneManager. This makes it easy for programmers to use Neptune to run their code without needing to worry about configuring virtual machines, deploying them, and so on. As long as the AppScale virtual machine has support for a certain programming language / library, it can run code that needs it. Here's a list of programming languages we install automatically on new AppScale images:

  • Ada
  • C
  • C# (via Mono)
  • Erlang
  • Fortran
  • Go
  • Haskell
  • Java
  • O'Caml
  • Python
  • Ruby
  • Scala

And here's a list of libraries we install automatically on new AppScale image:

  • MPI
  • Hadoop MapReduce
  • X10
  • KDT
  • numpy
  • scipy

There are two ways to extend the AppScale image to run other packages, depending on if you want the package to be installed one time, or every time.

  • One-time usage: Just log into each of your AppScale virtual machines, install the packages you want to use, and then you're done!
  • Every-time usage: If all you need to do to install your package is use apt, you can just list the necessary packages in appscale/debian/control.core.lucid. Otherwise, open appscale/debian/appscale_install_functions.sh and add a function called install_mypackage. This function should automatically install your package and prepare it for use by Neptune jobs. Then, look for the function called install_neptune, and modify it to call install_mypackage. Note that you'll need to build a new AppScale image so that this code gets executed and your package is installed.

Clone this wiki locally