通用操作系统已穷途末路?-阿里云开发者社区

开发者社区> 玄学酱> 正文

通用操作系统已穷途末路?

简介:
+关注继续查看

最近我在Twitter上看到了一则饶有意思的聊天,不由得想起了可能不是每个人都意识到这一点:通用操作系统正从我们的服务器上被挤掉。

你所说的通用是啥意思?穷途末路又是啥意思?

首先,有必要澄清一下。我所说的通用操作系统是指大多数人如今用于运行服务器工作负载的操作系统,无论是RHEL、变种版本(比如CentOS或 Fedora或Debian),还是衍生版本(比如Ubuntu)。我们还包括Arch、各种BSD 和opensolaris版本以及Windows。 我所说的穷途末路其实不是说它们消亡或不再有用。我的假设是,它们不再成为我们启动新服务时使用的默认操作系统,最初很缓慢,后来比较快。

容器的虚拟机管理程序

本文的第一个部分包括讨论我所说的容器的虚拟机管理程序,如今它们更可能被称为CaaS,也就是容器即服务。我甚至猜测,VMWare将不得不在这个领域交付某种产品(看看vSphere Integrated Containers和Photon OS方面的工作);把OpenShift排除在外也许为时过早(OpenShift 3主要是作为一种Kubernetes发行版而交付的)。我很快会回过头来解释为何这对你钟爱的Debian服务器构成威胁。

竞相成为PID1

对任何运行过Docker的来说,你可能为这个问题而纠结:主机进程监管工具(可能是systemd)的角色始于何处,容器进程监管工具(Docker引擎)又终于何处?你非得与两者都要直接交互吗?

现在设想一下:你服务器上的所有软件都在容器里面运行。为何现在我需要两个百分之百重叠的进程监管工具?明显的答案是不需要,这就是为什么Docker与systemd之争不可避免。请注意:这也不是Docker所特有的。对cri-o(https://github.com/kubernetes- incubator/cri-o)来说,容器进程生命周期管理是其范围内的职责。

容器成为软件单位

隐藏在我那个假设背后未说明的是,容器成为了软件的单位。我这里的意思是说,我们构建或购买的软件将日益作为容器来发布、作为容器来运行。容器将随带足够多的元数据,以便运行时环境能确定需要什么资源来运行容器。

别低估了来自这种共享契约的简化性假设的数量。至少,在主机层面,你可能需要大量的近乎相同的主机,它们都向容器调度程序公共其功能。

操作系统的实施细节

我们在这个市场亲眼目睹了纵向集成的堆栈(vertically integrated stack)大行其道。

  • Docker for Mac/Windows/AWS/Azure交付时随带自己的操作系统,这种Alpine Linux衍生版名为Moby,它并不是为最终用户直接管理而设计的。
  • 来自CoreOS的Tectonic是一款Kubernetes发行版,它在受管理的CoreOS主机集群上运行。操作系统的大部分由频繁的原子滚动更新版来加以管理。
  • 来自Red Hat的OpenShift Enterprise是另一种Kubernetes衍生版,这回它是在Atomic主机上运行。
  • Pivotal CloudFoundry交付时随带IaaS、主机操作系统、内核、文件系统和容器操作系统,它们都共同经过了测试。

在所有上述情况下,操作系统是更高级软件的一个实施细节。它不是旨在直接管理,或者至少不是与你如今运行的通用操作系统同样的程度加以管理。

这就是为什么说,对运行服务器的大多数通用操作系统而言,它们已穷途末路。运行容器的机器会运行更单一用途的工作负载,你运行的软件越来越多地会在容器里面运行。

你之所以会这么做,而不是自行构建一切软件,原因在于兼容性。无论是内核版本、文件系统驱动程序、操作系统变量,还是让你的操作系统版本与我的操作系统版本不一样的众多变化因素,构建和测试在各个地方都可以运行的软件是一项艰巨而无尽头的任务。商业因素在这方面也起到了作用;毕竟,能够为所有人支持经过验证的单一产品有莫大的优点。

带来的影响

此举带来了许多影响,看看它对早期采用者和企业客户来说有何影响颇有意思。

  • 这对企业操作系统政策来说意味着什么?
  • 基于代理的标准监控系统在封闭式垂直堆栈环境下如何运行?
  • 我们会看到AWS市场上的其他类型的服务出现这种模式吗?在AWS市场上,启动的实例无法访问,但是自动更新。
  • 这种行动快速的软件在变更控制流程僵硬或需要审计的环境下如何运行?
  • 许多大企业最终会运行不止这一种类型的系统,如何才能最有效地管理这种异构环境?
  • 我们会看到来自一些有关方的反对和阻力吗?尤其是可能觉得这主要满足厂商要求的开源社区?
  • 通用操作系统穷途末路是否会导致系统管理员当中专业化程度更高?

我很想与对此有过一番思考的其他人就上述任何话题聊一聊。整个行业出现什么大的变化,以及采用可能事后想想再明显不过的模式,仍需拭目以待。如果你喜欢这方面的内容,留言告诉我,我会挤时间写一些更多的东西。





本文作者:佚名
来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7284 0
Linux系统常用维护命令
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机...
876 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2513 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
8983 0
PageAdmin Cms建站系统如何修改后台登录目录
pageadmin修改后台登录目录的解决办法
273 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
10579 0
Nginx极简入门(六)配置Nginx负载均衡,提高系统并发性能!
前面讲了如何配置Nginx虚拟主机、如何配置反向代理。Nginx最主要的功能就是反向代理和负载均衡。今天要说的是如何配置nginx和tomcat实现反向代理。
403 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20710
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载