偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

多語言支持、事件驅(qū)動(dòng)的全托管Serverless函數(shù)計(jì)算服務(wù)平臺(tái) — iPaaS·EasyFunction

云計(jì)算 PaaS
本文將介紹iPaaS(京東前端一體化搭建平臺(tái))體系下的 Serverless FaaS產(chǎn)品EasyFunction平臺(tái)的功能和落地情況。

作者 | 朱志國(guó)、汪智群、趙涵、戴文龍等,來自平臺(tái)業(yè)務(wù)研發(fā)部-應(yīng)用業(yè)務(wù)產(chǎn)品研發(fā)部通天塔團(tuán)隊(duì)。

?寫在前面

Serverless是目前比較熱門的技術(shù)話題,各大云平臺(tái)以及互聯(lián)網(wǎng)大廠內(nèi)部都在積極建設(shè)Serverless產(chǎn)品。本文將介紹iPaaS(京東前端一體化搭建平臺(tái))體系下的 Serverless FaaS產(chǎn)品EasyFunction平臺(tái)的功能和落地情況,具體分為兩個(gè)部分,第一部分通過介紹FaaS適用的場(chǎng)景、可帶來的收益來說明我們?yōu)槭裁匆鯡asyFunction以及它可以給我們帶來哪些收益,第二部分通過EasyFunction的產(chǎn)品功能、典型落地案例的介紹來深入了解EasyFunction。通過閱讀希望可以給大家?guī)硪恍﹩l(fā)和幫助。

背景

近些年Serverless技術(shù)迅速發(fā)展,國(guó)內(nèi)各大互聯(lián)網(wǎng)公司都在積極建設(shè)Serverless相關(guān)產(chǎn)品,探索Serverless技術(shù)的落地,國(guó)內(nèi)阿里云、騰訊云等都有相應(yīng)商業(yè)化的產(chǎn)品。在這種大的背景下,通天塔團(tuán)隊(duì)結(jié)合自身的需求和支撐IPaaS技術(shù)開放體系需要,在去年9月份經(jīng)過調(diào)研后,開始了Serverless FaaS平臺(tái)的建設(shè),內(nèi)部項(xiàng)目名稱為EasyFunction。用一句話概括EasyFunction即一種基于 Java、NodeJs、Go等多語言功能函數(shù)即服務(wù) (FaaS) 的編程平臺(tái),幫助用戶脫離繁冗的開發(fā)配置、申請(qǐng)機(jī)器資源等運(yùn)維工作,開發(fā)者只需要關(guān)注業(yè)務(wù)代碼邏輯的編寫實(shí)現(xiàn)。目前我們處于快速驗(yàn)證,落地MVP版本階段,我們通過技術(shù)選型、產(chǎn)品與架構(gòu)設(shè)計(jì)、開發(fā)迭代,已經(jīng)快速落地了Serverless FaaS產(chǎn)品的基本的能力,如構(gòu)建、發(fā)布、彈性伸縮、對(duì)接觸發(fā)源、執(zhí)行函數(shù)等。目前正在推進(jìn)了一些業(yè)務(wù)的試點(diǎn)接入,幫助驗(yàn)證打磨產(chǎn)品。

圖片

適用場(chǎng)景

01BFF(Backend For Front)場(chǎng)景

圖片

BFF層,主要職責(zé)把相對(duì)底層的領(lǐng)域?qū)ο髷?shù)據(jù)通過聚合、裁剪轉(zhuǎn)換成前端視圖層的數(shù)據(jù),這里的視圖層數(shù)據(jù)會(huì)因端上的場(chǎng)景和設(shè)備而異,經(jīng)常要做一些個(gè)性化處理。而對(duì)于視圖層數(shù)據(jù)模型前端開發(fā)最為清楚和熟悉,知道需要什么樣的數(shù)據(jù)來渲染頁面。在傳統(tǒng)的開發(fā)模式中會(huì)導(dǎo)致后端相似功能的聚合接口林立,而且大部分接口生命周期都很短(業(yè)務(wù)試錯(cuò)原因),開發(fā)階段前后端溝通成本、后期維護(hù)成本、機(jī)器資源成本都比較大。而使用FaaS支持多種語言的函數(shù)開發(fā),降低開發(fā)門檻,開發(fā)者在編寫函數(shù)時(shí)只需關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn),就可以完成API編寫、發(fā)布、上線,這樣一來前端同學(xué)就可以實(shí)現(xiàn)數(shù)據(jù)層的自管理,減少前后端溝通成本。

02數(shù)據(jù)處理&定時(shí)任務(wù)場(chǎng)景

圖片

FaaS平臺(tái)直接與任務(wù)調(diào)度系統(tǒng)、JMQ打通,開發(fā)者只需關(guān)注任務(wù)的處理邏輯編寫,然后創(chuàng)建相應(yīng)類型的函數(shù)觸發(fā)器,就可以完成定時(shí)任務(wù)的接入,而不需要管理機(jī)器資源,同時(shí)可以根據(jù)實(shí)時(shí)流量或者實(shí)例CPU負(fù)載進(jìn)行資源的自動(dòng)伸縮,資源按需使用。

03SSR(服務(wù)端渲染)場(chǎng)景

圖片

在服務(wù)端完成數(shù)據(jù)和樣式的綁定,返回html數(shù)據(jù),這種比較耗后端資源,但好處是頁面可以快速展現(xiàn),所以這塊可以嘗試在FaaS中寫,尤其前端首屏快速展現(xiàn)場(chǎng)景。

04后臺(tái)管理平臺(tái)場(chǎng)景

圖片

公司內(nèi)部有很多的后臺(tái)管理平臺(tái)的Web服務(wù),它們雖然相較于函數(shù)是比較重的,但完全可以直接托管Serverless平臺(tái),充分享受Serverless平臺(tái)極致的發(fā)布和運(yùn)維效率。

帶來的業(yè)務(wù)收益

將傳統(tǒng)應(yīng)用和FaaS云函數(shù)進(jìn)行個(gè)簡(jiǎn)單地對(duì)比:

圖片

  • "統(tǒng)一" 了業(yè)務(wù)組間的業(yè)務(wù)實(shí)現(xiàn)方式,業(yè)務(wù)切換快
  • 消除服務(wù)端技術(shù)壁壘,可以使用熟悉的技術(shù)棧做業(yè)務(wù)邏輯開發(fā)
  • 對(duì)用戶 ”無框架“ 概念,用戶只需要了解函數(shù)的輸入和輸出
  • 從部署、發(fā)布、監(jiān)控 “一條龍” 式的平臺(tái)服務(wù),高效、穩(wěn)定

不管是在資源利用率還是研發(fā)運(yùn)維效率上,F(xiàn)aaS都給我們帶來了諸多好處。

產(chǎn)品功能

EasyFunction-云函數(shù)底層k8s運(yùn)維、機(jī)器資源編排托管于京東云,而我們則專注于FaaS產(chǎn)品上層功能的建設(shè),比如網(wǎng)關(guān)功能建設(shè)、一站式平臺(tái)開發(fā)、函數(shù)模板開發(fā)等,目前已經(jīng)快速落地了Serverless FaaS產(chǎn)品的基本的能力,如構(gòu)建、發(fā)布、彈性伸縮、對(duì)接觸發(fā)源、執(zhí)行函數(shù),具體功能如下:

圖片

01函數(shù)創(chuàng)建

EasyFunction支持Java8、NodeJs14、Go、Python、PHP、Ruby六種語言的函數(shù)創(chuàng)建,其中Java8語言的函數(shù)生態(tài)最為豐富,集成了集團(tuán)主流中間件(JSF、Ducc、JMQ、ClickHouse、UMP等),其次是NodeJs,如果大家感興趣加入我們一起共建函數(shù)語言模板,豐富函數(shù)生態(tài)。

開發(fā)者選擇好語言完成創(chuàng)建函數(shù),下載對(duì)應(yīng)函數(shù)模板代碼,上傳到Coding,在函數(shù)基本配置信息中配置函數(shù)倉(cāng)庫(kù)地址、選擇函數(shù)實(shí)例CPU、內(nèi)存配置、配置環(huán)境變量即完成函數(shù)創(chuàng)建。

02版本&路由

在完成函數(shù)創(chuàng)建后,進(jìn)入函數(shù)代碼編寫、測(cè)試、發(fā)布版本階段。具體語言的函數(shù)代碼編寫指南參照開發(fā)手冊(cè)文檔同時(shí)在開發(fā)工具上EasyFunction集成了CloudIDE,輕松實(shí)現(xiàn)WEB端編碼。我們也提供了在線函數(shù)測(cè)試功能。

經(jīng)過部署、測(cè)試后,可對(duì)當(dāng)前LATEST版本進(jìn)行發(fā)版,發(fā)布一個(gè)新的版本可以理解為為 LATEST 版本的函數(shù)代碼和函數(shù)配置(不包括觸發(fā)器)創(chuàng)建一個(gè)快照副本。針對(duì)發(fā)布的版本開發(fā)者可以實(shí)時(shí)查看日志、重啟、調(diào)整副本實(shí)例。

圖片

在首次完成版本發(fā)布后,建議開發(fā)者創(chuàng)建對(duì)應(yīng)的別名,使用別名訪問服務(wù)或函數(shù)時(shí),EasyFunction會(huì)將別名解析為其指向的版本,調(diào)用方無需了解別名指向的具體版本,同時(shí)開發(fā)者可自由的調(diào)整別名下所管理版本的流量比例。

03觸發(fā)器

觸發(fā)器是觸發(fā)函數(shù)執(zhí)行的方式。在事件驅(qū)動(dòng)的計(jì)算模型中,事件源是事件的生產(chǎn)者,函數(shù)是事件的處理者,只有創(chuàng)建了對(duì)應(yīng)的觸發(fā)器,外部事件才可以通過觸發(fā)器的具體方式訪問到函數(shù)。EasyFunction支持HTTP、Color網(wǎng)關(guān)、JMQ三種類型的觸發(fā)器,其中HTTP在公司內(nèi)網(wǎng)系統(tǒng)間調(diào)用使用、Color網(wǎng)關(guān)用于外網(wǎng)事件源觸發(fā)函數(shù)。

04自動(dòng)伸縮

EasyFunction目前支持根據(jù)CPU負(fù)載和單實(shí)例QPS兩種類型的指標(biāo)觸發(fā)伸縮,在高流量場(chǎng)景下單一指標(biāo)的短暫性抖動(dòng)會(huì)導(dǎo)致伸縮頻繁不穩(wěn)定的問題,后續(xù)我們將基于多負(fù)載指標(biāo)+算法預(yù)測(cè)作為觸發(fā)伸縮的依據(jù)同時(shí)增加定時(shí)伸縮功能。不過當(dāng)前的單一指標(biāo)伸縮在一些流量穩(wěn)定且有一定規(guī)律的場(chǎng)景下預(yù)期也是比較好。下圖是線上一個(gè)函數(shù)的案例函數(shù)實(shí)例數(shù)基本上隨著QPS的增長(zhǎng)而伸縮,在凌晨4點(diǎn)時(shí)刻由于流量達(dá)到最低,實(shí)例副本數(shù)也降到最低2個(gè)。

圖片

模擬數(shù)據(jù)

05日志&監(jiān)控

EasyFunction提供了在線函數(shù)日志檢索和函數(shù)一些基本指標(biāo)的監(jiān)控。

落地案例

在完成MVP版本的上線后,目前已經(jīng)推進(jìn)了一些業(yè)務(wù)的接入,下面介紹幾個(gè)典型案例。

1、水滴cms和EasyFunction結(jié)合,幫助開發(fā)者快速高效的搭建cms

水滴cms搭建平臺(tái)負(fù)責(zé)頁面的樣式的搭建和數(shù)據(jù)渲染、FaaS提供cms所需的數(shù)據(jù),這個(gè)數(shù)據(jù)開發(fā)者可自行通過創(chuàng)建函數(shù)、編寫函數(shù)來定義,且EasyFunction支持多語言,免運(yùn)維的特點(diǎn),降低開發(fā)者開發(fā)門檻的同時(shí)讓開發(fā)者只需要關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn)即可快速發(fā)布一個(gè)函數(shù)為cms提供自定義的數(shù)據(jù)。

2、營(yíng)銷中心資源位接口案例(BFF場(chǎng)景)

圖片

提供在線的,以 API 為管理維度的聚合類 API是典型的BFF場(chǎng)景。營(yíng)銷中心系統(tǒng)的宗旨之一是打造中心化工作平臺(tái),整合內(nèi)部垂直平臺(tái)能力,所以經(jīng)常需要編排處理多個(gè)外部平臺(tái)的接口數(shù)據(jù),然后返回符合營(yíng)銷中心cms前端樣式要求的數(shù)據(jù)。此種場(chǎng)景下開發(fā)者通過在函數(shù)中編排已有其他平臺(tái)的JSF或者HTTP類型的接口,快速構(gòu)建發(fā)布函數(shù),而不需要考慮機(jī)器資源申請(qǐng)、域名申請(qǐng)等運(yùn)維問題。

3、通天塔日志分析函數(shù)(數(shù)據(jù)處理場(chǎng)景)

圖片

通天塔核心系統(tǒng)日志MQ流量會(huì)隨著業(yè)務(wù)請(qǐng)求流量的上升而上升,之前是在后端管理平臺(tái)上處理日志分析的邏輯,經(jīng)常會(huì)遇到流量高峰時(shí)日志處理吞吐量不足進(jìn)而導(dǎo)致監(jiān)控大盤顯示延遲的問題,老的辦法只能通過提前預(yù)估流量手動(dòng)擴(kuò)容后端管理應(yīng)用的實(shí)例來應(yīng)對(duì)。而使用函數(shù)來處理,創(chuàng)建JMQ類型的函數(shù)觸發(fā)器,配置合適的自動(dòng)伸縮策略就可以很好的解決以上問題。

未來規(guī)劃

接下來我們將會(huì)從優(yōu)化核心技術(shù),保障業(yè)務(wù)穩(wěn)定性;完善生態(tài),落實(shí)收益方向上去推進(jìn)。實(shí)踐方向上我們會(huì)針對(duì)前面說的4大適用場(chǎng)景上去落地案例,真正做到降本增效。下一期我們將會(huì)詳細(xì)介紹EasyFunction底層架構(gòu)設(shè)計(jì)和核心技術(shù)原理。

責(zé)任編輯:未麗燕 來源: 京東零售技術(shù)
相關(guān)推薦

2009-07-17 10:02:29

WPF程序多語言支持

2009-08-03 17:33:01

ASP.NET多語言支

2011-07-26 10:09:08

iPhone 多語言 國(guó)際化

2010-01-06 13:41:51

.NET Framew

2023-08-09 09:36:04

Azure AI微軟

2024-01-12 10:01:07

框架編程

2021-12-28 05:52:34

安全托管服務(wù)供應(yīng)商客戶體驗(yàn)

2020-04-14 09:50:02

2014-07-09 09:20:06

WPFWPF應(yīng)用

2014-04-16 14:50:20

Spark

2024-02-06 12:50:08

AI訓(xùn)練

2011-08-05 17:54:33

Cocoa Touch 多語言

2009-08-25 10:44:50

C#實(shí)現(xiàn)多語言

2012-04-19 11:40:21

Titanium

2021-09-07 10:17:35

iOS多語言適配設(shè)計(jì)

2021-06-29 21:48:32

開源語言架構(gòu)

2013-07-04 10:54:27

Windows 8.1系統(tǒng)升級(jí)

2021-10-22 21:17:50

安全托管
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)