写点什么

Kubernetes 创始人 Brendan Burns 访谈录:容器与分布式系统模式

  • 2018-02-25
  • 本文字数:2644 字

    阅读完需:约 9 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

分布式系统编程并不适合胆小的人,尽管从 CORBA、RMI、Java EE、Web 服务、面向服务的架构 (SOA) 等等平台和工具发展演化,但它更多的是种艺术问题而不是科学问题。

Brendan Burns 在 2015 年撰写的博文中介绍了许多支持分布式系统编程的模式。同为 Kubernetes 的最初贡献者,他和 David Oppenheimer 不久之后在 Usenix 发表了一篇基于设计模式和容器的论文

InfoQ 对话 Burns,他在最近撰写了一本题为《为可扩展的微服务设计分布式系统、模式和范式》的电子书。他和我们介绍了分布式系统模式、容器以及如何对其进行实现。

InfoQ:让我们直奔主题吧。分布式系统已经存在了几十年了。这本书有什么创新内容呢?如果我是公司的程序员或是架构师,除了价格因素之外(这本书是免费的),还有什么吸引我阅读的理由呢?

Brendan Burns:通常之下,将近几年的模式编撰为书需要一段时间,并且大多是一些可以让模式更容易抽象讨论的变革性技术才会编撰成书。像《四人帮(设计模式)》这样的书籍也是在面向对象编程发展将近十年之后才面世,很显然这本书(以及所有 90 年代的模式书籍)都受到了面向对象编程的启发。

对我来说,容器和容器的编排是激发我撰写这本书的动力。我认为“最终我们将使用相同的语言和词汇来讨论这些模式”,这就是我写这本书的原因。当然,每时每刻都有人加入到云和分布式系统的学习中,因此这也是我写书的一部分动机。人们需要通过书本来学习,而不是通过一次次搭建坏的系统来学习成长。

InfoQ:在 Kubecon 2017 大会上的主题演说中,你介绍了如何让分布式系统编程像通过 CS101 课程(计算机科学导论课程)一样容易。有两个问题。正如 Kubecon 所展现的一样,你有曾想过 Kubernetes 会得到这么广泛的采用吗?第二个问题,容器和 Kubernetes 在分布式系统编程中起到什么作用呢?

Burns:承蒙大家厚爱,Joe、Craig 和我作为创始人真的很高兴 Kubernetes 能受到这样的欢迎并广泛使用。我们一直希望它可以真正帮助人们采用云原生设计模式和实践,但看到它能这样发展我们真的很惊讶。真的很感谢将自己的业务和应用押宝在 Kubernetes 上的所有人,为了让他们满意需要更加努力,我认为对整个 Kubernetes 社区和生态系统来说,质量是最好的承诺。Kubernetes 社区确实是一个分布于全世界的社区,不管我们身处何地,有这样的一个软件让我们聚集在一起,这真的很棒。

我认为 Kubernetes 的目标始终是成为分布式系统的自治系统。我喜欢以手动飞机和无人机做比喻。无人机更容易飞行,因为它有机载控制器保持平衡,你只需要告诉它往哪里飞。Kubernetes 是相同的原理,你告诉它需求,它负责保证正确数目,响应应用程序崩溃或是机器故障,它就像你的分布式应用程序的防抱死制动。在回路中的计算机自动响应,保证安全。另外,我认为有了服务负载均衡等东西的存在,你很容易陷入所谓的“基坑成功(Pit
of Success)”,并以一种解耦可扩展的方式实现你的应用程序。

InfoQ:在 Kubecon 2017 大会上的主题演说中,你谈到了使用 MetaParticle 云原生运行环境大众化分布式系统开发。究竟是什么意思呢?Istio 是有代表性的例子吗?

Burns Metaparticle 确实可以帮助我们重新思考如何设计搭建系统。现在我们给每台机器写代码,之后我们用这些 YAML 文件来描述这些独立的程序如何结合在一起。在这个过程中,我们需要学习并使用不同的应用程序、文件格式和语言来描述我们的应用程序。这对新的开发人员来说太复杂太困难了。Metaparticle 是一种新的尝试:“我们是否可以用一个编程语言完成这一系列工作?”。通过这个实验,让缺乏经验的开发人员可以将他们自身的技能转换为云原生设计模式。我认为 Istio 是不同的,Istio 旨在让现有的系统更方便观察,更加动态。对于已经知道如何搭建云原生设计系统的人来说是个很好的工具,但是希望它可以更简单地来监控和使用。

InfoQ:正如你在谈话中所建议的,如果语言需要提供云原生服务,让开发变得更加容易,可能需要好几年才能形成一套标准化的形式。你认为这只是时间长短的事情吗?同时,生态系统是否会提供工具和平台来解决分布式系统开发遇到的一些挑战?

Burns:我认为确实存在两类不同的解决方案。有些事情确实可以解决问题,消除痛苦。类似 Helm Draft 和我们正在做的 VS Code 整合这样的工具可以很好解决问题。我认为这些工具将稳定发展,帮助云原生设计开发人员更加方便地使用 Kubernetes。

我认为还有一类不同的事情是变革性的,可以帮助很多新的开发人员开始使用云原生服务。就像好的 IDE 对于 C++ 开发人员来说一样,虽然 IDE 不能帮你成为一名优秀的 C++ 程序员,但它可以给优秀的 C++ 程序员带来更好的体验。还有像 Java 或是 C#这样优秀的语言可以驱动一些新的开发人员。我认为这两方面都是不可或缺的。

InfoQ:大多数参与过分布式系统编程的人都曾受困于分布式计算的八大误区。你书中介绍的分布式设计模式是否可以帮助解决这些问题,如果可以的话,是通过什么方法解决的呢?

Burns:我认为它可以帮助你应用那些可以创建更健壮系统的模式,而且书中介绍了你在搭建系统的时候应该考虑的设计事宜。我希望,它可以提供一种共同语言,便于人们一起讨论系统,这样人们就不需要一次又一次学习相同的内容,相反我们都在相互学习相同的模式。这并不是魔法,人们还是需要切身学习很多经验。

InfoQ:Kubecon 会议中的许多谈话可能都会让开发工作变得更加无聊(只是在讨论如何工作)。你认为现在的社区发展到了什么阶段?大胆猜测,五年后和现在会有什么不同?

Burns:我非常希望可以像讨论 Posix 或 x86 指令集一样讨论 Kubernetes。这确实是很有价值的东西,人们可以学习它来完成自己的工作,但这还不是真正的点。我希望今后可以像讨论垃圾收集或是面向对象编程一样讨论 Kubernetes。它是可以帮助你完成工作的重要工具,但它不是很新的东西,不是拥有很多狂热粉丝的产品。

我希望我们回头看的时候可以说:“哇,在这个伟大的抽象层上我们做出了多少成果”,因为 Kubernetes 并不是尽头,它是一个很好的基础,我们可以在此之上搭建很多东西。

书中提到的代码示例可以在 Github 库下载。

查看英文原文 Q&A with Kubernetes Founder Brendan Burns on Containers and Distributed System Patterns


感谢罗远航对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-02-25 18:002178
用户头像

发布了 218 篇内容, 共 67.4 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

使用 Midjourney 进行 UI/UX 设计的一些典型场景

汪子熙

人工智能 ChatGPT MidJourney 6 月 优质更文活动

程序员常见的6种最佳实践

互联网工科生

程序员 前端 技巧

深度解读 Linux 内核级通用内存池 —— kmalloc 体系

bin的技术小屋

内存管理 Linux内核 Linux内核源码 kernel

详解深度学习中推荐系统的经典模型

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Idea Mybatis插件:提高CRUD效率

林贻民

MySQL mybatis IntelliJ IDEA

ClickHouse技术研究及语法简介 | 京东云技术团队

京东科技开发者

MySQL elasticsearch Clickhouse TiDB 企业号 6 月 PK 榜

SAP UI5 OData 谣言粉碎机:极短时间内发送两个 Odata 请求,前一个会自动被 cancel 掉吗

汪子熙

SAP OData ui5 思爱普 6 月 优质更文活动

聊聊 220V交流 过零检测

矜辰所致

电路设计 过零检测 6 月 优质更文活动

稳,从数据库连接池 testOnBorrow 看架构设计 | 京东云技术团队

京东科技开发者

数据库 架构设计 数据库连接池 企业号 6 月 PK 榜 testOnBorrow

常用的表格检测识别方法——表格内容识别方法

合合技术团队

人工智能 表格识别 表格检测

透明LED橱窗屏的作用

Dylan

解决方案 LED显示屏 室外显示屏 屏幕

性能提升30%!袋鼠云数栈基于 Apache Hudi 的性能优化实战解析

袋鼠云数栈

数据湖 Hudi 企业号 6 月 PK 榜

Spring应用启动分析优化

林贻民

字节码插桩 字节码增强 spring-boot

师资培训|《经管大数据》课程教学能力提升训练营课程安排

ModelWhale

数据分析 数据科学 经管 交叉学科 师资

AI教你实现敏捷游戏自由,再也不用担心陷入瓶颈啦!

禅道项目管理

项目管理 AI ChatGPT

Go应用性能优化的8个最佳实践,快速提升资源利用效率!

SEAL安全

Go 企业号 6 月 PK 榜

软件测试/测试开发丨学习笔记之Python控制流-分支、循环

测试人

Python 程序员 软件测试 分支 循环

检测客户端访问设备的一种新方法

为自己带盐

.net core 设备检测

【SIGMOD 2023】深度学习弹性数据流水线系统GoldMiner,大幅提升任务和集群效率

阿里云大数据AI技术

人工智能 深度学习 数据库 企业号 6 月 PK 榜

为什么要学3D建模呢?

Finovy Cloud

3d建模

到底什么是Java AIO?为什么Netty会移除AOI?一文搞懂AIO的本质!

JackJiang

网络编程 即时通讯 IM

SLF4J门面日志框架源码探索 | 京东云技术团队

京东科技开发者

jdk slf4j 源码剖析 企业号 6 月 PK 榜

师资培训通知 | 数字化转型背景下《经管大数据》课程教学能力进阶提升训练营

ModelWhale

数据分析 大数据课程 经管 师资培训

OpenHarmony中Ability组件基本用法

坚果

OpenHarmony 6 月 优质更文活动

视频直播源码技术知识分享:连麦功能

山东布谷科技

软件开发 源码搭建 直播源码 短视频直播源码

Spring源码核心剖析 | 京东云技术团队

京东科技开发者

spring bean 企业号 6 月 PK 榜 SpringAOP

堡垒机免费版有哪些优点?哪家免费堡垒机好用?

行云管家

网络安全 堡垒机 行云管家 免费软件 免费堡垒机

金华等保测评机构名单以及电话信息看这里!

行云管家

等保 等级保护 等保测评 金华 浙江

ZEGO 即构音乐场景降噪技术解析

ZEGO即构

音视频

Kubernetes创始人Brendan Burns访谈录:容器与分布式系统模式_DevOps & 平台工程_Rags Srinivas_InfoQ精选文章