架构杂谈《七》

容器VS虚拟机

一、什么是虚拟机

  虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

  虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。

  流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机。

 

  以上内容来自 百度百科

  总结下:

  虚拟机用于为用户提供一个完整的系统镜像,常见的虚拟机有VMware、Virtual Box、KVM等。虚拟机技术可以为每个用户分配虚拟化后的CPU、内存和I/O等设备资源,但是为了能运行应用程序,除了需要部署应用程序本身及其依赖外,还需要安装整个操作系统和驱动。

二、什么是容器

  容器是一种轻量级、可移植的为应用程序提供了隔离的运行空间。每个容器内都包含一个独享的完整用户环境,并且一个容器内的环境变动不会影响其他容器的运行环境,可以使应用程序在几乎任何地方以相同的方式运行(如 在开发人员自己的本子上创建并测试好的容器无须任何修改就能在生产环境中的虚拟机、物理服务器或者云上运行)

  在技术方面,容器是通过一系列系统级别的机制来实现的(如:通过Linux Namespaces进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件;通过cgroups 来确定每个容器可以利用多少资源),容器之间通过共享同一个系统内核来提升内存的使用率。

三、容器与虚拟机的区别

  容器是对应用层的抽象,它把应用程序的代码和相关依赖打包在一起执行,多个容器可以在同一台物理机上互不影响地独立运行,并且共享操作系统内核。启动快、占用空间少。而虚拟机是物理硬件层上的虚拟化,系统管理程序使虚拟机能够运行在同一台物理机上,但是每台虚拟机必须包括一整套操作系统、应用程序和各种依赖库等。启动慢、占用空间大。

640?wx_fmt=png

四、容器主要解决的问题 

  容器有轻量级、可隔离性和可移植等特性,所以应用程序的容器化使得应用程序具备了超强的可移植性。
  在 Web 1.0 时代,信息是单向的,交互只在人与网络之间进行,大多人上网是为了看新闻,因此应用程序相对简单,一般采用 LAMP。( Linux-Apache-MySQL-PHP )的三层架构(Presentation 、 Application 、 Data ),只需要部署到有限的几台物理服务器上;在如今的 Web2.0甚至 Web 3.0 时代,互联网连接一切,包括连接人与人、人与物、物与物,系统架构较 10 年前己经变得非常复杂,开发人员通常使用多种服务构建和组装应用,比如分布式消息队列 Kafka、分布式缓存 Redis、分布式文件系统 HDFS 或 Spring Cloud 或 Azure Service Fabric等。复杂应用系统的相应部署环境也变得非常复杂,可能会部署到不同的环境中,比如开发服务器、测试服务器和生产服务器,服务器也可能是虚拟服务器、私有云或公有云等,如下图:

640?wx_fmt=png

  因为存在各种服务和环境,所以开发人员在编写代码时需要考虑不同的运行环境,运维人员则需要为不同的服务和平台进行各种配置,对于他们双方来说,这些都是艰巨的任务,那么如何让每种服务在所有的部署环境中顺利运行呢?容器就很好地帮我们解决了这个难题。
  我们先联想下几十年前的运输行业,在每一次运输中,货主与承运方都会担心货物因种类不同而受损,比如易碎的东西被错误地压在了最下面。另 一方面,在运输过程中需要使用不同的交通工具,比如货物先被装上卡车运到码头,再被装上船,到岸后又被卸下船,再被装上火车 ,到达目的地再被卸下 。其中的大部分时间都花费在对不同物品的装货、卸货上,而且搬上搬下还容易损坏物品 。幸运的是,集装箱的发明解决了这个难题 :任何货物,不管是床垫还是机器,都被放在各自的集装箱中,集装箱在整个运输过程中都是密封的,只有到达目的地才被打开。标准集装箱可以被高效地装卸、重叠和长途运输。现代化的起重机可以方便地在卡车、轮船和火车之间移动集装箱,集装箱被誉为运输业与世界贸易的最重要的发明。
  Docker 将集装箱思想运用到对软件的打包上,为代码提供了 一个基于容器的标准化运输系统,可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器,可以运行在几乎所有操作系统上。

五、Docker的优势

  1)、Docker 在开发方面的优势

  每个人的开发环境都不一样,由于在开发过程中会不断地切换项目工程,所以每次都要不断的重复修改和设置开发环境,而Docker可以使这一过程变得自动化,让开发人员更加关注软件开发(比如:开发人员使用Docker后就不需要单独安装和配置数据库,也不需要担心不同版本的冲突问题),容器化的应用更容易构建、分享和运行,如果团队有新的同事加入,也不需要花费好几个小时讲解如何搭建环境及安装软件和相关的配置,只需要花费几分钟安装Docker就能编译和调试程序了。

  2)、Docker 在运维方面的优势

  Docker 使软件的发布更加高效,不管是更新版本还是修复 Bug,都能快速发布完成,并且能瞬间伸缩扩展。Docker 能够实现自动化的编译、打包、测试和部署,运维人员不再需要WiKi 、 README 、 CleckList 文档,因为 Docker 在开发、测试和生产环境中都使用了相同的镜像,所以更新时不会出现不一致的问题。

  3)、Docker 在容器和虚拟机方面的优势

  Docker 使容器和虚拟机相结合( Docker Machine 实现了容器和虚拟机的有效结合),使部署和管理应用变得更加灵活 。我们可以在虚拟机中启动一个容器,这里的虚拟机并不是由 Docker控制的,而是通过现有的虚拟化管理设施来控制的 。一旦系统实例启动,就可以通过安装 Docker来运行容器并进行其他特殊设置。同时由于不同的容器运行在不同的虚拟机上,容器之间也能有很好的隔离。

640?wx_fmt=png

说明:

  1、参考书籍:《分布式服务架构:原理、设计与实战》

  2、如有不合适的地方请反馈。综合后更改。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#3027. [Ceoi2004]Sweet 生成函数 + 组合数学

传送门 文章目录题意:思路:题意: 思路: 这个题显然可以容斥来写,刚学生成函数就来水一下。 对于每一堆iii我们写出其生成函数Fi(x)∑k0mi(1xx2...xmi)1−x1mi1−xF_i(x)\sum_{k0}^{m_i}(1xx^2...x^{m_i})\frac{1-x^{1…

坚持一个好习惯该有多难?

引子这段时间以来我都在坚持写博客,但是更新得比较少,每周才能一更,不过好歹也勉勉强强也能坚持下去了。我们社区还组建了一个博客互勉群,不过除了个别人能经常打卡外,大部分人都是混个脸熟,凑个热闹。在这…

#3771. Triple 生成函数 + FFT + 容斥

传送门 文章目录题意:思路:题意: 思路: 注意到这个题是求若干个数的组合数,(a,b),(b,a)(a,b),(b,a)(a,b),(b,a)视为一种方案,所以我们考虑生成一个普通型生成函数。 考虑到每个数只能选一次,但…

gRPC in ASP.NET Core 3.0 -- 前言

现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的。而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识:需要使用某种API数据格式错误的模式负载均衡。。。现在最流行的一种API风格可能是REST,…

P3246 [HNOI2016]序列 莫队 + ST表 + 单调栈

传送门 文章目录题意:思路:Update题意: 思路: 比较神奇的一个题,这里先介绍莫队的离线解法。 不难发现,用莫队来做最大的难点就是在进行区间移动的时候如何快速计算贡献。 比如[l,r]−>[l,r1][l,r]->…

WPF 渲染原理

对于开发者来说,WPF 中最主要的知识点就是渲染,因为 WPF 是一个界面框架。想用一篇博客就能告诉大家完整的 WPF 渲染原理是不可能的。本文向大家介绍从开发者执行绘图指令到在屏幕显示的过程。本文是从一个全局的角度来看渲染的过程,在本文之…

HDU - 6989 Didn‘t I Say to Make My Abilities Average in the Next Life?! 莫队/单调栈 + 线段树/ST表在线

传送门 文章目录题意:思路:题意: 思路: 考虑将贡献分开来算,先计算最大值,再算个最小值,之后答案就是((maxmin)/2)/(len∗(len1)/2)((maxmin)/2)/(len*(len1)/2)((maxmin)/2)/(len∗(len1)/2)。…

ASP.NET Core 中的管道机制

首先,很感谢在上篇文章 C# 管道式编程 中给我有小额捐助和点赞的朋友们,感谢你们的支持与肯定。希望我的每一次分享都能让彼此获得一些收获,当然如果我有些地方叙述的不正确或不当,还请不客气的指出。好了,下面进入正文…

微软宣布SQL Server 2019免费支持Java

在 2018 年 9 月的时候,微软就宣布与领先的 Java 开源贡献者和发行商 Azul Systems 建立新的合作伙伴关系。这一关系允许所有 Azure 客户在微软和 Azul 联合提供的支持下,免费使用 Azul 的 Zulu for Azure-Enterprise Java 发行版 。最近,微软…

P4231 三步必杀 二次差分

传送门 文章目录题意:思路:题意: 思路: 考虑给[2,6][2,6][2,6]加上s2,e10s2,e10s2,e10的等差数列,变成2,4,6,8,102,4,6,8,102,4,6,8,10,考虑差分数组2,2,2,2,2,−102,2,2,2,2,-102,2,2,2,2,−10&#xff0…

创新的迷思——2019 Microsoft Hackathon 苏州站回顾

每年,微软在7月份都会在内部举办一次黑客松(Hachathon)活动,所有的员工,包括实习生都可以自由组队参赛,在为期一周的时间内完成构想、设计和开发的一系列过程,并且在最后一天进行项目路演和评选…

P4062 [Code+#1]Yazid 的新生舞会 树状数组维护三阶差分

传送门 文章目录题意:思路:题意: 给你一个序列aaa,让你求有多少个子区间满足存在一个数是这个区间的绝对众数,绝对众数指该数在区间内出现的次数严格大于r−l12\frac{r-l1}{2}2r−l1​。 n≤5e5,0≤ai≤n−1n\le5e5,0…

一句话概括4本管理著作

之前618活动的时候买了不少书,最近一段时间集中看了四本管理相关的书籍,收获颇丰。在这里分享给大家。如果你不是管理者也没关系,可以换个视角来看看管理者眼中的世界,毕竟,“赤兔马”也需要让“伯乐”看到才行嘛。虽然…

[译].Net中的内存-什么分配在了哪里

原文链接:https://jonskeet.uk/csharp/memory.html人们在理解值类型和引用类型之间的差异时因为“值类型在栈上分配,引用类型在堆上分配”这句话造成了很多混乱。这完全是不对的,本文试图澄清这个问题。变量中有什么?理解.NET中内…

上车时机已到--.NETCore是适应时代发展的雄鹰利剑

要起飞了.NET Core 3.0-prevew7:https://dotnet.microsoft.com/download/dotnet-core/3.0随着 .NET Core 3.0-prevew7 的发布,开源社区的一支重要力量重要即将起飞;官方指出,该预览版为可能为最终版本,在很长一段时间内…

HDU - 7028 Decomposition 无向完全图构造欧拉回路

传送门 文章目录题意:思路:题意: 给你一张无向完全图,让你构造kkk个长度分别为lil_ili​的路径,这些路径不相交,且∑lin∗(n−1)2\sum l_i\frac{n*(n-1)}{2}∑li​2n∗(n−1)​。 n≤1000,nmod21n\le1000,…

「Azure」数据分析师有理由爱Azure之二-立即申请帐号开始学习之旅

目前关于Azure的学习资料不多,除了官方的文档和Microsoft Learn频道外,几乎没有什么中文性资料可学习,就算有,也是以IT的思维方式来展开介绍,对没有IT背景的数据分析师来说,非常难于适应。本篇给大家带来一…

矩阵快速幂的最简单用法

矩阵快速幂 链接:https://ac.nowcoder.com/acm/contest/1168/K 来源:牛客网 题目描述 这个勇者明明超强却过分慎重,勇者龙宫院圣哉与n名冒险者一起去讨伐神秘魔物,龙宫院圣哉十分谨慎,他只会在最后一刻出手&#xff…

DevOps案例研究|史上最能“拜客户教”的公司,是如何做到持续交付的?(第1趴)...

内容来源:DevOps案例深度研究 –Amazon持续交付之道战队(本文只展示部分PPT及研究成果,更多细节请关注案例分享会,及本公众号。)本案例内容贡献者:单冰 (Topic Leader)、 赵栋、梁兴龙、李杰、毛艳清、牛恒…

P2261 [CQOI2007]余数求和 整除分块

传送门 文章目录题意:思路:题意: n,k≤1e9n,k\le1e9n,k≤1e9 思路: 考虑转换式子,∑i1nkmodi∑i1n(k−⌊ki⌋∗i)n∗k−∑i1n⌊ki⌋∗i\sum_{i1}^{n}k\bmod i\sum_{i1}^n(k-\left \lfloor \frac{k}{i} \right \rfloo…