<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          小鵝通基于 TSE 云原生 API 網(wǎng)關(guān)的落地實(shí)踐

          共 9893字,需瀏覽 20分鐘

           ·

          2023-09-21 19:47


          導(dǎo)語

          2023騰訊全球數(shù)字生態(tài)大會(huì)已于9月7-8日完美落幕,40+專場活動(dòng)展示了騰訊最新的前沿技術(shù)、核心產(chǎn)品、解決方案。


          微服務(wù)與消息隊(duì)列專場,我們邀請到了小鵝通的基礎(chǔ)架構(gòu)組負(fù)責(zé)人黃徐震為我們帶來了《小鵝通基于 TSE 云原生網(wǎng)關(guān)的落地實(shí)踐》的精彩演講。


          本篇文章針對這場演講做了詳細(xì)的解讀。主要介紹小鵝通在 TSE 云原生 API 網(wǎng)關(guān)上的一些建設(shè)和經(jīng)驗(yàn),以及在這個(gè)過程中遇到了哪些問題和挑戰(zhàn),基于 TSE 的解決方案又是如何在小鵝通進(jìn)行落地的,以及如何利用云原生網(wǎng)關(guān)實(shí)現(xiàn)降本增效的經(jīng)驗(yàn)分享。


          關(guān)于小鵝通


          小鵝通是一家以知識產(chǎn)品與用戶為核心的技術(shù)服務(wù)商。提供知識產(chǎn)品與用戶服務(wù)的私域運(yùn)營工具,小鵝通創(chuàng)始至今已經(jīng)服務(wù)百萬家客戶,最高同時(shí)在線人數(shù)達(dá)一千萬,面向7.8億終端用戶提供2000萬知識產(chǎn)品。


          小鵝通現(xiàn)狀分析


          CVM 時(shí)代入口網(wǎng)關(guān)架構(gòu)


          在 CVM 時(shí)代,小鵝通的入口網(wǎng)關(guān)是比較典型的一個(gè)架構(gòu),由大量的公網(wǎng)負(fù)載 CLB 組成,由于不同的場景和策略,導(dǎo)致小鵝通的安全防護(hù)覆蓋程度不完全并且也難以梳理;小鵝通的業(yè)務(wù)場景屬于流量變化比較明顯的,在 CLB/CVM 的架構(gòu)下,難以及時(shí)進(jìn)行擴(kuò)縮容,有些業(yè)務(wù)需要進(jìn)行2到3倍的資源冗余,以保證流量上漲的穩(wěn)定性,就會(huì)造成小鵝通的資源利用率低和成本的增加;伴隨著這個(gè)問題,小鵝通有上百個(gè)公網(wǎng) CLB,CLB 背后有上千條的路由規(guī)則,和后端的業(yè)務(wù)服務(wù)形成多對多的非常復(fù)雜的矩陣,造成運(yùn)維成本非常高。



          容器時(shí)代入口網(wǎng)關(guān)架構(gòu)


          隨著采用容器化部署,小鵝通目前大部分的流量在容器集群上,在過渡階段以及部分業(yè)務(wù)情況仍然需要考慮 CVM 場景,在一開始的技術(shù)選型上采用的是公司內(nèi)部技術(shù)棧比較熟悉的也具備高性能的 Openresty 來實(shí)現(xiàn)的 Ingress API 網(wǎng)關(guān),但引入了新架構(gòu)的同時(shí)也加劇了原先存在的問題;因?yàn)樾※Z通的業(yè)務(wù)和基礎(chǔ)設(shè)施都是在云上,這部分和云產(chǎn)品的集成度一般,在保障穩(wěn)定性建設(shè)的同時(shí),還需要投入比較多的精力開發(fā)集成各塊云原生產(chǎn)品。



          因此,需要設(shè)計(jì)更好的架構(gòu)以滿足小鵝通的業(yè)務(wù)需求,解決痛點(diǎn)問題。


          解決方案


          在前期的自研過程,小鵝通也參考和調(diào)研了許多優(yōu)秀 API 網(wǎng)關(guān)的架構(gòu)與設(shè)計(jì),像 Kong、ApiSix、TSE、Higress 等等,結(jié)合本公司的實(shí)際業(yè)務(wù)場景,從穩(wěn)定性與高可用、流量治理、自動(dòng)化能力、資源利用率出發(fā),認(rèn)為以上幾個(gè)點(diǎn)需要優(yōu)先保障或解決。


          小鵝通列出每個(gè)維度需要考慮的要素,進(jìn)行綜合性對比分析。



          云原生時(shí)代入口網(wǎng)關(guān)架構(gòu)


          相比其他解決方案,TSE 云原生 API 網(wǎng)關(guān)滿足多可用區(qū)容災(zāi)部署、多種接入方式統(tǒng)一管理能力、開箱即用的限流熔斷、流量灰度流量鏡像、安全防護(hù)能力。由于小鵝通業(yè)務(wù)服務(wù)流量波峰波谷的性質(zhì),TSE 云原生 API 網(wǎng)關(guān)同樣集成支持按照彈性伸縮和定時(shí)伸縮,最終小鵝通在這些方案中選擇了 TSE 作為小鵝通的統(tǒng)一 API 網(wǎng)關(guān)方案。


          經(jīng)過變化調(diào)整,小鵝通得到一個(gè)如下圖所示的云原生入口網(wǎng)關(guān)架構(gòu),通過從網(wǎng)關(guān)到小鵝通的服務(wù)再到數(shù)據(jù)庫中間件的多可用區(qū)部署,來保障穩(wěn)定性與高可用能力;統(tǒng)一流量入口、集中訪問控制和提高安全性;提升自動(dòng)化能力以提高我們的運(yùn)維效率;根據(jù)自動(dòng)彈性擴(kuò)縮容、按需按量的付費(fèi)策略,資源復(fù)用,提高小鵝通的資源利用率以降低成本。



          接下來看一下小鵝通使用 TSE 云原生 API 網(wǎng)關(guān)后的兩個(gè)具體場景。


          穩(wěn)定性與高可用


          采用 TSE 云原生 API 網(wǎng)關(guān)節(jié)點(diǎn)的多可用區(qū)部署,配合小鵝通后端業(yè)務(wù)集群和底層的基礎(chǔ)設(shè)施、數(shù)據(jù)庫中間件的多可用區(qū)部署,在極端場景下的節(jié)點(diǎn)機(jī)器、磁盤、網(wǎng)絡(luò)故障發(fā)生時(shí),能夠做到自愈和快速恢復(fù),借助多可用區(qū)容災(zāi)能力提高小鵝通整體的穩(wěn)定性和高可用能力。



          流量治理


          流量治理是前面提到的比較頭疼的部分。面向客戶端,小鵝通有非常多的入口,有100多個(gè)公網(wǎng)負(fù)載、上千條的路由規(guī)則,需要對這些進(jìn)行拆分和復(fù)用;面向后端,小鵝通有 K8s 集群、CVM、Serverless 多種運(yùn)行環(huán)境,同時(shí)也有多套 K8s 集群,也需要降低這里的運(yùn)維成本。


          因此這里分為兩個(gè)部分來說明,面向客戶端,通過 TSE 云原生 API 網(wǎng)關(guān)來統(tǒng)一管控,按照業(yè)務(wù)場景和需求進(jìn)行集群、分組拆分,例如集群級別的物理隔離、不同網(wǎng)絡(luò)安全策略,進(jìn)行多集群的橫向拆分,在單個(gè)集群內(nèi),還可以進(jìn)行分組,達(dá)到物理隔離和配置路由復(fù)用的目的,從而完成南北流量和東西流量的統(tǒng)一治理;面向后端,多個(gè)業(yè)務(wù)集群統(tǒng)一管控,支持K8s、CVM 等多種運(yùn)行環(huán)境的接入,TSE 本身和TKE 集群的集成度比較高,所以管理多個(gè) K8s 集群是一個(gè)比較輕松的事情。



          方案遷移落地


          在上一個(gè)部分,提到了 TSE 云原生 API 網(wǎng)關(guān)的架構(gòu)和設(shè)計(jì),能夠解決小鵝通不少的問題和要求,但是實(shí)際如何遷移落地是一件至關(guān)重要的事情,小鵝通對整個(gè)遷移方案進(jìn)行了幾個(gè)階段的任務(wù)拆解;


          第一階段:針對小鵝通自研的網(wǎng)關(guān)、開源網(wǎng)關(guān)以及云原生網(wǎng)關(guān)進(jìn)行性能壓測對比,從 CPU、內(nèi)存、帶寬、新建連接數(shù)、并發(fā)連接數(shù)等等這些基礎(chǔ)關(guān)鍵性的指標(biāo)進(jìn)行詳細(xì)對比,確保驗(yàn)證通過并且符合小鵝通的預(yù)期。


          第二階段:根據(jù)這些多維度的指標(biāo),評估契合小鵝通業(yè)務(wù)的容量方案,包括規(guī)格、節(jié)點(diǎn)數(shù)等。


          第三階段:結(jié)合小鵝通實(shí)際的業(yè)務(wù)場景和業(yè)務(wù)開發(fā)測試一起進(jìn)行多個(gè)業(yè)務(wù)線、多次的服務(wù)壓測、全鏈路壓測,以保障服務(wù)質(zhì)量,為小鵝通的客戶使用體驗(yàn)負(fù)責(zé)。


          第四階段:通過 OpenAPI 全量同步100多個(gè)公網(wǎng)負(fù)載、上千條的路由規(guī)則,在這個(gè)過程中,梳理了大量的路由規(guī)則,確認(rèn)涉及的功能以及影響范圍,將不確定性的部分變?yōu)榇_定性。


          最后一步:根據(jù)前面梳理的規(guī)則,按照域名、用途進(jìn)行分階段分批次的漸進(jìn)式遷移,逐步將流量切割到 TSE 云原生 API 網(wǎng)關(guān)上,完成最終落地。


          如何完成平穩(wěn)流量切割


          關(guān)于如何完成域名平穩(wěn)流量切割到 TSE 云原生 API 網(wǎng)關(guān),這里列舉了兩個(gè)簡化的場景。


          第一種場景,設(shè)置域名解析權(quán)重,請求解析到不同的后端實(shí)例完成分流,從1%逐步增加流量直到全量請求到 TSE 云原生 API 網(wǎng)關(guān),再將域名解析切換到 TSE 云原生 API 網(wǎng)關(guān)。


          第二種場景,域名直接解析到 TSE 云原生 API 網(wǎng)關(guān),在網(wǎng)關(guān)的服務(wù)或者接口路由上配置灰度策略,將流量轉(zhuǎn)發(fā)到后端對應(yīng)的業(yè)務(wù)服務(wù),逐步增加流量到100%,最后清除灰度策略;實(shí)際情況下會(huì)比上面提到的兩種稍微復(fù)雜一些,小鵝通在域名解析和灰度策略上做了不少工作,來實(shí)現(xiàn)秒級流量切換和回退。



          統(tǒng)一網(wǎng)關(guān)帶來的收益


          除了解決前面提到的核心問題,統(tǒng)一網(wǎng)關(guān)也帶來了以下收益:


          1、減少了90%以上的 CLB 實(shí)例數(shù)量,通過網(wǎng)關(guān)自身的彈性擴(kuò)縮容配合我們業(yè)務(wù)的彈性伸縮,極大的降低了我們的資源成本和維護(hù)成本;在整個(gè)遷移的過程中,同時(shí)也梳理了大量的公網(wǎng)域名、路由、負(fù)載,進(jìn)行了相應(yīng)的合并刪減。


          2、充分利用 OpenAPI、CRD、插件的方式提高小鵝通的自動(dòng)化能力,將一些動(dòng)作和小鵝通的服務(wù)初始化的流程和其他環(huán)節(jié)打通,提高效率的同時(shí)也降低了出錯(cuò)的可能性。


          3、借助 TSE 云原生 API 網(wǎng)關(guān)來統(tǒng)一治理小鵝通業(yè)務(wù)服務(wù)的入口流量,和 WAF、VPN、流量鏡像、接口請求響應(yīng)的審計(jì)分析,和小鵝通的安全團(tuán)隊(duì)運(yùn)維團(tuán)隊(duì)一起提高訪問控制與安全性。


          總結(jié)


          感謝 TSE 云原生 API 網(wǎng)關(guān)團(tuán)隊(duì),在性能壓測和容量評估階段,提供了很多的數(shù)據(jù)參考和成本方案建議,同時(shí)在整個(gè)遷移過程也提供了非常多的技術(shù)支持和保障護(hù)航。


          往期

          推薦


          騰訊云微服務(wù)平臺 TSF 異地多活單元化能力重磅升級

          騰訊云消息隊(duì)列 RocketMQ 5.x 系列產(chǎn)品重磅發(fā)布 | 新品優(yōu)惠

          微服務(wù)高可用容災(zāi)架構(gòu)設(shè)計(jì)

          《Apache pulsar 技術(shù)系列-- 消息重推的幾種方式

          《Apache Pulsar 技術(shù)系列 - GEO replication 中訂閱狀態(tài)的同步原理

          《CKafka 跨洋數(shù)據(jù)同步性能優(yōu)化

          《微服務(wù)優(yōu)雅上下線的實(shí)踐方法

          《基于 DTS 同步 MySQL 全增量數(shù)據(jù)至 CKafka,構(gòu)建實(shí)時(shí)數(shù)倉的最佳實(shí)踐

          《業(yè)務(wù)高速增長,如祺出行如何用騰訊云消息隊(duì)列 RocketMQ 應(yīng)對挑戰(zhàn)



          掃描下方二維碼關(guān)注本公眾號,

          了解更多微服務(wù)、消息隊(duì)列的相關(guān)信息!

          解鎖超多鵝廠周邊!

          戳原文,查看更多微服務(wù)引擎 TSE
          的信息!

          點(diǎn)個(gè)在看你最好看


          瀏覽 387
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩国产毛片一区二区三区无码精品 | 无码中文av | 国产精品美女久久久 | 黄色片视频日韩 | 国产乱婬AⅤ片免费 |