戳蓝字“CSDN云计算”关注我们哦!

作者 | Frank Brown

来源 | RancherLabs

介  绍

容器已迅速成为现代数据中心的必要组成部分。容器可以构建在各类操作系统中,那么企业该如何选择最合适的操作系统来运行自己的容器?

在容器部署时,研发的负责人需要知道操作系统的哪些特性和功能对于正在发布的应用程序至关重要,以及是否存在需要额外考虑的其他因素(如可管理性和配置灵活性),不同企业的情况与需求不同,选择自然也不尽相同。

不同的操作系统,如何在特性和基本功能方面进行比较?这些差异如何影响它们支持应用程序的方式?这些都是我们必须考量的重要问题。本文中我们将比较三类具有代表性的操作系统:

  • 传统的全功能操作系统

  • 通用的精简操作系统

  • 专用于容器的操作系统

在每个类别中,我们都会选择两个代表性的产品,这些产品能代表这一大类中的其他全产品或发行版。

通过本文,大家将能更清楚地了解不同操作系统类型之间的差异。IT负责人们也将更好地了解到,为什么开发人员可以为容器化应用程序选择一个操作系统而不是另一个,以及为什么他们可能支持或质疑这些选择。

全功能操作系统

“全功能操作系统”是什么意思?为什么在容器部署的情况下,完整功能会很重要?本节将介绍为什么在传统服务器部署中使用的操作系统,也可能是为容器平台选择操作系统时的最佳答案。

首先要知道的是,这类操作系统的功能无疑是最齐全的。如果某个应用程序需要某个特定的特性或功能,全功能操作系统或许都能满足它。不过这种“齐全”也是有一定代价的:在存储、内存和CPU资源方面,这类操作系统对系统的要求最高。同时,这些功能还会增加操作系统的攻击面,为潜在的攻击者提供更多的角落和缝隙进行攻击。不论是价格成本还是安全风险,如果操作系统的这些功能都是应用程序需要的,那么这些成本也就很容易承担了;但如果只需要少量功能,相较之下性价比就略低。

这些功能齐全的操作系统,最适合的用例,是企业需要在单个OS实例之上的容器中部署多个不同应用程序。在这些情况下,操作系统的功能的多而全,可能是支持应用程序队列的最经济的方式。

Ubuntu

Ubuntu已经成为许多企业在服务器、云甚至桌面上的默认操作系统。Canonical公司为Ubuntu提供了非常好的支持,Ubuntu提供各种可下载格式,包括支持物联网、容器、服务器或云的部署所需的实用程序包、shell、功能和功能集。

如今,Ubuntu已经开始瓜分曾经由Red Hat Linux一家独大的领域:Ubuntu一贯良好的声誉和企业级的支持,使得对于企业部署而言,它成为了一个稳妥的、“合理的”选择。不过,大家仍需记住的、很重要的一点是,不论在什么情况下,“合理的”都不意味着一定是“最好的”——它的功能齐全也意味着它的庞大,企业需要思考这种重与大是否适合自己。

CentOS

在全功能操作系统这一大类中,Ubuntu已经成为企业的一大主流选择,除此之外,CentOS则是另一个流行的、由社区驱动的开源操作系统,它是由Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。

CentOS强调社区对特性和功能的贡献及支持,同时仍然建立在其Red Hat基础的稳定性上。开源不意味着CentOS不被大型组织使用——美国国家实验室和几大主流云提供商的服务器上都用着CentOS。但是Ubuntu自称拥有比CentOS更快速的更新,其中包括那些更老、但经过良好测试的软件包。

精简的操作系统

容器,尽可能地将少而精的功能汇集在一起,创建完整的应用程序。那么,这类精简的操作系统缺少“完整”Linux发行版中的哪些功能——这对您的应用程序是否重要?从另一视角来看,将应用程序部署在那些将功能剥离到极限的精简操作系统上,优势是什么?

问题的答案在于,你的应用程序究竟对操作系统有什么要求,而精简的操作系统是否能满足这些基础要求。如果没有周全的准备,在使用过程中还需要人为添加应用程序所需的各种功能和小程序,那选择这类精简操作系统可以说是失败的,因为它在大小和简单性方面的优势所剩无几。

本章节将介绍两个发行版,BusyBox和Alpine Linux,以及它们在适当的环境中可以带来的优势。这两个操作系统是相关的——Alpine是基于BusyBox的,但是二者也存在一些关键的差异,使用户会在这二者之间做出不同选择。这些差异不仅涉及具体功能及特性,还涉及支持社区和生态系统。

BusyBox

BusyBox很适合容器部署,恰巧因为它在设计时没有刻意考虑容器。BusyBox被其开发人员称为“嵌入式Linux的瑞士军刀”,它作为一个单一的小型可执行文件,包含大多数嵌入式应用程序所需的所有功能。这也“迫使”它在容器技术出现之前,就可以开始采用类似容器的方法进行部署了。

BusyBox可以使用Linux或其他POSIX操作系统作为其基础进行部署,并将它们与许多常见的Linux实用程序捆绑在一起。如此一来,它成为了一个紧凑的单文件可执行文件,其中包含“完整”Linux发行版的许多功能——尽管这些完整版本中的不少其他功能选项,都以节省空间的名义,被从BusyBox中删除了。

Alpine Linux

如前所述,Alpine Linux基于BusyBox,但不论是目标还是细节,它都建立在更早期的Linux发行版上。BusyBox是因为是单一可执行文件而体积很小, 而Alpine Linux则是使用强化的内核,为其前身BusyBox的紧凑、简单的目标增加安全性。

相较于BusyBox,Alpine Linux能让开发人员更容易添加功能。它的发行版基于BusyBox和musl库之上,因此在添加功能的方便性或结构紧凑度的这些维度上,Alpine Linux一枝独秀。

Alpine Linux这是一个极限精简的操作系统,能够生成非常小的容器镜像以进行部署,而且加固的内核使其更适用于生产以及开发、部署。

容器操作系统

容器操作系统开箱即用,拥有内置的自动化和容器编排工具。它们被设计和构建为“主机”操作系统——托管Alpine和BusyBox等容器操作系统的操作系统。既然如此,为什么它们不是每个容器部署的自动选择呢?

容器操作系统的特征在于,它不仅仅是一个支持容器的软件,而是使用容器技术部署的软件。“容器一直向下”的体系结构意味部署的自定义程序更高、更灵活,从而比传统的OS部署复杂得多。另一方面,对于早期转向容器的组织,或者对于那些不一定适合容器架构的应用程序部署中,“全容器”架构并非那么容易。

对于那些寻找容器操作系统的企业而言,Rancher OS和Container Linux是两个主流的选择。本章节将介绍它们各自的优势,帮助开发人员根据自身情况做进一步选择。

RancherOS

RancherOS中的每个进程都在Docker管理的单独容器中运行。对Docker的优化和依赖让RancherOS可以做到体积极小、启动极快。

除了基本的性能优势之外,RancherOS系统服务由Docker Compose定义和配置。这种依赖意味着只加载和部署应用程序所需的服务,从而进一步加速和简化部署。通过与cloud-init集成,再次简化了部署,从而实现了广泛和高速的自动配置和部署。

Container Linux

CoreOS的Container Linux专为基于云的容器部署而设计。Container Linux已被Red Hat收购,针对公有云或私有云基础架构的集群部署进行了优化。

Container Linux和内核以及必要的实用程序一起,部署在单个可执行文件中,其他的实用程序和功能都部署在容器中。

Container Linux长期以来一直被广泛使用,可以在大多数公有云上部署。被Red Hat收购并没有减缓它的采用速度。Container Linux与开源许可一起分发,并拥有一个活跃的开发人员社区。

结  语

三大类可用于容器部署操作系统,开发团队应该选择哪种?

如果某个特定服务器的唯一目的是托管容器,那么像RancherOS和Container Linux这样的容器操作系统非常适合。这类操作系统的自动化、部署速度和一致的容器架构,使其成为那些希望优化容器托管环境的人的最佳选择。

如果要同时考虑容器和非容器应用程序,那么毫无疑问,像Ubuntu和CentOS这样的传统Linux部署也可以用作容器平台。它们的体系结构、实用程序、功能列表将使它们启动速度变慢并且需要更多系统资源,但如果启动速度和最小资源消耗不是关键考虑因素,那么这类操作系统是不错的选择。

还值得关注的是位于上述二者之间的BusyBox和Alpine Linux这样的极精简操作系统。单从容器部署的角度出发,这类操作系统可以满足需求;不过如果企业存在资源受限的非容器应用程序(例如物联网的应用程序),这些应用程序也应该作为整个应用程序环境的一部分被考虑进来。

了解不同类型操作系统的功能和限制之间的差异,对于任何用于生产的OS平台的讨论都至关重要。使用现代操作系统,真正的考量不应该满足于哪个操作系统可以工作,而是需要围绕哪个操作系统能最有效和最高效地完成工作。

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

推荐阅读:

  • 这位博士跑赢“地震波”:提前 10 秒预警宜宾地震!

  • 同样是消息队列,Kafka凭什么速度那么快

  • 如何给老婆解释什么是微服务?

  • 任正非:华为 100% 没有后门

  • 阿里巴巴杨群:高并发场景下Python的性能挑战

  • 那些去德国的程序员后来怎么样了?

  • 新技术“红”不过十年,半监督学习为什么是个例外?

  • 独家对话V神! 质疑之下的以太坊路在何方?

真香,朕在看了

3类6种,主流容器操作系统全比较相关推荐

  1. 主流嵌入式操作系统(RTOS)有哪些?看看这14种

    满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux.μC/OS-II.eCos.FreeRTOS.mbed OS.RTX.Vxworks.QNX. ...

  2. 14种主流的RTOS 单片机操作系统~来学!

    已剪辑自: https://mp.weixin.qq.com/s/YQGaBlluBWFbk01K5qCu_A 单片机编程时,我们都知道有两种基本操作:裸奔和操作系统.所谓裸奔,就是一个大循环往复执行 ...

  3. 三种主流机器人全被黑客攻破,让马斯克忧心的杀人机器并不遥远

    本文来自AI新媒体量子位(QbitAI) 科幻小说和电影里,经常会有类似"天网"的角色.而在设想自动化技术给人类负面影响时,我们通常会想到它对就业构成的影响,很少想到文学作品里那种 ...

  4. 数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复“数据库2018”下载典藏版PDF报告)

    数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复"数据库2018"下载典藏版PDF报告) 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读: ...

  5. Linux·主流嵌入式操作系统(RTOS)

    满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux.μC/OS-II.eCos.FreeRTOS.mbed OS.RTX.Vxworks.QNX. ...

  6. Linux 会成为主流桌面操作系统吗?

    整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 2020 年 1 月 14 日,微软正式停止了 Windows 7 系统的扩展支持,这意味着服役十年的 Windows 7,属于它的时代真 ...

  7. Bottlerocket:一套专用型容器操作系统

    Bottlerocket:一套专用型容器操作系统 | 亚马逊AWS官方博客https://aws.amazon.com/cn/blogs/china/bottlerocket-a-special-pu ...

  8. 三种主流的Kubernetes部署方式

    [译者的话]本文分析介绍了三种主流的Kubernetes部署方式,为广大Kubernetes的使用者提供了很好的参考借鉴. [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Ku ...

  9. 浅谈几种主流数控机床的数据采集技术

    马上即将毕业了,就自己在学校做的项目中包含有几种主流数控系统需要进行数据采集,总结一下之前的一些经验和开发工作,也希望后面再做相关技术研究的时候少踩点坑,同时也算是一个阶段的总结吧,毕竟马上要从事一个 ...

最新文章

  1. 手机内部零件名称图解_外协加工:200件零件/机加件配套加工
  2. 编写脚本隐藏托盘图标_【Electron-Playground系列】托盘篇
  3. Samba服务器问题汇总
  4. 装饰器模式(讲解+应用)
  5. html语言及语法结构,HTML语法结构.ppt
  6. python try语句相关(try/except/else/finally)
  7. 微信小程序Mustache语法
  8. 服务器电源输出电压稳定,服务器电源选购指南
  9. Ext学习笔记02 - 构造方法,类继承,类实例方法重写
  10. Matlab学习:读取excel中数据
  11. 运维工程师mysql面试题及答案_运维工程师面试题及答案解析
  12. 最浅显的IE反劫持攻略(转)
  13. word 单页、多页面旋转
  14. html css图标怎么跟文字并排,科技常识:css图标与文字对齐的两种实现方法
  15. Educoder/头歌JAVA——jQuery动画
  16. MyBatis-plus拦截器
  17. Sack Panic漏洞TCP MSS机制(二)(together with myself)
  18. ble4.2空口包详解(air interface packets)
  19. 数字金融崛起,科技撬动增长
  20. 基于PHP后台请求亚马逊订单列表listOrder接口

热门文章

  1. 分解连续自然数的和_小学奥数各年级经典题解题技巧大全——分解因数法(2)...
  2. 佩服!终以一作发Science的她,竟也曾经历“直博转硕士”,艰难毕业!
  3. 10亿!北大获最大一笔校友捐赠
  4. 华为值多少钱?院士倪光南:13000亿美元!超过苹果,碾压阿里!
  5. 人工智能技术将重塑银行业
  6. 真!长!啊!中国校名最长的学校竟然有55个字!
  7. 推荐系统--矩阵分解(3)
  8. 引出发射和什么是反射和Class类和Class实例、基本类型的字节码对象
  9. resize和reverse的区别
  10. unity3d UGUI视频教程