incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lewis John Mcgibbney <lewis.mcgibb...@gmail.com>
Subject Re: [VOTE] Usergrid BaaS Stack for Apache Incubator (revised proposal)
Date Thu, 03 Oct 2013 00:15:55 GMT
Hi All,

+1

On Tue, Oct 1, 2013 at 9:24 PM, <general-digest-help@incubator.apache.org>wrote:

>
> On 09/30/2013 09:27 PM, Dave wrote:
>
>> I would like to call for a new vote on Usergrid, a multi-tenant
>> Backend-as-a-Service stack for web & mobile applications based on RESTful
>> APIs, as an Apache Incubator podling.
>>
>> The original proposal has been revised to name Dave Johnson as the
>> Champion
>> and to bring Jim Jagielski back in as a Mentor and to add John Lewis
>> Mcgibbney as a Mentor. I also add some text to the Initial Committers
>> section and a new Interested Contributors section to list those who have
>> expressed interest in contributing.
>>
>> Here is a link to the revised 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 Status ==
>>
>>
>> === 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.com/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<private@usergrid.incubator.apache.org>(moderated)
>>    * dev@usergrid.incubator.apache.**org<dev@usergrid.incubator.apache.org>
>>    * commits@usergrid.incubator.**apache.org<commits@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 ==
>>
>> Below are the initial committers for the project. This list will be used
>> by
>> the mentors to setup initial accounts. The podling will learn how to
>> recruit additional committers during the incubation period and all
>> interested contributors are encouraged to show up and start contributing
>> once the podling has infrastructure in place.
>>
>>    * Alberto Leal <albertonb@gmail.com> (Globo.com)
>>    * Dave Johnson <snoopdave@apache.org> (Apigee)
>>    * Ed Anuff <ed@anuff.com> (Apigee)
>>    * Nate McCall <zznate.m@gmail.com> (The Last Pickle)
>>    * Rod Simpson <rod@rodsimpson.com> (Apigee)
>>    * Scott Ganyo <scottganyo@apache.org> (Apigee)
>>    * Shaozhuang Liu <stliu@hibernate.org> (Easemob, Inc.)
>>    * Sungju Jin <sungju@softwaregeeks.org> (Korea Telecom)
>>    * Tim Anglade <timanglade@gmail.com> (Apigee)
>>    * Todd Nine <todd.nine@gmail.com> (Apigee)
>>
>>
>> == Interested Contributors ==
>>
>> Below are the people who have expressed interested in contributing to
>> Usergrid via the Apache Software Foundation:
>>    * C.S.Nirmal J. Fernando <nirmal070125@gmail.com> (WSO2)
>>    * Dulitha Rasanga Wijewantha <dulithaz@gmail.com> (WSO2)
>>    * Imesh Gunaratne <imesh@apache.org> (WSO2)
>>    * Niranjan Karunanandham <niranjan.karu@gmail.com> (WSO2)
>>
>>
>> == Affiliations ==
>>
>>    * Apigee
>>    * Easemob, Inc.
>>    * Korea Telecom
>>    * Globo.com
>>    * The Last Pickle
>>
>>
>> == Sponsors ==
>>
>>
>> === Champion ===
>>
>>    * Dave Johnson <snoopdave@apache.org>
>>
>>
>> === Nominated Mentors ===
>>
>>    * Jake Farrell <jfarrell@apache.org>
>>    * Jim Jagielski <jim@apache.org>
>>    * Dave Johnson <snoopdave@apache.org>
>>    * Lewis John Mcgibbney <lewis.mcgibbney@gmail.com>
>>    * Luciano Resende <lresende@apache.org>
>>
>>
>> === Sponsoring Entity ===
>>
>> Incubator PMC
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message