容器时代,难道这就是我们想要的未来?

简介:

容器时代,难道这就是我们想要的未来?

以下完整的对话记录,U 为提问者,P为Paul Biggar(Founder of CircleCI)。

U:Hi,我老板让我采访你,我听说你是个Web专家?

P:是啊,我现在专攻分布式系统。我刚从ContainerCamp和Gluecon回来,打算下周参加DockerCon。真的很兴奋,整个行业正朝着 - 让一切更简单,更可靠的方式前进。这就是未来!

U:Cool,我现在构建一个简单的Web应用程序 —— 一个使用Rails的普通CRUD应用程序,将会部署到Heroku的。给我提些建议?

P:Oh,不。这是老方式。Heroku已死 —— 没有人会再使用它了。你现在需要使用Docker。这才是未来。

U:Oh,好的。Docker是什么?

P:Docker是一种新的容器化的方式。就像LXC,但Docker也是一种打包形式、分发平台和工具,它可以让分布式系统的构建变得非常容易。

U:容器化 —— 那是什么?什么是LXE?

P:是LXC。你可以把它想成chroot的升级版。

U:什么是 cher-oot?

P:好,看看。Docker。集装箱。这就是未来。这就像虚拟化,但速度更快、更廉价。

U:Oh,就像Vagrant。

P:不,Vagrant已死。一切都将会被容器化,这就是未来。

U:好了,所以我不需要知道虚拟化什么吗?

P:不,你仍然需要虚拟化,因为容器目前没有提供充分的安全保证。所以,如果你想在多租户环境中运行应用,你仍然需要沙箱。

U:好吧,我开始有点糊涂了。让我们一起回顾下。现在有一个像虚拟化一样的东西,被称为容器。我可以在Heroku上使用它吗?

P:嗯,Heroku提供了对Docker的支持,但我告诉你:Heroku已经死了。你需要在CoreOS上运行你的容器。

U:擦,那CoreOS是什么?

P:它是一个可以运行Docker的Host OS。该死的,你甚至都不需要Docker,可以直接使用rkt。

U:Rocket?

P:不,rkt。

U:没错,那就是Rocket。

P:不,现在已经叫rkt了。与Docker完全不同。这是另一种集装箱格式,不像Docker把东西都绑定在一起,所以它更可以随意组合。

U:那样很好?

P:当然这是很好的。组合是未来的趋势。

U:好,你如何使用它?

P:我不知道。估计还没人能玩转它。

U:好吧。那你接着刚才继续说下CoreOS?

P:它是一个可以使用Docker的Host OS。

U:什么是Host OS?

P:一个运行容器的主机操作系统。

U:运行我的容器?

P:是啊,你总得有运行东西的容器。就像你设置一个EC2实例,你把CoreOS放上去就可以了,随后运行Docker的守护进程,然后你就可以将Docker镜像部署上去。

U:其中哪一部分是容器?

P:所有。你可以把应用程序写为一个Dockerfile,然后在本地把它变成一个镜像,这样,镜像就可以被部署到任何Docker主机了。

U:啊,就像Heroku?

P:不,不是Heroku。我告诉过你了。Heroku死了。你现在使用的是Docker。

U:什么?

P:是啊,这真的很简单。查一查#gifee。

U:Gify?

P:“谷歌的基础设施”。你可以基于一些现有的工具,并通过使用容器,就可以拥有和谷歌相同的基础设施了。

U:我为什么不只使用谷歌的东西呢?

P:你认为这将是大约6个月可以完成的?

U:OK,没有云服务商提供类似的服务吗?我真的不想自己搞一套

P:嗯,亚马逊有ECS,但你得写烦人的XML。

U:OpenStack又是什么东西?

P:Ew。

U:Ew?

P:Ew。

U:我真的不想自建。

P:不,它真的很容易。您只需设置一个Kubernetes集群。

U:我需要一个集群?

P:Kubernetes集群。它会管理所有服务的部署。

U:我只有一个服务。

P:什么意思?你确实有一个应用程序,所以你必须至少有8-12个服务?

U:什么?没有,我只是一个应用程序。为什么有那么多服务?

P:不,看看微服务。这是未来。这就是现在我们所做的一切。你把你的整体应用程序分解成12个服务。每一个服务只做一件事情。

U:这似乎代价过高。

P:这是确保应用可靠的唯一途径。你可以想象下如果你的验证服务宕机了...

U:认证服务?我之前用的是Gem。

P:对的。使用gem。把它转变为一个项目,再封装一个RESTful API就可以了。当你的其它服务使用这个API的时候,它就会变得非常容器。最后你可以把这个项目放在容器中。

U:好了,现在我已经得到了几十个难以管理的服务,现在该怎么办?

P:Yeah,我提到的Kubernetes。它可以让你协调所有的服务。

U:交给Kubernetes进行调度?

P:是啊,你的这些服务并不是每时每刻都是可靠的,所以你需要有多个『副本』。Kubernetes就是让这些服务分布在你的集群的多台主机上,以保证服务的可靠性。

U:我需要一个集群呢?

P:是啊,为了可靠性。Kubernetes会帮你管理。Kubernetes是谷歌的一个开源项目,它有使用到etcd。

U:什么是etcd?

P:它是Raft的实现。

U:好了,什么是Raft?

P:它就像Paxos。

U:好,什么是Paxos?

P:Paxos就是没有人理解或使用的上世纪70年代老的分布式共识协议。

U:太好了,谢谢你告诉我。Raft是什么?

P:由于没有人理解Paxos,所以Diego....

U:哦,你认识他吗?

P:不,他在CoreOS工作。换句话说,因为Paxos太难了,Diego就在他的博士论文中发布了Raft。聪明的家伙。之后他写了etcd作为实现,Aphyr说,这不是狗屎。

U:什么是Aphyr?

P:Aphyr是那家伙昵称,“就叫我这个名字吧。” 你要知道,关于分布式系统和BDSM的人?

U:什么?你说BDSM?

P:是啊,BDSM。那在旧金山。每个人都向往分布式系统和BDSM。

U:嗯,OK。他写过Katy Perry的歌曲?

P:不,他写了一组博客文章有关如何在每个数据库发生故障时CAP。

U:什么是CAP?

P:CAP定理。CAP 理论说在一个系统中对某个数据不存在一个算法同时满足一致性,可用性和分区容忍性。

U:OK,所有数据库发生故障时CAP?这是什么意思?

P:就像Mongo。

U:我以为Mongo was web scale?(此处有梗http://www.mongodb-is-web-scale.com/是个Mongo网站)

P:没有其他人会这么做。

U:好了,那 etcd?

P:是啊, etcd是一个分布式key-value存储。

U:哦,就像Redis。

P:不,一点都不像Redis。etcd是分布式的。

U:好的,这是一个分布式 key-value存储。

P:Kubernetes设置一个使用etcd作为消息总线标准的5个节点集群。它结合了Kubernetes自己的服务,并提供一个非常弹性的业务流程体系。

U:5个节点?我有一个应用程序。我做这些该需要多少台机器啊?

P: 嗯,你将有大约12个服务,当然,你需要冗余副本,几个负载均衡的集群etcd,你的数据库和kubernetes集群。因此,需要运行50个容器。

U:擦!

P:没什么大不了!容器是非常高效的,所以你应该能够分发这些跨越在8台服务器上!是不是很神奇呢?

U:这就是把它的一种方式。而完成这一切,我就可以简单地部署我的应用程序?

P:当然。我的意思是,存储仍然是Docker和Kubernetes一个未解决的问题,并且网络也会有不少问题,但你基本上还没到那步!

U:我明白。好吧,我想我会努力得到他。

P:非常好!

U:感谢解释它。

P:没问题。

U:请允许让我再说复述一遍,看看是否我的理解是否正确的。

P:当然可以。

U:我只需要将我简单的CRUD应用程序分割成12个微服务,每个都有自己的API,每个微服务调用其中其他的API,而且弹性处理失败,并把它们放到Docker容器中。Docker容器又运行于CoreOS之上,并分布在集群的8台机器上,同时使用运行etcd的Kubernetes集群来调度他们,再解决『网络和存储』难题,然后我不断地提供每个微服务的多个冗余副本到我的集群。是不是这样?

P:是!是不是很炫酷?

U:我要用回Heroku。



本文作者:周峰

来源:51CTO

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
人工智能 安全 Linux
开箱即用的使用体验!Alibaba Cloud Linux 的演进之旅
AI时代的到来,对操作系统带来怎样的挑战?
开箱即用的使用体验!Alibaba Cloud Linux 的演进之旅
|
8月前
|
机器学习/深度学习 canal 人工智能
31类常见牙科结构与病变目标检测数据集(25000+张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含25000+张高质量牙科影像,覆盖龋齿、种植体、根尖病变、正畸托槽等31类结构与病变,采用YOLO标准标注格式,支持train/val/test划分,适用于YOLO、Faster R-CNN等模型训练,助力牙科AI诊断、教学与算法研发。
|
8月前
|
人工智能 算法 人机交互
如何定义“人味儿”?——HeartBench评测体系建设实践
2025年AI进入“定义问题”下半场,情感与拟人化能力成新焦点。HeartBench是国内首个面向中文心理社科领域的拟人化评测基准,覆盖人格、情绪、社交等5大维度、15项能力,含296题+2818条评分标准,经专家盲测验证人机一致率达86%,开源推动AI“人味儿”科学评估。
|
8月前
|
监控 API 数据安全/隐私保护
OpenClaw阿里云/本地台部署+商业落地指南|5类实战案例+API配置与避坑要点
2026年,OpenClaw(Clawdbot)已从技术工具演进为具备商业落地能力的经济代理载体,其核心价值并非直接“生成收益”,而是通过自动化执行、实时数据监控、决策效率提升构建竞争优势,最终转化为可量化的经济价值。通过对公开案例的梳理发现,成功的商业落地多集中在决策辅助、自动化流程、知识服务三大方向,而落地的前提是完成稳定的部署与合理的模型配置。本文结合5个真实商业案例,拆解OpenClaw的商业应用逻辑与避坑要点,完整提供阿里云及本地多系统部署流程、免费大模型API配置方法,形成一套“部署-配置-落地-避坑”的完整方案,全程不含营销词汇,兼顾实用性与可操作性。
927 0
|
JSON fastjson 数据格式
使用FastJson对json格式字符串、json对象以及javabean直接的相互转换
一、fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
4471 0
|
8月前
|
存储 人工智能 安全
APP上架安全评估:数字时代的合规通行证与用户信任生命线
APP上架安全评估不仅是企业跨越监管红线的“合规通行证”,更是守护用户信任的“安全生命线”。通过漏洞扫描、隐私合规审查与风险动态监测的立体化评估机制,企业能够构建起覆盖代码安全、数据加密、权限管控的全维度防护体系,为每一行代码注入“安全基因”,让每一次用户交互、每一笔交易流转、每一项功能迭代都置于可信可控的保障之下,在数字浪潮中筑牢安全根基,实现可持续的稳健发展。
430 0
|
机器学习/深度学习 算法 安全
PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
940 0
|
存储 缓存 弹性计算
聚宽揭秘:为什么量化研究员喜欢在Kubernetes上使用Fluid简化数据管理?
通过引入阿里云的 ack-fluid 技术,基于 JindoRuntime 的分布式缓存加速,解决了多数据源、弹性扩展、动态挂载等挑战,显著提升了数据处理效率和资源利用率,降低运营成本。这一方案帮助量化研究员实现了更高效的开发和实验流程,为未来的优化和扩展奠定了基础。
|
NoSQL Java Redis
Redlock分布式锁高并发下有什么问题
Redlock分布式锁在高并发场景下可能面临的问题主要包括:网络延迟、时钟偏移、单点故障、宕机重启问题、脑裂问题以及效率低等。接下来,我将使用Java代码示例来说明其中一些问题。
656 12
|
存储 人工智能 大数据
「PAI-ArtLab100 AIGC」设计普惠计划发布!与 100+ 高校共同探索 AIGC 教育新路径
6月28日,D20全球设计院长峰会(简称D20峰会)在杭州阿里巴巴全球总部召开。峰会现场,阿里云高校合作部、阿里云人工智能平台PAI,以及阿里云设计中心联合发布「ArtLab100 AIGC设计普惠计划」(简称ArtLab100计划),与 100+ 高校共同探索 AIGC 教育新路径。旨在推动设计艺术教育与人工智能技术的深度结合,培育新时代的设计创新人才,同时加强校企合作,促进产业界与学术界的协同进步。
「PAI-ArtLab100 AIGC」设计普惠计划发布!与 100+ 高校共同探索 AIGC 教育新路径