首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-22 13:12
已编辑
美团_测试开发
第一次被同事气笑了
原本说好的一起合作,结果在第二天就要产出结果的时候发现对方负责的部分一点都没做,然后你是这个项目的主要负责人,出了问题你背锅,你会怎么做?事情缘由因为我是做测试的平时需要测试一些需求,对于一些大的需求可能需要测试一两周,但是互联网公司需要的是快速交付,很难说服产品你测试需要花这么久。这里可以简单给大家介绍一下,互联网之所以加班内卷严重很重要的一个因素就是需要快速的迭代产品,快速的抢占市场,积累用户往往是比你慢慢研发打磨细节要更好。比如A公司花了半年做出来一个产品,然后上线虽然接收到一些差评但是抢占了大量的市场后续慢慢优化这些差评,B公司花了一两年做和A公司同样的产品,虽然有些功能比A更好但是人...
烤点老白薯:
同事做的对 主要负责人是你凭啥让我干 想给我派活儿 让领导转达
你最近因为什么迷茫?
点赞
评论
收藏
分享
01-23 12:03
三一重能_C++研发工程师(准入职员工)
网易互娱内推,网易互娱内推码
网易互娱一面游戏用户运营岗,一面是业务面,少量有关简历的问题。自我介绍2-3分钟实习经历+收获,校园科研经历+获得的能力,体现出特色实习中有什么样的收获?同类型的问题有:实习中的挑战,最大的感触等,最后的落脚点可以落在通过这些挑战获得了什么的感触等对这个岗位的认识从用户运营的对象,手段,目的等方面入手,形成体系,回答会更有逻辑对回答到的几个流程有什么指标衡量?拉新:新增用户数。促活:日/周/月活跃用户、DAOT = 日总计在线时长/日活跃用户数。这是衡量游戏粘性的重要指标。留存:次日留存率,七日留存率等付费:付费渗透率等最近经常玩的游戏开始进入正题了,一定是特别了解或者提前了解过的游戏,网易游...
点赞
评论
收藏
分享
2025-12-30 08:34
中国矿业大学 行业研究
关于我的网友认识我领导这件事
狸猫换offer:
神通广大的互联网
点赞
评论
收藏
分享
2025-12-31 12:13
门头沟学院 产品经理
脑抽给面试官唱了一首英文歌
面试那会儿明明状态在线,跟面试官的问答都顺得很,甚至有个点子还被当场夸了。就一个小细节没捋明白,面试官还特意耐着性子给我讲了遍正确流程。结果聊到外贸岗看重的英语能力,面试官让我用英文做自我介绍,我当时脑子一抽,脱口就说要不唱首英文歌吧,然后就哼了几句 We don't talk anymore… 面试官当场被逗乐了,还说我挺有意思,期待以后共事。我当时美得都觉得稳了,结果当天拒信就砸脸上了…朋友帮我复盘,说十有八九栽在英文介绍这步了,毕竟外贸岗对语言能力要求是真严格。这公司能不能再给个机会啊… 下次我绝对不犯傻唱歌了,老老实实做自我介绍还不行嘛!
专业码bug百年:
笑得不行了,跟你当朋友一定很有趣吧。
面试官问过你最刁钻的问题...
点赞
评论
收藏
分享
01-21 17:26
江西工业贸易职业技术学院 Java
专科工作一年了,写一些想说的话,做个记录,也为我之前的学习画上句号!
本人24年大专生,24年毕业的那一年真的压力很大,专科加上无经验,从江西出来跑到广州深圳这边找工作,最开始的时候几个平台投了一千多份简历了,连一个技术岗的面试都没有。而且最开始的几个面试全都是那些培训机构,说是先培训三个月,然后包你就业,每个月从你工资里扣多少钱,培训费两万。和姐夫沟通,姐夫说这些不靠谱,我也不想啥都没干就负债2万,就这样找工作面试了三个多月。后面我感觉不行,想摆烂直接进厂工作得了,被姐夫拒绝了,他说如果我现在就进厂,厂里面干几年出来,之前的学习就都白费了。因为我到广州是蹭姐姐姐夫的租房,她们也是和同事合租,我睡沙发,我感觉我一直趴在家里吸血,虽然家里人都很好,没说过我什么,但...
我的求职思考
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
实习产出怎么包装
2589
2
...
数据库出现慢查询怎么定位?
1628
3
...
29届Java后端
1376
4
...
滴滴lastweek,知无不言
1333
5
...
杭州有赞
942
6
...
麻了,跟不上天赋哥
929
7
...
考研失败春招求助
765
8
...
校招黑话 萌新扫盲必备
765
9
...
学校教的就业咋一点用不上
756
10
...
12.30丰疆智能测试面经(base武汉)
748
创作者周榜
更多
正在热议
更多
#
除了Java,最推荐学什么技术?
#
1743次浏览
55人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
2133次浏览
71人参与
#
你的landing期是如何度过的?
#
2195次浏览
42人参与
#
滴滴求职进展汇总
#
299096次浏览
2445人参与
#
秋招报数:你投了多少家公司?
#
148370次浏览
946人参与
#
机械制造面试点评
#
84028次浏览
471人参与
#
你觉得早上几点上班合适?
#
94354次浏览
353人参与
#
机械人与华为的爱恨情仇
#
147228次浏览
1030人参与
#
机械只有转码才有出路吗?
#
159419次浏览
1653人参与
#
我和mentor的爱恨情仇
#
102902次浏览
925人参与
#
你觉得mentor喜欢什么样的实习生
#
45513次浏览
989人参与
#
如何提高实习转正率?
#
80885次浏览
488人参与
#
实习期间如何提升留用概率?
#
231095次浏览
1788人参与
#
你觉得什么岗位会被AI替代
#
35309次浏览
236人参与
#
聊聊你的被动加班经历
#
8518次浏览
101人参与
#
秋招提前批,你开始投了吗
#
705856次浏览
8437人参与
#
面试常问题系列
#
268825次浏览
4687人参与
#
京东求职进展汇总
#
1138673次浏览
8519人参与
#
牛客十周岁生日快乐
#
207851次浏览
1937人参与
#
为了秋招你都做了哪些准备?
#
31502次浏览
532人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务