另外,這個(gè)公司有一個(gè)特性,很多大的商家都在廣州,為了提升廣州商家的用戶體驗(yàn),它在廣州也放了一個(gè) CLB,通過(guò)內(nèi)網(wǎng)專線連接到在上海的業(yè)務(wù)。也就是說(shuō),業(yè)務(wù)架構(gòu)沒(méi)有太多的變化,但是可用性和用戶體驗(yàn)都有提升。
最后一點(diǎn),因?yàn)楝F(xiàn)在 IDC 網(wǎng)絡(luò)都是千兆的,萬(wàn)兆成本非常貴,而在騰訊云所有的可用區(qū)域是全萬(wàn)兆架構(gòu)。大數(shù)據(jù)這塊, IDC 的大數(shù)據(jù)對(duì)網(wǎng)絡(luò)的要求比較高,所以這個(gè)客戶把自己的套件放到黑石上。
視頻直播從娛樂(lè)秀場(chǎng)的大爆發(fā)逐漸走向垂直領(lǐng)域的縱深,電商、教育、金融等各行各業(yè)對(duì)視頻直播的需求已到了非常迫切的地步,在介紹了騰訊云面對(duì)電商行業(yè)的全面解決方案之后,騰訊資深產(chǎn)品經(jīng)理錢栩磊以《電商直播技術(shù)應(yīng)對(duì)之道》來(lái)詳細(xì)介紹電商 + 直播場(chǎng)景下,騰訊云的解決方案。
概括來(lái)說(shuō),直播可以給消費(fèi)者帶來(lái)圖文介紹或者是錄播視頻很難提供的臨場(chǎng)感,可以刺激消費(fèi)者縮短決策路徑,通過(guò)主播帶來(lái)的氣氛刺激消費(fèi)者消費(fèi)。雖然直播對(duì)電商的促進(jìn)作用有這么多,但是現(xiàn)實(shí)中如何通過(guò)直播帶來(lái)大流量,并進(jìn)行轉(zhuǎn)化是個(gè)大問(wèn)題。
對(duì)于客戶來(lái)說(shuō),如果自己做一個(gè)直播 APP,每個(gè)模塊下有這么多工作要做。比如說(shuō)上傳 / 匯聚,會(huì)涉及到視頻的編碼、視頻推流、實(shí)時(shí)美顏等等;視頻轉(zhuǎn)碼方面,會(huì)涉及到實(shí)時(shí)轉(zhuǎn)碼、多格式轉(zhuǎn)碼、多協(xié)議轉(zhuǎn)碼、轉(zhuǎn)碼模塊、錄制截圖等等。如果還要加上互動(dòng)功能,實(shí)現(xiàn)觀眾和主播進(jìn)行視頻互動(dòng)、視頻連麥、美顏濾鏡、特效等等,不僅復(fù)雜燒腦,技術(shù)上門檻也非常高。
具體到騰訊的視頻云解決方案,基于騰訊多年在 QQ 視頻的技術(shù)沉淀,再加上服務(wù)端技術(shù),以及增值直播服務(wù),打包形成了一個(gè)視頻直播解決方案,這個(gè)解決方案整體來(lái)說(shuō)分為三個(gè)大模塊:一是直播內(nèi)容采集,二是直播后臺(tái)系統(tǒng),三是直播內(nèi)容播放。具體應(yīng)用場(chǎng)景就是主播端、服務(wù)端和觀眾端。
在騰訊云直播特性上,首先可以支持超低的直播延時(shí) 400 毫秒;其次是多路的視頻上麥,支持多路互動(dòng);另外,在保證超低延時(shí)和多路視頻上麥的同時(shí),騰訊云還提供高畫質(zhì)的視聽(tīng)體驗(yàn)。
在視頻直播 + 聊天室的服務(wù)中,提供一站式的 IM 通訊系統(tǒng),完整的場(chǎng)景化構(gòu)造,包括 APP 帳號(hào)關(guān)聯(lián)及登陸系統(tǒng),可以通過(guò) QQ、微信登陸;另外可以發(fā)送自定義消息,發(fā)送圖片、評(píng)論、點(diǎn)贊甚至是禮物,這些消息都支持單獨(dú)形式彈出;同時(shí),作為電商平臺(tái)還可以在上面浮出商品信息、購(gòu)物車信息以及支付消息;另外可以直播互動(dòng),主播允許后,可以與粉絲進(jìn)行視頻溝通;值得強(qiáng)調(diào)的是,直播聊天室沒(méi)有人數(shù)限制。
在直播 + 短視頻服務(wù)中,騰訊云提供一整套短視頻解決方案,包括短視頻的 SDK,以及豐富的編輯、特效等性能;另外直播 + 美顏相信大家都不陌生,關(guān)于美顏,騰訊云提供的效果非常多,包括大眼、美妝、瘦臉瘦身等等。
對(duì)于當(dāng)前受到廣泛關(guān)注的人工智能,騰訊云也提供直播 +AI 解決方案,可以對(duì)主播進(jìn)行人臉處理以及人臉識(shí)別、人臉關(guān)鍵點(diǎn)追蹤,實(shí)現(xiàn)很多動(dòng)效;此外,還可以實(shí)現(xiàn)實(shí)時(shí)綠幕摳圖;另外還有 OCR 識(shí)別,在快遞面單上自動(dòng)生成可編輯文字,替代人工輸入的方式。
分享最后錢栩磊介紹,自從 2015 年推出視頻云服務(wù)以來(lái),TOP100 里的直播 APP,80% 用的是騰訊視頻云;在電商、金融等垂直領(lǐng)域,90% 用的是騰訊視頻云,涵蓋主播人數(shù) 60% 以上。
作為美麗聯(lián)合集團(tuán)旗下美麗說(shuō)、蘑菇街、淘世界的一個(gè)業(yè)務(wù)實(shí)體,蘑菇街技術(shù)專家陳輝分享了電商平臺(tái)的實(shí)踐和一些感悟,特別是從自主可控、電商平臺(tái)兩個(gè)角度引發(fā)大家的思考。
分享一開(kāi)始,陳輝介紹了蘑菇街業(yè)務(wù)和技術(shù)發(fā)展的歷程。蘑菇街在 2016 年 5 月和美麗說(shuō)、淘世界進(jìn)行融合,這個(gè)時(shí)候不僅僅是蘑菇街一個(gè)平臺(tái),里面涉及到多個(gè)平臺(tái),不僅僅是解決單一平臺(tái)的問(wèn)題,要解決的是不同平臺(tái)之間的業(yè)務(wù)整合、隔離問(wèn)題。另外,下一個(gè)階段蘑菇街要考慮怎么把電商能力輸出。
從技術(shù)角度, 陳輝著重分享了在業(yè)務(wù)多平臺(tái)階段,技術(shù)怎么做平臺(tái)化,怎么通過(guò)平臺(tái)化技術(shù)讓業(yè)務(wù)活下來(lái)。蘑菇街三個(gè)比較主流的購(gòu)物入口包括微信小程序、微信小店微商城、自己的 APP,此外還有 APP、H5、小程序等多端和多場(chǎng)景、多平臺(tái),這時(shí)候應(yīng)用該怎么分、代碼怎么寫至關(guān)重要。
平臺(tái)化主要做的事情就是能夠支持多平臺(tái)業(yè)務(wù)的快速構(gòu)建、部署,并通過(guò)技術(shù)手段解決隔離、選擇、穩(wěn)定性等問(wèn)題。在這其中可以分解為擴(kuò)展性、隔離性、基礎(chǔ)能力、合作與效率等多個(gè)方面,根據(jù)蘑菇街的經(jīng)驗(yàn),歸總為一些原則:
上圖是蘑菇街架構(gòu)整體解決方案,用模塊化框架以及一系列的核心插件去解決一些依賴、管理、隔離相關(guān)的問(wèn)題,上層會(huì)有不同的業(yè)務(wù)模塊去拆分,然后切入到本身的業(yè)務(wù)管理里。
對(duì)此陳輝認(rèn)為,平臺(tái)化能夠解決的問(wèn)題包括穩(wěn)定性、快速擴(kuò)展、標(biāo)準(zhǔn)化場(chǎng)景,但是不能解決的包括:業(yè)務(wù)上多平臺(tái)之間要穿插,應(yīng)該怎么做?從技術(shù)上來(lái)講,電商不只有后端服務(wù),其實(shí)電商還有包括安全、風(fēng)控、運(yùn)維以及其他任何基礎(chǔ)的一些支持。還有前端,如果我們僅僅考慮后端相關(guān)的東西是不夠的,比如還要考慮 DevOps 的落地、還有效率相關(guān)的問(wèn)題,這是蘑菇街在后面階段看重的點(diǎn)。
基于以上問(wèn)題,蘑菇街會(huì)去考慮 serverless、service mesh、SOA、微服務(wù)…把這些叫做 Buzzword,這兩年最熱的就是這些概念;另外,還會(huì)考慮錢和業(yè)務(wù)的問(wèn)題,是不是要投入全部精力去做技術(shù)上的創(chuàng)新?因此會(huì)考慮 business ecosystem,標(biāo)準(zhǔn)化以后向外提供標(biāo)準(zhǔn)化服務(wù)。此外還可以看類似 Lambda 這樣的模式是不是也是我們想要的,可以不用關(guān)注彈性、擴(kuò)容,不去關(guān)注網(wǎng)絡(luò)成本、質(zhì)量,類似這樣的方式是否可以更好地提高效率。
據(jù)陳輝介紹,如果非要問(wèn)蘑菇街為什么要自建平臺(tái)、自建平臺(tái)的好處是什么、為什么要自己搞 PaaS?只能說(shuō)時(shí)機(jī)到了。在合作伙伴的選擇上,蘑菇街選擇了騰訊云,在蘑菇街上云這件事情上,騰訊云給予了很多支持,從服務(wù)的專業(yè)程度和細(xì)致程度,也給陳輝留下了深刻印象。
小紅書是一家發(fā)展非??焖俚墓?,在技術(shù)層面來(lái)看也是如此,近段時(shí)間小紅書的開(kāi)發(fā)團(tuán)隊(duì)在對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行微服務(wù)化改造,同時(shí)也進(jìn)行容器化的推廣, 以期提高線上部署的效率,控制發(fā)布風(fēng)險(xiǎn)。那么,關(guān)于容器化小紅書有什么樣的心得呢小紅書運(yùn)維總監(jiān)孫國(guó)清現(xiàn)場(chǎng)分享了小紅書大規(guī)模容器化應(yīng)用實(shí)踐。
大家都知道容器有很多優(yōu)點(diǎn),對(duì)于小紅書最看中容器的三個(gè)方面:部署效率、彈性容量和善用資源。
基于以上考慮,小紅書開(kāi)始實(shí)施容器的部署實(shí)踐。 ? ?左邊是我們的 CI 過(guò)程,右邊是監(jiān)控和日志相關(guān)的內(nèi)容;prometheus 作為監(jiān)控的平臺(tái),ELK 是日志系統(tǒng),這里面,prometheus 和容器的搭配是比較好的,對(duì)于容器監(jiān)控內(nèi)容的配置上,可以實(shí)現(xiàn)完全的自發(fā)現(xiàn),免配置;最下層是一些基礎(chǔ)的組件,traefik 可以幫助規(guī)避 kubernetes 里的所謂 iptables 陷阱。最下面是 docker,小紅書的整個(gè)環(huán)境都是建在騰訊云上,利用了騰訊云上的容器服務(wù)來(lái)搭配。
孫國(guó)清表示,在所有組件里面,有一個(gè)是最重要的,Spinnaker。Spinnaker 是 Netflix 的一個(gè)開(kāi)源項(xiàng)目,擁有開(kāi)放性和集成能力,以及較強(qiáng)的 Pipeline 表達(dá)能力,同時(shí),Spinnaker 支持多種云平臺(tái),是一個(gè)非常完善的發(fā)布系統(tǒng)。
上圖是 Spinnaker 系統(tǒng)的界面,里面有一些術(shù)語(yǔ)和 K8s 需要對(duì)應(yīng),并不是完全照搬的概念,因?yàn)樗侵С侄嗥脚_(tái)的系統(tǒng)。在 KBS 環(huán)境里,每個(gè)綠色塊代表的是容器實(shí)力,聚在一起的綠色塊可以理解為 KBS 里的 RS。那么為什么會(huì)有幾個(gè)塊聚在一起呢?它叫做 cluster,一個(gè)應(yīng)用的不同版本在一個(gè) cluster 里可以同時(shí)存在,你可以對(duì) cluster 做管理,也可以用 Pipeline 做發(fā)布的觸發(fā)。
Pipeline 的表達(dá)能力是非常強(qiáng)的,可以并發(fā)去執(zhí)行一些工作,等所有工作結(jié)束了再繼續(xù)下一個(gè)工作,所有開(kāi)發(fā)者對(duì)于發(fā)布系統(tǒng)的 Pipeline 的期望,它都可以做到。在這里面每一個(gè)綠色圓點(diǎn)代表的是每一個(gè)步驟,叫做 stage,所有 Pipeline 的執(zhí)行能力都是用 stage 來(lái)做的。
以上是小紅書的容器部署工具,那么,如何有什么樣的流程可以把這些工具串起來(lái)呢?經(jīng)典的流程有三個(gè):一是在開(kāi)發(fā)的時(shí)候,二是做集成測(cè)試的時(shí)候,三是上線。
開(kāi)發(fā)的時(shí)候,代碼切出了一個(gè) feature 分支,每次開(kāi)發(fā)都將代碼提交到分支,一旦提交以后,它會(huì)專門為你構(gòu)建。
集成測(cè)試,就是當(dāng)開(kāi)發(fā)者提交到 release 分支,然后觸發(fā) Jenkins Job,Jenkins Job 會(huì)專門為分支做一個(gè)構(gòu)建,構(gòu)建之后做觸發(fā)部署的 Pipeline,在整個(gè)部署內(nèi),需周而復(fù)始很多次,需要多次修改上線調(diào)試。但也可通過(guò)自動(dòng)化工具,比如黑盒子工具測(cè)試 API。
在上線環(huán)節(jié),小紅書會(huì)遵循 Canary 發(fā)布過(guò)程。即先把用戶進(jìn)行分類,有些用戶能夠接受不穩(wěn)定,小紅書把它引入到新版本,過(guò)段時(shí)間之后再聽(tīng)聽(tīng)用戶的反饋,如果可以就擴(kuò)大容量,這樣的過(guò)程是持續(xù)的且達(dá)到 100%。該過(guò)程是通過(guò) Spinnaker 來(lái)控制的,即整個(gè)的流量控制。
上圖為 Canary 的底層架構(gòu)。Canary service 是用來(lái)做流量分發(fā)的組件,對(duì)金絲雀用戶的分組有感知,流量進(jìn)來(lái)之后,經(jīng)過(guò)測(cè)試做完、路由完后,會(huì)分發(fā)到某一個(gè) service 的特定的 Proxy,會(huì)有策略判斷將其分發(fā)到新版本還是舊版本,Proxy service 有一個(gè) API,然后通過(guò)調(diào)用 API 調(diào)配它的策略。
Canary 策略,可以基于用戶的設(shè)備類型(IOS 或者安卓)、來(lái)源 IP 或者是這些東西的組合,或者是完全隨機(jī)。我們經(jīng)常使用的策略是公司內(nèi)部辦公室的所有 IOS 用戶或者公司辦公室的所有安卓用戶先來(lái)試驗(yàn)新版本。
以上是小紅書在容器部署過(guò)程中的一些技術(shù)實(shí)現(xiàn)的細(xì)節(jié)。至今,小紅書有 80 多的應(yīng)用已經(jīng)跑在容器環(huán)境中了,所占全站流量大概是 1/3 左右的比例,預(yù)計(jì)在明年 Q1 的時(shí)候,小紅書 100% 的流量會(huì)跑在容器里?,F(xiàn)場(chǎng),孫國(guó)清還透露,如果順利的話,明年大促的時(shí)候,小紅書所有的流量將全由容器承擔(dān)。
遷移的場(chǎng)景豐富多樣,業(yè)務(wù)系統(tǒng)各有不同,好的遷移方案的設(shè)計(jì)不僅能夠節(jié)省遷移成本,還能幫助用戶擁有更加完備的異地部署和災(zāi)備能力。依托騰訊多年的大規(guī)模數(shù)據(jù)運(yùn)維經(jīng)驗(yàn),騰訊云提供了安全可靠的數(shù)據(jù)傳輸工具,幫助用戶更好的完成遷移。本次沙龍最后一次分享嘉賓,來(lái)自騰訊云技術(shù)專家姚俊軍,將為大家分享完整的云上遷移方案設(shè)計(jì)思路與工具。
姚俊軍首先以搬家類比遷移,深入淺出地闡述了云遷移及其方案的本質(zhì) 。姚俊軍表示,把東西從源端搬到目的端的過(guò)程就是搬家,搬家的時(shí)候,大家可以選擇搬家公司幫忙完成搬家,開(kāi)發(fā)者也可以選擇遷移合作伙伴來(lái)幫助完成這件事;大家會(huì)選擇一些有利的工具,比如大車、面包車。而遷移工具也非常多,比如數(shù)據(jù)庫(kù)遷移工具、對(duì)象重組遷移工具。而剩下的就是物品,比方說(shuō)搬家時(shí)的家電、家具,遷移時(shí)的數(shù)據(jù)、文件、代碼、邏輯、甚至是與大數(shù)據(jù)相關(guān)的東西。那么,具體說(shuō)到遷移場(chǎng)景,根據(jù)客戶的實(shí)際情況可能會(huì)有這么幾種:
騰訊云從眾多的遷移案例里提煉出了一個(gè)通用的遷移流程,大概是分了四個(gè)階段七個(gè)步驟。四個(gè)階段分為前期評(píng)估階段、準(zhǔn)備階段、遷移實(shí)施階段、優(yōu)化階段。而七個(gè)步驟分別是業(yè)務(wù)架構(gòu)評(píng)估、方案設(shè)計(jì)階段、測(cè)試驗(yàn)證階段、環(huán)境部署階段、正式遷移執(zhí)行階段、上線切割階段以及最終云上優(yōu)化,這大概就是一個(gè)相對(duì)而言遷移流程。
遷移在實(shí)施過(guò)程中,其實(shí)會(huì)有幾種選擇,因此,也會(huì)有不一樣的遷移路徑。如下圖所示,如果適合重新托管,那么便可以做遷移工作。其中一種方式是完全用自己的方式、自己的能力,手動(dòng)安裝、手動(dòng)配置、手動(dòng)部署,然后完成遷移。另外一種方式是可以使用一些工具,這個(gè)工具可以是自己的工具,也可以是騰訊云提供的工具。
通過(guò)遷移上云,用戶會(huì)獲得一個(gè)成本節(jié)省的能力以及云上服務(wù)的能力。比如,遷移上云,我們的資源利用率會(huì)得到提高,運(yùn)維成本會(huì)得到降低,云上的彈性擴(kuò)容、安全穩(wěn)定、高可用也成為我們即將具備的能力。除此以外,就單單遷移這件事,如果通過(guò)去設(shè)計(jì)一個(gè)較完整的遷移服務(wù)方案來(lái)完成這樣一個(gè)遷移任務(wù),這會(huì)使我們的技術(shù)團(tuán)隊(duì)快速獲得一個(gè)跨 IDC 的業(yè)務(wù)能力。
設(shè)計(jì)云上遷移方案,一般先從了解自身架構(gòu)開(kāi)始,然后去確定采用哪種遷移方式。姚俊軍現(xiàn)場(chǎng)推薦了兩種遷移方案,一種是全量停服遷移,另一種是平滑不停服遷移,可以根據(jù)自己的業(yè)務(wù)情況去選擇。
演講最后,姚俊軍簡(jiǎn)單介紹了環(huán)境配置、應(yīng)用內(nèi)容、文件、大數(shù)據(jù)、數(shù)據(jù)庫(kù)等一般的云上遷移內(nèi)容和方案。并現(xiàn)場(chǎng)向參會(huì)者推薦了一些常用的遷移工具,包括 DTS、COS 本地上傳、COS 在線遷移、CDN 等。姚俊軍表示,除了擁有比較完整的遷移方案和云端基礎(chǔ)設(shè)施,騰訊云也有一些較好的合作伙伴,這里面有做實(shí)施的、有自己核心技術(shù)的,能夠?yàn)殚_(kāi)發(fā)者提供了一個(gè)比較全面的遷移技術(shù)和遷移生態(tài)。