前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CNCF项目超过了十亿行代码:与DevStats创造者Łukasz Gryglicki的问答

CNCF项目超过了十亿行代码:与DevStats创造者Łukasz Gryglicki的问答

作者头像
CNCF
发布2020-04-02 15:33:24
6840
发布2020-04-02 15:33:24
举报
文章被收录于专栏:CNCFCNCF

你们中的一些人可能不知道CNCF社区有一个非常有价值的报告工具--DevStats。

CNCF从2017年开始开发DevStats,为Kubernetes社区提供关于Kubernetes如何应对几乎前所未有的增长的及时和相关的见解。今天,它已经发展到包含所有CNCF项目,并且由于它是开源的,几乎可以为任何项目或指标定制。

除了跟踪统计数据以度量所有托管项目的健康状况外,我们还在编译年度和项目旅程报告时使用DevStats。

在度量DevStats的过程中,我们刚刚遇到了一个不可思议的里程碑--所有CNCF项目加起来已经超过了10亿行代码。没错,10亿!

为了纪念这一成就,我们坐下来与DevStats创造者Łukasz Gryglicki了解更多的关于工具、它的历史、以及我们的社区如何从中受益。

CNCF:DevStats是什么?

Łukasz Gryglicki:DevStats是一个服务,从git和GitHub获取数据,然后将它转变成图表报告社区活动。这是CNCF资助的项目,也是对所有CNCF支持的项目提供的服务。它使用Grafana仪表板组织和显示项目数据。我们把它放在一些强大的服务器上,这些服务器是由Packet慷慨捐赠的。

它的工作方式是下载几PB的数据,这些数据代表了过去6年GitHub上的每一个公开行为,除了CNCF托管的1400多个仓库之外,它几乎把所有的数据都扔掉了。它处理数据并将其存储在Postgres数据库中,并且每小时下载更新的数据。

DevStats现在(大约9个月前)是一个Kubernetes原生应用程序,并使用许多其他CNCF项目,包括Helm、containerd、CoreDNS等。DevStats是一个完全开源的项目。它还使用Linux基金会项目,包括Linux(Ubuntu)和Let's Encrypt,以及Red Hat的Patroni来支持在Kubernetes上运行Postgres数据库。

DevStats还允许用户跟踪自定义指标,而不仅仅是PR问题或提交。它有许多非标准仪表板,例如分析bot活动、公司所属关系、贡献者位置、时区映射、性别、编程语言、许可类型等等。

问:DevStats是如何产生的?

LG:CNCF执行董事Dan Kohn提出了DevStats的初始架构,并聘请我来实施它。我们之前曾在一家医疗创业公司Spreemo共事。我的第一个实现是使用Ruby,但是当我在Go中重新实现时,我能够利用并发性获得20倍的性能改进。

我们在2017年创建了DevStats,作为Kubernetes社区度量开发人员和社区数据的一种方式。它是为Kubernetes指导委员会和SIG-Contributor Experience而创建的,他们需要一个工具来对社区中正在发生的事情进行深入的分析和理解。随着Kubernetes成为仅次于Linux的第二大开源社区,他们也在寻找一种方法来控制这样一个快速增长的项目的开发。他们需要一个能够理解他们工作流程的工具(比如bot命令,以及特定于Kubernetes的仓库标签)。最大的需求之一是允许对历史数据进行分析,以显示趋势是如何演变的。

我们首先在2018年欧洲KubeCon + CloudNativeCon哥本哈根大会上介绍了这个项目。然后,为了支持更好的扩展和更多的资源需求,它被转移到Kubernetes。它成为了一个完整的Kubernetes应用程序外观的范例,符合所有在2019年欧洲KubeCon + CloudNativeCon巴塞罗那大会上提出的最佳实践。现在,DevStats涵盖了所有CNCF项目、一些Linux基金会项目(比如Linux和Zephyr)、GraphQL基金会、CDF(持续交付基金会)、Core Infrastructure Initiative等等。

CNCF:CNCF项目跨越10亿行代码是一个令人印象深刻的里程碑!我们是如何走到今天这一步的?这意味着什么?

LG:这对CNCF来说是一个巨大的里程碑。首先,这意味着CNCF和它的项目都在以令人难以置信的速度增长。当你想到“谷歌Chrome有670万行代码,而据报道微软Windows 10操作系统有5000万行代码”这个事实时,10亿行代码似乎更让人印象深刻。随着项目从沙箱和孵化阶段发展到毕业阶段,它们会逐渐成长,并变得更加坚固为企业所用。DevStats仪表板按项目显示代码行数。

CNCF:关于DevStats,还有什么是社区应该知道的吗?

LG:DevStats是开源的--任何人都可以使用它并为自己的项目部署自己的实例。我们通过在DevStats仓库中创建特性请求来定期添加新的仪表板,因此,如果你需要为你的项目创建一个特殊的仪表板,请提交一个特性请求,我们将为你检查仪表板!

CNCF:还有什么令人兴奋的新功能吗?

LG:最近,我们根据TOC和项目维护者的反馈,迭代了一个项目状态仪表板的几个修改版本。

我们还在为DevStats创建RESTful API。这意味着人们将能够编写自己的工具,并且有一个DevStats API服务器可以在他们的工具请求上返回数据。例如,他们可以编写一些东西来查询他们每天的项目使用情况,DevStats将以JSON的形式返回这些数据。

Łukasz Gryglicki自2017年以来CNCF高级开发人员。在加入CNCF之前,Łukasz为美国公司(包括Cleverstep、Jamis、以及Spreemo Health)远程工作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档