Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Say there is a ready-to-use ubuntu private cloud infrastructure using MAAS, juju and OpenStack. The next step for a newbie developer is trying to write an application upon this infrastructure as a service. But I found only small documentation about how to write Charms rather than a cloud-specialized application! As I know, Charms are only about applications deployment using juju but I need to know how to write the application itself. I'm worry about:

  1. How a cloud-application is different from a typical traditional application?
  2. How should I enable scalability for my application in both processing and storage using other 3rd parties softwares as a services (SaaS)?
  3. What are ubuntu's tools, IDEs, SDKs and etc to write a cloud-specific application?

Thanks in advance!

share|improve this question
up vote 3 down vote accepted

Your question is very broad, but I'll try to answer it the best I can. Ubuntu provides you an OpenStack cloud, this handles your infrastructure. As far as how you're going to write your application on top of the cloud is really up to you.

Since AWS is a popular cloud here are some architecture documents that you can scan that give you an idea on how to design your infrastructure for a certain need. Though these apply to AWS and use AWS-specific services you can easily adapt it for OpenStack or any other cloud.

enter image description here

In this example AWS shows how to design a web application at scale. Applying this to your infrastructure OpenStack provides the ability to set this up, and Juju would deploy the services you need. So moving from front to back Juju would provide you a load balancer (by deploying HAProxy) your webservers (Depending on what technology you use, lets assume nginx), more load balancers (HAProxy), your application servers (depending on what technology you use, let's say a Rails app), and then your databases (pick one).

Ubuntu provides the means for you to deploy and run these services, and Juju provides a way to manage and orchestrate them. As far as to how to write a cloud application, people have written entire books on the subject so you might be better off starting with one of them.

See also:

share|improve this answer
Thanks a lot! There are good materials...however, I thought that Ubuntu may have special IDEs, tools and SDKs which encapsulate the infrastructure complexity for developer. Microsoft's Visual Studio has special project template and tools and also a lot of "hello world"'s tutorials in different aspects for cloud development! Anyway, it seems that Ubuntu is harder and more technical to start...thanks again! – Yasser Zamani Jul 25 '13 at 9:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.