Emmabuntus, Ubuntu, Derivate, Linux, Open Source BackTrack, Linux, distributions, Ubuntu, derivate, securuty, forensic VirtualBox, Linux, Ubuntu, Raring Ringtail synaptic, Ubuntu, Linux, software packages jwplayer, multimedia, Linux, Ubuntu, flash Meshlab, graphic, software, Ubuntu, open source, Linux Synapse, Linux, Ubuntu, raring, Quantal Gimp, Ubuntu, Linux FreeMind, Linux, open source Linux, infographic, history

Getting started with Juju: introdution and application modelling.

What is Juju?

Juju is a state-of-the-art, open source, universal modelling tool for service oriented architectures and application oriented deployments.

Juju allows you to deploy, configure, manage, maintain, and scale cloud applications quickly and efficiently on public clouds, as well as on physical servers,

OpenStack, and containers. You can use Juju from the command line or through its beautiful GUI.

What is application modelling?

In modern environments, applications are rarely deployed in isolation. Even simple applications may require several other applications in order to function - like a database and a web server for example. For modeling a more complex system, e.g. OpenStack, many more applications need to be installed, configured and connected to each other. Juju's application modelling provides tools to express the intent of how to deploy such applications and to subsequently scale and manage them.

At the lowest level, traditional configuration management tools like Chef and Puppet, or even general scripting languages such as Python or bash, automate the configuration of machines to a particular specification. With Juju, you create a model of the relationships between applications that make up your solution and you have a mapping of the parts of that model to machines. Juju then applies the necessary configuration management scripts to each machine in the model.

Read also: Crebs a background slideshow creator for the GNOME desktop wallpaper.
Application-specific knowledge such as dependencies, scale-out practices, operational events like backups and updates, and integration options with other pieces of software are encapsulated in Juju's 'charms'. This knowledge can then be shared between team members, reused everywhere from laptops to virtual machines and cloud, and shared with other organisations.

The charm defines everything you all collaboratively know about deploying that particular application brilliantly. All you have to do is use any available charm (or write your own), and the corresponding application will be deployed in seconds, on any cloud or server or virtual machine.

Can I use Juju with Puppet or Chef or Ansible?

Yes! Puppet, Chef, and Ansible are great tools for writing configuration files. Juju works a layer above that by focusing on the service the application delivers, regardless of the machine on which it runs. So the Juju charm for an application includes (amongst other things) all the logic for writing configuration files for that application - that logic itself can be written in whatever language or tool the author of the charm prefers.

It is common for people to start creating a charm by bringing together Puppet or Chef or other scripts which they currently use to automate the writing of the necessary configuration files. If the charm is going to be writing and updating configuration for the application, and there are already tools to abstract that configuration file nicely in your preferred language, then use that in the charm!

Even better, two different charms from different teams that use different tools will still happily work together to deploy a solution. In a large organisation, it is common for different teams choose different tools; Juju allows teams to pick whatever works for them and their expertise in their application, but still reuse whatever they want from other teams.
charm diagram
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog:
http://feeds.feedburner.com/feedburner/mcDQ

Share on Google Plus

About Hugo Repetto

Ubuntu is a Linux distribution that offers an operating system predominantly focused on desktop computers but also provides support for servers. Based on Debian GNU / Linux, Ubuntu focuses on ease of use, freedom in usage restriction, regular releases (every 6 months) and ease of installation.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment