+1 (non binding)
On Tue, Sep 24, 2013 at 3:44 PM, Imesh Gunaratne <imesh.gunara...@gmail.com>wrote: > +1 (non binding) > > > On Tue, Sep 24, 2013 at 12:52 PM, Bruno Mahé <bm...@apache.org> wrote: > >> +1 (non binding) >> >> >> On 09/23/2013 05:44 AM, Jim Jagielski wrote: >> >>> After a useful and successful proposal cycle, I would like to propose >>> a VOTE on accepting Usergrid, a multi-tenant Backend-as-a-Service >>> stack for web & mobile applications based on RESTful APIs, as an Apache >>> Incubator podling. >>> >>> Voting to run for 72+ hours... >>> >>> Here is a link to the proposal: >>> >>> https://wiki.apache.org/**incubator/UsergridProposal<https://wiki.apache.org/incubator/UsergridProposal> >>> >>> It is also pasted below: >>> >>> = Usergrid Proposal = >>> >>> == Abstract == >>> >>> Usergrid is a multi-tenant Backend-as-a-Service stack for web & mobile >>> applications, based on RESTful APIs. >>> >>> >>> == Proposal == >>> >>> Usergrid is an open-source Backend-as-a-Service (“BaaS” or “mBaaS”) >>> composed >>> of an integrated distributed NoSQL database, application layer and client >>> tier with SDKs for developers looking to rapidly build web and/or mobile >>> applications. It provides elementary services (user registration & >>> management, data storage, file storage, queues) and retrieval features >>> (full >>> text search, geolocation search, joins) to power common app features. >>> >>> It is a multi-tenant system designed for deployment to public cloud >>> environments (such as Amazon Web Services, Rackspace, etc.) or to run on >>> traditional server infrastructures so that anyone can run their own >>> private >>> BaaS deployment. >>> >>> For architects and back-end teams, it aims to provide a distributed, >>> easily >>> extendable, operationally predictable and highly scalable solution. For >>> front-end developers, it aims to simplify the development process by >>> enabling them to rapidly build and operate mobile and web applications >>> without requiring backend expertise. >>> >>> >>> == Background == >>> >>> Developing web or mobile applications obviously necessitates writing and >>> maintaining more than just front-end code. Even simple applications can >>> implicitly rely on server code being run to store users, perform database >>> queries, serve images and video files, etc. Developing and maintaining >>> such >>> backend services requires skills not always available or expected of app >>> development teams. Beyond that, the proliferation of apps inside of >>> companies leads to the creation of many different, ad-hoc, unequally >>> maintained backend solutions created by employees and contractors alike >>> and >>> hosted on a wide variety of environments. This is causing poor resource >>> usage, operational issues, as well as security, privacy & compliance >>> concerns. >>> >>> In response to this problem, companies have long tried to standardize >>> their >>> server-side stack or unify them behind an ESB or API strategy. >>> Backends-as-a-Service follow a similar approach but their unique >>> characteristic is strongly tying 1) a persistence tier (typically a >>> database), 2) a server-side application tier delivering a set of common >>> services and 3) a set of client-side application interface mechanisms. >>> For >>> example, a BaaS could package 1) MongoDB with 2) a node.js application >>> that >>> offers access through 3) WebSockets. In the case of Usergrid, the >>> trifecta >>> is 1) Cassandra, 2) Java + Jersey and 3) a RESTful API. >>> >>> The Backend-as-a-Service approach has steadily gained popularity in the >>> last >>> few years with cloud providers such Parse.com, Stackmob.com and >>> Kinvey.com, >>> each operating tens of thousands of apps for tens of thousands of >>> developers. The trend has already reached large organizations as well, >>> with >>> global companies such as Korea Telecom internally building a >>> privately-run >>> BaaS platform. But so far, there have been limited options for developers >>> that want a non-proprietary, open option for hosting and providing these >>> services themselves, or for enterprise and government users who want to >>> provide these capabilities from their own data centers, especially on a >>> very >>> large scale. >>> >>> >>> == Rationale == >>> >>> The issue this proposal deals with is implicit in the name. >>> Backend-as-a-Service platforms are usually offered solely as proprietary >>> cloud services. They are typically closed sourced, hosted on public >>> clouds, >>> and require subscription payment. Usergrid opens the playing field, by >>> making a fully-featured BaaS platform freely available to all. This >>> includes >>> developers that previously could not afford them, such as mobile >>> enthusiasts, small boutiques, and cost-sensitive startups. This also >>> includes large companies that benefit from a reference implementation >>> they >>> can deploy in trust, or extend to their needs without losing time writing >>> less-vetted, less-performant boilerplate functionality. >>> >>> Usergrid has been open source since 2011 and has grown as an independent >>> project, garnering 11 primary committers, 35 total contributors, 260+ >>> participants on its mailing list, with 3,700+ commits, 200+ external >>> contributions, 350+ stars and 100+ forks on Github, not to mention >>> several >>> large scale production deployments at major global companies in the >>> media, >>> retail, telecommunication and government spaces. >>> >>> The Apache Software Foundation's "Way", by putting community before the >>> code, will help Usergrid establish a vibrant, more diverse community to >>> provide these features freely to downstream users. The incubation process >>> will help build this community and clear out the cobwebs, while vetting >>> the >>> IP to provide a pristine ASLv2 licensed product to users. Under such >>> conditions, our hope is that Usergrid will have a brighter future, and >>> provide better assurances as an independent organic open source project, >>> instead of continuing forward as a project sponsored by a handful of >>> companies. >>> >>> >>> == Initial Goals == >>> >>> We have no serious codebase concerns at the present moment. Besides >>> vetting >>> the IP by making sure the dependencies are Apache License 2.0 compatible, >>> our main initial concern is to grow community and keep adding features to >>> make Usergrid as robust as possible. However some logistics based goals >>> include: >>> >>> * Move the existing code base to Apache >>> * Integrate with the Apache development process >>> * Ensure all dependencies are compliant with Apache License 2.0 >>> * Set up open-source docs and website >>> * Incremental development and releases per Apache Guidelines >>> >>> >>> == Current Statusi == >>> >>> === Meritocracy === >>> The project team's goals have always been to grow the community by >>> encouraging contributors to participate. The project has grown steadily >>> and >>> smoothly from the efforts of the original creator and project founder (Ed >>> Anuff) to a small circle of committers (at Apigee), to a distributed, >>> multi-vendor community (Apigee and Korea Telecom) that also includes >>> outside >>> committers (Globo and others), as well as non-salaried committers. >>> Together >>> we discuss the project’s goals and roadmap openly, making drastic yet >>> positive changes to the project's direction based on everyone's input. >>> Our >>> goal is to drive further community diversification in a way that only a >>> foundation-sponsored project can achieve, rather than what a vendor-led >>> project can accomplish. >>> >>> >>> === Community === >>> We have a public Google Group for support here: >>> https://groups.google.com/**forum/?hl=en#!forum/usergrid<https://groups.google.com/forum/?hl=en#!forum/usergrid>with >>> over 250 active >>> participants, 367 threads and new messages every day. Usergrid also has >>> an >>> active community on Github issues (with over 200 discussions): >>> https://github.com/apigee/**usergrid-stack/issues?state=**all<https://github.com/apigee/usergrid-stack/issues?state=all>. >>> Some of these >>> users have contributed their open applications back to the community or >>> have >>> built their own new SDKs for Usergrid found here on Github: >>> https://github.com/search?q=**usergrid&source=cc<https://github.com/search?q=usergrid&source=cc> >>> . >>> >>> Expanding and nurturing the Usergrid community is our primary concern and >>> one of the main reasons for the decision to apply for incubation. >>> Usergrid >>> has been developed openly on Github for many years and has enjoyed active >>> developer participation by a committers from all over the globe. >>> However, >>> due to the disparate nature and wide variety of the Github repos that >>> comprise the Usergrid project (the Usergrid-stack, 8 separate SDKs, the >>> Admin Portal, and various samples), it has been challenging to grow a >>> unified community. Bringing the entire project under the umbrella of >>> Apache >>> will promote a unification of the Usergrid community and enable all >>> developers to collaborate on the project. >>> >>> === Core Developers === >>> The core developers include Apache Committers, PMC Members, and Members >>> of >>> the ASF. The developers, some of whom have have been involved with the >>> Apache Incubator and Apache Lucene as PMC members, are active mentors and >>> have participated in and contributed to several projects: i.e. Apache, >>> Lucene, Cassandra, Hibernate, Directory, Wicket, Commons, Roller, MINA, >>> Karaf, Felix, Cloud Stack, HCatalog, and Commons projects. Many of them >>> are >>> also active in Open-source beyond code, and have positions on the >>> committees >>> or organization such as OSCON. >>> >>> >>> === Alignment === >>> The initial code base leverages several Apache Software Foundation >>> products. >>> Usergrid leverages Apache Cassandra for its scalable data store, and uses >>> Maven for its build system. Almost half of Usergrid's dependencies are >>> Apache dependencies: >>> >>> * Apache Cassandra >>> * Apache Tomcat >>> * Apache Commons >>> * Apache ZooKeeper >>> * Apache Shiro >>> * Apache Amber >>> * Apache Thrift >>> * Apache ActiveMQ >>> * Apache HttpClient >>> * Apache Lucene >>> * Apache JClouds >>> >>> Besides these direct alignments, Usergrid also complements Apache Cordova >>> and could provide several advantages to the mobile application developer >>> community they serve. >>> >>> >>> == Known Risks == >>> >>> === Orphaned products === >>> There are now at least two vendors running Usergrid in product. Apigee >>> is an >>> established startup with a large, diversified customer roster and Korea >>> Telecom is a major, national telecommunications company. The continuity >>> of >>> Usergrid, as an open-source, vendor-independent product are in the >>> interest >>> of all parties. Beyond the vendors, Globo.com and many others large >>> companies have been relying on Usergrid for critical applications and as >>> such they are committed to contributing to the effort. >>> >>> === Inexperience with Open Source === >>> The Usergrid project has been open source and under the ALv2 for 2 years >>> on >>> Github and many of its contributors came with previous open-source >>> experience, (as referenced above), including active members of these >>> communities: >>> >>> * Apache >>> * Cassandra (& Hector) >>> * Lucene >>> * Hibernate >>> * CouchDB >>> * PhoneGap >>> * jQuery >>> >>> Development in this open forum has resulted in a growing community of >>> contributors, and the Usergrid project is now ready and eager to embrace >>> and >>> learn from Apache's wealth of experience. Usergrid would like to embrace >>> an >>> even greater culture of open participation as witnessed on so many Apache >>> projects. >>> >>> === Homogenous Developers === >>> The core development team for Usergrid is a geographically and >>> technologically diverse group. Apigee’s team is itself distributed, with >>> contributors based in each timezone in the continental US. Additional >>> regular contributors have joined us from India, Asia, Oceania, South >>> America, the Middle East and Europe. While roughly half of our core >>> developers come from a Java background, the other half is comprised of >>> iOS, >>> Ruby, and JavaScript developers. >>> >>> === Reliance on Salaried Developers === >>> Most of the principal developers are paid by their employers to >>> contribute, >>> but not all. Throughout the life of the project, we’ve seen passionate, >>> personal commitment from all parties, as evidenced by our commit >>> distribution on weekends >>> (https://github.com/apigee/**usergrid-stack/graphs/punch-**card<https://github.com/apigee/usergrid-stack/graphs/punch-card>). >>> We also >>> believe, given the growing interest in mobile API services and the range >>> of >>> individuals and corporations that are eager to participate, that >>> non-salaried contributions will grow. We know the "The Apache Way" will >>> help >>> us further accelerate this process. >>> >>> === Relationships with Other Apache Products === >>> There's much potential for collaboration with Apache Cordova and, of >>> course, >>> the Cassandra community because of the underlying foundations of >>> Usergrid's >>> scalability. In the future there may be more interactions with any of the >>> communities that Usergrid has direct dependencies to. >>> >>> === A Excessive Fascination with the Apache Brand === >>> Although we are aware of the strength of the Apache brand, we are >>> primarily >>> interested in the transforming power of the Apache Way to help guide >>> Usergrid towards a more diversified and meritocratic community. To that >>> end, >>> the brand's primary benefit for us is to help to attract more >>> participants >>> and diversify the community. Having several committers, PMC participants, >>> and members of Apache as developers on Usergrid, there's little >>> infatuation >>> with the brand, and the Usergrid community is actively conscious of this >>> not >>> being a driver for joining the Apache community. >>> >>> >>> == Documentation == >>> >>> Information on Usergrid can be found at: >>> https://developers.apigee.com/**app-services<https://developers.apigee.com/app-services> >>> . >>> >>> >>> == Initial Source == >>> >>> All initial sources can be found here: https://github/usergrid >>> >>> >>> == Source and Intellectual Property Submission Plan == >>> >>> The IP transfer for Usergrid is trivial due to it's single source and >>> existing ASLv2 licensing. >>> >>> >>> == External Dependencies == >>> >>> Most dependencies are Apache compatible licenses (Category A). A small >>> set >>> of Category B licenses, like the CDDL exists. For more details please see >>> Dependency Licenses. >>> >>> >>> == Cryptography == >>> >>> Not relevant to Usergrid since all code dealing with cryptography already >>> comes from the JDK or from dependencies on Apache Software. >>> >>> >>> == Required Resources == >>> >>> === Mailing lists === >>> * >>> private@usergrid.incubator.**apache.org<priv...@usergrid.incubator.apache.org>(moderated) >>> * dev@usergrid.incubator.apache.**org<d...@usergrid.incubator.apache.org> >>> * >>> commits@usergrid.incubator.**apache.org<comm...@usergrid.incubator.apache.org> >>> >>> === Subversion Directory === >>> We prefer to use Git as our source control system: >>> git://git.apache.org/usergrid/**. If possible, we would like to keep >>> leveraging the extremely useful github facilities for workflow using a >>> process much like that employed by the Apache Cordova project (documented >>> here >>> http://wiki.apache.org/**cordova/ContributorWorkflow<http://wiki.apache.org/cordova/ContributorWorkflow> >>> ). >>> >>> === Issue Tracking === >>> JIRA Usergrid (USERGRID) >>> >>> === Other Resources === >>> None. >>> >>> >>> == Initial Committers == >>> >>> * Alberto Leal <albert...@gmail.com> (Globo.com) >>> * Alex Karasulu <akaras...@apache.org> (Apigee) >>> * Dave Johnson <snoopd...@apache.org> (Apigee) >>> * Ed Anuff <e...@anuff.com> (Apigee) >>> * Nate McCall <zznat...@gmail.com> (The Last Pickle) >>> * Rod Simpson <r...@rodsimpson.com> (Apigee) >>> * Scott Ganyo <scottga...@apache.org> (Apigee) >>> * Shaozhuang Liu <st...@hibernate.org> >>> * Sungju Jin <sun...@softwaregeeks.org> (Korea Telecom) >>> * Tim Anglade <timangl...@gmail.com> (Apigee) >>> * Todd Nine <todd.n...@gmail.com> (Apigee) >>> * Jim Jagielski <j...@apache.org> (RedHat) >>> >>> >>> == Affiliations == >>> >>> * Apigee >>> * Korea Telecom >>> * Globo.com >>> * The Last Pickle >>> >>> >>> == Sponsors == >>> >>> === Champion === >>> Jim Jagielski <j...@apache.org> >>> >>> === Nominated Mentors === >>> * Alex Karasulu <akaras...@apache.org> >>> * Dave Johnson <snoopd...@apache.org> >>> >>> === Sponsoring Entity === >>> Incubator PMC >>> >>> >>> ------------------------------**------------------------------** >>> --------- >>> To unsubscribe, e-mail: >>> general-unsubscribe@incubator.**apache.org<general-unsubscr...@incubator.apache.org> >>> For additional commands, e-mail: >>> general-help@incubator.apache.**org<general-h...@incubator.apache.org> >>> >>> >>> ------------------------------**------------------------------** >>> --------- >>> To unsubscribe, e-mail: >>> general-unsubscribe@incubator.**apache.org<general-unsubscr...@incubator.apache.org> >>> For additional commands, e-mail: >>> general-help@incubator.apache.**org<general-h...@incubator.apache.org> >>> >>> >> >> ------------------------------**------------------------------**--------- >> To unsubscribe, e-mail: >> general-unsubscribe@incubator.**apache.org<general-unsubscr...@incubator.apache.org> >> For additional commands, e-mail: >> general-help@incubator.apache.**org<general-h...@incubator.apache.org> >> >> >