精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一次 Serverless 架構改造實踐:基因樣本比對

云計算
Serverless 是一種新興的無服務器架構,使用它的時候,開發者只需專注于代碼,無需關心運維、資源交付或者部署。本文將從代碼的角度,通過改造一個 Python 應用來幫助讀者從側面理解 Serverless,讓應用繼承 Serverless 架構的優點。

Serverless 是一種新興的無服務器架構,使用它的時候,開發者只需專注于代碼,無需關心運維、資源交付或者部署。本文將從代碼的角度,通過改造一個 Python 應用來幫助讀者從側面理解 Serverless,讓應用繼承 Serverless 架構的優點。

現有資源:
1.一個成熟的基因對比算法(Python實現,運行一次的時間花費為 2 秒)
2.2020 個基因樣本文件(每個文件的大小為 2M,可以直接作為算法的輸入)
3.一臺 8 核心云主機

基因檢測服務

我們使用上面的資源來對比兩個人的基因樣本并 print 對比結果(如:有直系血緣關系的概率)
我們構造目錄結構如下:
.
├── relation.py
└── samples
├── one.sample
└── two.sample

relations.py 代碼如下:
import sys
def relationship_algorithm(human_sample_one, human_sample_two):
# it’s a secret
return result
if __name__ == “__main__”:
length = len(sys.argv)
# sys.argv is a list, the first element always be the script’s name
if length != 3:
sys.stderr.write(“Need two samples”)
else:
# read the first sample
with open(sys.argv[1], “r”) as sample_one:
sample_one_list = sample_one.readlines()
# read the second sample
with open(sys.argv[2], “r”) as sample_two:
sample_two_list = sample_two.readlines()
# run the algorithm
print relationship_algirithm(sample_one_list, sample_two_list)

使用方法如下:
➜ python relation.py ./samples/one.sample ./samples/two.sample
➜ 0.054

流程比較簡單,從本地磁盤讀取兩個代表基因序列的文件,經過算法計算,***返回結果。

我們接到了如下業務需求
假設有 2000 人尋找自己的孩子,20 人尋找自己的父親。

首先收集唾液樣本經過專業儀器分析后,然后生成樣本文件并上傳到我們的主機上,一共 2020 個樣本文件,***我們需要運行上面的算法

2000 * 20 = 40000(次)

才可完成需求,我們計算一下總花費的時間:

40000(次) * 2(秒)= 80000 (秒)
80000(秒)/ 60.0 / 60.0 ≈ 22.2(小時)

串行需要花費22小時才能算完,太慢了,不過我們的機器是 8 核心的,開 8 個進程一起算:

22.2 / 8 ≈ 2.76(小時)

也要快3個小時,還是太慢,假設 8 核算力已經到極限了,接下來如何優化呢?

1.介紹一種 Serverless 產品:UGC

UCloud General Compute

與 AWS 的 lambda 不同,UGC 允許你將計算密集型算法封裝為 Docker Image (后文統稱為「算法鏡像」),只需將算法鏡像 push 到指定的算法倉庫中,UGC 會將算法鏡像預先 pull 到一部分計算節點上,當你使用以下兩種形式:
•算法鏡像的名字和一些驗證信息通過 querystring 的形式 (例如:http://api.ugc.service.ucloud.cn?ImageName=relation& AccessToken=!Q@W#E)
•算法鏡像所需的數據通過 HTTP body 的形式

特別構造的 HTTP請求發送到 UGC 的 API 服務時,「任務調度器」會幫你挑選已經 pull 成功算法鏡像的節點,并將請求調度過去,然后啟動此算法鏡像「容器」將此請求的 HTTP body 以標準輸入 stdin 的形式傳到容器中,經過算法計算,再把算法的標準輸出 stdout 和標準錯誤 stderr 打成一個 tar 包,以 HTTP body 的形式返回給你,你只需要把返回的 body 當做 tar 包來解壓即可得到本次算法運行的結果。

講了這么多,這個產品使你可以把密集的計算放到了數萬的計算節點上,而不是我們小小的 8 核心機器,有數萬核心可供使用,那么如何使用如此海量的計算資源呢,程序需要小小的改造一下

2.針對此 Serverless 架構的改造

兩部分:
1.改造算法中元數據從「文件輸入」改為「標準輸入」,輸出改為「標準輸出」
2.開發客戶端構造 HTTP 請求,并提高并發

1. 改造算法輸入輸出

① 改造輸入為 stdin
cat ./samples/one.sample ./samples/two.sample | python relation.py
這樣把內容通過管道交給 relation.py 的 stdin,然后在 relation.py 中通過以下方式拿到:
import sys
mystdin = sys.stdin.read()
# 這里的 mystdin 包含 ./samples/one.sample ./samples/two.sample 的全部內容,無分隔,實際使用可以自己設定分隔符來拆分

② 將算法的輸出數據寫入 stdout
# 把標準輸入拆分為兩個 sample
sample_one, sample_two = separate(mystdin)
# 改造算法的輸出為 STDOUT
def relationship_algorithm(sample_one, sample_two)
# 改造前
return result
# 改造后
sys.stdout.write(result)
到此就改造完了,很快吧

2. 客戶端與并發

剛才我們改造了算法鏡像的邏輯(任務的執行),現在我們來看一下任務的提交:
構造 HTTP 請求并讀取返回結果。
imageName = “cn-bj2.ugchub.service.ucloud.cn/testbucket/relationship:0.1”
token = tokenManager.getToken() # SDK 有現成的
# summitTask 構造 HTTP 請求并將鏡像的 STDOUT 打成 tar 包返回
response = submitTask(imageName, token, data)

它也支持異步請求,之前提到,此 Serverless 產品會將算法的標準輸出打成 tar 包放到 HTTP body 中返回給客戶端,所以我們準備此解包函數:
import tarfile
import io
def untar(data):
tar = tarfile.open(fileobj=io.BytesIO(data))
for member in tar.getmembers():
f = tar.extractfile(member)
with open(‘result.txt’,’a’) as resultf:
strs = f.read()
resultf.write(strs)

解開 tar 包,并將結果寫入 result.txt 文件。

假設我們 2200 個樣本文件的絕對路徑列表可以通過 get_sample_list 方法拿到:
sample_2000_list, sample_20_list = get_sample_list()

計算 2000 個樣本與 20 個樣本的笛卡爾積,我們可以直接使用 itertools.product
import itertools
all = list(itertools.product(sample_2000_list, sample_20_list))
assert len(all) == 40000

結合上面的代碼段,我們封裝一個方法:
def worker(two_file_tuple):
sample_one_dir, sample_two_dir = two_file_tuple
with open(sample_one_dir) as onef:
one_data = onef.read()
with open(samle_two_dir) as twof:
two_data = twof.read()
data = one_data + two_data
response = summitTask(imageName, token, data)
untar(response)

因為構造 HTTP 請求提交是 I/O 密集型而非計算密集型,所以我們使用協程池處理是非常高效的:
import gevent.pool
import gevent.monkey
gevent.monkey.patch_all() # 猴子補丁
pool = gevent.pool.Pool(200)
pool.map(worker, all)

只是提交任務 200 并發很輕松。

全部改造完成,我們來簡單分析一下:

之前是 8 個進程跑計算密集型算法,現在我們把計算密集型算法放到了 Serverless 產品中,因為客戶端是 I/O 密集型的,單機使用協程可以開很高的并發,我們不貪心,按 200 并發來算:

進階閱讀:上面這種情況下帶寬反而有可能成為瓶頸,我們可以使用 gzip 來壓縮 HTTP body,這是一個計算比較密集的操作,為了 8 核心算力的高效利用,可以將樣本數據分為 8 份,啟動 8 個進程,進程中再使用協程去提交任務就好了。

40000 * 2 = 80000(秒)
80000 / 200 = 400(秒)

也就是說進行一組檢測只需要 400 秒,從之前的 7 天提高到 400 秒,成果斐然,圖表更直觀:

而且算力瓶頸還遠未達到,任務提交的并發數還可以提升,再給我們一臺機器提交任務,便可以縮短到 200 秒,4 臺 100 秒,8 臺 50 秒…

最重要的是改造后的架構還繼承了 Serverless 架構的優點:免運維、高可用、按需付費、發布簡單。

免運維 — 因為你沒有服務器了…

高可用 — Serverless 服務一般依托云計算的強大基礎設施,任何模塊都不會只有單點,都盡可能做到跨可用區,或者跨交換機容災,而且本次使用的服務有一個有趣的機制:同一個任務,你提交一次,會被多個節點執行,如果一個計算節點掛了,其他節點還可以正常返回,哪個先執行完,先返回哪個。

按需付費 — 文中說每個算法執行一次花費單核心 CPU 時間 2 秒,我們直接算一下花費
2000 * 20 * 2 = 80000(秒)
80000 / 60 / 60 = 22.22(小時)
22.22(小時) * 0.09(元) * 1(核心) ~= 2(元)
每核時 0.09 元(即單核心 CPU 時間 1 小時,計費 9 分錢)

發布簡單 — 因為使用 Docker 作為載體,所以它是語言無關的,而且發布也很快,代碼寫好直接上傳鏡像就好了,至于灰度,客戶端 imageName 指定不同版本即可區分不同代碼了

不同的 Serverless 產品可能有不同的改造方法,作為工程師,我比較喜歡這種方式,改造成本低,靈活性高,你覺得呢?如果對 Serverless 架構或者 UGC 感興趣的話可以添加微信 u_nknow 加入我們的技術交流群!

責任編輯:武曉燕 來源: ucloud博客
相關推薦

2018-05-25 14:41:56

Serverless無服務器構造

2017-06-12 11:09:56

計數架構數據庫

2017-05-29 08:18:11

Serverless架構軟件系統

2018-05-20 15:32:56

2017-08-08 12:50:51

Serverless云端數據庫

2020-07-14 15:10:21

Redis架構代碼

2023-11-06 07:45:42

單據圖片處理

2010-04-01 22:16:21

2022-03-23 15:43:26

Android客戶端架構

2025-07-30 02:11:00

2019-04-18 14:06:35

MySQL分庫分表數據庫

2019-01-21 11:17:13

CPU優化定位

2013-04-02 14:27:02

架構架構評審

2020-10-15 14:05:30

PostgreSQL升級開發

2024-09-26 10:41:31

2011-06-28 10:41:50

DBA

2025-01-06 05:20:00

前端開發定位

2020-10-24 13:50:59

Python編程語言

2021-12-27 10:08:16

Python編程語言

2015-07-14 10:34:42

ViewModel代碼高效
點贊
收藏

51CTO技術棧公眾號

亚洲国产午夜精品| 中文网丁香综合网| 精品国产乱子伦| 色综合狠狠操| 精品粉嫩超白一线天av| 妺妺窝人体色www在线小说| 国模吧精品人体gogo| 理论片日本一区| 性欧美在线看片a免费观看| a天堂中文字幕| 亚洲免费一区三区| 欧美丝袜丝交足nylons图片| 中文字幕日韩精品无码内射| 美女做暖暖视频免费在线观看全部网址91| 久久99热国产| 人体精品一二三区| 欧美成人一区二区三区高清| 久久av超碰| 欧美成人高清电影在线| 九九热免费精品视频| 国产蜜臀av在线播放| 日本一二三四高清不卡| 国产精品一区二区三区在线| 一区二区 亚洲| 国产精品婷婷| 久久免费观看视频| 成人免费视频网站入口::| 国产伦精品一区二区三区视频 | 日韩在线观看成人| 自拍视频一区二区| 婷婷综合国产| 欧美浪妇xxxx高跟鞋交| 人妻丰满熟妇av无码区app| 牛牛精品视频在线| 亚洲图片欧美激情| 四虎永久在线精品免费一区二区| 天天色综合av| 成人免费视频一区| 147欧美人体大胆444| 一级黄色片免费看| 天堂成人国产精品一区| 欧美性受xxx| 91av在线免费视频| aa亚洲婷婷| 久久免费观看视频| 日韩av在线播| 亚洲三级网站| 久久久人成影片一区二区三区观看 | 久久久综合视频| 久久av一区二区| 天堂中文在线看| jizz一区二区| 美国av一区二区三区| 天堂网在线观看视频| 不卡免费追剧大全电视剧网站| 国产成人看片| 黑人乱码一区二区三区av| 国产不卡在线播放| 国产精品一区二区免费| 日本黄视频在线观看| 国产成人精品综合在线观看| 99久久精品免费看国产一区二区三区| 国产富婆一级全黄大片| 成人美女在线视频| 久草热久草热线频97精品| 天堂网在线播放| 久久久久久久久久久久久夜| 日本在线观看一区二区| 成人动漫在线免费观看| 国产精品传媒入口麻豆| 欧美 国产 精品| 色yeye免费人成网站在线观看| 亚洲精品国产无天堂网2021| 青青草精品视频在线| 国产资源在线观看入口av| 欧美性感美女h网站在线观看免费| 欧美色图色综合| gogo亚洲高清大胆美女人体| 欧美亚洲高清一区二区三区不卡| 538任你躁在线精品免费| 亚洲成人毛片| 欧美精品1区2区3区| 绯色av蜜臀vs少妇| 欧美美女在线观看| www.久久久久| 国产精品16p| 老司机午夜免费精品视频| 国产色婷婷国产综合在线理论片a| 亚洲一级视频在线观看| 丁香网亚洲国际| 久久亚洲综合网| 思思99re6国产在线播放| 亚洲综合免费观看高清完整版 | 欧美黄色一区二区三区| 99精品热6080yy久久| 日韩美女主播视频| а√中文在线资源库| 久久午夜老司机| dy888午夜| 桃花岛tv亚洲品质| 国产精品扒开做爽爽爽的视频| 激情欧美日韩一区| 国产91色在线免费| 国产99视频在线| 91亚洲永久精品| 一区二区国产日产| 蜜桃麻豆av在线| 3751色影院一区二区三区| 精品国产一区在线| 亚洲一本二本| 国产精品99久久久久久人| 精品国产无码AV| 国产亚洲一本大道中文在线| 欧美a级免费视频| 播放一区二区| 亚洲精品久久久久久久久久久久久 | 欧美日韩一级黄色片| 国产剧情一区在线| 亚洲aⅴ天堂av在线电影软件| 97天天综合网| 91精品国产一区二区三区| 国产毛片久久久久久久| 亚洲激情精品| 91精品国产99久久久久久红楼| 国产成人天天5g影院在线观看| 亚洲国产日韩a在线播放性色| 涩涩网站在线看| 精品国产美女| 欧洲中文字幕国产精品| 成人免费一级视频| 亚洲三级理论片| 9久久婷婷国产综合精品性色 | 亚洲丝袜av一区| 日本一级淫片色费放| 国产精品69毛片高清亚洲| 亚洲日本一区二区三区在线不卡 | 狠狠色狠色综合曰曰| 人妻巨大乳一二三区| 99久久视频| 国产精品久久9| 黄视频在线播放| 欧美色xxxx| 亚洲精品国产成人av在线| 午夜欧美精品| 5g影院天天爽成人免费下载| 国产在线1区| 欧美精品一二三四| 欧美风情第一页| 国产在线精品免费| 麻豆md0077饥渴少妇| crdy在线观看欧美| 久久不射电影网| 国产欧美熟妇另类久久久| 最近中文字幕一区二区三区| 亚洲精品综合在线观看| 围产精品久久久久久久| 国产一区二区视频在线观看| 免费**毛片在线| 欧美一区二区三区在线观看视频| 中文字幕av久久爽av| 国产成人自拍在线| 婷婷无套内射影院| 蜜臀av免费一区二区三区| 国产91色在线|免| yes4444视频在线观看| 欧美日韩一区在线观看| 在线日韩国产网站| 高清不卡一区二区| 成人午夜视频免费在线观看| 国产在视频线精品视频www666| 国产福利精品在线| 米奇精品一区二区三区| 日韩午夜在线播放| 亚州国产精品视频| 久久精品一级爱片| www.久久91| 欧美成人嫩草网站| 久久av一区二区三区漫画| 欧美色网在线| 久久这里有精品视频| 天天干天天爱天天操| 色综合久久久久久久久久久| 午夜精品久久久久99蜜桃最新版| 国产美女精品在线| 91九色在线观看视频| 日本女优一区| 91九色视频在线观看| 九色porny视频在线观看| 色诱女教师一区二区三区| www.五月激情| 色天天综合色天天久久| 国产精品国产精品88| 99re热这里只有精品视频| 韩国日本美国免费毛片| 伊人成综合网| 欧美系列一区| 午夜精品在线| 国产精品色午夜在线观看| 色黄网站在线观看| 在线成人中文字幕| 神马午夜精品95| 欧美日韩国产一级二级| 人人干人人干人人干| 亚洲色图19p| 欧美特级黄色录像| 国产69精品久久99不卡| 国产喷水theporn| 亚洲精选国产| 欧美日韩在线免费观看视频| 欧美激情99| 亚洲一区二区日本| 日本精品在线中文字幕| 97国产在线视频| h片在线观看网站| 一区二区国产精品视频| 日韩一级片免费在线观看| 欧美高清视频不卡网| 波多野结衣视频在线看| 五月天激情综合| 青青草成人免费| 国产精品美女久久久久久久久久久| 喷水视频在线观看| 国产酒店精品激情| 中文字幕线观看| 免费视频最近日韩| 999在线免费视频| 午夜亚洲性色福利视频| 欧美中日韩在线| 亚洲色图插插| 中文字幕久精品免| 欧美日韩一二| 日本在线观看一区二区| 中文有码一区| 久久免费一区| 欧美爱爱网站| 精品综合久久| 激情视频极品美女日韩| 国产激情美女久久久久久吹潮| 国产精品一区二区精品| 亚洲自拍小视频免费观看| 日本亚洲欧洲无免费码在线| 国产精品视频一区二区三区四| 桃色一区二区| 国产精品aaa| 国产毛片精品久久| 国产欧亚日韩视频| 四虎国产精品免费久久5151| 国产精品一久久香蕉国产线看观看| av高清一区| 国产精品人人做人人爽| 91在线成人| 国产欧美在线观看| 91精品视频一区二区| 国产日韩中文在线| 久久国际精品| 99视频在线播放| 大奶在线精品| 欧美二区在线| 日韩欧美午夜| 亚洲黄色网址在线观看| 欧美成人tv| 99视频在线免费播放| 国产农村妇女精品一区二区| 国产成人无码精品久久久性色| 性一交一乱一区二区洋洋av| 国产精品无码专区av在线播放| 久久午夜精品| 久久这里只精品| 国产剧情在线观看一区二区| 精品国产aⅴ一区二区三区东京热| 高清国产午夜精品久久久久久| 白嫩情侣偷拍呻吟刺激| 91麻豆国产自产在线观看| 亚洲第一综合网| 亚洲欧美日韩一区二区| 国产精品白浆一区二小说| 欧美日韩一区二区精品| 性高潮视频在线观看| 9191国产精品| 国精产品一品二品国精品69xx | 丁香婷婷久久久综合精品国产| 国产精品久久久久av蜜臀| 91在线看网站| 美女久久99| 久久久久亚洲av无码专区喷水| 国产精品多人| 精品久久久久久久无码| 高清国产一区二区三区| 精品成人av一区二区三区| 中文字幕亚洲一区二区va在线| 久久久久99精品| 欧美中文字幕一区| 亚洲国产欧美另类| 国产一区二区三区久久精品| 最新国产露脸在线观看| 欧美在线视频a| 国产精品中文| 国产精品一区二区免费| 欧美国产美女| 成年人观看网站| 国产自产视频一区二区三区| 强迫凌虐淫辱の牝奴在线观看| 日本一区二区三区高清不卡| 日韩精品一区二区亚洲av性色| 红桃av永久久久| 国产精品国产av| 日韩av在线精品| 91麻豆一二三四在线| 国产精品久久久久久久午夜| 亚洲综合色婷婷在线观看| 亚洲午夜电影在线观看| 亚洲自拍一区在线观看| 日韩精品一区二区三区蜜臀| 在线视频婷婷| 欧美一二三视频| 视频国产精品| 91免费网站视频| 久久久久国产精品午夜一区| 无码国产精品久久一区免费| 国产精品激情偷乱一区二区∴| 天天爽夜夜爽夜夜爽精品| 欧美一区二区黄色| 日本三级视频在线观看| 国产成人97精品免费看片| 东京久久高清| 蜜臀在线免费观看| 国产自产高清不卡| 日韩免费成人av| 日韩欧美成人区| 天天操天天舔天天干| 欧美激情视频在线观看| www.欧美视频| 亚洲欧美日产图| 日韩国产欧美在线观看| 最近中文字幕免费| 欧美性生交xxxxxdddd| 天堂在线视频免费| 91精品国产高清自在线看超| 国产精品一区二区三区美女| 国产91视频一区| 国产在线视频一区二区| 夫妻性生活毛片| 欧美高清视频一二三区 | 亚洲丝袜另类动漫二区| 亚洲综合精品视频| 中文字幕亚洲自拍| 国外成人福利视频| 亚洲日本无吗高清不卡| 老司机精品视频导航| 天海翼在线视频| 91精品婷婷国产综合久久性色| 蜜桃视频在线观看www社区| 91免费人成网站在线观看18| 婷婷综合网站| 亚洲欧美日韩中文字幕在线观看| 亚洲激情一二三区| 黄色成人一级片| 欧美在线观看日本一区| 国语产色综合| 加勒比av中文字幕| 尤物视频一区二区| 午夜激情在线视频| 青青草精品毛片| 欧美日韩中字| 久久人人爽人人片| 亚洲无人区一区| 日本天堂影院在线视频| 国产精品嫩草影院久久久| 99久久夜色精品国产亚洲狼| 色婷婷综合在线观看| 亚洲成av人综合在线观看| 四虎影视精品成人| 国产精品日韩在线观看| 亚洲成人二区| 精品一区二区三区四区五区六区| 福利视频导航一区| a√资源在线| 波多野结衣精品久久| 午夜一区二区三区不卡视频| 色噜噜噜噜噜噜| 日韩一区二区精品葵司在线| 涩涩视频在线| 亚洲一区bb| 成人av在线电影| 国产情侣小视频| 欧美巨大黑人极品精男| 亚洲图区在线| 亚洲18在线看污www麻豆| 亚洲福中文字幕伊人影院| 成人av毛片| 成人欧美视频在线| 男女视频一区二区| 久久精品亚洲无码| 在线观看日韩视频| 久久夜色电影| 色91精品久久久久久久久| 精品成人国产在线观看男人呻吟| 18视频免费网址在线观看| 国产精品一区二区三区在线观 | 国产欧美婷婷中文|