Hi All.  I'd like to call for a VOTE for CloudStack to enter the Incubator.  
The proposal is available at [1] and I have also included it below.   Please 
vote with:
+1: accept CloudStack into Incubator
+0: don't care
-1: do not accept CloudStack into Incubator (please explain the objection)

The vote is open for at least 72 hours from now (until at least 19:00 US-PST on 
April 12, 2012).

Thanks for the consideration.

-kevin

[1] http://wiki.apache.org/incubator/CloudStackProposal




Abstract

CloudStack is an IaaS ("Infrastracture as a Service") cloud orchestration 
platform.

Proposal

CloudStack provides control plane software that can be used to create an IaaS 
cloud. It includes an HTTP-based API for user and administrator functions and a 
web UI for user and administrator access. Administrators can provision physical 
infrastructure (e.g., servers, network elements, storage) into an instance of 
CloudStack, while end users can use the CloudStack self-service API and UI for 
the provisioning and management of virtual machines, virtual disks, and virtual 
networks.

Citrix Systems, Inc. submits this proposal to donate the CloudStack source 
code, documentation, websites, and trademarks to the Apache Software Foundation 
("ASF").

Background

Amazon and other cloud pioneers invented IaaS clouds. Typically these clouds 
provide virtual machines to end users. CloudStack additionally provides 
baremetal OS installation to end users via a self-service interface. The 
management of physical resources to provide the larger goal of cloud service 
delivery is known as "orchestration". IaaS clouds are usually described as 
"elastic" -- an elastic service is one that allows its user to rapidly scale up 
or down their need for resources.

A number of open source projects and companies have been created to implement 
IaaS clouds. Cloud.com started CloudStack in 2008 and released the source under 
GNU General Public License version 3 ("GPL v3") in 2010. Citrix acquired 
Cloud.com, including CloudStack, in 2011. Citrix re-licensed the CloudStack 
source under Apache License v2 in April, 2012.

Rationale

IaaS clouds provide the ability to implement datacenter operations in a 
programmable fashion. This functionality is tremendously powerful and benefits 
the community by providing:

- More efficient use of datacenter personnel
- More efficient use of datacenter hardware
- Better responsiveness to user requests
- Better uptime/availability through automation

While there are several open source IaaS efforts today, none are governed by an 
independent foundation such as ASF. Vendor influence and/or proprietary 
implementations may limit the community's ability to choose the hardware and 
software for use in the datacenter. The community at large will benefit from 
the ability to enhance the orchestration layer as needed for particular 
hardware or software support, and to implement algorithms and features that may 
reduce cost or increase user satisfaction for specific use cases. In this 
respect the independent nature of the ASF is key to the long term health and 
success of the project.

Initial Goals

The CloudStack project has two initial goals after the proposal is accepted and 
the incubation has begun.

The Cloudstack Project's first goal is to ensure that the CloudStack source 
includes only third party code that is licensed under the Apache License or 
open source licenses that are approved by the ASF for use in ASF projects. The 
CloudStack Project has begun the process of removing third party code that is 
not licensed under an ASF approved license. This is an ongoing process that 
will continue into the incubation period. Third party code contributed to 
CloudStack under the CloudStack contribution agreement was assigned to 
Cloud.com in exchange for distributing CloudStack under GPLv3. The CloudStack 
project has begun the process of amending the previous CloudStack contribution 
agreements to obtain consent from existing contributors to change the 
CloudStack project's license. In the event that an existing contributor does 
not consent to this change, the project is prepared to remove that 
contributor's code. Additionally, there are binary dependencies on 
redistributed libraries that are not provided with an ASF-approved license. 
Finally, the CloudStack has source files incorporated from third parties that 
were not provided with an ASF-approved license. We have begun the process of 
re-writing this software. This is an ongoing process that will extend into the 
incubation period. These issues are discussed in more detail later in the 
proposal.

Although CloudStack is open source, many design documents and discussions that 
should have been publicly available and accessible were not publicized. The 
Project's second goal will be to fix this lack of transparency by encouraging 
the initial committers to publicize technical documentation and discuss 
technical issues in a public forum.

Current Status

Meritocracy

CloudStack was originally developed by Sheng Liang, Alex Huang, Chiradeep 
Vittal, and Will Chan. Since the initial CloudStack version, approximately 30 
others have made contributions to the project. Today, Sheng and Will are less 
involved in code development, but others have stepped in to continue the 
development of their seminal contributions.

Most of the current code contributors are paid contributors, employed by 
Citrix. Over the past six months CloudStack has received several contributions 
from non-Citrix employees for features and bug fixes that are important to the 
contributors. We have developed a process for accepting these contributions 
that includes validating the execution of a CLA and incorporating the 
contribution in the CloudStack in a manner that reflects the contributor's 
identity. This process has not followed the Apache model.

The CloudStack Project has had an open bug database for two years. While this 
database includes ideas for enhancements to CloudStack, the committers have 
historically not asked the greater community for pointed assistance. Going 
forward the Project will encourage all community members to become committers 
and will make clear suggestions for features and bug fixes that would most 
benefit the community and Project.

Community

CloudStack has an existing community comprising approximately 8,000 forum 
members on cloudstack.org and 28,000 registrations for e-mail lists and 
newsletters relating to CloudStack. All forums, developer and administrator 
mailing lists, and IRC channels are active. A number of commercial entities 
(e.g., RightScale, AppFog, EnStratus) and open source projects (e.g., jClouds, 
Chef) have integrated with CloudStack.

To date, the community comprises users - people that download a CloudStack 
binary and install it to implement an IaaS cloud. The project expects that with 
independent governance and the openness of the Apache development model we will 
significantly increase the amount of developer participation within the 
community.

Core Developers

CloudStack spans a wide array of technologies: user interface, virtualization, 
storage, networking, fault tolerance, database access and data modeling, and 
Java, Python, and bash programming. There is significant diversity of knowledge 
and experience in this regard.

Several of the initial committers have experience with other open source 
projects. Alex Huang contributed to SCM-bug. Anthony Xu, Edison Su, Frank 
Zhang, and Sheng Yang have prior experience with a combination of Xen and KVM. 
Chiradeep Vittal has contributed to OpenStack. David Nalley has been 
contributing to Fedora for several years. David has also contributed to Zenoss, 
Cobbler, GLPI, OCS-NG, OpenGroupware, Ceph, and Sheepdog.

CloudStack development to date has largely been done in the U.S. and India.

CloudStack has largely been developed by paid contributors.

Alignment

CloudStack has significant integration with existing Apache projects, and there 
are several exciting opportunities for future cross-project collaboration.

The CloudStack Management Server (i.e., the control plane) is deployed as a web 
application inside one or more Tomcat instances.

The Management Server uses Apache Web Services, Apache Commons, Apache XML RPC, 
Apache log4j, and Apache HttpComponents httpcore. It is built with Apache Ant.

There are strong opportunities for collaboration with other Apache Projects. 
Collaboration with Hadoop has at least two exciting aspects:
- CloudStack could provide an object store technology (similar to Amazon's S3 
service) in conjunction with the compute service (similar to Amazon's EC2 
service) that it already offers. HDFS from the Hadoop project is a promising 
technology for the implementation of the object store.
- It would also be possible to have CloudStack provision Hadoop compute nodes, 
either through virtualization or directly to baremetal. With this CloudStack 
could become an optional or required part of the infrastructure control plane 
for Hadoop.

ZooKeeper might be helpful to implement a distributed cloud control plane in 
the future.

Derby could be used as alternative database; CloudStack currently uses MySQL.

ActiveMQ is a good option for some of the communication that occurs in the 
orchestration of the cloud.

It would be natural for Apache libcloud and Apache DeltaCloud to support the 
CloudStack API and public clouds that expose it.

As mentioned earlier the proposers are seeking an independent foundation to 
provide governance for the project. ASF has clearly been successful in 
providing this, and we believe ASF is the best match for the future goals of 
the project.

Known Risks

Orphaned products

Citrix will work with the community to create the most widely deployed cloud 
orchestration software. Citrix's internal "plan of record" commits significant 
budget to developing the Project through 2014. Investment past 2014 is 
unspecified, but likely to continue given known and predicted revenues from 
derivative commercial products.

Citrix is developing a thriving business in conjunction with the prior and 
continued success of the community and use of CloudStack. The project may be 
orphaned in the condition where the Project has failed to obtain either 
non-paid committers or paid committers from other vendors, and the committers 
paid by Citrix are re-assigned to another project.

Inexperience with Open Source

CloudStack has been open source since May, 2010, with the CloudStack 2.0 
release by Cloud.com.

>From May, 2010 to August, 2011 CloudStack was "open core", wherein 
>approximately 95% of the code was available with a GPLv3 license and 5% of the 
>code was proprietary. During this time the bug database was open and the 
>source code was available. Project direction and technical discussions 
>occurred in a closed fashion. Few technical documents were publicly available.

In August, 2011 CloudStack transitioned to 100% open source. The 5% proprietary 
code was released publicly with a GPLv3 license. The bug database remained 
open. Project direction and technical discussions occurred in a closed fashion. 
Some technical documents were shared publicly.

During 2012 the proposers have posted a significant fraction of technical 
documents pertaining to the recent CloudStack 3.0 release publicly. Some 
technical discussion has occurred in the open.

In April, 2012 CloudStack was re-licensed under the Apache License v2.

Several contributors have prior open source experience. This is discussed in 
the "Core Developers" section.

The CloudStack development process must change significantly to conform to the 
Apache model. These changes include: carry on all technical conversations in a 
public forum, develop all technical documentation publicly, follow the vote 
process on contribution approvals, and promote individuals beyond the initial 
committers to committer status, based on merit.

Homogenous Developers

The Project has committers in two locations in India, one location in the UK, 
and one location in the U.S. The technical knowledge of the committers is 
diverse, as evidenced by the wide range of technologies that converge in 
CloudStack. The range of professional experience of the committers is diverse 
as well, from a few months to 20+ years.

The initial committers are all associated with the sponsoring entity. The 
Project will have to work with the community to diversify in this area.

Reliance on Salaried Developers

The initial committers are all salaried committers.

The initial committers have worked with great devotion to the project and have 
enjoyed its success. We hope this will create an emotional bond to the project 
that will last beyond their employment with Citrix Systems.

We expect salaried committers from a variety of companies. CloudStack is an 
opportunity for many vendors to enable their software and hardware to 
participate in the changes brought by the development of an API that can manage 
datacenter infrastructure. It is also an opportunity for datacenter operators 
to implement features they find helpful and share them with the community.

We hope to attract unpaid committers. CloudStack is interesting technology that 
solves many challenging problems, and cloud computing is popular in the 
industry media now. But, few people will run a CloudStack deployment for 
personal use, and this may limit our ability to attract unpaid committers. We 
hope that the technical domain is interesting to new committers that will join 
us in improving CloudStack.

Relationships with Other Apache Products

Please see the Alignment section above.

Apache Brand Awareness

We expect that licensing CloudStack under the AL and associating it with the 
Apache brand will attract additional contributors and CloudStack users. 
However, we have selected the ASF as the best governance option for the project 
for the reasons discussed in the Rationale. Further, we expect to continue 
development of the CloudStack under the AL with or without the support of ASF.

Citrix currently sells a proprietary version of CloudStack released as "Citrix 
CloudStack". For the foreseeable future, Citrix expects to continue to sell 
orchestration software based on CloudStack. Citrix will work with the ASF 
Incubator PMC and within the Podling Branding guidelines to ensure that a new 
branding scheme is selected for Citrix's proprietary version of CloudStack that 
is consistent with ASF's branding policies.

Documentation

The CloudStack project has publicly available administrator documentation, 
source code, forums, and technical specifications. This documentation is 
available at the following sites:
- http://cloudstack.org: forums, latest news, downloads, blogs; a good starting 
point.
- http://docs.cloudstack.org: installation guide, administration guide, API 
documentation, technical specifications
- http://confluence.cloudstack.org: past and future release plans, additional 
technical documentation
- http://git.cloud.com: current source. See the 3.0.x and master branches.

Initial Source

The genesis of CloudStack's source is discussed in the "Inexperience with Open 
Source" section.

Citrix Systems currently owns the CloudStack code base. Committers use the 
repository at git.cloud.com to access and submit code. This repository is 
located in the U.S.

We propose to donate the basis for the 3.0.x series of CloudStack releases. 
This is the current release stream. Prior CloudStack versions have been kept as 
GPLv3 and currently receive limited maintenance and no feature development. The 
software associated with these prior versions will not be donated to ASF. 
Further, many branches exist and we see no benefit in recreating this 
historical complexity within ASF infrastructure.

Source and Intellectual Property Submission Plan

Multiple intellectual property assets are associated with the CloudStack 
project. First and foremost, the CloudStack source is protected by copyright. 
Upon acceptance into the ASF incubation program, Citrix Systems anticipates 
licensing the CloudStack source to the ASF. The licensed code will include all 
source code from the "master" branch at git.cloud.com.

In addition to the source code, Citrix systems owns a number of trademark and 
domain name assets that are used by the CloudStack project. Citrix anticipates 
donating substantially all of these trademark and domain name assets upon 
acceptance into the ASF incubation program. In particular, Citrix anticipates 
donating at least the CloudStack trademark and related domain names.

CloudStack is protected by a number of pending patent applications owned by 
Citrix Systems. Citrix Systems anticipates continuing to prosecute and maintain 
these patent applications upon entry into the ASF incubation program. Citrix 
Systems is dedicated to protecting the larger CloudStack community and will 
continue to obtain patents on CloudStack technology as a way to protect 
contributors and members of the CloudStack community from outside threats.

Internal Dependencies

The CloudStack Management Server has some externally developed code embedded in 
it. This code has come from a variety of sources and has a variety of licenses, 
some of which are not approved by ASF for use in Apache projects. We have 
already begun the process of removing and/or re-implementing code that does not 
have an approved license.

[ Please see web page for this content ]

Contributions made to the CloudStack prior to the switch to AL were done based 
on a CLA that did not authorize re-licensing the contribution to AL. Citrix 
legal has prepared a new document that requests contributors to authorize the 
re-license to AL. We are asking each such contributor to sign this agreement. 
We will remove and/or re-implement the contributions of prior committers that 
do not sign this agreement. We do not expect this issue to materially impact 
the project.

Citrix legal has also prepared a new CLA for the project that authorizes AL 
licensing of contributions. This CLA will be used for contributions between the 
switch to AL and an eventual donation of the source to ASF.

External Dependencies

The CloudStack Management Server uses a significant number of libraries. These 
libraries are redistributed with CloudStack in binary form. Some of them have 
licenses that are not approved by ASF for use in Apache projects. We will 
replace them with other libraries with approved licenses or re-write the 
functions provided by the libraries.

We expect that it will take 3 months to remove and/or re-implement the 
problematic embedded source and problematic redistributed libraries.

Binary Dependencies

[ Please see web page for this content ]

System Virtual Machines

The CloudStack uses multiple Debian-based virtual machines to implement 
features of the software. The source code that comprises the Debian-based 
virtual machines is GPL licensed.

The CloudStack source code includes (AL) scripts that will download and build 
this software. This software is downloaded from repositories external to 
git.cloud.com, and will presumably also be external to any Apache-owned 
infrastructure.

The CloudStack will download and deploy virtual machines that are built with 
this GPL software. Once deployed, the CloudStack will install AL-licensed 
software on to these virtual machines.

Since this GPL software is not present in the CloudStack repository we believe 
these mechanisms will be approved by ASF for use in the Project, but we have 
included this explanation for completeness.

Cryptography

The CloudStack makes use of encryption functions available via Java and the 
underlying OS. We expect that the CloudStack will have to follow the export 
control procedures described at http://www.apache.org/dev/crypto.html. When the 
CloudStack was previously registered with BIS the open source version qualified 
for the TSU exception.

The CloudStack uses https to communicate to XenServer and vCenter. ssh and scp 
are used between the Management Server and hypervisor hosts as well.

The CloudStack stores an MD5 hash of user password data. The CloudStack uses 
MySQL encryption to store some data in an encrypted fashion.

The CloudStack stores a pair of API public/secret keypairs for users. This is 
done using javax.crypto.KeyGenerator with HMAC-SHA-1.

The CloudStack does not specify key lengths explicitly. It uses SSH, SCP and 
lets them negotiate encryption.

The CloudStack provides a public HTTP-based API to provision and deprovision 
VPN users. The CloudStack has internal Java-based abstractions for managing VPN 
users. This Java software makes private API calls to another system, which will 
then provision the VPN user in the VPN software on that other system. The 
actual set up of the VPN session is done using L2TP/IPSec.

As mentioned earlier the CloudStack includes software to build and later deploy 
Debian-based virtual machines. These VMs are stripped down versions of Debian 
that include encryption sufficient for ssh/scp, https, and IPSec VPN to work. 
The CloudStack does not include the source for these VMs. The maximum encrypted 
throughput of the VPN has not been determined.

Required Resources

Mailing Lists

We request mailing lists to match the mailing lists currently in use, plus the 
recommended private list. These are:

    cloudstack-private: for confidential PPMC discussion
    cloudstack-dev: for development discussions
    cloudstack-user: for administrator and discussions

Subversion Directory

The CloudStack has used git for approximately two years. We understand that 
there is a "prototype" git server available. We request an allocation on this 
git server. We believe this will be less disruptive to the committers than a 
change to SVN.

We request "/repos/asf/incubator/cloudstack".

Issue Tracking

We would like an allocation for Jira. CloudStack uses bugzilla today, but we 
have been planning a move to Jira for some time. We request that the project 
name be "CloudStack".

Other Resources

The CloudStack Project includes several websites. Donation of these websites 
was discussed in the IP submission plan. We would like to engage in discussion 
on the logistics of this.

Initial Committers

In the past few months several new developers have joined the Citrix CloudStack 
team. We are recommending that only the developers with several months of 
experience with CloudStack join as initial committers. The Project will then 
follow the meritocratic process to enable the newer team members to become 
committers. We believe this will be a good exercise for us as we transition to 
an Apache development model in the Project.

The list of initial committers follows. At this time none of the initial 
committers has a CLA on file with ASF.

    Abhinandan Prateek, abhinandan.prateek.at.citrix.com
    Alena Prokharchyk, alena.prokharchyk.at.citrix.com
    Alex Huang,alex.huang.at.citrix.com
    Anthony Xu, xuefei.xu.at.citrix.com
    Brian Federle, brian.federle.at.citrix.com
    Chiradeep Vittal, chiradeep.vittal.at.citrix.com
    David Nalley, david.nalley.at.citrix.com
    Edison Su, edison.su.at.citrix.com
    Frank Zhang, frank.zhang.at.citrix.com
    Janardhana Reddy, janardhana.reddy.at.citrix.com
    Jessica Tomechak, jessica.tomechak.at.citrix.com
    Jessica Wang, jessica.wang.at.citrix.com
    Kelven Yang, kelven.yang.at.citrix.com
    Kevin Kluge, kevin.kluge.at.citrix.com
    Kishan Kavala, kisha.kavala.at.citrix.com
    Murali Reddy, murali.reddy.at.citrix.com
    Nitin Mehta, nitin.mehta.at.citrix.com
    Prachi Damle, prachi.damle.at.citrix.com
    Sam Robertson, sam.robertson.at.citrix.com
    Sheng Yang, sheng.yang.at.citrix.com
    Sonny Chhen, sonny.chhen.at.citrix.com
    Will Chan, will.chan.at.citrix.com

Affiliations

The initial committers are all affiliated with Citrix Systems.

Sponsors

Champion

Jim Jagielski

Nominated Mentors

Jim Jagielski, Daniel Kulp, Alex Karasulu, Olivier Lamy, Brett Porter, Mohammad 
Nour, Matt Hogstrom

Sponsoring Entity

We request that the Incubator sponsor this effort.



---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to