4月13日,趣頭條聯(lián)合極客邦科技在上海舉辦了首屆 Go 語言技術(shù)沙龍——Golang 在工程實(shí)踐中的應(yīng)用。雖然只是一場持續(xù)半天的技術(shù)沙龍活動,但是現(xiàn)場參會者的參與熱情、從沙龍帶回的收獲與感悟,其意義已經(jīng)遠(yuǎn)遠(yuǎn)超過活動本身。部分參會者在現(xiàn)場反饋說,如果不是參加了此次沙龍,真的感受不到,原來Go語言在國內(nèi)這么火,在開發(fā)者群體中這么吃香!
Go語言從 2009 年發(fā)布以來,到現(xiàn)在正好走過了十年的時間。其天生并發(fā)、內(nèi)置GC、安全性高、語法簡單、編譯快速、出身名門等等諸多特點(diǎn),使得目前越來越多大公司都在使用 Go 語言重筑其后端的基礎(chǔ)架構(gòu)和服務(wù)。
座位不夠坐了,站著也要聽
本次技術(shù)沙龍從實(shí)際生產(chǎn)業(yè)務(wù)中出發(fā),注重企業(yè)對Go語言的應(yīng)用程度,注重講師在Go中的實(shí)踐,因此來自國內(nèi)深度應(yīng)用Go語言互聯(lián)網(wǎng)大廠的三位資深架構(gòu)師——趣頭條基礎(chǔ)架構(gòu)部架構(gòu)師徐鵬、七牛云大數(shù)據(jù)團(tuán)隊(duì)架構(gòu)師劉凱、bilibili 主站技術(shù)中心研發(fā)工程師曹國梁,基于對Go語言的深入理解,在現(xiàn)場深度分享了自家企業(yè)在Go語言中的實(shí)踐情況。
以下是本屆技術(shù)大會三位分享嘉賓演講的精彩回顧:
自研 ServiceMesh 在趣頭條的實(shí)踐
現(xiàn)場第一輪分享,是趣頭條基礎(chǔ)架構(gòu)部架構(gòu)師徐鵬帶來的《自研 Service Mesh 在趣頭條的實(shí)踐》。
趣頭條基礎(chǔ)架構(gòu)部架構(gòu)師徐鵬
在演講中,徐鵬首先對 Service Mesh 的演進(jìn)歷程進(jìn)行了介紹。
隨后徐鵬著重對趣頭條完全基于Go語言實(shí)現(xiàn)的 Service Mesh Negri 系統(tǒng)進(jìn)行了講解。
Negri 架構(gòu)圖
自研的Service Mesh Negri有以下6個主要特點(diǎn):
語言無關(guān),無需開發(fā)多套不同語言框架、PHP、Golang、Java甚至Node.js、Python都可以接入;
維護(hù)成本低,重框架維護(hù)成本非常高、DRY會引發(fā)大面積故障,升級成本高;
服務(wù)注冊發(fā)現(xiàn),省去了slb部署環(huán)節(jié)、可以自動發(fā)現(xiàn)服務(wù)節(jié)點(diǎn)變化;
服務(wù)治理,限流、熔斷、降級、trace、metrics、log錯誤注入;
圖形化的控制面板,提供了統(tǒng)一的UI,控制服務(wù)治理的各類配置,展示服務(wù)的metric、strace、日志、調(diào)用關(guān)系等;
自研業(yè)務(wù)的支持,abtest、trace、auth、加解密、sign驗(yàn)簽等功能的支持。
隨后,徐鵬主要就 Negri 的研發(fā)歷程、最佳實(shí)踐以及未來發(fā)展方向做出了講解。
最后,徐鵬對Negri的未來發(fā)展規(guī)劃進(jìn)行了介紹,主要包含:
兼容xds協(xié)議,支持Istio作為控制平面;
支持Redis、MySQL、Nsq、Kafka協(xié)議,能夠?qū)@些服務(wù)做限流熔斷等舉措;
服務(wù)授權(quán)認(rèn)證,通過下發(fā)服務(wù)間調(diào)用規(guī)則/Appsecret,讓服務(wù)間調(diào)用更安全。
Go在七牛全鏈路追蹤中的實(shí)踐
第二輪分享,是來自七牛云大數(shù)據(jù)團(tuán)隊(duì)架構(gòu)師劉凱,他所帶來的分享主題為《Go 在七牛全鏈路追蹤中的實(shí)踐》。
七牛云大數(shù)據(jù)團(tuán)隊(duì)架構(gòu)師劉凱
首先,劉凱對全鏈路追蹤這一技術(shù)進(jìn)行詳細(xì)的講解,包括全鏈路追蹤技術(shù)的起源、Opentracing、業(yè)界主要產(chǎn)品等等。
隨后對七牛的全鏈路追蹤進(jìn)行了詳細(xì)介紹。在七牛全鏈路追蹤的功能特性方面,劉凱也進(jìn)行了極為詳細(xì)的闡述,主要包含:傳輸優(yōu)化、服務(wù)拓?fù)?、接入成本、可視化展示這四個方面。
最后,劉凱現(xiàn)場演示了如何用全鏈路追蹤模塊去反向監(jiān)控Go項(xiàng)目,第一是指用戶的業(yè)務(wù),黑色就是trarcer模式,然后中間span,然后是采集模塊,并現(xiàn)場還原了真實(shí)效果,手動演示了代碼傳入的途徑。
Go在bilibili微服務(wù)治理中的實(shí)踐
最后一個分享的是 bilibili 主站技術(shù)中心高級研發(fā)工程師曹國梁,他的分享主題是《Go 在bilibili微服務(wù)治理中的實(shí)踐》。
bilibili主站技術(shù)中心高級研發(fā)工程師曹國梁
曹國梁首先讓大家初步了解了下微服務(wù)化所帶來的一系列挑戰(zhàn),并介紹了初期CP服務(wù)發(fā)現(xiàn)系統(tǒng)——ZooKeeper。
Zookeeper架構(gòu)圖
隨后詳細(xì)介紹了 bilibili 基于 Go 語言實(shí)現(xiàn)的AP服務(wù)發(fā)現(xiàn)框架——Discovery。Discovery 服務(wù)發(fā)現(xiàn)系統(tǒng)主要有保證節(jié)點(diǎn)信息最終一致、網(wǎng)絡(luò)分區(qū)的自我保護(hù)、客戶端實(shí)例變化這三個特點(diǎn)。
同時,負(fù)載均衡是微服務(wù)中非常重要的一個環(huán)節(jié),曹國梁對負(fù)載均衡在 bilibili 內(nèi)所發(fā)展的前2個階段進(jìn)行了介紹,因?yàn)樾阅軣o法滿足業(yè)務(wù)快速增長的需要,bilibili 基于前面的兩個版本,又引進(jìn)了負(fù)載均衡3.0,主要優(yōu)化點(diǎn)可見下圖:
最后,曹國梁對微服務(wù)中“熔斷與限流”的應(yīng)用進(jìn)行了介紹,并回顧了之所以用Go語言來實(shí)現(xiàn)這個框架的原因。
Lean Coffee 環(huán)節(jié):深度討論Go的今生與未來
本次沙龍與尋常大家只是單一的站在傾聽者的角度來接收技術(shù)干貨的不同,是本次沙龍引入了Lean Coffee 環(huán)節(jié),共設(shè)有【Go的工程化實(shí)踐】、【大并發(fā)和大流量下的Go實(shí)踐】、【Go在行業(yè)中落地與應(yīng)用】以及【Go的未來前景探討】這四個話題,每一位參會者都可以選擇自己所感興趣的話題來與現(xiàn)場的小伙伴進(jìn)行討論。
我們的講師也積極參與到大家的討論中來
最后每個小組都派出了一位代表上臺進(jìn)行分享,從產(chǎn)出的結(jié)果來看,大家的討論十分有成效,并且由趣頭條的Kevin從中評選出了“最具價(jià)值分享”獎項(xiàng)。
本次技術(shù)沙龍以Go為圓心,凝結(jié)了上海本地對Go有熱情和研究興趣的開發(fā)者,大家借此相識、借此探討,向獲知最前沿的技術(shù)應(yīng)用,擴(kuò)大自身的社交圈子又邁進(jìn)了一步。
現(xiàn)場參會者的大合影
三位講師也獲得定制的證書
引用Lean Coffee 環(huán)節(jié)一位技術(shù)大牛的熱血之言:七牛在國內(nèi)是應(yīng)用Go語言的專家,但是希望在多年之后,Go語言在中國,不管什么七牛八牛,最終都將會是Go牛!
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!