Abstract

Provisionr is an effort to develop a service that can be used to create and manage pools of virtual machines on multiple clouds. Our focus is on semi-automated workflows and cloud portability.

Proposal

Provisionr solves the problem of cloud portability by hiding completely the APIs and only focusing on building a cluster that matches the same set of assumptions on all clouds, assumptions like: running a specific operating system (e.g. Ubuntu 12.04 LTS), having the same set of pre-installed packages and binaries, sane dns settings (forward & reverse ip resolution - as needed for Hadoop), ntp settings, networking settings, firewall, ssh admin access, vpn access etc.

As a secondary goal Provisionr should also provide primitives for building automatic or semi-automatic workflows for configuring services, workflows that assume that all the machines share a common set of characteristics as described above.

Background

Creating clusters on cloud infrastructure is non-trivial because careful orchestration is required. To make it easy to deploy services we need to start from a foundation that matches a common set of assumptions on multiple providers.

Rationale

This project started as a re-write of the core of Apache Whirr but has a different target being more focused on semi-automated workflows and cloud portability.

Initial Goals

  • Build a community
  • Provide an excellent user experience for semi-automatic workflows (e.g. using Rundeck)
  • Implement a REST service and a Web Console
  • Add support for more providers

Current Status

Provisionr had four releases on GitHub and it's used to deploy Hadoop clusters on-demand at Axemblr and infrastructure for testing / QA.

Meritocracy

We plan to invest in supporting a meritocracy. We will discuss the requirements in an open forum. Several companies have already expressed interest in this project, and we intend to invite additional developers to participate. We will encourage and monitor community participation so that privileges can be extended to those that contribute.

Community

The community interested in cloud service infrastructure is currently spread across many smaller projects, and one of the main goals of this project is to build a vibrant community to share best practices and build common infrastructure.

Core developers

Core developers are very experienced in the Apache ecosystem. To achieve more diversity of developers, we will be eager to recruit developers from diverse companies.

  • Andrei Savu - asavu at apache dot org (Apache Whirr PMC)
  • Ioan Eugen Stan - ieugen at apache dot org (Apache James PMC)
  • Alex Ciminian - alex.ciminian at gmail dot org

Alignment

Provisionr complements Apache Whirr and later on it should provide a robust foundation for more advanced functionalities.

Known Risks

Orphaned products

The contributors have significant open source experience and the project is being used as part of a commercial product, so the risk of being orphaned is relatively low. We plan to mitigate this risk by recruiting additional committers.

Inexperience with Open Source

Most of the initial committers have experience working on open source projects. Andrei Savu and Ioan Eugen Stan have experience as committers and PMC members on other Apache projects.

Homogenous Developers

We are committed to recruiting additional committers from other companies based on their contributions to the project.

Reliance on Salaried Developers

It is expected that Provisionr development will occur on both salaried time and on volunteer time, after hours. The majority of initial committers are paid by their employer to contribute to this project. However, they are all passionate about the project, and we are confident that the project will continue even if no salaried developers contribute to the project. We are committed to recruiting additional committers including non-salaried developers.

Relationships with Other Apache Products

Provisionr is closely integrated with CloudStack, Karaf, CXF, BigTop in a numerous ways. We look forward to collaborating with those communities, as well as other Apache communities (like Apache Helix).

A Excessive Fascination with the Apache Brand

We think that Provisionr will benefit from the community sharing ideas and best practices for running cloud services. The ASF does a great job at building communities, which is why we want to build Provisionr at Apache.

Documentation

Initial Source

Available on GitHub: https://github.com/axemblr/axemblr-provisionr

Source and Intellectual Property Submission Plan

We are going to prepare a software grant as needed. The source code is already available under the Apache 2.0 license.

External Dependencies

The existing external dependencies all have Apache compatible licenses: Activiti (Apache 2.0), AWS SDK (Apache 2.0), jclouds (Apache 2.0), Google Guava (Apache 2.0).

Cryptography

Provisionr uses standard APIs and tools for SSH and SSL.

Required Resources

Mailing lists

  • provisionr-private
  • provisionr-dev

Version Control

Git repository

Issue Tracking

JIRA Provisionr (PROVISIONR)

Other Resources

The existing code already has unit and integration tests so we would like a Jenkins instance to run them whenever a new patch is submitted. This can be added after project creation.

Initial Committers

  • Andrei Savu - asavu at apache dot org
  • Ioan Eugen Stan - ieugen at apache dot org
  • Alex Ciminian - alex.ciminian at gmail dot org
  • Amandeep Khurana - amansk at gmail dot com
  • Roman Shaposhnik - rvs at apache dot org
  • Eric Sammer - esammer at apache dot org

Sponsors

Champion

Tom White - tomwhite at apache dot org

Nominated Mentors

  • Roman Shaposhnik - rvs at apache dot org
  • Tom White - tomwhite at apache dot org
  • Mohammad Nour - mnour at apache dot org

Sponsoring

Incubator PMC

  • No labels