这是Jerry 2020年的第69篇文章,也是汪子熙公众号总共第251篇原创文章。

本文不含惊悚内容的图片,请大家放心阅读。

医学界的虚拟化技术挽救了Jerry的生命,所以有了这篇文章。

计算机世界的虚拟机和容器这些虚拟化技术,已经直接或间接地影响着我们相当一部分人的日常生活。普通人每日滑开手机,从BAT,TMDJ等国内互联网巨头的App上获取海量信息。普通人同时也是互联网上海量信息的生产者,即所谓的UGC(User Generated Content,用户生成内容)场景。普通人早已习惯了这一切,比如在微信上发一个朋友圈,点击发送之后被其他微信好友看见,我们觉得这一切都是理所当然,天经地义的事情,殊不知像微信这种用户数量用亿作为单位来衡量的国民级移动应用,背后不知道凝聚了多少优秀程序员的心血。

国内互联网巨头的解决方案和产品,其背后的架构和基础设施都离不开云计算。而云计算和虚拟化技术(Virtualization)更加密不可分。在Monolithic(单体式)架构的On-Premises时代,产品的部署是一件相对轻松愉快的事情,比如Jerry在做微信和SAP Commerce集成的时候,把Commerce的安装包拷贝到一个目录下,然后依次执行几个脚本,再去咖啡机边上转一圈,回来就完成Commerce开发环境下的部署了。到了基于微服务架构的云原生应用时代,云产品架构的复杂性,使得通过人工方式去部署产品成为了一项不可能完成的任务,自动化部署势在必行。而自动化部署,离开了虚拟化技术就只是空谈而已。

我的虚拟化技术学习之路

Jerry对于虚拟化技术只学到了一些皮毛,最开始使用虚拟机的场景是,我想在Windows 7下重温一些只能运行在纯DOS系统的经典软件,比如光荣的**《三国志IV》《三国志V》. 然后是因为工作需要,学习了容器技术,掌握了把常见的应用类型打成Docker镜像并运行的方法。后来公司组织了容器编排系统,即Kubernetes的内部培训,我也从三位培训老师那里,了解到了虚拟机和容器技术的差异。培训老师告诉我们,虚拟机和容器的目的类似,都致力于对应用程序及其关联性进行隔离,从而构建起一套能够不依赖于具体环境而运行的应用单元。虚拟机是在物理服务器的上层用软件来模拟特定的硬件系统,其技术核心是Hypervisor**,位于硬件和系统之间,是创建虚拟机必须的一个部分。虚拟机软件使用Hypervisor作为中间层,当宿主操作系统启动虚拟机时,通过Hypervisor给虚拟机分配内存,CPU,网络和磁盘等资源,并加载虚拟的操作系统,因而需要消耗宿主机大量的物理资源。

另一方面,一台宿主机上运行的多个容器化应用共享这台宿主机操作系统的内核,因而不需要虚拟机技术中的Hypervisor中间层。同虚拟机技术相比,容器更加轻量化,启动速度更快。

当组成一个应用的容器数量突破了人工所能管理的极限之后,就需要Kubernetes这种容器编排平台。有了Kubernetes的基础后,下一步就是学习SAP自己的产品,构建于Kubernetes之上的SAP Cloud Platform Extension Factory(基于开源项目Kyma).

沿着虚拟机->容器->Kubernetes->Kyma这条路线走过来,我的一些学习笔记:

  • 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma

  • 在Kubernetes上运行SAP UI5应用(上)

  • 在Kubernetes上运行SAP UI5应用(下)

  • 基于SAP Kyma的订单编排增强介绍

  • 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

  • 第三方应用如何在SAP Kyma上进行服务注册

  • WordPress,SAP Kyma和微信三者的集成

  • 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function

  • 周伯通的空明拳,米诺斯的星尘傀儡线,SAP Kyma的Serverless

  • 在SAP云平台上部署和运行Docker应用

  • Windows环境下,如何在Docker里运行SAP UI5应用

  • SAP ABAP Netweaver容器化, 不可能完成的任务吗?

国内程序员里熟悉云计算虚拟化技术的同仁数不胜数,然而熟悉颅内虚拟化技术的程序员想必不多,Jerry就是其中之一,只因it’s online within my brain ever since this May!!!

虽然虚拟机和容器内都似乎能像物理服务器一样地运行应用程序,然而这一切都是镜花水月:虚拟机和容器运行时均无法脱离宿主机而单独存在。一旦宿主机出故障宕机,运行在之上的虚拟机和容器也难逃厄运。

人工硬脑膜,和硬脑膜的区别,在于后者是我们每个人从亲妈那里继承来的**原生(native)**脑膜,而前者是人工合成,作为原生硬脑膜的补充,无法脱离后者而单独工作。

Jerry之前的文章 有感而发 - 日新月异的SAP开发技术和手术方式 曾经提到,硬脑膜是人类颅内组织的最后一道防线,然后向外依次是骨膜和头皮。

科学家们为了测量成年人硬脑膜的面积,先将硬脑膜剪为12块,即双箍、双顶、双挽、双额及小脑区等区域,再将其平摊在复印机上复印后,用定积分法计算结果,结论是成年男性硬脑膜的平均面积为0.08平方米,女性为0.076平方米,大约相当于体表皮肤面积的1/22. 硬脑膜的厚度并非一张纸那样均匀,而是随着膜区位置不同而有所变化,平均厚度约为0.7到1毫米。

硬脑膜到底有多硬?每平方毫米的硬脑膜,能承受37千克左右的抗张力强度。人类通过漫长的进化史,得到了这道天然的保护大脑的坚实屏障。然而,如果颅内组织自身出了问题,这道保护屏障的坚固也会给神经外科医生带来一些麻烦。为了能够进入颅内切除病变组织,神经外科医生不得不借助各种器械,在坚实的硬脑膜上钻孔。医院用的开颅钻头们有国内生产的,也有国外进口的,都是大家伙:

另一方面,神经外科医生们钻开硬脑膜,打开颅内切除完病灶后,手术也还远远不算完。有一种疾病叫做细菌性脑膜炎,由流感嗜血杆菌B型、脑膜炎奈瑟菌和肺炎链球菌这三种病菌,通过咳嗽或者打喷嚏进行传播。人在患感冒时容易被这三种病菌传染,病菌进入颅内引起颅内感染。既然硬脑膜完好无损时,尚且有病菌侵入的风险,更不用说做了开颅手术后留下这么大的窟窿,如果不采取任何修复措施,术后感染的风险极大。这时就轮到人工硬脑膜上场了,目的就是填补开颅钻生成的窟窿。

人工硬脑膜作为原生硬脑膜的补充,二者的关系就如同虚拟机/容器之于宿主操作系统一样:前者不能脱离后者而单独存在。

**人工硬脑膜(Artificial Dura Mater)**是人工制成的一种虚拟硬脑膜,作为人类原生硬脑膜的替代物,用于因颅脑、脊髓损伤、肿瘤及其他颅脑疾病造成的硬脑膜缺损的修补,防止脑脊液外漏、颅内感染、脑膨出、脑粘连等各种严重的并发症。

为了寻找到合适的材料制作人工硬脑膜,科学家们走过了一条漫漫长路。早在1890年,第一例以金箔为材料的人工硬脑膜应用在神经外科手术中,治疗由于脑膜粘连而诱发的癫痫症。很快,科学家们发现,金属材质会刺激颅内产生过多的肉芽组织,最后该材质被禁用。

后来科学家们想到了采用自体筋膜,即从病人身上选取合适的材料来制作。自体材料虽然不会发生排斥反应,但其提取需要另行手术,取材来源有限,并且仍易和脑组织存在一定程度的粘连而易诱发癫痫,故现在很多国家也不再采用。

科学家们也尝试过同种异体组织,比如冻干人硬脑膜(Lyophilized Human Dura Mater,LHDM), 其优点是具有正常人体脑膜的超微结构,能够像原生硬脑膜一样工作,但材料来源有限,并且具有潜在感染病毒性疾病的可能,故也未成为主流。

爱迪生成功发明电灯之前,为了找到一种合适的灯丝材料而苦苦探索,一共尝试过1600多种不同的耐热材料,最后决定用炭丝来做灯丝。之后他集中全副精力,下功夫寻找合适的碳化材料,仅植物类的碳化试验就做了6000多种。

研制人工硬脑膜的科学家们也是如此。在发现金属,自体筋膜,同种异体组织等材质效果均不如人意后,科学家们把研究方向放到了生物材料上。近年来随着组织工程学的兴起,科学家们致力于将生物材料的复合物植入颅内病损部位,期望在生物材料逐渐被机体降解和吸收的过程中,形成在形态和功能方面与人工硬脑膜相一致的组织,达到修复颅内创伤和重建功能的目的。

目前国内临床上绝大多数病人使用的都是生物膜材料的人工硬脑膜,Jerry也不例外。我用的是这一款:规格为40毫米 × 30毫米,全自费,很贵

之前Jerry文章 今天我拿到了医院发的纸质版手术记录… 提到的我手术记录上标注的颅底重建术,做的事情就是把颅骨上钻的窟窿用人工硬脑膜修补好。

下面是从密封包装里取出的人工硬脑膜:

人工硬脑膜的具体使用方式,可以类比通过补丁修复衣服窟窿的过程。从我的纸质手术记录,我才知术中使用了两块40毫米 × 30毫米的人工硬脑膜,医保不cover,囧。

活着真好。

感谢阅读。

这个系列之前的文章列表:

  • 可能要暂时停更一段时间,希望时间不会太长

  • 一个中年程序员遇到突发情况的一些胡言乱语

  • 对程序员来说,看透生死远远没有操作0和1那么简单

  • 一个程序员眼中的医院人生百态

  • 今天,我要在睡梦里,和死神握握手

  • 经鼻开颅手术成功了,Jerry脱离了生命危险

  • 脑部手术成功,只是万里长征走完了第一步

  • 一个程序员经历的7小时全身麻醉

  • 今天我拿到了医院发的纸质版手术记录…

  • “Z医生,我明天的手术,成功率有多高?”

  • 有感而发 - 日新月异的SAP开发技术和手术方式

计算机世界的虚拟机,容器和医学界的人工硬脑膜相关推荐

  1. 虚拟机容器嵌合体—— Kata Containers正式走出实验室

    将虚拟机的安全优势与基于软件的容器的部署和管理优势相结合在一起的开源的Kata Containers项目,在周二达到了1.0的里程碑. 由于去年12月宣布的英特尔Clear Containers和Hy ...

  2. 影子系统、沙盒、虚拟机的区别,沙盒化容器:是容器还是虚拟机,容器、虚拟机、虚拟环境的区别

    1 容器和虚拟机的区别 虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离. 2 虚拟机和虚拟环境的区别 虚拟环境是为了隔绝用户的多个运行环境,避免冲突. 虚拟机是为了隔绝多个用户之间的操 ...

  3. 一个SAP成都研究院开发工程师 2020 年的所有文章列表

    这个公众号 2018-2019年两年总共发表了179篇原创文章,分别来自SAP成都研究院28位同事.这179篇原创文章的列表,可以从这里获得: SAP成都研究院小伙伴们2018-2019两年间的179 ...

  4. 我这满目疮痍的2020年

    我是SAP成都研究院的开发人员Jerry Wang,我于2007年1月加入SAP成都研究院工作至今,一直从事开发岗位的工作.我是SAP Community Mentor和Technology Amba ...

  5. 演讲预告:一个月的住院经历,我悟到了哪些和程序员职场发展相关的心得

    时间过得很快,一转眼我出院后上班已经快两个月了. 最近有公众号的关注者给我留言,询问一些ABAP开发的细节问题.不巧的是,我八月份返回公司之后,领了新的开发电脑,SAPGUI和ABAP Develop ...

  6. 金庸逝世两周年纪念日:一个失意程序员的呓语

    这是Jerry 2020年的第76篇文章,也是汪子熙公众号总共第258篇原创文章. 两年前的今天,Jerry在回家的成都地铁一号线上,手机新闻app弹出了金庸逝世的消息,于是有了这篇文章:金庸的武侠世 ...

  7. Docker 容器 和 虚拟机 的异同

    见:https://www.docker.com/what-container 将软件打包成标准化的单元进行开发,发货和部署 容器映像是一个软件的轻量级独立可执行软件包,包含运行所需的所有内容:代码, ...

  8. 应用程序部署策略——虚拟机与容器

    目录 1.简介 2.部署用例 3.部署选项 3.1单服务器 3.2虚拟机 3.3容器 4.资源利用比较 5.虚拟机和容器的比较 6.结论 本文的范围是比较可用于我们的应用程序部署用例的各种部署模型.本 ...

  9. 容器和虚拟机水火不容?不存在的!

    最近一两年来,以容器为代表的云原生技术一直是IT行业最为热门的话题.随着云原生技术的崛起,有企业甚至跳过了IaaS层直接在物理机上部署容器.容器的风头几乎盖过云计算,虚拟化技术甚至由此被认为是传统方法 ...

最新文章

  1. 人工智能新手入门学习路线!附学习资源合集
  2. 她是数学奇女子,巴贝奇的好友,却没能等到计算机的辉煌时刻
  3. 产品运行所需的信息检索失败_域名解析失败
  4. python学习 day19
  5. window如何杀掉java进程_windows下java -jar 后台运行以及杀死后台进程的操作
  6. 第一章:Python的基本数据类型-第三节:Python中表示“无序”的数据类型
  7. Android使用软引用和弱引用
  8. windows封装/备份恢复/双系统安装
  9. C语言中函数指针和指针函数
  10. 硬件基础知识(10)---元器件选型规范大全
  11. 05 无人机动态模型
  12. 微信小程序 js创建Object对象
  13. Cesium 两点之间的直线距离
  14. 专题三 Problem X
  15. python实现账号密码登录
  16. 给设计师提供的十大无代码网站编辑器
  17. C语言程序设计课程设计(服装销售管理系统)
  18. 论文解读(NWR)《Graph Auto-Encoder via Neighborhood Wasserstein Reconstruction》
  19. python polygon_在Python中将Multipolygon转换为Polygon - python
  20. C++中goto的使用

热门文章

  1. (转)浅析CSS——元素重叠及position定位的z-index顺序
  2. 2009年9月等考试题及答案51CTO站第一时间发布
  3. 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法
  4. UML模型中的图-行为图【交互图-序列图、协作图】
  5. 总结:第一章~第五章
  6. 网络协议 8 - TCP协议(上):性恶就要套路深
  7. scanf和gets的差别
  8. oracle 10g 返回RemoteOperationException: ERROR: Wrong password for user
  9. 签名build apk: Could not resolve all files for configuration ':app:lintClassPath' 问题
  10. 机器学习中的数学知识(part3)--凸优化