Skip to content

Orchestrate CockroachDB with a Juju Charm #34

@SaMnCo

Description

@SaMnCo

What is Juju

Juju is the Service Orchestration Solution developed by Canonical (the company behind Ubuntu).

It focused on creating relations between services instead of the single deployment of an application. Charms are the language of Juju. A Charm is a collection of scripts that details how to deploy, manage, scale up and down, and hook a piece of software to its environment.
Several charms can then be attached together in a Bundle that represents a prefered/recommended way of deploying and scaling a complete infrastructure.
Charms are open source, and distributed through the Charm Store

Benefits

For CockroachDB, adding a Charm as a deployment method would have several key benefits.

  • Testing is much easier by providing autoscaling and one-click / one-liner deployments to any cloud, and bare metal deployment
  • Integration made easy with hooks to several pieces of software (chaos monkeys, but also data sources and data consumers)
  • When CockroachDB moves to beta and to production, easy hooks to monitoring, backup (...) solutions already in the charmstore. It will make it easy for anyone to deploy and maintain cockroachDB up & running.

Requirements & Effort

Writing a Charm can be done in any language, including adapting Puppet, Chef or Ansible. If you know how to deploy and manage an application, getting a first version can take from less than a day to three days.

If you want to dig into more details, Juju is Open Source and written in Go. You can read/fork the code of the various pieces here : https://github.com/juju

Where to start?

The best way is to start with the online documentation

Canonical also provides Charm Schools, which are 2hrs webinar training sessions to get you up to speed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedHelp is requested / needed by the one who filed the issue to fix it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions