把容器当作迷你虚拟机使用不是云原生!

简介: 本文讲的是把容器当作迷你虚拟机使用不是云原生!【编者的话】云服务和SaaS厂商创造了微服务的概念和“云原生”模型,以便在持续开发和运营过程中实现高效扩展。对于Facebook、Google或eBay这类始终在线的全球服务而言,传统的方法已不适用。
本文讲的是把容器当作迷你虚拟机使用不是云原生!【编者的话】云服务和SaaS厂商创造了微服务的概念和“ 云原生 ”模型,以便在持续开发和运营过程中实现高效扩展。对于Facebook、Google或eBay这类始终在线的全球服务而言,传统的方法已不适用。容器与Docker作为此类微服务的终极打包工具应运而生,而 Kubernetes Docker Swarm DC/OS 这类新的编排平台则负责其部署、调度及生命周期的处理。Serverless及FaaS基本上就是这个模型更加自动化的一种演进。

【深入浅出学习 etcd】etcd为分布式系统提供可靠、高效的配置管理服务,在Docker、Kubernetes、Mesos等平台中扮演了越来越重要的角色。作为2013年开始的项目,它还很年轻,官方文档中缺乏实现上全面、系统的介绍,本课程深入浅出地介绍了etcd的实现,并为运维和二次开发提供了系统的指导和建议。

云原生意味着什么

我们希望交付的是随着时间推移而演进或扩展的弹性应用。实现的方式是将应用打散成多个层级(微服务),每一层都具有自己的弹性扩展能力,然后通过可靠的消息在这些微服务之间进行通信。

如果我们希望能动态地进行扩展、处理故障或修改版本,微服务就不能是有状态的。与传统应用不同,微服务使用的是不可变镜像,并将配置、日志、状态及数据储存在弹性云数据服务(对象、NoSQL/NewSQL、日志/消息流)中。

云数据服务通常是将一组商用服务器(具有本地磁盘)集群起来构建而成。我们要么使用预集成的云提供商数据服务,要么使用开源或商业软件来运行自己的数据服务。

开发人员和企业主立即就能感受到云原生方式的益处:这让他们可以使用一个敏捷的、持续的方法更快地进行应用开发,同时其弹性扩展可满足需求的波动。

为什么容器不是虚拟机

传统基础设施团队与厂商和云用户与提供商的想法不同。他们依然以虚拟机、虚拟网卡和虚拟磁盘(虚拟基础设施,即“私有云”)来看待这个世界,并试图让容器兼容现有的做法。这意味着他们将重心放在重构遗留的或单体的应用,以便其运行于容器中,从中获得的打包自动化好处最少,敏捷、弹性及CI/CD不在其列。他们也可能将那些应用保留在虚拟机中,并将其遗忘。

上周在奥斯汀举行的 DockerCon 上,我看到一些厂商试图让容器像VMware或OpenStack那样工作。最极端的例子是将SAN或超聚合块存储作为“容器问题”的解决方案。其间,我与三个主要存储厂商的交流大致如此:

我: 你们的产品能为容器做什么?

他们: 我们负责编排容器块存储卷的创建、配备文件系统、快照、去重等等。

我: 但是我为什么需要这个,Docker提供了一个(不可变的、去重的)镜像文件系统,并且持久化数据是可选的,期望的是文件或数据库抽象层(不是虚拟磁盘)吧?

他们: 哦,这就是为什么我们复杂的自动化系统要分配并配备块空间、在磁盘卷上创建一个(具有固定容量的)文件系统并将其附加到容器中。

我: 但是磁盘卷无法在微服务之间共享(对于弹性而言这是非常基本的),而我希望容器是弹性的而非固定的。我可以使用一个共享文件系统,为什么还要让自己陷入一堆配置磁盘容量和格式化文件系统的麻烦中?难道我不能将共享文件系统挂载到容器中?

他们: 是的,正确的解决方案是使用一个集群的/共享的文件系统或对象,不过对我们来说开发过于困难,我们还无法提供。可能未来会有。对NoSQL数据库这类持久化系统,我们确实能提供价值。

我: 没错。难道我不能使用 Cassandra MongoDB Elasticsearch 自己的方案?它们全都在应用级别上进行分布和复制。它们内置了版本(快照)功能,当然,因为它是分布式的,所以我们无法在存储中一致地创建其快照。我还注意到它们提供了压缩技术,实际上更适用于短期(本地)存储。

他们: 哦,这点我们不清楚。当我们与IT人员(不是开发人员)讨论时,我们听到的是他们想将遗留应用和数据库运行在容器中,就像运行虚拟机一样!

……这凸显了围绕容器与现代云技术的混乱状态——开发人员与基础设施团队之间仍然存在着巨大的信息鸿沟。

多走一步,把重点放在云原生上

那么,要如何构建云原生?不要被各种宣传所迷惑,多做思考。有两种方式来解决这个问题:

如果你寻求的最快上线的方法,而不担心性能、技术锁定或长期预算,又或者你的公司比较小,可以使用一个公有云及其原生服务。使用一个容器编排系统,最好是开源的,比如Kubernetes。使用弹性云原生对象存储、数据库及消息系统,将精力放在无状态应用上。你甚至可以使用“serverless”来免除编排和CI/CD工具。

或者,如果你的公司足够大,又或者你关心性能和数据局部性,可以像云提供商而非传统应用那样进行构建。构建基准云原生服务,包括对象存储、日志、监控、身份管理、配置管理、消息、编排等等。使用开源工具或更健壮的商业产品。需要注意的是,为了保证效率和健壮性,对象存储、数据库或集群文件系统这类数据服务最好像公有云那样使用专有服务器,它们具备更高的磁盘或闪存性能。

创建类似公有云的服务之后即可添加无状态应用程序及应用程序生命周期管理工具,它们将通过服务绑定(比如URL和证书)挂接到基础设施服务中。

原文链接:Using Containers As Mini-VMs is NOT Cloud-Native!(翻译:梁晓勇

原文发布时间为:2017-05-23

本文作者:梁晓勇

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:把容器当作迷你虚拟机使用不是云原生!

相关文章
|
7月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
260 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
9月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
268 0
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
551 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
469 12
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
Kubernetes Cloud Native Docker
云原生之旅:从容器化到微服务
本文将带领读者踏上云原生的旅程,深入探讨容器化和微服务架构的概念、优势以及它们如何共同推动现代软件的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务应用,并解释相关的配置和操作。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供有价值的见解和实操指南。