写点什么

当红语言只认 Go!趣头条技术沙龙精彩瞬间回顾

  • 2019-08-30
  • 本文字数:2448 字

    阅读完需:约 8 分钟

当红语言只认Go!趣头条技术沙龙精彩瞬间回顾

Go 语言从 2009 年发布以来,到现在正好走过了十年的时间。其天生并发、内置 GC、安全性高、语法简单、编译快速、出身名门等等诸多特点,使得目前越来越多大公司都在使用 Go 语言重筑其后端的基础架构和服务。


所以说互联网企业和开发者都是一群“闲不住”的人,出了新东西后总想着自己鼓捣两下。相比企业,开发者就更自由了,即使公司内部不用 Go 语言,很多开发者也在“偷偷”用 Go 来强化自己的技能。


基于此背景,近日,趣头条联合极客邦科技在上海举办了首届 Go 语言技术沙龙——Golang 在工程实践中的应用。虽然只是一场持续半天的技术沙龙活动,但是现场参会者的参与热情、从沙龙带回的收获与感悟,其意义已经远远超过活动本身。部分参会者在现场反馈说,如果不是参加了此次沙龙,真的感受不到,原来 Go 语言在国内这么火,在开发者群体中这么吃香!




本次技术沙龙从实际生产业务中出发,注重企业对 Go 语言的应用程度,注重讲师在 Go 中的实践,因此来自国内深度应用 Go 语言互联网大厂的三位资深架构师——趣头条基础架构部架构师徐鹏、七牛云大数据团队架构师刘凯、bilibili 主站技术中心研发工程师曹国梁,基于对 Go 语言的深入理解,在现场深度分享了自家企业在 Go 语言中的实践情况。


以下是三位老师在分享过程中的精彩回顾:

自研 ServiceMesh 在趣头条的实践

现场第一轮分享,是趣头条基础架构部架构师徐鹏带来的《自研 Service Mesh 在趣头条的实践》。



趣头条基础架构部架构师徐鹏


在演讲中,徐鹏首先对 Service Mesh 的演进历程进行了介绍,着重对趣头条完全基于 Go 语言实现的 Service Mesh Negri 系统进行了讲解。



Negri 架构图


自研的 Service Mesh Negri 有以下 6 个主要特点:


  • 语言无关,无需开发多套不同语言框架、PHP、Golang、Java 甚至 Node.js、Python 都可以接入;

  • 维护成本低,重框架维护成本非常高、DRY 会引发大面积故障,升级成本高;

  • 服务注册发现,省去了 slb 部署环节、可以自动发现服务节点变化;

  • 服务治理,限流、熔断、降级、trace、metrics、log 错误注入;

  • 图形化的控制面板,提供了统一的 UI,控制服务治理的各类配置,展示服务的 metric、strace、日志、调用关系等;

  • 自研业务的支持,abtest、trace、auth、加解密、sign 验签等功能的支持。


随后,徐鹏主要就 Negri 的研发历程、最佳实践以及未来发展方向做出了讲解。



最后,徐鹏对 Negri 的未来发展规划进行了介绍,主要包含:


  • 兼容 xds 协议,支持 Istio 作为控制平面;

  • 支持 Redis、MySQL、Nsq、Kafka 协议,能够对这些服务做限流熔断等举措;

  • 服务授权认证,通过下发服务间调用规则/Appsecret,让服务间调用更安全。

Go 在七牛全链路追踪中的实践

接下来的第二轮分享,是来自七牛云大数据团队架构师刘凯,他所带来的分享主题为《Go 在七牛全链路追踪中的实践》。



七牛云大数据团队架构师刘凯


首先,刘凯对全链路追踪这一技术进行详细的讲解,包括全链路追踪技术的起源、Opentracing、业界主要产品等等。



随后对七牛的全链路追踪进行了详细介绍。在七牛全链路追踪的功能特性方面,刘凯也进行了极为详细的阐述,主要包含:传输优化、服务拓扑、接入成本、可视化展示这四个方面。



最后,刘凯现场演示了如何用全链路追踪模块去反向监控 Go 项目,第一是指用户的业务,黑色就是 trarcer 模式,然后中间 span,然后是采集模块,并现场还原了真实效果,手动演示了代码传入的途径。


Go 在 bilibili 微服务治理中的实践

当天带来最后一个分享的是 bilibili 主站技术中心高级研发工程师曹国梁,他所带来的分享主题是《Go 在 bilibili 微服务治理中的实践》。



bilibili 主站技术中心高级研发工程师曹国梁


曹国梁首先让大家初步了解了下微服务化所带来的一系列挑战,并介绍了初期 CP 服务发现系统——ZooKeeper。



Zookeeper 架构图


随后详细介绍了 bilibili 基于 Go 语言实现的 AP 服务发现框架——Discovery。Discovery 服务发现系统主要有保证节点信息最终一致、网络分区的自我保护、客户端实例变化这三个特点。



同时,负载均衡是微服务中非常重要的一个环节,曹国梁对负载均衡在 bilibili 内所发展的前 2 个阶段进行了介绍,因为性能无法满足业务快速增长的需要,bilibili 基于前面的两个版本,又引进了负载均衡 3.0,主要优化点可见下图:



最后,曹国梁对微服务中“熔断与限流”的应用进行了介绍,并回顾了之所以用 Go 语言来实现这个框架的原因。

Lean Coffee 环节:深度讨论 Go 的今生与未来

本次沙龙与寻常大家只是单一的站在倾听者的角度来接收技术干货的不同,是本次沙龙引入了 Lean Coffee 环节,共设有【Go 的工程化实践】、【大并发和大流量下的 Go 实践】、【Go 在行业中落地与应用】以及【Go 的未来前景探讨】这四个话题,每一位参会者都可以选择自己所感兴趣的话题来与现场的小伙伴进行讨论。



最后每个小组都派出了一位代表上台进行分享,从产出的结果来看,大家的讨论十分有成效,并且由趣头条的 Kevin 从中评选出了“最具价值分享”奖项。现场,大家讨论、分享的欲望非常强烈,直至最后,还有众多参会者还表示对交流的内容意犹未尽。同时,本次技术沙龙以 Go 为圆心,凝结了上海本地对 Go 有热情和研究兴趣的开发者,大家借此相识、借此探讨,向获知最前沿的技术应用,扩大自身的社交圈子又迈进了一步。



最后引用 Lean Coffee 环节一位同学的热血之言:七牛在国内是应用 Go 语言的专家,但是希望在多年之后,Go 语言在中国,不管什么七牛八牛,最终都将会是 Go 牛!


2019-08-30 14:028989
用户头像
佘磊 策划编辑

发布了 50 篇内容, 共 22.8 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

TiDB 6.0: 让 TSO 更高效

TiDB 社区干货传送门

实践案例 性能测评 新版本/特性解读 6.x 实践

文件数据导入到TiDB的实践

TiDB 社区干货传送门

这一年,我和 TiDB 的故事

TiDB 社区干货传送门

基于 TiDB v6.0 部署两地三中心

TiDB 社区干货传送门

实践案例 6.x 实践

一次断电故障引起TiDB无法启动的问题带来的几点思考

TiDB 社区干货传送门

管理与运维 故障排查/诊断

TiFlash 源码阅读(二)计算层概览

TiDB 社区干货传送门

TiDB HTAP特性的应用场景简析

TiDB 社区干货传送门

数据库架构设计

TiDB v5.4.0 与 v6.0.0 的 sysbench 性能对比

TiDB 社区干货传送门

性能测评 6.x 实践

TiDB 和 C# 的简单 CRUD 应用程序

TiDB 社区干货传送门

6.x 实践

我和 TiDB 的故事 - 2020~2022

TiDB 社区干货传送门

离线安装 TiSpark v2.5.1

TiDB 社区干货传送门

6.x 实践

6.0体验:TiKV 重启后 Leader 均衡加速

TiDB 社区干货传送门

管理与运维 新版本/特性解读 6.x 实践

基于tidbV6.0探索索引优化思路

TiDB 社区干货传送门

实践案例 6.x 实践

TiCDC系列分享 Open API与业务系统集成

TiDB 社区干货传送门

应用适配 6.x 实践

TiDB库表设计和使用规范

TiDB 社区干货传送门

管理与运维

TiDB 查询优化及调优系列(四)查询执行计划的调整及优化原理

TiDB 社区干货传送门

TiSpark v2.4.x 升级到 TiSpark v2.5.x

TiDB 社区干货传送门

实践案例 6.x 实践

TiDB Lightning在数据迁移中的应用与错误处理实践

TiDB 社区干货传送门

迁移 管理与运维 6.x 实践

MySQL正常执行的SQL在TiDB中变慢了

TiDB 社区干货传送门

管理与运维 故障排查/诊断

基于tidbV6.0探索tiflash在多标签组合场景下的使用

TiDB 社区干货传送门

实践案例 6.x 实践

TiKV 节点重启后业务恢复速度(leader 平衡速度)v6.0 vs v5.1.2对比测试

TiDB 社区干货传送门

版本测评 6.x 实践

一次SSD磁盘寿命耗尽导致的TiDB集群写入变慢问题处理

TiDB 社区干货传送门

故障排查/诊断

TiDB多活方案

TiDB 社区干货传送门

实践案例 集群管理 数据库架构选型 数据库架构设计

TiDB 6.0 Book Rush | TiDB 和 Python 的 CRUD 应用开发实践

TiDB 社区干货传送门

6.x 实践

TiDB Sysbench 性能对比测试报告 - v5.1.4 对比 v6.0.0 DMR

TiDB 社区干货传送门

6.x 实践

TiCDC系列分享-02-剖析同步模型与基本架构

TiDB 社区干货传送门

迁移 备份 & 恢复 大数据场景实践 实时数仓场景实践 数据中台场景实践

TiDB与MySQL的模糊查询大小写

TiDB 社区干货传送门

开发语言

TiDB 查询优化及调优系列(三)慢查询诊断监控及排查

TiDB 社区干货传送门

TiDB中如何查看database级别的QPS

TiDB 社区干货传送门

监控

tiflash 6.0 on K8s 扩容与新特性实践

TiDB 社区干货传送门

版本测评 安装 & 部署 新版本/特性解读 扩/缩容 6.x 实践

TiDB 6.0: 统计信息优化改进

TiDB 社区干货传送门

管理与运维 新版本/特性解读 6.x 实践

当红语言只认Go!趣头条技术沙龙精彩瞬间回顾_语言 & 开发_佘磊_InfoQ精选文章