incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: [PROPOSAL] Usergrid BaaS Stack for Apache Incubator
Date Sun, 22 Sep 2013 15:59:59 GMT
Certainly that is a decision to be made by the Usergrid community
itself and not something to be "encouraged" by the ASF.

On Sep 21, 2013, at 12:41 AM, Sanjiva Weerawarana <sanjiva@wso2.com> wrote:

> One other aspect- with my Stratos hat on I'd like to see these services
> (optionally) running on the Stratos PaaS framework .. that way the services
> inherit an elastic execution platform and more. So I see this as a win-win
> relationship.
> 
> Sanjiva.
> 
> 
> On Fri, Sep 20, 2013 at 7:24 PM, Sanjiva Weerawarana <sanjiva@wso2.com>wrote:
> 
>> +1 - there's a lot of overlap / commonality of objective between BaaS and
>> the set of services provided by Apache Stratos (incubating) to developers
>> of apps. I'm very happy to see this come to ASF and will be happy to mentor
>> if you guys need another one.
>> 
>> Cheers,
>> 
>> Sanjiva.
>> 
>> 
>> On Mon, Sep 16, 2013 at 7:09 PM, Jim Jagielski <jim@jagunet.com> wrote:
>> 
>>> I would like to propose Usergrid, a multi-tenant Backend-as-a-Service
>>> stack for web & mobile applications based on RESTful APIs, as an Apache
>>> Incubator podling.
>>> 
>>> Here is a link to the proposal:
>>>   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 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. 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.
>>> 
>>> 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). 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.
>>> 
>>> 
>>> == 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 (moderated)
>>>  * dev@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).
>>> 
>>> === Issue Tracking ===
>>> JIRA Usergrid (USERGRID)
>>> 
>>> === Other Resources ===
>>> None.
>>> 
>>> 
>>> == Initial Committers ==
>>> 
>>>  * Alberto Leal <albertonb@gmail.com> (Globo.com)
>>>  * Alex Karasulu <akarasulu@apache.org> (Apigee)
>>>  * 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>
>>>  * Sungju Jin <sungju@softwaregeeks.org> (Korea Telecom)
>>>  * Tim Anglade <timanglade@gmail.com> (Apigee)
>>>  * Todd Nine <todd.nine@gmail.com> (Apigee)
>>>  * Jim Jagielski <jim@apache.org> (RedHat)
>>> 
>>> 
>>> == Affiliations ==
>>> 
>>>  * Apigee
>>>  * Korea Telecom
>>>  * Globo.com
>>>  * The Last Pickle
>>> 
>>> 
>>> == Sponsors ==
>>> 
>>> === Champion ===
>>> Jim Jagielski <jim@apache.org>
>>> 
>>> === Nominated Mentors ===
>>>  * Alex Karasulu <akarasulu@apache.org>
>>>  * Dave Johnson <snoopdave@apache.org>
>>> 
>>> === Sponsoring Entity ===
>>> Incubator PMC
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
>>> For additional commands, e-mail: general-help@incubator.apache.org
>>> 
>>> 
>> 
>> 
>> --
>> Sanjiva Weerawarana, Ph.D.
>> Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
>> email: sanjiva@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1
>> 650 265 8311
>> blog: http://sanjiva.weerawarana.org/
>> 
>> Lean . Enterprise . Middleware
>> 
> 
> 
> 
> -- 
> Sanjiva Weerawarana, Ph.D.
> Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
> email: sanjiva@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1
> 650 265 8311
> blog: http://sanjiva.weerawarana.org/
> 
> Lean . Enterprise . Middleware


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


Mime
View raw message