首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客260542070号
中国地质大学(北京) C++
关注
已关注
取消关注
码住
@蒋豆芽:
2. 云计算的落地实践(上)
本章讲解知识点云计算如何落地实践物理机与虚拟机容器虚拟技术Docker 横空出世PaaS 时代来临业界实践<br>1. 云计算如何落地实践我们上一节讲了有关云计算的概念,那么我们思考一下,云计算在现实中是如何落地实践的呢?如今云计算落地实践中,已经形成了一套有效的体系。一家公司的传统业务如数据库、计算引擎、前端等,这样业务要上云,那么首先我们需要一个 IaaS,这个 IaaS 可以租用大公司已经搭建好的框架,也可以自己搭建 IaaS,如今自己搭建 IaaS 有三种主流工具:OpenStack、VmWare 和 RedHat,这三种方式各有千秋,也正在激烈竞争,群雄逐鹿谁能笑到最后,可以拭目以待。而 OpenStack 在个人自学与公司实践中是最常见的,我们简单介绍一下 OpenStack:OpenStack 是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。OpenStack 为私有云和公有云提供可扩展的弹性的云计算服务。OpenStack 由多个核心项目(即 OpenStack 服务)组成:计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置 CPU、内存等信息规格。对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为 Glance 提供镜像存储,为 Cinder 提供卷备份服务。镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(ISO、QCOW2、Raw、VMDK),有创建镜像、上传镜像、删除镜像、编辑镜像基本信息的功能。身份服务(Identity Service):Keystone。为 OpenStack 其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为 OpenStack 其他服务提供网络连接服务。为用户提供接口,可以定义 Network、Subnet、Router,配置 DHCP、DNS、VLAN。块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。数据库服务(Database Service):Trove。为用户在 OpenStack 的环境提供可扩展和可靠的关系和非关系数据库引擎服务。当我们有了 OpenStack,将其安装到集群中,集群是由多台物理服务器组成,OpenStack 将集群的硬件资源,如 CPU、内存、磁盘、网络虚拟化扔进资源池里提供给客户端使用,OpenStack 管理这些资源的申请、释放等一系列生命周期。OpenStack 各项目间的主要关系:这样我们就打造出一个 IaaS 层了。接下来,公司的业务就能在 IaaS 层跑起来了吗?答案是否定的。我们要利用 IaaS 层的资源创建出虚拟机来,虚拟机就像一台物理机一样有操作系统,也可以在上面安装应用。虚拟机的实现方式是在物理计算机上运行一个虚拟化软件层,称为虚拟机管理器(VMM),也称为 hypervisor。VMM 使得多个虚拟机实例可以在同一台物理计算机上运行,同时保证它们之间互相隔离,以及对物理计算机资源的适当分配和管理。那么在这些虚拟机上跑应用,这样有什么好处呢?资源隔离:不同的业务可以在不同的虚拟机上运行,互不干扰,达到资源隔离。动态伸缩:当我们不需要业务了,直接删除虚拟机,释放资源即可,十分方便。需要多少资源,就创建对应资源的虚拟机,动态伸缩性好。配置灵活:一台物理机上可以运行多个虚拟机,多个虚拟机可以安装不同的操作系统,如 Linux、macos、Ubuntu。易于迁移,如果物理主机 A 出现故障,A 上面的虚拟机可以迁移到物理主机 B 上去,这样不影响业务。当我们有了虚拟机后,我们就可以在虚机上安装相关应用了。你会发现,在虚机上安装相关应用这一步和我们在物理机上安装应用好像没什么区别,你的感觉是对的。这一步甚至根本不涉及到 PaaS 层,不要急,请跟着我的思路慢慢来。<br>2. 物理机与虚拟机我们安装一个软件是个什么流程呢?来一起对比一下物理机部署和虚拟机部署:先说物理机:在一台物理服务器上,我们需要安装操作系统,然后布置应用,如 redis,mysql,nginx,有以下几个缺点:部署慢成本高资源浪费难以迁移和扩展可能会被限定硬件厂商由于物理机的诸多问题,后来出现了虚拟机:一个物理机上可以部署多个虚拟机,一个虚拟机上运行一个 app。但是虚拟机还是有局限性,我们依然要在虚拟机上安装应用,这一步花费的时间和物理机没有差别。不仅如此,如果一个虚拟机上运行一个 app,这个 app 依赖的配置和 SDK 可能很少,但是我们却要为这个 app 创建出一个完整的操作系统来,这也太浪费资源了,这样的后果是物理主机创建不了多少个虚拟机就将资源耗尽。<br>3. 容器虚拟技术物理机和虚拟机都有局限,那么有人就思考了,安装应用需要依赖操作系统,一个操作系统可以安装多个应用。如果我将应用依赖的操作系统抽取出来,只跑一个应用,如 redis 和 mysql 两个数据库,对于操作系统的配置要求、SDK 依赖不一样,那么给 redis 抽取一个操作系统只包含 redis 独有的配置与 SDK 依赖,而给 mysql 抽取一个操作系统只包含 mysql 独有的配置与 SDK 依赖,那么我们就又实现了一层资源隔离,而且还节约资源了,因为不需要为一个 app 创建出完整的操作系统来。这就是容器虚拟技术的设想。app 就像运行在一个容器里面一样。你说会,这有啥用?仔细一思考,除了资源隔离和节约资源外确实没有太大进步。但是当结合 Union File System(联合文件系统)技术后,容器虚拟技术再也无可阻挡。在联合文件系统中,多个文件系统被按照特定的顺序进行层次化合并,形成一个虚拟的文件系统层次结构。当用户在这个虚拟的文件系统中访问文件或目录时,联合文件系统会根据预先设定的规则从各个底层文件系统中选择合适的文件或目录进行返回。在联合文件系统中,各个底层文件系统的文件和目录并不会被复制到新的文件系统中,而是通过符号链接或者其他方式进行引用,从而实现了文件系统的合并。关于 Union File System(联合文件系统)技术会在以后章节详细展开,这里不表。容器虚拟技术的好处3.1. 节省资源容器相对于虚拟机,容器只需要具备 app 运行的配置和 SDK 即可,不需要创建完整的操作系统,使用的资源大大减少。3.2. 资源隔离比如一个虚拟机,跑一个 app,如 redis,没什么问题。但是我想跑不同版本的 redis,那么配置是不是可能冲突,环境是不是受到了污染?而如果换用容器技术,一个容器就是一个小操作系统,一个虚拟机上可以跑多个容器,那么轻易实现了跑不同版本的 redis,而且还资源隔离,删除容器即卸载了对应版本,是不是非常方便。3.3. 安装时间大大缩短和灵活移植一个容器运行了 redis,对应的系统配置和 SDK 依赖都是一样的,那么如果我能将这个容器导出成文件格式,然后再另一台虚拟机上导入运行起来,这样是不是就节省了安装时间呢?没错,容器虚拟技术结合 Union File System(联合文件系统)技术就是这么做的。这样带来的效率提升简直无可言喻。开发以容器虚拟技术开发应用后,将其打包导出,直接交给测试,测试在自己的环境上导入并运行,直接就可以完成测试,大大缩短了应用开发周期。而测试人员完成应用测试后,将其导出,直接就可以上线工业环境,缩短了业务上线周期。甚至将文件开源,建立容器镜像库,全世界的人都可以使用,安装应用只需要下载对应镜像即可快速安装,大大减少了学习成本。<br>4. Docker 横空出世其中容器虚拟化技术以 Docker 为首,Docker 是基于 Go 语言实现的云开源项目,Docker 的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的 APP(可以是一个 WEB 应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。4.1 虚拟机技术与容器虚拟化技术对比虚拟机技术需要在宿主机上安装虚拟化软件,然后在虚拟化软件上安装操作系统和应用程序。每个虚拟机都有自己的操作系统内核和资源管理器,因此虚拟机可以运行不同版本的操作系统和应用程序。容器虚拟化技术则不需要虚拟化软件,而是在宿主机的操作系统上运行,共享主机的操作系统内核。每个容器都有自己的用户空间,但共享主机的内核和系统资源。虚拟机技术提供了更高的隔离性和安全性,因为每个虚拟机都运行在独立的环境中,并且可以配置不同的安全策略和网络设置。容器虚拟化技术虽然也提供了一定的隔离性,但容器之间仍然共享主机的操作系统内核和系统资源,因此容器之间可能存在潜在的安全风险。虚拟机技术需要更多的资源,例如内存和处理器,因为每个虚拟机都需要运行一个完整的操作系统内核和资源管理器。容器虚拟化技术则可以共享主机的操作系统内核和系统资源,因此需要更少的资源,并且可以更高效地运行。虚拟机技术通常需要更长的启动时间,因为需要启动完整的操作系统和资源管理器。容器虚拟化技术启动时间更短,因为只需要启动容器的用户空间。<br>5. PaaS 时代来临容器虚拟化技术大行其道后,传统业务全部容器化,享受到容器化技术的便捷,同时问题也随之而来,当容器越来越多时,容器的管理、编排成了大难题。容器的生命周期如何管理,容器故障如何监控,相互有依赖关系的容器如何部署等等问题。人们发现,需要借助一个平台来管理我们的容器,PaaS 时代随之来临。PaaS 平台其中以 Kubernetes 为代表。Kubernetes,简称 K8s,是一个开源的、用于管理云平台中多个主机上的容器化的应用平台,提供了应用部署,规划,更新,维护的一种机制。Kubernetes 可以自动化应用程序的部署、扩展和管理,并提供了一种通用的方式来管理容器化应用程序。它支持多种容器运行时,包括 Docker,可以运行在公共云、私有云和混合云环境中。<br>6. 业界实践搭建 IaaS 后,用于创建虚拟机,在虚拟机上部署 PaaS,用于管理同时部署在虚拟机上的容器,这就是业界普遍的云计算实践。当然我们也可以直接在物理服务器上构建 PaaS 集群,不需要再创建虚拟机。这种方式称为裸机部署模式,这是未来云计算发展的另一种趋势,好处就在于除去了虚拟机这一层,平台性能可以提升 30%。<br>面试题1. 容器技术的优势⭐⭐资源利用率高:容器使用的资源非常少,容器之间可以共享操作系统的内核,避免了多个虚拟机之间资源浪费和冗余,因此相比传统虚拟化技术可以更好地利用物理服务器的资源。快速启动和停止:由于容器本身就是轻量级的进程,因此容器可以非常快速地启动和停止。这使得容器技术非常适合用于动态伸缩和弹性扩展等场景。隔离性强:容器之间相互隔离,不会相互干扰,保证了应用程序的稳定性和安全性。同时,容器技术提供了多种隔离机制,例如网络隔离、文件系统隔离、进程隔离等。灵活性强:容器技术可以跨平台使用,支持多种操作系统和硬件架构,同时容器技术可以方便地将应用程序打包和分发,提高了应用程序的可移植性和可重复性。管理和部署简单:容器技术可以很方便地实现应用程序的管理和部署,容器镜像可以轻松地进行版本控制和更新,同时容器编排工具可以实现自动化部署和运维。2. 虚拟机技术与容器虚拟化技术对比⭐⭐虚拟机技术需要在宿主机上安装虚拟化软件,然后在虚拟化软件上安装操作系统和应用程序。每个虚拟机都有自己的操作系统内核和资源管理器,因此虚拟机可以运行不同版本的操作系统和应用程序。容器虚拟化技术则不需要虚拟化软件,而是在宿主机的操作系统上运行,共享主机的操作系统内核。每个容器都有自己的用户空间,但共享主机的内核和系统资源。虚拟机技术提供了更高的隔离性和安全性,因为每个虚拟机都运行在独立的环境中,并且可以配置不同的安全策略和网络设置。容器虚拟化技术虽然也提供了一定的隔离性,但容器之间仍然共享主机的操作系统内核和系统资源,因此容器之间可能存在潜在的安全风险。虚拟机技术需要更多的资源,例如内存和处理器,因为每个虚拟机都需要运行一个完整的操作系统内核和资源管理器。容器虚拟化技术则可以共享主机的操作系统内核和系统资源,因此需要更少的资源,并且可以更高效地运行。虚拟机技术通常需要更长的启动时间,因为需要启动完整的操作系统和资源管理器。容器虚拟化技术启动时间更短,因为只需要启动容器的用户空间。
点赞 8
评论 6
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-15 21:39
汤臣倍健_市场倍优生(准入职员工)
汤臣倍健内推
市场岗面经第一轮 3个人一组 面试官问问题挨个回答1.自我介绍2.简历深挖,对市场策略的内容问的非常细,问了很多候选人是如何理解xx市场的问题3.如果让你在闲鱼卖汤臣的产品,怎么写文案4.最近印象比较深的消费品5.对汤臣倍健的品牌印象Kaer的回答建议:✅国民di 1 保健品品牌核心岗位,高端面试局。✅第二题非常考验候选人的营销功底和火候。对xx市场的理解除了源于日常积累,还需要临场的分析和判断,依据熟练的用户洞察方法论、对市场策略的深度思考,需要大量实践积累。✅3 4 题非常贴近市场,不能说我印象深的消费品是xxx饮料,因为口味很特别、包装很好看就没了,这种回答绝对过不了。现在市场上什么产品...
汤臣倍健二面22人在聊
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-16 12:23
被腾讯耍了
昨天通知两天后面试,今天hr打电话说由于架构调整,岗位取消了会释放我的简历,其他部门需要会捞...
投递腾讯等公司7个岗位
点赞
评论
收藏
分享
06-21 13:32
已编辑
门头沟学院 前端工程师
欢迎来锐评简历
除了人身攻击,学历歧视,尽可能说出主包各种不足。
点赞
评论
收藏
分享
07-15 22:19
嘉士伯_运营管理_HR
为什么建议看看外企
不知不觉已经十一月份了,国庆回来秋招就算真的进入中后期了,基本就是考选调,考体制内了,私企最后能投的一波就是十月上旬了,现在投着,前面大佬释放hc 大家还有一点机会1.不喜欢你工作太卷!(俺是卷心菜,虽卷但菜)外企非常严格地遵循无996,955工作制的同时实现WLB(work life balance),即即工作生活平衡,到点就可以走人~如果怕堵车或者有其他事情(比如不太舒服、有急事)都可以提前回去,部分外企每周还有一天或两天居家办公,嘿嘿~2.不喜欢你太给自己设限请大声说:我们都有无限可能不同于国企对应届生身份卡的比较严格,外企尤其往届生友好,毕业两年内还保有应届生身份的姐妹都可以去投!!对...
投递嘉士伯等公司7个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批一面
1.2W
2
...
我曾经以为自己熬过了三阶段已经无敌,但现在却见证了逆天的第四阶段
5303
3
...
滴滴提前批面经
4865
4
...
回忆录:后端鼠鼠苦苦哀求日常实习
4441
5
...
天呐,公司怎么这样对我!!!
3592
6
...
从中山大学到中兴 SSP:我的秋招打怪升级之路
3365
7
...
如何平衡暑期实习与秋招
3253
8
...
实习,你就这么偷
3104
9
...
大三双非水产专业上岸阿里后端(一)
2780
10
...
关于牛土兵教育割韭菜的事实
2283
创作者周榜
更多
正在热议
更多
#
除了主业以外,你还有哪些其他收入?
#
1204次浏览
34人参与
#
实习如何「偷」产出?
#
5781次浏览
84人参与
#
风评不好的公司,你会去吗?
#
38736次浏览
252人参与
#
职场新人体验
#
5915次浏览
77人参与
#
实习打杂,要跑路吗
#
3537次浏览
60人参与
#
校园里的破防时刻
#
2115次浏览
37人参与
#
设计人如何选offer
#
126602次浏览
746人参与
#
第一份工作应该选高薪还是热爱?
#
74090次浏览
718人参与
#
学历贬值真的很严重吗?
#
26887次浏览
184人参与
#
你觉得早上几点上班合适?
#
73932次浏览
308人参与
#
为什么那么多公司毁约
#
180506次浏览
1337人参与
#
你觉得现在还能进互联网吗?
#
15838次浏览
178人参与
#
双非能在秋招上岸吗?
#
223585次浏览
1182人参与
#
秋招签约后的心态变化
#
84378次浏览
824人参与
#
打工人的工作餐日常
#
55357次浏览
438人参与
#
外包能不能当跳板?
#
38173次浏览
229人参与
#
一人推荐一个值得去的通信/硬件公司
#
187477次浏览
1864人参与
#
考研对你找工作产生了哪些影响?
#
34178次浏览
213人参与
#
不考虑薪资和职业,你最想做什么工作呢?
#
93794次浏览
693人参与
#
假如你的老板掉河里,你的工作能为他做什么
#
31401次浏览
381人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务