servicecomb.apache.orggithub.com/apache?q=servicecomb
servicecomb.apache.orggithub.com/apache?q=servicecomb
ServiceComb 开源这两年2019-6 姜宁
2
github.com/apache?q=servicecomb
servicecomb.apache.org
关于我
• 目前就职于华为开源能力中心
• 前红帽软件主任软件工程师
• Apache软件基金会会员
• 参与Apache软件基金会多个Java 中间件项目
3
github.com/apache?q=servicecomb
servicecomb.apache.org
ServiceComb 项目介绍• Java Chassis
高性能的微服务框架,提供服务注册发现以及动态配置管理,以及限流降级,
容错熔断等服务治理功能
• Service Center
基于Etcd高性能,高可用服务注册中心
• Pack (Saga)
微服务事务最终一致性问题解决方案,提供一个集中式的事务协调器,协调微
服务之间的事务调用,保证事务最终一致性
https://github.com/apache?q=servicecomb
4
github.com/apache?q=servicecomb
servicecomb.apache.org
1 2 3 4 5
开源准备 构建社区 Apache基金会孵化 成为顶级项目
ServiceComb开源这两年
一点感悟
5
github.com/apache?q=servicecomb
servicecomb.apache.org
开源之初-准备
• 为什么要开源?
– 开源与闭源之间的收益区别?
– 项目开源的最大收益什么?
• 开源项目定位
– 项目解决什么样的问题
– 项目开源的目的和价值
– 开源项目与商业产品的关系
6
github.com/apache?q=servicecomb
servicecomb.apache.org
ServiceComb开源微服务解决方案
ServiceComb微服务解决方案Java编程(POJO/SpringMVC/JAX-
RS)Golang编程
限流 负载均衡
分布式追踪动态配置 服务注册 服务度量
通信协议(Rest&RP
C)边缘服务
熔断/容错 Token认证
Saga事务一致性服务契约
平滑上云
拥抱开源生态
处理链
微服务脚手架
服务安全 治理UI 自动部署 监控运维
Public Cloud
……SpringCloud
SpringBoot
Istio
Apollo SkywalkingZipkin
Prometheus
Dubbo
ServiceMesh
K8S
对接行业解决方案
7
github.com/apache?q=servicecomb
servicecomb.apache.org
社区胜于代码community over code
社区构建
8
github.com/apache?q=servicecomb
servicecomb.apache.org
参与度
用户 开发者
贡献者公众
开源社区的参与度
开发人员市场推广
Logo设计
布道师
法律支持
9
github.com/apache?q=servicecomb
servicecomb.apache.org
社区构建
• 抓住一切机会宣传项目
– 参加各大开发者大会
– 举办线下Meetup
– 利用新媒体全面介绍项目
• 寻找其他人的帮助
– 你不是一个人在路上
– 寻找姊妹项目的支持
– 进入基金会
10
github.com/apache?q=servicecomb
servicecomb.apache.org
基金会捐赠• 为什么要进基金会
– 长期开源经验积累
– 更多的开发人员提供高质量的软件
– 合作大于竞争,大家可以共享成果
– 免费的培训,规范的流程
– 基础设施,市场,法律支持
• 开源基金会的选择
– 标准相关的 Linux Foundation
– 开发者相关的 Apache Software Foundation
11
github.com/apache?q=servicecomb
servicecomb.apache.org
Apache孵化器
• 进入ASF孵化的目的
– 学习Apache做事之道
– 构建健康发展的社区
– 完善软件许可(License)
– 与Apache的基础设施集成
– 发布合规版本
12
github.com/apache?q=servicecomb
servicecomb.apache.org
Apache孵化器
• 进入ASF孵化的步骤
– 提起孵化提案
– 寻找Champion 和Mentor
– 发起投票
– 投票通过在孵化器建立项目
– 签署SGA, CLA, iCLA文件
– 代码库迁移,建立邮件列表, wiki,JIRA
– 商标检索转移工作
– 清理代码,修改包名
– 按照ASF的要求准备第一个release
13
github.com/apache?q=servicecomb
servicecomb.apache.org
Apache孵化器• 构建完善的社区
– 成立孵化项目管理委员会 PPMC
– 没有在邮件列表发生的事情就没有真的发生
– 通过投票的方式进行决议
• 投票规则 voting rule
• 赞成 +1, 弃权 0, 反对 -1
• 一般会持续 72小时
• 对于产品发布, 需要大于等于3票+1通过
• 反对票需要提出相应的改进建议
– 共识决策
• 决策之前要充分讨论
• 通过懒式方式达成共识
– 新的Committer或者PPMC成员是通过投票产生的
https://incubator.apache.org/guides/community.html
14
github.com/apache?q=servicecomb
servicecomb.apache.org
Apache孵化器毕业• 社区成熟度模型评估
– 代码,发版,共识决策
• Board决议文档撰写
– PMC成员,PMC Chair,项目章程
• 通过投票的方式进行决议
– PPMC投票
– IPMC投票
• 是否构建了有生命力的社区
• 是否能够自主发布合规版本
https://incubator.apache.org/guides/graduation.html
15
github.com/apache?q=servicecomb
servicecomb.apache.org
ServiceComb(Apache 孵化之前)
Service CenterJava Chassis
0.1.0
正式开源版本
Service CenterJava Chassis
0.2.0
加入Zuul支持,Spring Boot starter
服务中心优化
Service CenterJava Chassis
0.3.0
Zipkin支持支持自定义SpanSample示例优化
Service CenterJava Chassis
0.4.0
服务中心升级
Service CenterJava Chassis 0.5.0
边缘服务系统Metric
异步调用API
Saga 0.0.1
集中式Saga原型
Saga 0.0.2
Saga调用支持条件判断
2017年6月 2017年8月 2017年10月2017年9月 2017年12月
开发者基本都是华为员工, 邮件列表活跃度 每月10 封, 外部用户 2 家
16
github.com/apache?q=servicecomb
servicecomb.apache.org
Service CenterJava Chassis
1.1.0
支持K8s部署支持ServiceMesher
服务实例Cache优化支持黑白名单
Service CenterJava Chassis
1.0.0-m1
支持Dev开发模式集成外部配置中心Metrics 监控支持异步编程模型支持ZipkinV2版本支持
Service CenterJava Chassis
1.0.0-m2
提升etcd弹性伸缩边缘服务网关优化
支持文件流上传下载用户自定义访问日志
Service CenterJava Chassis
1.0.0
正式稳定版本发布自动生成脚手架工程
支持Http2协议自定义ping机制
Saga 0.1.0
分布式Pack原型
Pack 0.3.0
优化后台性能支持多种分布式协调机制
多语言框架Omega
2017年12月 2018年3月 2018年8月2018年6月 2018年10月
ServiceComb(Apache之旅)
Saga 0.2.0
Spring Boot 2.x 支持
外部长期贡献者10 + , 邮件列表活跃度 每月180 封, 外部用户 20家
2018年12月 2019年4月
Pack 0.4.0
Alpha Cluster支持Omega动态获取Alpha信息
完善TCC支持
Service CenterJava Chassis
1.2.0
优化云原生环境支持优化Metrics服务
提供服务Inspector多版本Spring-Boot 支持
Apache 毕业
17
github.com/apache?q=servicecomb
servicecomb.apache.org
一点感悟
• 完整的走了一遍流程,加深了对Apache之道的理解
• 运作开源项目还是很有挑战的
– 不光要会写代码,更要会推销你的点子
• 需要他人帮助的时候,可以想一下自己是否可以帮助他人。
• 代码是死的,构建健康的社区是项目成功的关键
• Public good and Customer good
servicecomb.apache.orggithub.com/apache?q=servicecomb
Copyright©2018 Huawei Technologies Co., Ltd. All Rights Reserved.
The information in this document may contain predictive statements including, without
limitation, statements regarding the future financial and operating results, future product
portfolio, new technology, etc. There are a number of factors that could cause actual
results and developments to differ materially from those expressed or implied in the
predictive statements. Therefore, such information is provided for reference purpose
only and constitutes neither an offer nor an acceptance. Huawei may change the
information at any time without notice.
Thank You.