Serverless-一次-基因样本比对-架构改造实践 (server是什么意思)

教程大全 2025-07-16 15:54:32 浏览

一次 Serverless 架构改造实践:基因样本比对

基因样本比对

2018-05-25 14:41:56本文将从代码的角度,通过改造一个 Python 应用来帮助读者从侧面理解 Serverless,让应用继承 Serverless 架构的优点。

Serverless 是一种新兴的无 服务器 架构,使用它,开发者只需专注于代码,无需关心运维、资源交付或者部署。

本文将从代码的角度,通过改造一个 Python 应用来帮助读者从侧面理解 Serverless,让应用继承 Serverless 架构的优点。

现有资源:

基因检测服务

我们使用上面的资源来对比两个人的基因样本并 print 对比结果(如:有直系血缘关系的概率)

我们构造目录结构如下:

relations.py 代码如下:

使用方法如下:

流程比较简单,从本地磁盘读取两个代表基因序列的文件,经过算法计算,***返回结果

我们接到了如下业务需求

假设有 2000 人寻找自己的孩子,20 人寻找自己的父亲

首先收集唾液样本经过专业仪器分析后,然后生成样本文件并上传到我们的主机上,一共 2020 个样本文件,***我们需要运行上面的算法

才可完成需求,我们计算一下总花费的时间:

串行需要花费 22 小时才能算完,太慢了,不过我们的机器是 8 核心的,开 8 个进程一起算:

也要快 3 个小时,还是太慢,假设 8 核算力已经到极限了,接下来如何优化呢?

1.1.1 介绍一种 Serverless 产品:UGC

UCloud General Compute

AWS 的 lambda 不同,UGC 允许你将计算密集型算法封装为 Docker Image (后文统称为「算法镜像」),只需将算法镜像 push 到指定的算法仓库中,UGC 会将算法镜像预先 pull 到一部分计算节点上,当你使用以下两种形式:

特别构造的 HTTP 请求发送到 UGC 的 API 服务时,「任务调度器」会帮你挑选已经 pull 成功算法镜像的节点,并将请求调度过去,然后启动此算法镜像「容器」将此请求的 HTTP body 以标准输入 stdin 的形式传到容器中,经过算法计算,再把算法的标准输出 stdout 和标准错误 stderr 打成一个 tar 包,以 HTTP body 的形式返回给你,你只需要把返回的 body 当做 tar 包来解压即可得到本次算法运行的结果。

讲了这么多,这个产品使你可以把密集的计算放到了数万的计算节点上,而不是我们小小的 8 核心机器,有数万核心可供使用,那么如何使用如此海量的计算资源呢,程序需要小小的改造一下

1.1.2 针对此 Serverless 架构的改造

两部分:

1. 改造算法输入输出

① 改造输入为 stdin

这样把内容通过管道交给 relation.py 的 stdin,然后在 relation.py 中通过以下方式拿到:

② 将算法的输出数据写入 stdout

到此就改造完了,很快吧

2. 客户端与并发

刚才我们改造了算法镜像的逻辑(任务的执行),现在我们来看一下任务的提交:

构造 HTTP 请求并读取返回结果

它也支持异步请求

之前提到,此 Serverless 产品会将算法的标准输出打成 tar 包放到 HTTP body 中返回给客户端,所以我们准备此解包函数:

解开 tar 包,并将结果写入 result.txt 文件

假设我们 2200 个样本文件的绝对路径列表可以通过 get_sample_list 方法拿到

sample_2000_list, sample_20_list = get_sample_list()

计算 2000 个样本与 20 个样本的笛卡尔积,我们可以直接使用 itertools.product

结合上面的代码段,我们封装一个方法:

因为构造 HTTP 请求提交是 I/O 密集型而非计算密集型,所以我们使用协程池处理是非常高效的:

只是提交任务 200 并发很轻松

全部改造完成,我们来简单分析一下:

之前是 8 个进程跑计算密集型算法,现在我们把计算密集型算法放到了 Serverless 产品中,因为客户端是 I/O 密集型的,单机使用协程可以开很高的并发,我们不贪心,按 200 并发来算:

进阶阅读: 上面这种情况下带宽反而有可能成为瓶颈,我们可以使用 gzip 来压缩 HTTP body,这是一个计算比较密集的操作,为了 8 核心算力的高效利用,可以将样本数据分为 8 份,启动 8 个进程,进程中再使用协程去提交任务就好了。

也就是说进行

一组检测只需要 400 秒,从之前的 7 天提高到 400 秒,成果斐然,图表更直观:

而且算力瓶颈还远未达到,任务提交的并发数还可以提升,再给我们一台机器提交任务,便可以缩短到 200 秒,4 台 100 秒,8 台 50 秒…

最重要的是改造后的架构还继承了 Serverless 架构的优点:

1. 免运维 — 因为你没有服务器了…

2. 高可用 — Serverless 服务一般依托云计算的强大基础设施,任何模块都不会只有单点,都尽可能做到跨可用区,或者跨交换机容灾,而且本次使用的服务有一个有趣的机制:同一个任务,你提交一次,会被多个节点执行,如果一个计算节点挂了,其他节点还可以正常返回,哪个先执行完,先返回哪个。

3. 按需付费 — 文中说每个算法执行一次花费单核心 CPU 时间 2 秒,我们直接算一下花费

4. 发布简单 — 因为使用 Docker 作为载体,所以它是语言无关的,而且发布也很快,代码写好直接上传镜像就好了,至于灰度,客户端 imageName 指定不同版本即可区分不同代码了

不同的 Serverless 产品可能有不同的改造方法,作为工程师,我比较喜欢这种方式,改造成本低,灵活性高,你觉得呢?如果对 Serverless 架构或者 UGC 感兴趣的话可以添加 u_nknow 微信拉你进交流群哦


已经灭绝的渡渡鸟还能复活吗?

渡渡鸟:1681年灭绝知道牛津大学动物学和动物人类学系古生物分子研究中心的两位科学家――艾伦.库珀(Alan Cooper)博士和贝斯.夏皮罗(Beth Shapiro)――最早开始对渡渡鸟产生研究的兴趣是不是受了卡罗尔的影响,但他们的研究对象却的确是当年激发了卡罗尔灵感的那只渡渡鸟头。 这只被称为“爱丽丝奇境中的渡渡鸟”于1683年,也即最后一只渡渡鸟死去的两年后被捐献给牛津大学自然历史博物馆。 在几百年时间里,它一直被摆放在那里,提醒着人们所有那些因为滥用自身改造自然的力量而造成的悲剧。 不过,库珀和夏皮罗于今年3月1日对BBC新闻宣布,他们已经成功地从这只渡渡鸟残留标本的皮肤中提取了仍然带有活性的DNA,并将这一成果发表在当日出版的《科学》杂志上。 于是,这只在人类的贪欲之火中涅磐的鸟有可能迎来它的第二次生命。 在接受BBC新闻记者的采访时,刚刚度过36岁生日的库珀博士喜悦之情溢于言表。 “这只渡渡鸟的DNA仍然幸存着,它受到了严重损害并且断裂成了微小的片段,但这些小的片段依然保留着。 ”这些DNA片段虽然微小,在生物学家的实验室中,却能展现出一个前所未见的奇妙新世界。 同所有的动物学家一样,库珀博士及其同事首先着手的,是探寻渡渡鸟在进化树中所处的位置。 作为比较,研究人员从曾经生活在毛里求斯岛附近罗得里格斯岛上的Solitaire鸟身上也提取了样本DNA。 同渡渡鸟一样,Solitaire鸟也是一种早已灭绝的体积庞大、不能飞行的鸟类。 很久以前,科学家们就怀疑过Solitaire同渡渡鸟可能就是同一种鸟,或是在血缘上十分接近。 但由于二者都早已灭绝,这一点一直未能得到证实。 此外,库珀博士还从现存的35种鸽子中提取了供比较的DNA。 在精密的DNA序列分析之后,研究人员得出了结果。 渡渡鸟和Solitaire鸟的确是亲缘关系最密切的两种鸟类,它们都属于鸽形目孤鸽科,在进化树中是鸽子家族的成员之一。 远在毛里求斯和罗得里格斯岛形成之前几千万年,它们就已经分化成为不同的个体种属。 通过对地质学证据的考察,库珀博士的研究小组还推测出,渡渡鸟和Solitaire鸟的始祖可能最早都是生活在东南亚地区的,在几百万年时间中,这两种不会飞行的鸟儿是如何远涉重洋,跨过印度洋来到遥远的非洲海岸,对于科学家们来说依然是个谜。 然而,如果考虑到这些鸟儿在长途跋涉之后却最终在被它们视为天堂的岛屿上迎来了自己的末日,这又为它的迁徙带来了许多悲剧色彩。 在库珀博士的研究中,最振奋人心的一点还在于,成功提取渡渡鸟仍然具有生命力的DNA为这种三百多年前就已灭绝的鸟类的复活提供了极大可能性。 随着克隆技术的日新月异,电影《侏罗纪公园》中的恐龙复活在许多生物学家眼中已经不再是完全不可能的事。 同灭绝了几百万年的恐龙相比,渡渡鸟显然在克隆的困难程度上减低了许多。 就像一位在网上名叫Coolg的人在雅虎新闻论坛上就此事发表的评论中所说的,“我们克隆了绵羊,然后又克隆了猫,还总有人叫嚷着说克隆人马上就要跳出来对我们说早安,那么为什么不去克隆一只渡渡鸟呢?那好像还要更有意义一些。 ”而牛津大学的渡渡鸟残余标本的所有者、动物学家玛高莎.诺瓦克坎普(Malgosia Nowak-Kemp)在接受路透社记者采访时指出,研究人员在基因排序方面遇到一些困难,因为它破碎得太厉害了。 她承认,现有的发现对于让渡渡鸟复活来说可能还不够,但并不应因此而失去希望,“你永远都不能说永远不可能”,她充满自信地说

松狮犬多少钱一只

你好很愿意帮你解答这些问题因为我家也养松狮所以我就凭我的经验来回答吧回答的不好请不要介意1.肉嘴的松狮嘴短上唇完全能盖住下唇而且毛特别的长并且浓密肉嘴中也会分等级的极品的松狮是看不见眼睛的只能平嗅觉而面包嘴的松狮嘴长且尖皮毛照肉嘴的来说 也少且短了很多一般能够参加比赛的松狮多为肉嘴也有很多人称面包嘴松狮为松熊2.松狮分为黑、蓝、火红、棕黄、奶油五色纯种松狮小体最值钱的是奶油色的(耳朵为黄色)价格2000元以上 任凭商家自己定价纯种的奶油色肉嘴的松狮还是比较罕见的大体松狮中最值钱的棕黄色 因为显得比较威猛黑色松狮在狗市的要价确实很高但好像是最不值钱的具体为什么我也不清楚3.松狮是无体味的狗只要多注意卫生是没什么问题的喂狗粮也可以减少狗身上的体味4.在挑选松狮的时候要看清松狮的舌头是紫色的 舌头有少量是花的是不影响什么的还要注意体型也就是要成正方体(头部不算在内)5.松狮的一生只认定一个主人但对任何人都是温顺的有的松狮是可以看家的但是松狮是很笨的狗训练它一定要耐心它的胆子很小 警惕性很好都说它的起源是中国但准确的说它在很久以前是起源于蒙古的当时是作为凶猛的狩猎犬不过如果你真的养松狮的话你无论如何都不会发现它凶猛在哪松狮是高傲的也就是在你带它出去的时候它基本上其他的狗视而不见等你真正养的时候纯种的松狮很容易生病其他的狗也是一样要想真正分辨清松狮的好与坏就多看看图片或到当地的狗市去比对一下慢慢会发现不同的希望我的回答对你有帮助

胖子天生更快乐吗?

加拿大麦克玛斯特大学科学家指出,体质易肥胖的人可能比体型瘦削的人活得更快乐,因为导致肥胖的FTO基因,同时也在降低抑郁症的风险。 FTO基因又被称为肥胖基因,过去曾发表于《新英格兰医药期刊》(NEMJ)的研究指出,拥有这类基因的人,更偏向食用高热量食物,因而导致肥胖。 而对双生儿及多胞胎的研究也曾发现,抑郁症的成因中有40%来自遗传,但未有研究能确切肯定基因与抑郁症之间存在关系。 在这项最新研究中,麦克玛斯特大学(McMaster University)戴维·梅尔教授(Prof. David Meyre)带领的研究团队,测试了来自21个不同国家的人所捐献的份基因样本,在比对数据过程中,发现FTO基因除拥有已知的致胖功能外,还有降低抑郁症的功能。 这一结论随后也获得三项大型国际性研究的证实。 这是首次发现抑郁症发病与基因之间的关系,未来将帮助科学家更清晰了解人类的心理。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐