76 lines
4.1 KiB
Markdown
76 lines
4.1 KiB
Markdown
# 如何参与 Istio 社区及注意事项
|
||
|
||
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://www.servicemesher.com/istio-handbook) 中浏览。**
|
||
|
||
本文讲述了如何参与 Istio 社区和进行 Istio 开发时需要注意的事项。
|
||
|
||
### 工作组
|
||
|
||
绝大多数复杂的开源项目都是以工作组的方式组织的,要想为 Istio 社区做贡献可以加入到以下的工作组(Working Group):
|
||
|
||
- [API Management](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#api-management)
|
||
- [Config](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#config)
|
||
- [Environments](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#environments)
|
||
- [Networking](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#networking)
|
||
- [Performance & Scalability](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#performance-and-scalability)
|
||
- [Policies & Telemetry](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#policies-and-telemetry)
|
||
- [Security](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#security)
|
||
- [Test & Release](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#test-and-release)
|
||
|
||
### 代码规范
|
||
|
||
Istio 的代码规范沿用 [CNCF 社区的代码规范](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)。
|
||
|
||
### 开发指南
|
||
|
||
进行 Istio 开发之前需要做下面几件事情:
|
||
|
||
- 配置基础环境,如 Kubernetes
|
||
- 配置代码库、下载依赖和测试
|
||
- 配置 CircleCI 集成环境
|
||
- 编写参考文档
|
||
- Git workflow 配置
|
||
|
||
详见 [Dev Guide wiki](https://github.com/istio/istio/wiki/Dev-Guide)。
|
||
|
||
### 设计文档
|
||
|
||
所有的设计文档都保存在 [Google Drive](https://drive.google.com/drive/u/0/folders/0AIS5p3eW9BCtUk9PVA) 中,其中包括以下资源:
|
||
|
||
- Technical Oversight Committee:ToC管理的文档
|
||
- Misc:一些杂项
|
||
- Working Groups:最重要的部分,各个工作组相关的设计文档
|
||
- Presentations:Istio 相关的演讲幻灯片,从这些文稿中可以快速了解 Istio
|
||
- Logo:Istio logo
|
||
- Eng:社区相关的维护文档
|
||
|
||
### 社区角色划分
|
||
|
||
根据对开发者和要求和贡献程度的不同,Istio 社区中包含以下角色:
|
||
|
||
- [Collaborator](https://github.com/istio/community/blob/master/ROLES.md#collaborator):非正式贡献者,偶尔贡献,任何人都可以成为该角色
|
||
- [Member](https://github.com/istio/community/blob/master/ROLES.md#member):正式贡献者,经常贡献,必须有2个已有的 member 提名
|
||
- [Approver](https://github.com/istio/community/blob/master/ROLES.md#approver):老手,可以批准 member 的贡献
|
||
- [Lead](https://github.com/istio/community/blob/master/ROLES.md#lead):管理功能、项目和提议,必须由 [ToC](https://github.com/istio/community/blob/master/WORKING-GROUP-PROCESSES.md) 提名
|
||
- [Administrator](https://github.com/istio/community/blob/master/ROLES.md#administrator):管理员,管理和控制权限,必须由 ToC 提名
|
||
- [Vendor](https://github.com/istio/community/blob/master/ROLES.md#vendor):贡献 Istio 项目的扩展
|
||
|
||
详见 [Istio Community Roles](https://github.com/istio/community/blob/master/ROLES.md)。
|
||
|
||
### 各种功能的状态
|
||
|
||
Istio 中的所有 feature 根据**是否生产可用**、**API兼容性**、**性能**、**维护策略**分为三种状态:
|
||
|
||
- Alpha:仅仅可以作为 demo,无法生产上使用,也没有性能保证,随时都可能不维护
|
||
- Beta:可以在生产上使用了,也有版本化的 API 但是无法保证性能,保证三个月的维护
|
||
- Stable:可以上生产而且还能保证性能,API 向后兼容,保证一年的维护
|
||
|
||
Istio 的 feature 分为四大类:
|
||
|
||
- 流量管理:各种协议的支持、路由规则配置、Ingress TLS 等
|
||
- 可观察性:监控、日志、分布式追踪、服务依赖拓扑
|
||
- 安全性:各种 checker 和安全性配置
|
||
- Core:核心功能
|
||
|
||
功能划分与各种功能的状态详情请见:<https://istio.io/about/feature-stages.html>
|