写点什么

当红语言只认 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:028713
用户头像
佘磊 策划编辑

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

关注

评论

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

antd vue upload组件使用customRequest上传文件显示文件上传进度

Seven_xw1213

大前端 antd vue upload customRequest 进度条

第七周命题作业

天之彼方

antd vue 使用upload组件action上传文件

Seven_xw1213

大前端 antd vue upload

八个排序的原理、Java 实现以及算法分析

多选参数

数据结构 算法 排序 排序算法 数据结构与算法

简约而不简单的分布式通信基石

架构师修行之路

分布式 socket udp TCP/IP 通信协议

关注系统压力测试

麻辣

架构师训练营Week7学习总结

Frank Zeng

性能优化(一)

olderwei

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

一叶知秋

米酒米酒黼子酒

zhoo299

美食

week07总结 性能测试&操作系统

Z冰红茶

Github 创建发行版本

耳东@Erdong

GitHub github release

Docker基础修炼4--Docker仓库及相关命令

黑马腾云

Docker Linux 容器 运维 虚拟化

Docker基础修炼5--容器数据共享和持久化实战

黑马腾云

Docker Linux 容器 运维 虚拟化

第七周学习总结

赵龙

K8S 中的 Grafana 数据持久化

耳东@Erdong

Kubernetes k8s Grafana 配置文件持久化

第 7 周 - 作业 2

seng man

第七周作业

赵龙

搭建Hadoop开发环境并编写运行测试类

我是个bug

Java hadoop IDEA

Docker基础修炼6--网络初探及单机容器间通信

黑马腾云

Docker Linux 容器 运维 虚拟化

性能优化作业

qihuajun

架构师训练营 - 第七周 - 学习总结

stardust20

总结

chenzt

LeetCode题解:283. 移动零,JavaScript,一次遍历,详细注释

Lee Chen

大前端 LeetCode

第七周总结

天之彼方

架构师训练营Week7作业

Frank Zeng

重置 Grafana admin 密码

耳东@Erdong

Grafana Grafana password

性能测试与优化学习总结

qihuajun

优秀的求职者,是如何巧妙应对面试提问呢?

xcbeyond

面试 加班 职业规划 薪资 自我介绍

架构师0期07周作业

我在终点等你

如何找一碗正宗的热干面

zhoo299

美食

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