The purpose of this documentation is to provide developers and students with a very simple guide on how to get started to program in the cloud. The documentation is available in a variety of formats including:

The material is based on practical experience that we gained form interacting with undergraduate students starting from the freshman level to graduate students working on a PhD. Naturally, this means that some material may seem to you very simple and at other times we find that some material may be missing or may have changed over time.

It is a pleasure if you can improve this material and potentially contribute your own section to it. You can coordinate your contribution by contacting Gregor von Laszewski (laszewski@gmail.com).

Independent Study at IU

Gregor is also an Adjunct Associate Professor at Indiana University in the Computer Science Department and thus can supervise students to take independent studies. Independent studies provide an excellent opportunity to engage more intensely in projects related to cloud computing. Independent studies may not just include cloud computing activities but can also be done on other topics related to computer science. You can als propose your own topic and we can discuss if it is suitable. Almost all programming is done in Python, and Javascript. We accept a suitable small number of projects in Java if necessary as part of the topic. The topics are not listed by priority. One or more topic may be covered in the independent study. We will discuss this in a meeting. The amount of work for a 3 hour independent study is the same for a very demanding class in the departments. Expect 15-20 hours of work per week. Those with significant programming experience will have an easier time.

Cloud Topics

  • Develop a cloud portal in django replicate significant functionality of our flask portal)
    • must use bootstrap
    • must use jinja2 in addition to djangos rendering engine
    • must interface with our mongodb (not needed for authentication)
    • must provide a user mashup between the user database from django and our own user database (containing contact information)
  • Develop a user management system
  • Improve the CLoudmesh Portal with Javascript
  • Manage 10000 virtual machines
  • Develop a PaaS launcher
  • Develop an HPC interface
  • Develop improvements to the cloud shell

Data Topics

  • Develop a program that solves name ambiguity in bibliographic data by investigating a social network graph
  • Develop a scalable distributed mongo db for our publication data, conduct performance comparisons for searches

Student Employment at IU

An independent study is also a precursor to gaining employment as a student with him at Indiana University with us. Students without significant programming experience will not be considered. Preference is given to those that have strong background in python and Javascript. If you do not have such knowledge, we expect that you gain it as part of your independent study. In some cases exceptions are made, this may include students that have programmed significantly in other projects.

Employment is mostly done on an hourly rate. During the time of employment we also recommend that students take an independent study with Gregor. IN some cases this is mandatory to be considered. Thus plan your independent studies carefully.

Contributing to the Manual

If you have a good chapter that you like to integrate into this manual, please contact Gregor von Laszewski (laszewski@gmail.com).

Suggestions include:

  • Development Ecosystem
    • git
    • virtualenv
    • introduction to python
    • introduction to Javascript
    • flask
    • django (we have some material to start with)
    • explain how to create commands in cm with cmd3
  • Cloud
    • get an account on FutureSystems (possibly just a link)
    • use nova client from the command shell
    • python example on how to manage vms with cloud mesh API & shell
    • IaaS Intro (pick your IaaS)
    • PaaS Intro (pick your Platform)