Return-Path: X-Original-To: apmail-incubator-general-archive@www.apache.org Delivered-To: apmail-incubator-general-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5B63710487 for ; Tue, 24 Sep 2013 13:29:51 +0000 (UTC) Received: (qmail 58391 invoked by uid 500); 24 Sep 2013 13:20:17 -0000 Delivered-To: apmail-incubator-general-archive@incubator.apache.org Received: (qmail 58229 invoked by uid 500); 24 Sep 2013 13:20:05 -0000 Mailing-List: contact general-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: general@incubator.apache.org Delivered-To: mailing list general@incubator.apache.org Received: (qmail 58210 invoked by uid 99); 24 Sep 2013 13:19:58 -0000 Received: from minotaur.apache.org (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Sep 2013 13:19:58 +0000 Received: from localhost (HELO mail-ob0-f175.google.com) (127.0.0.1) (smtp-auth username olamy, mechanism plain) by minotaur.apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Sep 2013 13:19:57 +0000 Received: by mail-ob0-f175.google.com with SMTP id uz6so4814788obc.6 for ; Tue, 24 Sep 2013 06:19:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=viCDAIEXqV0PddLUi6eZyMHZaZK/3zt0KxEImw0EiPo=; b=Pq9jr59jHoMNMfY5jjvWyTMa96gzJ7BiT8FOaMnisXffo90lEottXLtusC/r/oKyZ6 XmPzDPfZXYKo5XMbxr+f58U0pbFi20Kp4EFwq0QLfDHQZU8sNBQsrj0iEmc9rwOM2dRB 72ulyu1fU8cCVgryRjpOiJsRqsdylqep/92LF/KvoZjsW/8czXjiRhJRRyT4YAriWtt4 zXHdwXRuA4NMXWR0gIIQ62+FVD3zReUlBhcHJ2Pa+azXjJK7SUp8KMzluR2iByqUFaDO 6r5D91erSkJmuSj/HiZIBmsImLepIMVug9BXfSwrQ16q60lbbM0BOuYm8i+3Gx+khuS+ Q6DA== X-Received: by 10.182.61.44 with SMTP id m12mr1558066obr.52.1380028796394; Tue, 24 Sep 2013 06:19:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.132.68 with HTTP; Tue, 24 Sep 2013 06:19:36 -0700 (PDT) In-Reply-To: <83E4EF39-9A03-4B11-9B71-FA4C1AED235B@jaguNET.com> References: <83E4EF39-9A03-4B11-9B71-FA4C1AED235B@jaguNET.com> From: Olivier Lamy Date: Tue, 24 Sep 2013 23:19:36 +1000 Message-ID: Subject: Re: [VOTE] Usergrid BaaS Stack for Apache Incubator To: "general@incubator.apache.org" Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable +1 On 23 September 2013 22:44, 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 > > It is also pasted below: > > =3D Usergrid Proposal =3D > > =3D=3D Abstract =3D=3D > > Usergrid is a multi-tenant Backend-as-a-Service stack for web & mobile > applications, based on RESTful APIs. > > > =3D=3D Proposal =3D=3D > > Usergrid is an open-source Backend-as-a-Service (=93BaaS=94 or =93mBaaS= =94) 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 (f= ull > 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 priva= te > BaaS deployment. > > For architects and back-end teams, it aims to provide a distributed, easi= ly > 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. > > > =3D=3D Background =3D=3D > > 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 su= ch > 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 a= nd > 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 the= ir > 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. Fo= r > example, a BaaS could package 1) MongoDB with 2) a node.js application th= at > offers access through 3) WebSockets. In the case of Usergrid, the trifect= a > is 1) Cassandra, 2) Java + Jersey and 3) a RESTful API. > > The Backend-as-a-Service approach has steadily gained popularity in the l= ast > few years with cloud providers such Parse.com, Stackmob.com and Kinvey.co= m, > each operating tens of thousands of apps for tens of thousands of > developers. The trend has already reached large organizations as well, wi= th > global companies such as Korea Telecom internally building a privately-ru= n > 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 v= ery > large scale. > > > =3D=3D Rationale =3D=3D > > 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 cloud= s, > and require subscription payment. Usergrid opens the playing field, by > making a fully-featured BaaS platform freely available to all. This inclu= des > 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 the= y > 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 severa= l > 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 t= he > 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. > > > =3D=3D Initial Goals =3D=3D > > We have no serious codebase concerns at the present moment. Besides vetti= ng > 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 > > > =3D=3D Current Statusi =3D=3D > > =3D=3D=3D Meritocracy =3D=3D=3D > The project team's goals have always been to grow the community by > encouraging contributors to participate. The project has grown steadily a= nd > 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 outs= ide > committers (Globo and others), as well as non-salaried committers. Togeth= er > we discuss the project=92s goals and roadmap openly, making drastic yet > positive changes to the project's direction based on everyone's input. Ou= r > 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. > > > =3D=3D=3D Community =3D=3D=3D > We have a public Google Group for support here: > https://groups.google.com/forum/?hl=3Den#!forum/usergrid with over 250 ac= tive > participants, 367 threads and new messages every day. Usergrid also has a= n > active community on Github issues (with over 200 discussions): > https://github.com/apigee/usergrid-stack/issues?state=3Dall. Some of thes= e > users have contributed their open applications back to the community or h= ave > built their own new SDKs for Usergrid found here on Github: > https://github.com/search?q=3Dusergrid&source=3Dcc. > > Expanding and nurturing the Usergrid community is our primary concern and > one of the main reasons for the decision to apply for incubation. Usergr= id > 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 Apa= che > will promote a unification of the Usergrid community and enable all > developers to collaborate on the project. > > =3D=3D=3D Core Developers =3D=3D=3D > The core developers include Apache Committers, PMC Members, and Members o= f > 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 a= re > also active in Open-source beyond code, and have positions on the committ= ees > or organization such as OSCON. > > > =3D=3D=3D Alignment =3D=3D=3D > The initial code base leverages several Apache Software Foundation produc= ts. > 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. > > > =3D=3D Known Risks =3D=3D > > =3D=3D=3D Orphaned products =3D=3D=3D > 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 o= f > Usergrid, as an open-source, vendor-independent product are in the intere= st > 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. > > =3D=3D=3D Inexperience with Open Source =3D=3D=3D > 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. > > =3D=3D=3D Homogenous Developers =3D=3D=3D > The core development team for Usergrid is a geographically and > technologically diverse group. Apigee=92s team is itself distributed, wit= h > 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 iO= S, > Ruby, and JavaScript developers. > > =3D=3D=3D Reliance on Salaried Developers =3D=3D=3D > Most of the principal developers are paid by their employers to contribut= e, > but not all. Throughout the life of the project, we=92ve seen passionate, > personal commitment from all parties, as evidenced by our commit > distribution on weekends > (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 h= elp > us further accelerate this process. > > =3D=3D=3D Relationships with Other Apache Products =3D=3D=3D > There's much potential for collaboration with Apache Cordova and, of cour= se, > 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. > > =3D=3D=3D A Excessive Fascination with the Apache Brand =3D=3D=3D > Although we are aware of the strength of the Apache brand, we are primari= ly > interested in the transforming power of the Apache Way to help guide > Usergrid towards a more diversified and meritocratic community. To that e= nd, > the brand's primary benefit for us is to help to attract more participant= s > and diversify the community. Having several committers, PMC participants, > and members of Apache as developers on Usergrid, there's little infatuati= on > with the brand, and the Usergrid community is actively conscious of this = not > being a driver for joining the Apache community. > > > =3D=3D Documentation =3D=3D > > Information on Usergrid can be found at: > https://developers.apigee.com/app-services. > > > =3D=3D Initial Source =3D=3D > > All initial sources can be found here: https://github/usergrid > > > =3D=3D Source and Intellectual Property Submission Plan =3D=3D > > The IP transfer for Usergrid is trivial due to it's single source and > existing ASLv2 licensing. > > > =3D=3D External Dependencies =3D=3D > > Most dependencies are Apache compatible licenses (Category A). A small se= t > of Category B licenses, like the CDDL exists. For more details please see > Dependency Licenses. > > > =3D=3D Cryptography =3D=3D > > Not relevant to Usergrid since all code dealing with cryptography already > comes from the JDK or from dependencies on Apache Software. > > > =3D=3D Required Resources =3D=3D > > =3D=3D=3D Mailing lists =3D=3D=3D > * private@usergrid.incubator.apache.org (moderated) > * dev@usergrid.incubator.apache.org > * commits@usergrid.incubator.apache.org > > =3D=3D=3D Subversion Directory =3D=3D=3D > 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). > > =3D=3D=3D Issue Tracking =3D=3D=3D > JIRA Usergrid (USERGRID) > > =3D=3D=3D Other Resources =3D=3D=3D > None. > > > =3D=3D Initial Committers =3D=3D > > * Alberto Leal (Globo.com) > * Alex Karasulu (Apigee) > * Dave Johnson (Apigee) > * Ed Anuff (Apigee) > * Nate McCall (The Last Pickle) > * Rod Simpson (Apigee) > * Scott Ganyo (Apigee) > * Shaozhuang Liu > * Sungju Jin (Korea Telecom) > * Tim Anglade (Apigee) > * Todd Nine (Apigee) > * Jim Jagielski (RedHat) > > > =3D=3D Affiliations =3D=3D > > * Apigee > * Korea Telecom > * Globo.com > * The Last Pickle > > > =3D=3D Sponsors =3D=3D > > =3D=3D=3D Champion =3D=3D=3D > Jim Jagielski > > =3D=3D=3D Nominated Mentors =3D=3D=3D > * Alex Karasulu > * Dave Johnson > > =3D=3D=3D Sponsoring Entity =3D=3D=3D > Incubator PMC > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org > For additional commands, e-mail: general-help@incubator.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org > For additional commands, e-mail: general-help@incubator.apache.org > --=20 Olivier Lamy Ecetera: http://ecetera.com.au http://twitter.com/olamy | http://linkedin.com/in/olamy --------------------------------------------------------------------- To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org For additional commands, e-mail: general-help@incubator.apache.org