漫谈云计算、虚拟化、容器化
2019-06-19 15:35:16云计算是最近几年才兴起的概念,但是这样的需求其实早都有了,现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问。
什么是云计算?
1.1 云计算概念

云计算是最近几年才兴起的概念,但是这样的需求其实早都有了,现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络, 服务器 ,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
云计算最基本的特性是:“按使用量付费”、“资源共享池”和多租户隔离。
1.2 云计算特点
超大规模
云具有相当的规模,Google 云计算已经拥有 100 多万台服务器, Amazon、IBM、微软、Yahoo 等的云均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。云能赋予用户***的计算能力。
虚拟化
云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自云,而不是固定的有形的实体。应用在云中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
高可靠性
云使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
通用性
云计算不针对特定的应用,在云的支撑下可以构造出千变万化的应用,同一个云可以同时支撑不同的应用运行。
高可扩展性
云的规模可以动态伸缩,满足应用和用户规模增长的需要。
按需服务
云是一个庞大的资源池,你按需购买;云可以像自来水,电,煤气那样计费。
极其廉价
由于云的特殊容错措施可以采用极其廉价的节点来构成云,云的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,云的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受云的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。
潜在的危险性
云计算服务除了提供计算服务外,还必然提供了存储服务。但是云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。对于政府机构、商业机构(特别像银行这样持有敏感数据的商业机构)对于选择云计算服务应保持足够的警惕。一旦商业用户大规模使用私人机构提供的云计算服务,无论其技术优势有多强,都不可避免地让这些私人机构以数据(信息)的重要性挟制整个社会。
对于信息社会而言,信息是至关重要的。另一方面,云计算中的数据对于数据所有者以外的其他用户云计算用户是保密的,但是对于提供云计算的商业机构而言确实毫无秘密可言。所有这些潜在的危险,是商业机构和政府机构选择云计算服务、特别是国外机构提供的云计算服务时,不得不考虑的一个重要的前提。
1.3 云计算分类
公有云: 只有使用权,使用的时候进行按需付费。但数据放在别人家。数据安全没有保障。而且银行不会使用公有云,金融行业不要使用公有云。公有云的核心属性是共享资源服务。
私有云: 自己的机房搭建的云,私有云有局限性,资源固定;数据比较安全。私有云的核心属性是专有资源。
混合云: 主要任务放到私有云,临时需要时利用混合云,它将公有云和私有云进行混合匹配,以获得***的效果,这种个性的解决方案,达到二既省钱又安全的目的。
1.4 云计算分层
云计算也是层的,大概有以下几种:
传统 IT
基本所有的都需要自行管理,比如:网络、存储、服务器、虚拟化,操作系统、中间件、运行环境、数据、应用等。
IaaS,Infrastructure-as-a-Service 中文名称为基础设施即服务。 主要作用是提供虚拟机或者其他资源作为服务提供给用户。
PaaS,PlatForm-as-a-Service 中文名称为平台即服务。如果以传统计算机架构中 “硬件+操作系统/开发工具+应用软件” 的观点来看待,那么云计算的平台层应该提供类似操作系统和开发工具的功能。
实际上也的确如此,PaaS 定位于通过互联网为用户提供一整套开发、运行和运行应用软件的支撑平台。就像在个人计算机软件开发模式下,程序员可能会在一台装有 Windows 或 Linux 操作系统的计算机上使用开发工具开发并部署应用软件一样。PaaS 某些时候也叫做中间件,主要作用是提供一个开发和运行平台给用户。
SaaS,Software-as-a-Service 中文名称为软件即服务。简单地说,就是一种通过互联网提供软件服务的软件应用模式。在这种模式下,用户不需要再花费大量投资用于硬件、软件和开发团队的建设,只需要支付一定的租赁费用,就可以通过互联网享受到相应的服务,而且整个系统的维护也由厂商负责。
如果要用一句话来概括 IaaS、PaaS 和 SaaS 的话,那就是:如果把云计算比喻成一部手机,那么 IaaS 就是硬件,你要自己写代码研发系统才能用;PaaS 是手机系统,你要实现什么功能还是要装各种软件;SaaS 就是硬件+系统+软件,你要干什么一句话就能解决。
什么是虚拟化?
2.1 虚拟化概念
虚拟化是通过软件手段对计算机硬件资源镜像整合管理和再分配的一种技术,常用的手段有基于虚拟机的虚拟化和基于容器的虚拟化。
2.2 虚拟化技术分类
2.2.1 按应用场景分类
2.2.2 按照应用模式分类
2.2.3 按硬件资源调用模式分类
全虚拟化
全虚拟化,虚拟化操作系统与底层硬件完全隔离。由中间的 Hypervisor 层转化虚拟化客户操作系统对底层硬件的调用代码,全虚拟化无需更改客户端操作系统,并兼容性好。典型代表有:Vmware Workstation、KVM。
半虚拟化
半虚拟化,在虚拟客户操作系统中加入特定的虚拟化指令,通过这些指令可以直接通过 Hypervisor 层调用硬件资源,免除有 Hypervisor 层转换指令的性能开销。半虚拟化的典型代表 Microsoft Hyper-V、Vmware 的 vSphere。
注:针对 IO 层面半虚拟化要比全虚拟化要好,因为磁盘 IO 多一层必定会慢。一般说 IO 就是网络 IO 和磁盘 IO,因为这两个相对而言是比较慢的。
2.3 基于虚拟机(Hypervisor-based)的虚拟化
它通过一个软件层的封装,提供和物理硬件相同的输入输出表现。实现了操作系统和计算机硬件的解耦,将 OS 和计算机间从 1 对 1 变成了多对多(实际上是 1 对多)的关系。该软件层称为虚拟机管理器(VMM / Hypervisor),它可以直接运行在裸机上(Xen、VMware EXSi),也可以运行在操作系统上(KVM、VMware Workstation)。这项技术已经很成熟了,(发展了40 多年),但仍然存在以下几个问题:
实际使用场景中,我们使用虚拟化技术其实是为了按需分配资源来完成服务的部署和使用,同时对服务所依赖的环境进行隔离,不被其它服务感知或干扰。为此启动一个 GuestOS 并不是必需的,为什么不考虑让多个虚拟机公用一个操作系统内核,只隔离开服务运行环境同时控制服务使用的系统资源呢?基于容器的虚拟化就是这样一种技术。
2.4 基于容器的虚拟化
容器是没有 GuestOS 的轻量级虚拟机,多个容器共享一个 OS 内核,容器中包含需要部署的应用和它依赖的系统环境,容器大小通常只有几十到几百 MB。由于共享操作系统内核,所以容器依赖于底层的操作系统,各个操作系统大都有自己的容器技术和容器工具。
Docker 是一个 Linux 容器管理工具,随着 Docker 的兴起,Linux 容器技术也是当下最时兴的容器虚拟化技术。Linux 容器工具有很多,OpenVZ、LXC、Docker、Rocket、Lmctfy 等等,大都是基于 Linux 内核提供的两个机制:Cgroups(实现资源按需分配)和 Namespace(实现任务隔离)。
2.5 二种虚拟化技术的区别
虚拟机技术已经发展了很多年,虚拟机和虚拟化层间的接口、虚拟机镜像格式等都已经标准化了。相应的管理工具、分布式集群管理工具都有比较完善的解决方案,而容器最近几年才兴起,配套技术和标准还在完善中;
虚拟机由于有 GuestOS 存在,可以和宿主机运行不同 OS,而容器只能支持和宿主机内核相同的操作系统;
虚拟机由于有 VMM 的存在,虚拟机之间、虚拟机和宿主机之间隔离性很好。而容器之间公用宿主机的内核,共享系统调用和一些底层的库,隔离性相对较差;
容器比虚拟机明显更轻量级,对宿主机操作系统而言,容器就跟一个进程差不多。因此容器有着更快的启动速度(秒级甚至更快),更高密度的存储和使用(镜像小)、更方便的集群管理等优点。同时由于没有 GuestOS 存在,在容器中运行应用和直接在宿主机上几乎没有性能损失,比虚拟机明显性能上有优势。
云计算和虚拟化差别
对云计算和虚拟化差别的描述,有一句经典的话:虚拟化是云计算构建资源池的一个主要方式。只要这句话你理解透了就知道他俩的关系了。
简单来说,云计算是一个概念,而不是具体技术。虚拟化是一种具体技术,指把硬件资源虚拟化,实现隔离性、可扩展性、安全性、资源可充分利用等特点的产品。
目前云计算,大多是依赖虚拟化,通过把多台服务器实体虚拟化后,构成一个资源池,实现共同计算,共享资源。也就是现在所谓云计算,其实这个词提出来之前,过去的服务器集群就已经实现这些功能了,只不过没有现在那么先进而已。
3.1 各领域代表的产品
云计算架构的开源产品是 OpenStack,OpenStack 是一个由 NASA 和 Rackspace 合作研发并发起的,以 Apache 许可证授权的自由软件和开放源代码项目。
3.2 OpenStack
Openstack 是众多技术的组合体,有涉及网络组件的 Neutron,有涉及 Dashboard 的 Horizon,也有涉及计算资源分配的 Nova。
虚拟化技术只是其中一个涉及到资源池构建的方式。当然你也可以用其它方式构建资源池,比如物理机还有容器。
Openstack 经过几年十几个版本的更迭,已经拥有了 Keystone、Nova、Neutron、Cinder、Glance、Swift、Heat、Ceilometer 等等组件,比较完整的提供了一个云平台应有的各个模块。
3.3 在云计算中,不同层的选型
选取基于虚拟机的虚拟化呢,还是基于容器的虚拟化。早期由于容器技术的不完善,云计算只有虚拟机这一种选择。
随着现在容器技术兴起,基于容器的虚拟化性能更高,交付速度快,方便管理,而且资源利用率高,看起来是比虚拟机更好的方案。但是它现有的两个比较大的缺点(隔离性不够强、操作系统依赖性)让他无法完全替代 VM,对于 SaaS 用户和部分 PaaS 用户而言这两个缺点可能不那么明显。现阶段 Container 和云计算主要结合的场景也是在 SaaS 和 PaaS 中,事实上大多数 SaaS 和 PaaS 服务提供商都使用了容器技术。
但是对于 IaaS 的用户来说,他们租用的是基础设施。上面承载着他们自己运行的系统和服务,隔离性不强意味着安全性和可信性不高。在这种情况下大客户们,肯定是不放心的。同时操作系统依赖性也是限制 Container 在 IaaS 层应用的一个主要问题,也是绝大多数解决方案都是将Container 运行在 VM 上的原因,这样 Container 性能好的优势实际上在云上根本发挥不出来,优点只有启动快了。
蒙牛盒装牛奶可以直接放到微波炉里加热吗?
不可以。 有以下两个原因:1、盒装或袋装牛奶如果连包装一起加热,会使包装盒或包装袋的化学物质渗入牛奶,因此产生不健康的化学毒性。 2、在封闭容器内食物加热产生的热量不容易散发,使容器内压力过高,易引起喷爆事故。 扩展资料加热方法1、旺火加热牛奶适宜用旺火煮,用文火煮牛奶所需的时间较长,牛奶中的维生素等营养物质容易被空气氧化而遭到破坏,从而降低了牛奶的营养价值。 但要注意的是牛奶不宜长时间用高温旺火煮。 2、微波炉加热用微波炉加热,加热时间不宜太久,一般设定中低火,250毫升的加热1分钟左右即可,否则会破坏营养。 但要注意微波炉加热会有温度不均的现象,喝之前记得搅拌一下。 3、隔水加热给牛奶加温最好的方式是隔水加热,也就是将牛奶倒入杯子等容器内,再放入热水中温热,温热时不需要再对水进行加热,还可以根据个人口味调整温度。 参考资料:人民网《盒装纯牛奶可以加热吗 牛奶怎么加热最好》河北医科大学第一医院《这9种食物千万别放进微波炉加热》
水蒸蛋怎么做
主料:鸡蛋三个 调料:一匙盐,香葱两棵,油两匙,蚝油两大匙,熟白芝麻适量。 水蒸蛋的做法: 蒸蛋做法 鸡蛋三个打碗里加一咖啡匙盐充分搅打,瘦肉末约一两,喜欢加香葱的人可用两棵切碎,油两匙(如果是化猪油就只需一匙)蚝油两大匙,熟白芝麻适量。 1、锅置火上放油烧至六成热,倒入肉末加适量盐炒散炒熟,放入蚝油和葱碎(我没放葱)炒出香味起锅装小碗里待用。 2、锅里放入蒸隔架,加水烧沸,蛋汁里加约五十度的热纯净水和油搅匀,放在蒸架上加盖,用中大火蒸。 3、蒸约四分钟时揭一次盖晾十多秒钟,再盖上盖子继续蒸。 4、再蒸约三分钟时用竹筷插入碗中心的蛋里查看,如果还太稀,那就加盖再蒸一分多钟后再查看,直到碗中心底部的蛋凝固到跟蛋面上的程度差不多。 5、将碗取出,把肉末铺在蛋面上,再撒上白芝麻,上桌,开吃。 蒸蛋技巧 关键1:水蒸蛋千万不能放味精 关键2:放温水比较好 关键3:蛋液和温水的比较为1:1~1.5左右 关键4:打好的蛋液最好过滤掉小泡泡,再下过蒸 关键5:水量和水温。 兑蛋液的水要用温水,不能用冷水或热水,冷水蒸出的水蛋不够嫩滑,热水容易把蛋液冲成蛋花,蛋液和温水的比例是1:1,不能拿捏放多少水量,可直接用蛋壳来兑,这样准确率高。 关键6:打蛋技巧。 通常水蛋内会有蜂窝孔,有部分原因是打蛋技巧不佳让蛋液内产生气泡,因此打蛋时应顺一个方向不停地搅打,直至蛋液变得细滑,才下锅清蒸。 关键7:火候。 蒸水蛋一定要用小火慢炖,火头过大,水蛋容易变老。 关键8:可往蛋液里加点水淀粉,会使蒸出的水蛋更加鲜嫩;也可用温牛奶代替温水,让水蛋味道更加鲜美。 关键9:在蒸水蛋的时候,在盛蛋桨的容器上再加一个容器将他盖住,这样蒸出来的水蛋不会起泡.
做包子放多少泡打粉好?
用料面粉400克
猪肉(最好要带点肥肉)
温牛奶190ml
白糖20ml
盐
酵母7ml(酵母稍稍多一点没关系)
葱
糖
蚝油
料酒
香油
生抽
自制素高汤
鲜肉包子的做法
发面: 温牛奶和白糖混合均匀,放入酵母化开,静置5分钟以后,酵母活跃起来
将酵母倒入容器中,加入面粉、盐,先不要揉,先用筷子搅拌成片状
接着下手揉,说是要达到三光,尽量做到面光、盆光、手光,不过我揉出来的面团,从来没有像网上那些高手揉的那么光滑,但是做到手光盆光这应该就够了,面团只要不沾手就行,表面是不是很光滑这个应该不影响发酵
容器有盖子就盖上盖子,不然就用保鲜膜封一下,放在差不多30-30度处发酵,夏天就正好室温,我一般是发一个小时,面团发至原来的1.5倍到2倍大,呈现蜂窝状
把发起来的面团按瘪,再揉面团,主要是为了排气,揉光滑了放着,这时候馅儿也做好了,接下来就准备包包子了
猪肉剁成馅儿,也可放入料理机中绞,葱切葱花,将葱花放入肉馅中,放生抽(根据个人口味)、盐、少许糖(可以提味儿)、少许蚝油、料酒、芝麻油
用筷子朝一个方向不停搅拌,期间加入适量素高汤,搅拌上劲。因为这次加了些素高汤,馅儿比较湿的,趁面还在发,所以我将馅儿放冰箱半个小时
包包子:将面团揉成长条。切成大小差不多的剂子,大小随便,主要就是你想要包子的大小,擀皮儿,中间厚,四周薄,尽量圆,均匀一些,四周做到尽量薄一些,这个关系到包子褶子及收口好不好看
取馅儿放到皮中间,新手可以少放点儿
一个褶子一个褶子的慢慢捏,褶子个数看个人习惯
收口。有两种,一个是碗口形,还有一种是是奶嘴儿形,我今天这个是碗口形的
蒸笼垫上蒸笼垫,将包好的包子排好,包子与包子中间留些空隙,盖上盖子,放置20分钟左右,二次发酵
冷水起蒸,15到20分钟,关火,2、3分钟之后打开即可。蒸第二锅的时候一定要把第一锅的热水倒掉换冷水蒸
发表评论