Cluster Deployment with Juju Charm

This project was completed as a student intern opportunity with HPCC Systems in 2019. Curious about projects we are offering for future internships? Take a look at our Ideas List. 

Find out about the HPCC Systems Summer Internship Program.

Project Description

Juju is a open source, solution-driven orchestration tool from Ubuntu that helps you deploy, manage and scale your environments on any cloud. It supports most major cloud environment and get more and more popular.

We already have HPCC Systems Juju charms which include HPCC Platform, Ganglia-monitoring and Nagios-monitoring.  The current implementations use shell scripts

Current Juju Charm version is  2.4. There is no direct upgrade from Juju 1.x to 2.x. Charm author must write charm with Charm Helpers framework (python 3.0). 

For this project we will re-design HPCC charm with Juju charm concepts of  layer, interface, reactive, resource, etc.  The HPCC can be deployed in single node or a cluster.  HPCC Plugin and Ganglia-monitoring can be included as optional package in charm configuration.  We want to create Charms bundles to help user deploy a group of HPCC Systems related charms easily.   Also we hope automate the HPCC Systems Juju charms testing with Charm Tool Amulet. The development and testing will be done on Ubuntu 18.04 amd64.

There is a design consideration file to help students prototype this project: https://github.com/hpcc-charms/HPCC-Charms/blob/master/design-consideration

Completion of this project involves:

  •  

    • Learn Juju 2.x and get familiar with Juju concepts of layer, interface, reactive, Charm Helpers framework and charm bundles

    • Re-design and implement HPCC  charms.

    • The project includes two sub projects: 1) single HPCC Platform node 2) HPCC Cluster. Current work will concentrate on the first one.

    • At least testing  charms on local and AWS. Investigating testing with Charm Tool Amulet.

By the mid term review we would expect you to have:

The HPCC platform charm deployed on local system (Ubuntu 16.04 amd64)

Mentor

Xiaoming Wang
Contact Details

Backup Mentor: Kevin Wang
Contact Details

Skills needed
  • Ability to code in Python.

  • Knowledge of Juju charm  and git  would be helpful.  Student can learn Juju Charm from Juju charm docs

  • Python 3.0 and Linux bash scripts knowledge.

  • It would be an advantage to be familiar with one the Cloud Environment, such as AWS, Azure, Google, etc.  Basic HPCC Systems knowledge is needed but student can learn this during the process.

Deliverables

Midterm

  • HPCC platform charm is deployed on local system (Ubuntu 16.04 amd64)

End of project

  • Make new HPCC charms ready to submit for  Juju charm store.

  • HPCC platform cluster can be deployed as bundle on AWS or at lest on local Ubuntu 18.04

  • Test hpcc charms with Amulet

  • Write initial documentation about the new HPCC charms.

Other resources

All pages in this wiki are subject to our site usage guidelines.