Linux操作系统在过去的20年里给数据中心带来了革命性的变化,今天它是应用程序托管平台无可争议的领导者。很难想象,将任何关键任务的生产工作负载部署到Linux以外的任何平台。
当Docker使Linux容器流行起来,这与几年前在打包、部署和托管应用程序方面开始的革命何其相似。此后,整个行业的容器使用呈指数级增长,并且与日俱增。
正如我们无法想象将任何关键应用程序部署到非Linux操作系统上一样,容器也是如此:任何应用程序都必须是容器,以满足未来Web规模的需求(即安全性、可伸缩性、平台无关性和易移植性)。这些容器现在是,未来也将是运行任何关键应用程序和工作负载的新一代“Linux”。
容器采用趋势
根据Datadog于2018年6月更新的调查显示,有一种趋势是,25%的公司已经采用Docker,其余公司正在迅速追赶。这里有详细的调查数据。
容器和编排
Kubernetes、OpenShift、Apache Mesos和Docker Swarm对容器提供了极好的编排支持,使得管理一个数千个容器的平台或基础设施要容易得多。在编排工具提供的自动化功能的帮助下,一名工程师就可以管理容器化应用程序的异构部署。
Kubernetes正在统治Docker容器的编排世界,谷歌是它的最初创建者,CNCF是所有者。Kubernetes在整个行业中也拥有最好的社区支持和极好的适应性。
为任何容器化应用程序提供编排支持的一些特性:
容器与微服务
作为编排工具,Kubernetes再次主导微服务部署领域,用于承载和运行容器支持的微服务,它是最著名、最受欢迎的平台之一。
所有标识的微服务首先被转换为Docker容器,然后转到Kubernetes平台进行部署,这使得它们在整个生命周期内快速部署并易于管理。
基于容器的微服务在伸缩和自愈场景下更容易,启动和服务工作负载更快。
非常规应用中的容器采用
在采用容器的过程中发生了许多不可思议的事情;曾经被认为不可能在容器中运行的应用程序现在正在迁移到容器中,并且现在可以在容器化平台中使用。
数据库
几年前,数据库被认为是保持在容器技术之外的东西,但今天我们有了NuoDB,它是一个容器和云原生数据库,专门设计和开发用于在容器上运行,以支持数据库级别的WebScale功能。
Oracle 12c现在可以在Docker仓库的官方Docker镜像中预先配置。
数据库层容器化令人由衷地兴奋,这将使应用程序更容易WebScale,因为按需扩展数据库(部署在物理服务器上)的限制将消失,数据库在容器内运行以及部署在业务流程引擎上, 将能够在需要时轻松地与应用程序实例一起扩展。
电信行业中容器化的电信网络组件
电信行业向使用的可编程网络转变的势头正在加快,这将帮助所有CSP以虚拟化方式运行所有网络功能,而不是在传统昂贵的硬件上运行这些功能,同时大幅降低运营成本。这也将使所有CSP能够在需求增加时以完全自动化的方式快速扩展其网络。然而,容器相对于VM的优点已经在应用程序中得到了验证,因此整个行业都非常希望telco VNFs获得相同的优点。
电信行业向使用SDN-NFV的可编程网络转变的势头正在加快,这将帮助所有CSP显著降低其运营成本,同时以虚拟化的方式运行所有网络功能,而不是在传统昂贵的硬件运行。这也将使所有CSP能够随着需求的增加,以完全自动化的方式迅速扩展其网络。然而,容器比虚拟机的好处已经在应用程序世界中得到了证明,因此整个行业对电信VNF也获得同样的益处有着非常高的兴趣。
伴随着这些趋势,在应用程序和虚拟化网络级别上,电信世界将被容器化平台统治的日子不远了。
基于容器的大数据平台
在大数据世界中,HortonWorks的HDP 3.0数据平台的新版本现在使用Docker容器来运行其内部组件(YARN容器、Web应用程序和HDP服务)。Hadoop集群是一个自我管理的集群,完全支持现代和标准的集群应用程序,因此,大数据平台能够在容器上运行并由编排工具(集群中的集群!!)管理,在之前这是一个有争议的话题。但是由于我们已经有了容器化服务的新版本,所以在不久的将来,我们将在Kubernetes平台中运行Hadoop集群也就不足为奇了。
云和容器
随着容器的普及,所有云服务提供商(AWS、Azure、GCE、Oracle、OpenStack等)也意识到他们必须提供并支持本地容器和Kubernetes编排服务。今天,我们看到几乎所有的云提供商都拥有自己的本地容器和编排服务/平台。以下是云计算公司提供的一些本地容器平台示例:
同样,这种方式为我们提供了一个清晰的趋势,即使组织正在迁移到云基础设施,以取代其遗留的本地数据中心,容器仍然是部署和运行应用程序的首选。
基于容器的私有云部署
当我们谈论云和容器时,已经有云在容器上运行了。
OpenStack无疑是私有云领域的赢家,整个私有云托管世界由OpenStack统治,为全球各地的组织提供云计算的强大功能。
然而,现在OpenStack的新版本可以以一种容器化的方式部署。这使得整个私有云部署并运行在容器中,令人难以置信。
随着容器采用率的指数级增长,以及软件行业和各个产品部门的根本性变化,容器现在是、未来也将是承载和运行各种工作负载的新Linux,这一说法变得更加现实。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
我为redis-sentinel配置了一个主服务器和两个从服务器。 我从redis-cli中尝试了无人slave,但几秒钟内该节点又变成了slave。 所有这一切都是在没有开始哨兵服务的情况下发生的。 这里发生了什么?还有其他条目我必须删除吗? redis.conf
能否从github上只下载项目的一个commit? 我想学习一下github那些好的项目是怎么写的。但是这些项目都经过多迭代了很多次,非常的复杂,自己能力也一般,无从下手。就想着看看最早提交的commit,并在本地尝试运行一下。但是整个项目很大,下载下来一来浪费时间,二来也占空间,我只想要这个commit,有没有什么办法? 可以根据这个commit来说明该如何做。
问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:
有一个应用是这样安装的,以root身份登陆vps(debian11): 我可否为这个应用制作一个docker镜像呢?用docker run来达到我上面那些代码的目的? 报错了 我的镜像源 我的本地代理可以使用 在构建镜像时,使用代理 还是报错
问题/问题 给定一个来自非EMF感知API的纯Java类,例如
我有以下内容: 我现在想在的每个元素上调用,并将结果值存储回中。我可以做类似的事情,但这将分配一个新的。有没有一种方法可以就地执行此操作,重用的分配内存?Rust中曾经有,但它已经被删除了一段时间。 作为解决方法,我向 添加了一个变体,然后执行以下操作: 这感觉不对,我必须处理代码中其他任何地方的<code>SomeType::Dummy</code>问题,尽管它不应该在这个循环之外可见。有没有更