<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>

          手機淘寶輕店業(yè)務(wù) Serverless 研發(fā)模式升級實踐

          共 3656字,需瀏覽 8分鐘

           ·

          2021-04-23 00:40

          作者 | 淘系-知曼
          來源 | 淘系前端團隊


          前言



          隨著 Serverless 在業(yè)界各云平臺落地,阿里內(nèi)部 Serverless 研發(fā)平臺、各種研發(fā)模式也在業(yè)務(wù)中逐步落地,如火如荼。在此契機下,淘系團隊啟動了輕店 Serverless 研發(fā)模式升級戰(zhàn)役,基于阿里集團底層設(shè)施建設(shè)、上層技術(shù)體系,解決在淘系輕店業(yè)務(wù)場景下碰到的系列問題,并借此推動現(xiàn)有前后端協(xié)作模式轉(zhuǎn)變。


          背景



          輕店業(yè)務(wù)是淘系新型業(yè)務(wù),目前處于探索試錯階段,如何能以較低人力成本配合業(yè)務(wù)快速試錯,是團隊當前需要考慮的問題。Serverless 重要的特點之一“only focus your business”。因此,擁抱 Serverless,輕店業(yè)務(wù)勢在必行。本篇主要介紹,Serverless 技術(shù)在輕店前端團隊如何落地,以及如何推動輕店研發(fā)模式升級,提升研發(fā)效率。在此基礎(chǔ)上,同時探索前端職能轉(zhuǎn)變成為應(yīng)用開發(fā)的可能性


          研發(fā)模式升級



          本文首先調(diào)研阿里集團內(nèi)外 Serverless 現(xiàn)狀,結(jié)合自身業(yè)務(wù)特點做技術(shù)選型;隨后在輕店域內(nèi)進行業(yè)務(wù)落地,在落地過程中逐步落實以下能力:以 sidecar&bottle 作為底層支撐,以一體化研發(fā)模式結(jié)合公共服務(wù)層、原子能力層、基礎(chǔ) SDK 來提升研發(fā)效率;最后通過輕店標準研發(fā)鏈路來保障業(yè)務(wù)穩(wěn)定性;最終形成輕店 FaaS 體系,初步實現(xiàn)研發(fā)模式提效升級。


          1. 技術(shù)現(xiàn)狀


          阿里集團各 BU 過去一年里在 Serverless 領(lǐng)域做了很多工作,主要集中在基礎(chǔ)建設(shè)、研發(fā)模式、邏輯編排、穩(wěn)定性建設(shè)、以及將 faas 鏈路打通并落地到 B 側(cè)和 C 側(cè)業(yè)務(wù)場景,如下圖所示。各業(yè)務(wù)依賴的 Serverless 平臺集中在 C 平臺 / F 平臺(PS:阿里內(nèi)部 Serverless 平臺)。


          2. 技術(shù)選型


          當前阿里集團 Serverless 平臺和 midway-faas 團隊深度合作,定制了基于阿拉丁 FaaS 方案,依托袋鼠為業(yè)務(wù)網(wǎng)關(guān),承載請求分發(fā)的職責(zé),并且有容災(zāi)、兜底等通用能力。袋鼠以天馬體系(PS:指以統(tǒng)一模塊規(guī)范為基礎(chǔ)的搭建體系)為基礎(chǔ)底座,但是輕店業(yè)務(wù)底層依賴裝修體系。因此,我們需要重新選型實現(xiàn)基于輕店場景的 faas 解決方案。除此之外,輕店業(yè)務(wù)核心依賴各種中臺服務(wù)。這些中臺服務(wù)大部分是以富客戶端(PS:指集成了本地能力的二方包)形式提供,如何在 nodeFaaS 體系中使用富客戶端,是我們技術(shù)方案需要考慮的重點。下面是 C 平臺方案(PS:阿里內(nèi)部的 Serverless 平臺) 和 G 平臺方案(PS:阿里內(nèi)部的 Serverless 平臺)的鏈路對比圖。


          其中, G 平臺鏈路有 bottle 能力提供富客戶端方案,整體系統(tǒng)鏈路層級少,性能更優(yōu),因此我們最終技術(shù)選型為 G 平臺。作為業(yè)務(wù)方,和各平臺一起推動&打通 G 平臺方案在前端 FaaS 場景落地。

          3. 輕店 FaaS 體系


          隨著業(yè)務(wù)落地,能力沉淀,輕店 FaaS 逐成體系。

          輕店 FaaS(代號:玳瑁),有基礎(chǔ)能力層,包含接口聚合、數(shù)據(jù)映射、函數(shù)兜底、灰度等。原子服務(wù)層,沉淀了輕店業(yè)務(wù)場景的各種中臺能力封裝,上層提供基礎(chǔ) SDK,將各種能力直接給到業(yè)務(wù)使用。輕店 FaaS 在業(yè)務(wù)落地時,和前端模塊組成輕店的商業(yè) SaaS 能力,通過解決方案將商業(yè)能力組合,服務(wù)輕店各種業(yè)務(wù)場景。

          1)SideCar & bottle


          輕店業(yè)務(wù)核心依賴中臺和中間件能力。因此,首先要解決的問題是,在 nodeFaaS 技術(shù)體系下如何調(diào)用富客戶端和中間件能力。

          輕店與 G 平臺、midway FaaS 團隊一起推進基于 G 平臺開發(fā) node FaaS 能力。G serverless 平臺中,一個 pod 上面有兩個容器,sidecar 容器主要負責(zé)請求發(fā)現(xiàn)、分發(fā)、協(xié)議解析、提供各種服務(wù)能力(中間件、中臺服務(wù));function 容器運行 node runtime 并且在上面跑業(yè)務(wù) faas 代碼。容器之間通過 GRPC 進行通信。最終,業(yè)務(wù)代碼可以通過 bottle-SDK 調(diào)用富客戶端/中間件能力。如下圖所示:


          基于上述方案,輕店 FaaS 實現(xiàn)了滿足輕店業(yè)務(wù)場景的能力圖譜。中間件層面主要集中在消息隊列(metaQ)、運維(switch、diamond)、服務(wù)(HSF、mtop、http)、緩存(tair、redis)、數(shù)據(jù)庫(云 RDS)、調(diào)度(schedulerx)等。中臺能力集中在商品、商戶、門店、券、標、店鋪、UIC 等。隨著業(yè)務(wù)發(fā)展,在逐步豐富中。


          2)玳瑁 FaaS 能力


          玳瑁在運行態(tài),以 G 平臺和 node rutime 為底層平臺,通過原子層能力實現(xiàn)業(yè)務(wù) Faas 函數(shù),并在公共層統(tǒng)一提供數(shù)據(jù)聚合、兜底等能力。在研發(fā)態(tài),基于統(tǒng)一研發(fā)平臺和小程序端實現(xiàn)輕店一體化研發(fā)鏈路,包含統(tǒng)一構(gòu)建發(fā)布流程、UI 配置化映射、FaaS 函數(shù)自動補全等。如下圖所示:


          公共層


          api 請求過來,首先經(jīng)過公共層(代號:羚羊)。公共層主要實現(xiàn)了輕店域內(nèi)的基礎(chǔ)通用能力。比如,自定義投放能力、兜底能力、聚合能力、配置能力。其中:

          • 自定義投放能力是打通了阿X?。≒S:阿X丁指阿里集團內(nèi)部通用投放平臺),業(yè)務(wù)可以自定義配置定投規(guī)則項,比如按商家、人群、區(qū)域、業(yè)務(wù)維度定投數(shù)據(jù);

          • 兜底能力,針對需要保障高可用的 C 端接口,即使接口掛了也可以通過備份數(shù)據(jù)進行兜底,讓消費者對服務(wù)異常無感知;

          • 聚合能力是將輕店頁面裝修數(shù)據(jù)和模塊內(nèi)部數(shù)據(jù)統(tǒng)一下發(fā),提高頁面性能,防止頁面抖動。并且基于統(tǒng)一下發(fā)服務(wù)的基礎(chǔ)上,實現(xiàn)頁面級別、接口級別的兜底,模塊插件灰度能力。


          原子能力層


          原子能力層,是沉淀輕店業(yè)務(wù)場景的各種中臺能力封裝(門店模型、商品模型、券模型……)?;谶@些原子能力,輕店 FaaS 統(tǒng)一收斂外部依賴,業(yè)務(wù)可以減少外部對接成本,實現(xiàn)業(yè)務(wù)功能,同時也為映射補全能力提供基礎(chǔ)。

          FaaS-SDK


          為了提升效率,輕店抽象出 FaaS-SDK,包含各平臺適配、緩存能力、日志規(guī)范、鎖能力、數(shù)據(jù)庫封裝、通用工具等等。其中:

          • 平臺場景的適配包含阿里集團內(nèi)各 Severless 平臺,讓開發(fā)者對平臺無感知,只需要關(guān)注業(yè)務(wù)邏輯本身;
          • 輕店體系下提供多級緩存能力,對 RT 要求高的高可用場景,提供技術(shù)支撐;
          • 通用日志規(guī)范,對 FaaS 場景的 INFO、ERROR 日志進行格式規(guī)范,并封裝成獨立包供業(yè)務(wù)使用。

          一體化研發(fā)模式


          在公共層能力層、原子層能力、SDK 、以及 sidecar & bottle 的基礎(chǔ)上,我們打通小程序模塊和 FaaS 研發(fā)鏈路,實現(xiàn)輕店一體化研發(fā)模式。

          一體化研發(fā)模式是指,基于端開發(fā)小程序模塊,同時在同一個項目中實現(xiàn) FaaS 能力。在前端代碼中直接引用 FaaS 代碼作為函數(shù)調(diào)用,無需通過請求調(diào)用;并且在整個研發(fā)鏈路中,實現(xiàn)兩端同步創(chuàng)建&發(fā)布。在輕店場景下,這種研發(fā)模式節(jié)省了前后端溝通聯(lián)調(diào)成本,大大提升研發(fā)效率。

          穩(wěn)定性


          最后,為了保障業(yè)務(wù)的可靠性和穩(wěn)定性,輕店定義了輕店 FaaS 的標準研發(fā)鏈路。從研發(fā)生命周期(研發(fā)態(tài)、待上線、上線中、上線后)各個階段配置不同的措施來保障業(yè)務(wù)穩(wěn)定性。如下圖所示:


          至此,輕店 FaaS 體系已介紹完,以 sidecar 支撐底層能力,一體化研發(fā)模式結(jié)合公共服務(wù)層、原子能力層、基礎(chǔ) SDK 來提升研發(fā)效率,最后通過標準研發(fā)鏈路來保障穩(wěn)定性。

          通過輕店 FaaS 體系支撐輕店業(yè)務(wù),前端從前到后 cover 完整業(yè)務(wù),后端同學(xué)更聚焦在業(yè)務(wù)中臺能力建設(shè)。前端職能逐步轉(zhuǎn)變,從前端到全棧,從資源到業(yè)務(wù)合伙人。對整體業(yè)務(wù)而言,以更少的協(xié)同溝通成本,更少的聯(lián)調(diào)成本,讓團隊整體效率提升。自此,輕店團隊初步實現(xiàn)研發(fā)模式升級。


          4. 業(yè)務(wù)落地現(xiàn)狀


          當前淘系輕店 FaaS,已在多個輕店域內(nèi)業(yè)務(wù)落地。


          未來



          未來,淘系團隊將繼續(xù)在輕店 faas 體系的基礎(chǔ)上,探索一體化研發(fā)模式的最佳提效實踐。




          ?? 開放報名 ??


          阿里云 Serverless Developer Meetup 上海站



          2021 年,Serverless 來啦!4 月 24 日(周六),阿里云 Serverless Developer Meetup 即將亮相上海。我們邀請了來自阿里云、飛豬、高德的技術(shù)專家,共同探討過去一年 Serverless 在實際生產(chǎn)中待解決問題及優(yōu)秀經(jīng)驗,披露 Serverless 在高德、飛豬以及其他企業(yè)的實戰(zhàn)過程,詳述 Serverless Devs 2.0,如何更有效解決 Serverless 應(yīng)用開發(fā)的痛點。

          ???? 戳原文,立即報名!
          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  日日干日日 | 精品视频观看 | www.逼特逼视频 | 国产 在线观看 | 欧美一级毛片免费高清老鸭窝 |