Take the 2-minute tour ×

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

1 Answer 1

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


