forked from AppScale/gts
-
Notifications
You must be signed in to change notification settings - Fork 1
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, openappscale/debian/appscale_install_functions.shand add a function calledinstall_mypackage. This function should automatically install your package and prepare it for use by Neptune jobs. Then, look for the function calledinstall_neptune, and modify it to callinstall_mypackage. Note that you'll need to build a new AppScale image so that this code gets executed and your package is installed.