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.
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
The other projects will be moved to another place if ServiceComb is accepted by Apache as an incubator project.
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.
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.
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.
More specifically, our initial plan of moving ServiceComb to ASF is focused on:
- open up the governance model in order to simplify and streamline contributions from the community
- move the existing codebase to Apache
- integrate with the Apache development process
- ensure all dependencies are compliant with Apache License version 2.0
- incremental development and releases per Apache guideline
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.
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.
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, firstname.lastname@example.org, Apache Member, project architect.
Qi Zhang, email@example.com, project architect
Xiang Yin, firstname.lastname@example.org, Java Chassis, Saga core developer
Bao Liu, email@example.com, Java Chassis core developer
Sukesh A C, firstname.lastname@example.org, Java Chassis developer
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.
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.
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.
The following documentation is relevant to this proposal. Relevant portion of the documentation will be contributed to the Apache ServiceComb project.
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.
1. ServiceComb java-chassis depends on some Apache projects:
- Commons Lang
- Commons Codec
and other open source projects (organized by license)
- Netflix ribbon
- Netflix hystrix
- Google guava
- Google guice
- EPL 1.0
2.ServiceComb Saga depends on some Apache projects:
- Commons IO
- Commons lang
And other open source projects (organized by license) ALv2:
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
Copyright (c) 2013, The GoGo Authors.
Copyright 2010 The Go Authors.
Service-Center Frontend depends on
- Open-Source Projects(Organized by License)
- JS Foundation
email@example.com (moderated subscriptions)
JIRA Project ServiceComb
- Ning Jiang
- Qi Zhang
- Xiang Yin
- Bao Liu
- Mohammad Asif Siddiqui
- Sukesh A C
- Yihua Cui
- Roman Shaposhnik
- Jean-Baptiste Onofre
- Timothy Chen
Additional Interested Contributors
Jian Zhang firstname.lastname@example.org
Bing Wang email@example.com
Ven Jiang firstname.lastname@example.org
Li Zhou email@example.com
Haiwei Zhang firstname.lastname@example.org
Huawei: Ning Jiang, Qi Zhang, Xiang Yin, JiMin Wu, Bao Liu, Sukesh A C, Mohammad Asif Siddiqui, Yihua Cui
- Stealth: Roman Shaposhnik
- Talend: Jean-Baptiste Onofré
- Hyperpilot: Timothy Chen
Jean-Baptiste Onofre [email@example.com]
- We are requesting the Incubator to sponsor this project.