Pressione enter para ver os resultados ou esc para cancelar.

Sebastian Ferrari explica o que é Ubuntu Juju

Uns anos atrás estava procurando uma solução para automatizar o download, instalação e configuração das aplicações que desenvolvemos. Presenciei diversos momentos estressantes na preparação do ambiente para começar o desenvolvimento num projeto, passando por diversas fases, repetidamente, perdendo uma enorme quantidade de tempo valioso. Por exemplo: hoje uma aplicação Drupal pode ter dependência de MySQL, Redis, Apache Solr,MongoDB e Varnish (não necessariamente todos ao mesmo tempo).

Sem contar com a típica frase “mas na minha máquina funciona ”. Cada desenvolvedor tinha um ambiente local diferente aos ambientes de homologação e produção, então precisava de algo que pudesse de maneira “barata” e eficiente replicar a infra-estrutura de produção (ou o mais perto disso) na máquina do desenvolvedor. E graças aos famosos Linux Containers e à integração com Juju isso é possível.

O que é Ubuntu Juju?

Bom, se você procurar pela palavra “juju” no Google, certamente não vai achar algo relacionado à tecnologia; por isso é importante sempre pesquisar por – ubuntu juju –.

Juju é uma ferramenta trazida pelo time da Ubuntu (Canonical) e, como é de se esperar, este maravilhoso software faz parte da extensa e inovadora família do Software Livre, ou seja, é LIVRE e tem uma comunidade em crescimento que dá suporte e colabora para sua constante evolução.

Pensando em um resumo técnico, poderia ser “Orquestrador automatizado de serviços em cloud agnóstica ao provedor.”

Mas, definitivamente, Juju é mais do que isso:

  • Conta com uma plataforma estilo “App Store” de serviços feitos pela comunidade chamados de Charms.
  • Arquitetura dos charms orientada aos conhecidos “hooks” como “install”, “config-changed”, “start”, entre outros muito interessantes como “db-relation-joined”, “db-relation-changed” e etc, que se encarregam de lidar com as relações entre charms.
  • Sistema de relações que possibilita e aumenta o reaproveitamento dos charms, criando uma sensação de LEGO, onde consigo criar uma topologia simplesmente conectando os charms entre eles, o que chamamos de “Bundle”.
  • Portabilidade da topologia, ou seja, sua topologia é exportável e passa a ser totalmente agnóstica ao provedor de cloud que você utiliza. Então o esforço de colocar na Amazon, HP Cloud ou na Joyent é o mesmo devido à automatização fornecida pelo Juju.
  • Topologia de sua infra passa a ser volátil, então se precisar replicar sua infra-estrutura inteira, o esforço é quase zero, pois o processo se resumiria na execução do bundle (exportação da topologia).
  • Os sistema de “hooks” dos charms possibilitam a utilização de quase qualquer linguagem e até provisionadores, como por exemplo, Chef, Puppet, SaltStack, o famoso Docker e o meu preferido, o Ansible. Então, podemos assumir que o Juju não é concorrente de nenhum deles, ou seja, ao desenvolver um charm podemos utilizar tecnologias já existentes para realizar os processos de instalação e configuração dos serviços sendo orquestrados.

E Juju ainda poderia ser:

  • “Mágica” em algum dialeto da África (acho que é isso).
  • “A força” do DevOps (Star Wars fan).

Mas afinal, o que é um charm?

É a representação de um serviço ou uma aplicação (como MySQL ou Drupal) contendo em código todo o processo de download, instalação, configuração e ações necessárias para cada tipo de relação entre os charms.

Nós já contamos um pouco, aqui mesmo no blog, sobre como criamos um charm de Drupal para o Juju.

Dica

Como mencionei, o Juju é agnóstico ao seu provedor de cloud, então é importante que você especifique um tipo de ambiente que saiba se comunicar com seu provedor favorito. Atualmente estes são os suportados:

  • Amazon Web Service
  • Windows Azure
  • HP Public Cloud
  • Joyent
  • DigitalOcean (plugin needed)
  • OpenStack
  • MAAS (bare metal)
  • Local (LXC ou KVM)

Quando penso sobre minhas liberdades como usuário, prefiro e procuro a maior parte do tempo utilizar Software Livre e hoje, como sabemos, a computação em nuvem (Cloud Computing em inglês) faz parte do futuro e da realidade de muita gente. Por isso acredito que é interessante ficar de olho no OpenStack e sua integração com Juju. Já tem um pessoal esperto utilizando, como a Nasa, HP Cloud, SoftLayer da IBM, RackSpace e Mercado Livre.

Espero que este resumo tenha instigado seu conhecimento e sua curiosidade. Fique ligado nos próximos posts onde mostrarei, na prática, como utilizar o Juju na sua máquina local.

***

(Atualização – 25/02/16)

Gravamos um podcast sobre DevOps.
Coloque o fone de ouvido e venha conhecer a Taverna Taller!

Veja a lista com todos os programas | Taverna Taller no iTunes