主頁 >  其他 > 京東智聯云在 Serverless 的探索

京東智聯云在 Serverless 的探索

2020-09-18 18:57:37 其他

本文整理自 ServerlessDay · China 大會 - 《京東智聯云在 Serverless 的探索》的分享,講師為京東智聯云的 PaaS 產品負責?朱瑯,

本文主要分為三部分:

  • ?先會介紹下 Serverless 的概念和定義,期間會講講我個?對 Serverless 的理解;
  • 第?部分,我會著重介紹下 Serverless 在京東智聯云的應?;
  • 最后,會講述我對 Serverless 未來的展望,

Serverless 的概念和定義

提到 Serverless,?家基本上第?時間會想到的就是 AWS lambda,沒錯,讓 Serverless 這個名稱真正?起來的其實就是 AWS 推出的 FaaS 服務 -- Lambda,它是?個平臺,允許你在云上允許獨?的代碼段,通過預先設定好的事件觸發代碼的運?,

除了 FaaS 之外,還有BaaS,雖然和 Blockchain as a Service 的縮寫?樣,但它其實是 Backend as a Service -- 后端即服務的縮寫,?需撰寫/管理所有服務端組件,與虛擬機和容器相?,概念上更接近 SaaS(軟體即服務),BaaS 服務都是領域通?的組件服務,通過 API 調?的?式來使?,

說完了定義,再來看下 Serverless 的發展史,

  • 最早可以追溯到 2006 年,Zimki 推出的代碼執?平臺,它是?個提出按使?收費的服務;
  • 接著就是 2011 年的 Parse,它提供了 BaaS 框架,?便?戶基于它更快的構建應?程式,后來是被 Facebook 收購;
  • 到了 2012 年,相繼有 Fribase 和 IronWorker 服務,前者是?個針對移動端的應?開發平臺,后來被 Google 收購了,后者是基于容器的應?負載平臺;
  • 到了 2014 年,也就是 AWS 推出了 Lambda,?個云上的 FaaS 服務,將 Serverless 概念帶到了?眾的視野中;
  • 緊接著在 2016
    年,Google,Azure,IBM 分別在他們的云服務上上線了 FaaS 服務,

在過去提到云計算,?家?熟能詳的就是 IaaS,PaaS,SaaS,那么這個 FaaS 和其他三者什么區別?在我的定義??,作業系統以上都需要?運維的屬于 IaaS;PaaS 其實和 FaaS 是?乎?樣的,除了應?這?層之外,其他都是由云服務提供商來進?運維;SaaS 最簡單,現成的,直接上?使?即可,

?家可能會好奇,既然你說 FaaS 和 PaaS ?乎?樣,那么為什么不直接稱之為 PaaS 呢,不著急,我們先來看看這個:CloudFoundry,可能有?些?會?較陌?,但是如果你是屬于云計算的?兵,那么你肯定不會陌?,

AWS 是 2006 年推出的,國內最早的阿?云也是在 09 年才成?,其實到了 2012 年左右,云計算的概念才慢慢傳到國內,我是 2013 年開始涉?云計算,那時候其實就已經開始 IaaS,PaaS,SaaS 的競爭,有的公司從 IaaS 做起,有的直接從 PaaS 或者 SaaS 開始做起;那時候提到 PaaS,肯定就會提到 CloudFoundry(業界?個開源的 PaaS 平臺),很多互聯?企業基于 CloudFoundry 構建了 PaaS 云服務,
?如:京東的 JAE,新浪的 SAE,百度的私有云等等,

當我第?次接觸 FaaS 的時候,我第?個感覺就是, 咦,這個和 CloudFoundry 很相似啊,在你向 CloudFoundry 發布應?的時候,對執?環境有要求,明確選擇你是基于什么開發語?以及版本,如果當前平臺不?持,那么你其實也是?法部署運?起來的,其次平臺也提供了?動彈性伸縮,?動服務?可?,以及?關/路由等服務,然后你發現兩者的最?區別在于, CloudFoundry 平臺上提供的是?個常駐服務,但是 FaaS 是?個事件觸發代碼運?的服務,

為了讓?家更直觀的理解,我們來看下這個,

在裸?屬時代,從硬體到代碼都是需要?運維的,到了后來出現了虛擬化,像各家云上的云主機服務,使?者只需要關注作業系統以上這?層即可,再到后來的容器技術出現,使?者是需要關注容器?身和業務代碼即可,?前 CloudFoundry 平臺就是提供了容器服務,?戶將
??的業務代碼部署到容器中,作為?個常駐服務運?起來,最右邊就是 Function 了,?戶連容器都不需要
??維護了,只需要關注代碼即可,

每?項新技術的出現即是為了解決當前的技術遇到的問題,同時新技術的采?也必然會引?新的問題,?先說下 Serverless 的優勢:

  • 優勢?:降低成本,這?的成本既包括了運營成本,也包括了開發成本,這個很好理解,由于你不需要維護像作業系統,硬體等相關的組件,所以也就不需要雇傭相應領域的?員,從?降低了成本;
  • 優勢?:加速創新,當開發完業務代碼,配合和現成的 Serverless 第三?服務(?如認證服務,?件存盤服務等),可以快速的把業務部署并運?起來,??縮短了過去業務開發的周期;
  • 優勢三:可擴展性,在沒有 FaaS 之前,要解決業務的彈性伸縮功能,需要購買云?商提供的彈性伸縮服務,并且進?相應的條件配置之后,才能實作業務的?動彈性伸縮;在 FaaS 服務中,?動彈性伸縮的功能是默認就?持的,

接著說下 Serverless 的劣勢:

  • 劣勢?:延遲,由于采?了 Serverless 的?式部署服務,所以服務之間的調?都需要經過?絡傳輸,?不能是原先的本地調?,所以相對??延遲肯定會增加;
  • 劣勢?:集成測驗,由于采?了 Serverless 技術,那么當你開發完代碼想在本地環境中進?測驗驗證, 就?較麻煩,因為你本地不存在和云上的?樣環境;
  • 劣勢三:供應商系結,由于 Serverless 技術是?個新興的技術,每?個供應商的提供技術和標準并不?致,所以?旦你基于某?個云?商的 Serverless 服務部署你的業務,如果再想搬遷到其他云上,那么難免對你的業務會有改造成本;

Serverless 在京東智聯云的應?和實踐

介紹完 Serverless 的概念和定義,接下來看看 Serverless 在京東智聯云的應?和實踐,

?先我們來看下?前在京東智聯云上已經提供的 Serverless 服務串列都分別有哪些:

  • 在 16 年的 2 ?份,京東智聯云上線了物件存盤服務,第?個采? serverless 架構的云上系統;
  • 在 18 年的 9 ?份,我們推出了 Faas 服務,是?款事件驅動的計算服務,通過函式服務,?戶?需配置和管理服務器等基礎設施,即可彈性、可靠地運?業務代碼,快速構建應?與服務,且只需為代碼實際消耗的資源付費;
  • 在 18 年的 12 ?份,我們推出了 API ?關,提供API的全?命周期管理;?戶可通過 API ?關實作?身系統集成和服務聚合,還能便捷安全地開放其業務功能和資料,并實作與開發者或合作伙伴的連接;
  • 在 19 年的 1 ?份,我們推出了佇列服務,是?款基于 serverless 架構的全托管訊息佇列服務,它可以提供?可靠并且?乎?限擴展的托管訊息佇列;
  • 在 20 年的 1 ?份,我們推出了通知服務,是?款基于 serverless 架構實作發布訂閱模式的訊息通知服務,提供了?可靠、?可?、可動態擴展的訊息推送主題,

接下來詳細看下京東智聯云的 FaaS 服務技術架構圖,

中間粉?框起來的這部分屬于 Faas 的內部系統模塊;

  • ?先我們來看下函式事件注冊流程,API 會接收從 web 端傳過來的事件注冊請求,將事件觸發條件等元資料資訊存盤到 MySQL 關系型資料庫中,將函式的運?代碼存盤到 BaaS 服務,即 OSS 物件存盤服務中, 這樣就完成了事件注冊程序;
  • 接著我們來看下函式事件的觸發流程,trigger 是?個主從?可?服務,當有外部的 event 發送事件到 trigger 的時候,如果是?個同步事件,會直接將事件發送給 dispatcher 服務,如果是異步事件,會先發送到 queue ??,再由 queue 將事件傳遞給 dispatcher 服務,dispatcher 會采?集群的 部署模式,dispatcher 會判斷當前 event 對應的函式代碼是否已經處于運?態,如果是,那么直接會調?container ??的函式代碼;否則會發送請求到 scheduler 服務,scheduler 是?個主從?可?服務,scheduler 服務會負責啟動?個 container 服務,在啟動 container 的程序中會從 oss 服務中拉取這個 event 對應的函式代碼并運?起來,

在整個系統中,trigger、dispatcher、scheduler 服務都會和 etcd 服務進?互動,通過 etcd 來確保資料的?致性以及進??些選主操作,

?前 FaaS 已經接?的事件源分別是 API ?關,OSS【物件存盤】,云事件(有點類似通知服務,可以定義事件源,?如是某?個資源的監控指標觸發了條件之后,會調? FaaS 服務),還有就是 JQS【佇列服務】;前三者事件采?主動推送的?式,JQS 的事件是通過 FaaS 主動去輪詢獲取的,FaaS 接收到 API ?關的事件會采?同步處理?式,其他三者會采?異步處理的?式,

在使?新技術前的第?步?先是了解新技術是?嘛的,接下來就是如何基于新技術對現有的業務進?改造,

下?,我們以?個簡單的單體應?為例,這是?個 B/S 型別的業務,Server 是?個單體應?,采? MVC 的架構,涵蓋了 HTML,JS,Service,Data Access ?個模塊,資料采? Database 進?存盤;除了 Database 之外,其他的服務都需要?開發和運維,

針對這個應?進? Serverless 化之后,就變成了這樣的架構,HTML,JS 的靜態?件通過 OSS 來進?存 儲,?戶認證采?單獨的 User Authentication 第三?服務,不再需要??開發單獨的 service 服務來處理?戶登錄認證問題;?其他業務邏輯就使? FaaS 來進?部署,通過 API Gateway 對外暴露,當瀏覽器觸發業務調?的時候,就會觸發相應的 FaaS 服務,通過 Serverless 化,真正需要開發的功能就只剩下 FaaS 的業務代碼?已了,相對傳統?式便捷了很多,

接下來,看看京東是如何使? Serverless 服務的,

案例?,是京?訊息平臺,京?是京東給商家提供的?個?具服務市場,通過這個市場可以下載聊天?具, 訂單推送?具,運營分析?具等,下?這個圖是京?的訊息平臺服務,會實時的將訂單、商品、售后等資訊 通過加?處理之后,發送到京東智聯云的 JQS 當中,JQS是全托管的基于 Serverless 架構的訊息佇列服務,相應的?具會從對應的 JQS 中獲取到相應的資訊,并把相應的資訊展示給對應的商家,由于訊息源的訊息量是動態變化的,所以對訊息佇列的集群處理能?需求也是動態的,所以 JQS 很好的滿?了京?的訴求, 根據真實?量付費,

案例?,是京喜報警平臺,京喜是京東旗下以拼購業務為核?的社交電商平臺,當平臺服務有報警資訊進?到訊息佇列,會觸發對應的業務線的報警處理的 FaaS 服務,根據 MQ 中的報警內容,做出相應的回應事 件,可以是發短信,發郵件,或者是打電話,同時針對固定的報警邏輯,可以執?諸如重啟服務,清理資料等相關操作,

因為本身報警就不是常態,并且隨著業務的增加,如果有?個常駐服務來處理報警業務,這樣難免會照成資源浪費,采? FaaS 就可以很好的避免資源浪費的情況,當有報警產?的時候,再運?相應的服務來處理報警,

以上兩個是?較簡單的京東在使? Serverless 服務的場景,當然還有更多的復雜場景也會使?到,就像上?所講,Serverless 并?萬能,不能滿?所有場景的訴求,但是我還是依然很看好它的未來,

Serverless 的挑戰與未來

在未來的 Serverless 形態中,還是存在很多的挑戰需要去解決:

  1. 新的 BaaS 服務,可以提供臨時和持久的存盤服務,這樣就可以避免購買常駐的存盤服務,從?降低相關費?的開銷
  2. 在符合 Serverless 理念的情況下,降低服務間的調?開銷;對于?個線上的業務系統??,低延遲是永遠逃避不了的話題,如何采? Serverless 的情況下,?能滿?業務需求是 serverless ?規模使?的前提
  3. 軟硬結合,提供更?的處理性能;針對在 FaaS 平臺上運?的特定語?代碼,在硬體層?進?相關的特殊優化,從?實作代碼運?加速,提?性能;
  4. Serverless 技術的采?降低 IT ?出成本;真正的讓?家意識到 Serverless 的應?可以降低對 IT 的?出和投?;
  5. 采? Serverless 可以更便捷、更快速的實作功能;通過周邊的?具,更?便的讓?戶使?serverless來構建業務系統,真正實作業務的迭代和創新速度

即使 Serverless 還是有那么多挑戰待解決,我對 Serverless 的未來依然充滿資訊;?前在 CNCF 的serverless 版圖??有越來越多的 Serverless 服務加?了進來,相信隨著云原?的興起,Serverless 可以搭上這個趟?速的列?,順利起?,

我堅信,Serverless 未來可期!

One More Thing

3 秒你能做什么?喝一口水,看一封郵件,還是 —— 部署一個完整的 Serverless 應用?

復制鏈接至 PC 瀏覽器訪問:https://serverless.cloud.tencent.com/deploy/express

3 秒極速部署,立即體驗史上最快的 Serverless HTTP 實戰開發!

傳送門:

  • GitHub: github.com/serverless
  • 官網:serverless.com

歡迎訪問:Serverless 中文網,您可以在 最佳實踐 里體驗更多關于 Serverless 應用的開發!


推薦閱讀:《Serverless 架構:從原理、設計到專案實戰》

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/75887.html

標籤:其他

上一篇:spark shuffleread 剛從遠程節點抓取過來的資料是放在堆外記憶體嗎?如果很大,起步容易oom?

下一篇:Microsoft Build 2020:Microsoft Teams 新功能概覽

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more