Hi guys -

I would like to propose Provisionr to the Apache Incubator:

https://github.com/axemblr/axemblr-provisionr/wiki/Provisionr-Proposal

Provisionr is a service that wants to 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.

I am looking forward to your feedback and suggestions.

Thanks,

-- Andrei Savu

------------------------------------------------------------------------

## Abstract

Provisionr is an effort to develop a service that can be used to create and
manage pools of virtual machines on multiple clouds in an automatic or
semi-automatic fashion.

## 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 (not a committer)

### 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 Karaf, CXF in a numerous ways. We
look forward to collaborating with those communities, as well as other
Apache communities.

### 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

https://github.com/axemblr/axemblr-provisionr/wiki

## 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
* provisionr-user

### 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

## Sponsors

### Champion

Andrei Savu - asavu at apache dot org

### Nominated Mentors

* Tom White - tomwhite at apache dot org

### Sponsoring

Incubator PMC

Reply via email to