关于活动:说不尽的开源技术云社区沙龙online开源之道精彩回顾

26次阅读

共计 5463 个字符,预计需要花费 14 分钟才能阅读完成。

有人说:开源软件是一项划时代的创举,它撕开了公有软件大环境下的深重膈膜,为 IT 技术倒退注入了新的生机和空间。据 Linux 基金会的统计报告,现有软件中只有 10% 不到的代码是由开发者纯手写,而 90% 以上是和各种开源软件的源码组合而成。开源技术倒退至今,社区一直发展壮大,各种新技术层出不穷,利用也越来越广,开源技术的影响力正在渗透到咱们日常生活的方方面面。

2020 年 10 月 23 日~11 月 2 日,腾讯云官网开发者社区—云 + 社区主办的以「开源之道」为主题的系列沙龙流动已圆满谢幕。此次在线沙龙邀请到 11 位开源技术圈大咖演讲,和大家深度探讨如何奉献开源、成就本身等话题,以及分享腾讯开源第一线背地的技术神秘,帮忙大家在这条路上走得更好。

优良程序员,如何奉献开源?

开源的实质是什么?说到这个话题,开源社理事长暨联结创始人 & ASF Member 刘天栋首先发表了本人的认识。他认为开源的实质有四个点最要害:

  1. 开源是凋谢的,要有凋谢的心态来做这件事,公开通明是良好合作的基石。
  2. 分享,乐于分享是所有善举的开始,而不是闭门造车。
  3. 平等,大家都有平等的谋求,这是开源社区衰弱的根底。
  4. 是合作,透过开放式的合作能逐步形成凝聚共识,是开源社区凋敝的秘诀。

凋谢原子基金会 TOC 副主席谭中意认为,开源实质就是源码凋谢基础设施上的多人合作模式,为了让这种合作可能长期衰弱的进行,产生了各种各样的附加层面。

比方为了让代码上下游能够工作得更好,就产生了开源社区;为了更好反对开源社区又产生各种各样的基金会,基金会前面又有各种各样的商业公司反对,又催生了新的商业模式 ……. 回归到实质,就是大家在凋谢的源码上一起来写代码。

开源中国社区负责人王永和对此也有补充,他认为开源不仅仅是代码开源,我的项目的背地还有社区、委员会、以及相干的法律。由此他告诫开发者:在应用一款开源软件之前,务必对该项目标整个体系和组成部分有全面的理解,这样能防止很多的坑。

此外在开发者如何奉献开源的话题探讨中,三位老师也发表了本人的认识,他们统一认同:奉献开源,绝不仅仅只有程序员能够参加。除了奉献源码以外,翻译文档、给文档纠错,又或是分享优良的开源我的项目给身边敌人,这些看似微不足道的行为,也会为社区的壮大带来微小的好处。在此过程中,也能为本身带来很多意想不到的播种。

企业级云原生:TKEStack 腾讯云原生开源实际之路

TKEStack 是腾讯开源的一款集强健性和易用性于一身的企业级容器编排引擎,是凋谢原子开源基金会的孵化我的项目之一。TKEStack 的开源思路是寻找云原生的蓝海,腾讯认为在将来,多云以及硬件异构和硬件平台异构是一个方向。

首先是硬件异构,目前绝大部分的应用场景是基于 X86 的硬件,但国内有一个很重要的诉求:就是反对 ARM。腾讯会做到 X86 和 ARM 能够在同一个集群内部署。GPU 方面除了有本人传统的比拟有劣势的 GPU 虚拟化能力以外,也把英特尔 GPU 能力和寒武纪和华为的 GPU 相干产品 在 TKEStack 外面做适配,让下层用户能够无感的应用。

基础架构异构就是混合云,TKEStack 架构设计上是拿一个集群管其余的集群,人造能够做到混合云,把别的集群,自建集群注册到 TKEStack 外面来,利用 TKEStack 提供的镜像仓库、认证、日志、权限、监控,在一个 TKEStack 界面来能够治理多个 K8S 集群。

腾讯积攒了一批云原生利用相干的技术计划,两个比拟为人熟知的是有状态利用的 TAPP 和英伟达 GPU 虚拟化,还有一些大数据套件也在做集成。腾讯心愿把外部的劣势开源组件一步一步往 TKEStack 外面集成,让用户能够在 TKEStack 上应用。

除此以外还有一个比拟重要的点就是松耦合,TKEStack 一方面反对自研业务,另一方面也反对商业化产品,最终出现给用户态的不止一个产品。面对这样的诉求,就要求 TKEStack 做到可插拔、积木式组装。A 产品要用日志,B 产品不必日志,本人能够抉择能够随便的组合,TKEStack 就具备这样的松耦合能力。

跨国单干:Serverless Components 在腾讯云的落地和实际

Serverless Framework 是⼀个开源命令⾏⼯具,为开发和部署 Serverless 架构提供脚⼿架,⾃动化⼯作流以及最佳实际。并且它⽀持通过丰盛的插件进⾏性能扩大。

Serverless Components 是 Serverless Framework 推出的最新解决⽅案,具备基础设施编排能⼒,开发者通过使⽤ Serverless Components,能够灵便构建、组合和部署 Serverless 应⽤。

通过 CLI 的命令进行部署的时候,会把用户代码压缩之后上传。首先压缩指定的代码目录,上传到一个公共的 COS 外面。而后新建或者更新组件的状态,同时会在服务端把代码下载下来,并注入 Proxy 代码。

Proxy 代码都实现了什么能力呢?因为云函数次要的实用场景是事件驱动型的,对于 http 申请的实现是通过 API 网关触发器转发的。网关接管到的 http request 会转换为云函数须要的参数对象,在函数执行包装后的 web 框架,执行完后再把 http response 转换成 API Gateway 须要的构造返回给网关,网关再把 response 转换成规范的 http response 返回,这样就实现了整个 HTTP 的拜访。

而用户不须要关注这部分的实现,依照失常的开发就能够。Components 部署的时候会主动注入这部分转换逻辑的代码。服务端在注入完 Proxy 代码后会把代码上传到用户 COS 外面,而后创立或更新云函数,同时会再创立或者更新 API 网关的配置。

这个时候再把整个创立的过程以及创立的状态保留到服务端,控制台再输入整个组件最终须要给用户看到的一些云上资源的信息,比方 SCF 的信息、API 网关的信息、CDN 的数据和数据库信息等,整个部署就算是实现了。利用部署完后会返回 API 网关专用的二级域名的一个拜访地址,跟失常的函数与本人组装资源去拜访利用形式是一样的。

通过这个过程抹平了一些云函数和失常服务器差异化的实现,抹平后通过 Serverless Components 能够不必关怀这些非凡的逻辑逻辑,也不须要关怀其余的云上的资源。

国产开源数据库:腾讯云 TBase 在分布式 HTAP 畛域的摸索与实际

数据库作为计算层和存储层的基石,其开源的重要性不言自明。TBase 是腾讯 TEG 数据平台团队在开源 PostgreSQL 的根底上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强统一高并发的分布式在线事务能力以及高性能的数据在线剖析能力,曾经为腾讯内外部包含政务、银行、保险、证券、微信领取等多个行业提供底层数据库撑持。

2019 年 11 月 7 日,TBase 正式开源到 GitHub,开源以来受到了欧洲航天局的“ESA Gaia mission”(https://sci.esa.int/web/gaia)等多个内部我的项目的青眼。

TBase 在分布式事务上的能力做了较大改良。首先对 GTM 集群做了优化,从原始的全局 XID 改成了调配全局工夫戳 GlobalTimeStamp(GTS),GTS 是枯燥递增的,腾讯基于 GTS 设计了一套全新的 MVCC 可见性判断协定,包含 vacuum 等机制。

这样的设计能够把提交协定从 GTM 的单点瓶颈下放到每一个节点上,加重压力,同时通过工夫戳日志复制的形式实现 GTM 节点主备高可用。这种协定下 GTM 只须要去调配全局的 GTS,这样的话单点压力就会被解决得比拟显著。依据推算,滕叙 TS85 服务器每秒大略能解决 1200 万 TPS,根本能满足所有分布式的压力和用户场景。

国产开源 IoTOS:腾讯物联网操作系统 TencentOS Tiny 的摸索与实际

腾讯物联网终端操作系统(TencentOS tiny)是腾讯面向物联网畛域自主研发的嵌入式实时操作系统。TencentOS Tiny 提供精简的 RTOS 内核,内核代码仅 1w 行,内核组件可裁剪可配置,可疾速移植到多种支流 MCU 及模组芯片上,集成支流物联网协定栈(如 CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物联网终端设备及业务疾速接入腾讯云物联网平台。

2019 年 9 月 18 日正式全网开源以来,笼罩了 IoT 支流利用场景,造成了良好的开发者生态和行业影响力。反对硬件平台数量超 60+,包含 STM32、NXP、华大半导体、Nordic、兆易半导体、国民技术、TI MSP、瑞兴恒方等多家 MCU 和模组厂家。

TencentOS Tiny 的产品架构,由下往上看,最上面是目前曾经反对的 MCU 芯片和模组,其中包含 STM32 和支流的蜂窝通信模组,提供了驱动框架和外设框架,兼容不同硬件和不便适配不同硬件平台。

再往上面是 TencentOS Tiny 的外围根底内核,再下面是物联网所须要的联网组件,提供了 IoT 罕用的性能组件,比方文件系统、KV 存储和高级语言引擎框架等等,提供了不便用户调用的业务层 API,业务层上也会提供罕用的案例供客户和开发者参考。除此以外,此架构内置了平安框架,为终端设备的设施惟一标识、通信链路加密、密钥平安存储提供了保障,避免物联网设施被攻打。

总体来看,整个 TencentOS Tiny 物联网操作系统有三个次要特点:

第一,极至精简的内核。内核整体代码量不超过一万行,可能实现超低资源的占用,IDLE 工作下,最小资源占用仅为 0.6KB RAM,1.8 KB ROM。

第二,功耗低,最小休眠功耗能够达到 uA 级别。

第三,软件架构十分简捷,不便嵌入式开发者以超快的速度入门,只须要把操作系统疾速移植下来,下面的 IoT 组件就能够间接应用,十分不便,不需花太多工夫老本学习。

前端视角谈物联网三部曲:连贯智能,交互智能,数据智能

作为离用户和物联网设施最近的前端,在物联网三部曲中表演什么样的角色呢?这两年来腾讯云物联网摸索出了“腾讯连连”小程序。

在业界比拟少小程序教训的前提下,腾讯连连小程序率先提供了丰盛的设施连贯形式:WI-FI(SoftAP,SmartConfig,AirKiss,SimpleConfig,蓝牙辅助配网等), 蓝牙(规范蓝牙协定,自定义蓝牙协定),LoRa 等网关和子设施的连贯形式,并且一直打磨连贯体验和成功率。

在设施管制方面,提供了规范面板和独创性的基于 SCF 框架的自定义 H5 面板计划;为了和更多的物联网开发商和爱好者一起打造生态,提供了一系列的开源的凋谢能力:利用开发 SDK,自定义 H5 面板开发 SDK,小程序插件等等,吸引了很多厂商和开发者。

腾讯云 IoT 致力于帮忙宽广的物联网开发者做好设施生命周期治理中的基础设施建设,保障性能的易用性、完整性和性能高可用性,让开发者只须要关注本人业务逻辑即可,这样以最短时间公布产品抢占先机。整个物联网产品开发平台架构图如下:

开发者能够在物联网开发者平台去开发调试这个设施,在控制台去看这个设施的监控日志、数据分析等等。同时,腾讯也推出了 C 端的利用腾讯连连,去帮忙用户做设施治理,设施治理包含设施的连贯、交互、更新、删除等等,能够进一步的缩短开发厂商设施量产的 C 端产品开发流程。

腾讯连连当初为什么要做小程序呢?小程序的劣势在于装置便捷,给一个二维码就能够关上了,不像 APP 的装置那么繁琐,它跟微信外面的关系链是强绑定的。而物联网设施也是跟人强绑定的,家居畛域、企业畛域都是须要跟一群人交互的,它的劣势在于这里。

而对于开发商来说,小程序能够用一种语法在两端运行,不须要解决安卓、IOS 端的兼容性问题,能够大大的缩小缩短开发周期,而且能够精简开发智能角色一个前端就能够搞定以前要两个端的开发人员做的工作。

压测利器:TarsBenchmark 正确打开方式

Tars 是由腾讯主导开源,并募捐给 Linux 基金会的微服务 RPC 框架。当下后盾逻辑服务大都采纳微服务架构设计,其后盾服务个别基于二进制的 RPC 形式对外提供服务,以 Tars 服务为例,其 RPC 的接口协议是极易扩大的,这种灵便多变的协定给服务的性能评测带来了肯定的难度。而 TarsBenchmark 的及时推出极大地升高应用门槛,同时反对在线评测服务性能。

TarsBenchmark 采纳多过程的形式,在主过程上会依据服务器的物理核数去 fork 相等数量的压测过程,各压测过程之间是齐全隔离的,也就是独立运行,防止了过程与过程之间相互抢夺临界资源。

在网络方面,采纳的是事件驱动的形式,通过定时发包器读写过程,并通过事件驱动防止网络 IO 的阻塞。外在连贯方面采纳连接池,在连接池对每个连贯采纳连贯复用的形式。不依赖于对端是否返回,能够依据返回包的序号定位到发包的性能和发包的工夫,也能够计算压测过程当中的一些耗损数据。

在协定方面,采纳的是协定代理工厂模式,TarsBenchmark 默认提供的是 Tars 协定的压测,然而如果开发者有一些公有协定,能够参考 Tars 协定的实现集成进来,代理工厂能够自动识别协定。在 Tars 协定中,反对随机数据的生成。另外还提供一个工具,用以主动生成测试用例,测试用例采纳的是 JSON 格局,达到预期就能够轻松发动压测。

开源之潮,正滚滚而来,引领着技术倒退的新思潮,而国内开源倒退也正热火朝天,在这样的时代背景下,愿每一位开发者都能抓住机遇成就本身。正是源于对技术高度的热诚,让大家相遇在云 + 社区沙龙直播间,追随技术大咖的后退脚步摸索本人的开源之道。将来云 + 社区还将举办更多技术布道流动,踊跃拥抱开发者,携手谱写技术新时代篇章。

正文完
 0