Hi Folks,

I would like to open a DISCUSS thread on the topic of accepting the
ServiceComb Project into the Incubator.

ServiceComb is a microservice framework that provides a set of tools and
components to make development and deployment of cloud applications easier.

The draft proposal can be found in the wiki at the following URL:
https://wiki.apache.org/incubator/ServiceCombProposal

At this stage we could very much appreciate the discussion and
feedback for entering
Apache Incubation. The text for the draft proposal is found below.

= ServiceComb Proposal =

== Abstract ==

ServiceComb is a microservice framework that provides a set of tools and
components to make development and deployment of cloud applications easier.
It provides functionalities such as service contract enforcement, service
registration, service discovery, load balance, service reliability (latency
and fault tolerance, flow control and graceful degradation, handler chain
tracing), eventual data consistency and so forth.

== Proposal ==

The goal of this proposal is to bring the existing ServiceComb codebase and
existing developers into the Apache Software Foundation (ASF) in order to
build a vibrant, diverse and self-governed open source community around the
technology.
So far the major contributors to the project have been affiliated with
Huawei and Huawei is planning to continue market and sell the Cloud Service
Engine leveraging the ServiceComb framework.
ServiceComb is currently a registered trademark owned by Huawei, and Huawei
is happy to donate this trademark to Apache.

Huawei is submitting this proposal to donate the Service source code and
associated artifacts (documentation, web site content, wiki, etc.) to the
Apache Software Foundation Incubator under the Apache License, Version 2.0
and is asking Incubator PMC to establish an open source community. These
artifacts are currently available on GitHub at
https://github.com/ServiceComb/ and include:
 * Java Chassis: a multi-protocol (RPC & Restful) microservice framework
which adopts contract-first design
 * Service Center: a service registry that enforces service contract upon
service registration and discovery
 * Saga: a distributed coordinator to achieve eventual data consistency
based on the paper "Sagas" by Hector Garcia-Molina and Kenneth Salem
 * ServiceComb.github.io:  the website repo of ServiceComb.
 * The other projects will be moved to another place if ServiceComb is
accepted by Apache as an incubator project.

== Background ==

Microservices is a variant of the service-oriented architecture (SOA)
architectural style that structures an application as a collection of
loosely coupled services. ServiceComb is an open source microservice
framework initiated as part of Huawei CSE projects (Cloud Service Engine)
which was developed in 2015. It is a part of ServiceStage of Huawei Public
Cloud which is one-stop PaaS platform for enterprises and developers.
Besides ServiceStage, it’s  also used in the Huawei Core Network IOT
Platform and Huawei consumer cloud. The number of  companies using
ServiceComb to develop their enterprise applications, they are
chinasofti.com, isoftstone.com, pactera.com,zbj.com,movit-tech.com, and the
number is over 5 and counting.

== Rationale ==

ServiceComb has been developed as a total, open source solution for
developing cloud native applications. So far ServiceComb has existed as a
GitHub project with committers mostly working for Huawei. We feel that
moving it to a neutral organization like Apache, with its strong governance
model, is expected to help get more contributions from various
organizations and developers, who may be concerned by exclusive control of
ServiceComb by Huawei.

== Initial Goals ==

Our initial goals are to bring ServiceComb into the ASF, transition
internal engineering processes into the open, and foster a collaborative
development model according to the "Apache Way." Huawei and the current
contributors to ServiceComb plan to develop new functionality in an open,
community-driven way. To get there, the existing internal build, test and
release processes will be refactored to support open development.

 1. More specifically, our initial plan of moving ServiceComb to ASF is
focused on:
 2. open up the governance model in order to simplify and streamline
contributions from the community
 3. move the existing codebase to Apache
 4. integrate with the Apache development process
 5. ensure all dependencies are compliant with Apache License version 2.0
 6. incremental development and releases per Apache guideline

== Current Status ==

=== Meritocracy ===

We intend to substantially expand the initial developer and user community
by running the project in line with the "Apache Way". Users and new
contributors will be treated with respect and welcomed. By participating in
the community and providing quality patches/support that move the project
forward, they will earn merit. They will also  be encouraged to provide
non-code contributions (documentation, events, community management, etc.)
and will gain merit for doing so. Those with a proven support and quality
track record will be encouraged to become committers and PMC members.

=== Community ===
ServiceComb core java sdk is developed by Huawei Cloud team, and is widely
used inside Huawei. It also includes developers from other companies like
Movitech, Qianmi, witmart.com, using ServiceComb to develop MicroServices.

=== Core Developers ===
The core developers are a diverse group of developers, some of whom  are
already experienced open source developers.  There are at least one Apache
Member as well as a number of experienced developers.
 * Ning Jiang, ningji...@apache.org, Apache Member, project architect.
 * Qi Zhang, zhangq...@huawei.com, project architect
 * Xiang Yin, seam....@huawei.com, Java Chassis, Saga core developer
 * JiMin Wu, wuji...@huawei.com, Java Chassis core developer
 * Bao Liu, bao....@huawei.com, Java Chassis core developer
 * Mohammad Asif Siddiqui, mohammad.asif.siddiq...@huawei.com,
ServiceCenter core developer
 * Yihua Cui, cuiyi...@huawei.com, ServiceCenter core developer

=== Alignment ===
We have looked upon Apache as a model for building a strong developer
community and worked to absorb its essence and adopt its best practices.
There are quite a number of Apache projects we want to integrate with, such
as Apache Camel, Apache ActiveMQ, in order to build a sophisticated
MicroService solution for the user.

== Known Risks ==

Development has been sponsored mostly by one single company. To facilitate
the full transition of the project to the Apache Way governance model,
development must shift towards the meritocracy-centric model of growing a
community of contributors balanced with the needs for extreme stability and
core implementation coherency.

=== Orphaned Products ===
Huawei is fully committed to ServiceComb. Moreover, Huawei has a vested
interest in making ServiceComb succeed by driving its close integration
with other ASF projects. We expect this to further reduce the risk of
orphaning the product.

=== Inexperience with Open Source ===
Huawei has been developing and using open source software since a long
time. Some committer have a proven track record in open source at Apache.
Additionally, several ASF veterans agreed to mentor the project and are
listed in this proposal. The project will rely on their guidance and
collective wisdom to accelerate the transition of the entire team of
initial committers towards practicing the Apache Way.

=== Reliance on Salaried Developers ===
Most of the contributors are paid to work in Huawei Cloud Team. While they
might wander from their current employers, they are unlikely to venture far
from their core expertise and thus will continue to be engaged with the
project no matter who their current employers are.

===  Relationship with other Apache products ===
ServiceComb is not related with other Apache products directly.

=== An excessive fascination with the Apache brand ===
While we intend to leverage the Apache ‘branding’ when talking to other
projects as a testament of our project’s ‘neutrality’, we have no plans for
making use of Apache brand in press releases nor posting billboards
advertising acceptance of ServiceComb into Apache Incubator.

=== Documentation ===

The following documentation is relevant to this proposal. Relevant portion
of the documentation will be contributed to the Apache ServiceComb project.

ServiceComb Website: http://servicecomb.io/

=== Initial Source ===
 * https://github.com/ServiceComb/ServiceComb-Java-Chassis
 * https://github.com/ServiceComb/ServiceComb-Saga
 * https://github.com/ServiceComb/service-center
 * https://github.com/ServiceComb/ServiceComb.github.io

=== Source and Intellectual Property Submission Plan ===
As soon as ServiceComb is approved to join Apache Incubator, the source
code will be transitioned via the Software Grant Agreement onto ASF
infrastructure and in turn made available under the Apache License, version
2.0. We know of no legal encumberments that would inhibit the transfer of
source code to the ASF.

=== External Dependencies ===

1. ServiceComb java-chassis depends on some Apache projects:
 * Commons Lang
 * Commons Codec
 * httpClient
 * CXF
 * Tomcat
 * Maven

and other open source projects (organized by license)

ALv2:
 * Netty
 * Spring
 * Spring-Boot
 * Zipkin
 * brave
 * protostuff
 * Jackson
 * Swagger
 * vertx
 * Netflix ribbon
 * Netflix hystrix
 * rxjava
 * Google guava
 * Google guice
 * Aspectj
 * Okhttp
 * hibernate-validator

MPL:
 * Javassist
 * MIT
 * Mockito
 * SLF4J
 * Bridge-method-annotation
 * EPL 1.0
 * JUnit
 * Logback

2.ServiceComb Saga depends on some Apache projects:
 * Commons IO
 * Commons lang
 * Maven

And other open source projects (organized by license)
ALv2:
 * servicecomb-java-chassis
 * awaitility
 * kamon
 * disruptor
 * rest-assured
 * wiremock
 * Aspectj

MPL:
 * Javassist

MIT:
 * Mockito
 * SLF4J
 * Bridge-method-annotation

EPL 1.0:
 * JUnit
 * Logback

As all dependencies are managed using Apache Maven, none of the external
libraries need to be packaged in a source distribution.

3.ServiceComb Service-Center depends on
Open-Source Projects(Organized by License)
MIT
 * github.com/Knetic/govaluate
 * github.com/beorn7/perks
 * github.com/boltdb/bolt
 * github.com/couchbase/go-couchbase
 * github.com/couchbase/gomemcached
 * github.com/cupcake/rdb
 * github.com/dustin/go-humanize
 * github.com/karlseguin/ccache
 * github.com/kr/pty
 * github.com/lib/pq
 * github.com/mattn/go-runewidth
 * github.com/olekukonko/tablewriter
 * github.com/onsi/ginkgo
 * github.com/onsi/gomega
 * github.com/pelletier/go-toml
 * github.com/siddontang/go
 * github.com/siddontang/ledisdb
 * github.com/siddontang/rdb
 * github.com/ugorji/go
 * github.com/urfave/cli
 * github.com/xiang90/probing
 * github.com/bgentry/speakeasy
 * github.com/ghodss/yaml

BSD 3-Clause
 * github.com/beego/x2j
 * github.com/belogik/goes
 * github.com/cloudflare/golz4
 * github.com/edsrzf/mmap-go
 * github.com/golang/snappy
 * github.com/spf13/pflag
 * github.com/widuu/gojson
 * golang.org/x/crypto
 * golang.org/x/net
 * golang.org/x/text
 * golang.org/x/time
 * gopkg.in/cheggaaa/pb.v1

BSD 2-Clause
 * github.com/gorilla/websocket
 * github.com/syndtr/goleveldb

Apache-2.0
 * github.com/bradfitz/gomemcache
 * google.golang.org/genproto
 * github.com/astaxie/beego
 * gopkg.in/yaml.v2
 * github.com/cockroachdb/cmux
 * github.com/casbin/casbin
 * github.com/coreos/etcd
 * github.com/coreos/go-semver
 * github.com/coreos/go-systemd
 * github.com/jonboulle/clockwork
 * github.com/prometheus/client_golang
 * github.com/prometheus/client_model
 * github.com/prometheus/common
 * github.com/prometheus/procfs
 * github.com/hsluoyz/casbin
 * github.com/coreos/pkg
 * github.com/garyburd/redigo
 * github.com/spf13/cobra
 * github.com/google/btree
 * github.com/matttproud/golang_protobuf_extensions

Copyright (c) 2013, The GoGo Authors.
 * github.com/gogo/protobuf

Copyright 2010 The Go Authors.
 * github.com/golang/protobuf

Service-Center Frontend depends on
Open-Source Projects(Organized by License)
MIT:
 * angular
 * angular-animate
 * angular-aria
 * angular-material-data-table
 * angular-material
 * angular-messages
 * angular-mocks
 * angular-resource
 * angular-route
 * angular-sanitize
 * angular-swagger-ui
 * angular-translate-loader-static-files
 * angular-translate
 * angular-ui-bootstrap
 * angular-ui-router
 * bootstrap-less-only
 * bootstrap-sass-official
 * chart.js
 * Components-font-awesome
 * mmumshad/angular-yamljs
 * jeremyfa/yaml.js

Apache-2.0:
 * Json-formatter

BSD
 * Angular-charts.js
 * JS Foundation
 * jQuery

== Required Resources ==
=== Mailing Lists ===
 * priv...@servicecomb.incubator.apache.org (moderated subscriptions)
 * comm...@servicecomb.incubator.apache.org
 * d...@servicecomb.incubator.apache.org
 * iss...@servicecomb.incubator.apache.org

=== Source Control ===
 *
https://git-wip-us.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
 *
https://git-wip-us.apache.org/repos/asf/incubator-servicecomb-service-center.git
 * https://git-wip-us.apache.org/repos/asf/incubator-servicecomb-saga.git
 * https://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website.git

=== Issue Tracking ===
JIRA Project ServiceComb

=== Initial Committers ===
 * Ning Jiang
 * Qi Zhang
 * Xiang Yin
 * JiMin Wu
 * Liubao
 * Mohammad Asif Siddiqui
 * Yihua Cui
 * Roman Shaposhnik
 * Jean-Baptiste Onofre
 * Timothy Chen

=== Additional Interested Contributors ===
 * Jian Zhang cos...@gmail.com
 * Bing Wang wangbb0...@gmail.com
 * Ven Jiang venji...@gmail.com
 * GeekTJS josephy...@gmail.com
 * Li Zhou eacdy0...@126.com
 * Haiwei Zhang haiwei...@foxmail.com
 * Yetiea yet...@gmail.com

=== Affiliations ===
 * Huawei: Ning Jiang, Qi Zhang, Xiang Yin, JiMin Wu, Liubao, Mohammad Asif
Siddiqui, Yihua Cui
 * Stealth: Roman Shaposhnik
 * Talend: Jean-Baptiste Onofré
 * Hyperpilot: Timothy Chen

=== Sponsors ===
Champion
 * Roman Shaposhnik[r...@apache.org]
Nominated Mentors
 * Roman Shaposhnik[r...@apache.org]
 * Jean-Baptiste Onofre [jbono...@apache.org]
 * Timothy Chen[tnac...@apache.org]

=== Sponsoring Entity ===
 * We are requesting the Incubator to sponsor this project.


Willem Jiang

Reply via email to