Wednesday 14 September 2011

WHAT IS JUJU?

cloud.png
The emergence of cloud computing has reduced the task of server provisioning down to minutes, from days. Juju is the next evolutionary step. It reduces the task of provisioning and control of service applications in the cloud down to seconds, from hours.
Before the cloud, deploying interconnected services across multiple servers required days, if not weeks. One had to procure the necessary hardware, find lab space for them, physically set them up, install the OS and required applications, and then configure and connect the various applications on each machine to provide the right desired services. Once the entire solution was deployed, upgrading or replacing the service applications, modifying the connections between them, scaling out to account for higher load, and/or writing custom scripts for re-deployment elsewhere all required even more time.
Eventually, deployment tools, like cobbler and FAI, evolved to reduce the time and complexity involved in installing the OS on each machine. Then tools, like Puppet and Chef, arrived to do the same for system configuration. Finally, with the arrival of cloud computing, specifically public cloud computing, the burdens associated with hardware acquisition and setup went away. While all tremendously valuable technologies, none of these advancements really solve the complexities of orchestrating your services, i.e. deploying, connecting, and controlling your service applications across all systems. Automatic service orchestration built for the inherent elasticity of the cloud did not exist, and manual service orchestration in the cloud takes time...and in the cloud, wasted time is wasted money.