写点什么

使用 Telepresence 在本地构建和测试 Kubernetes 应用程序

2017 年 10 月 26 日

开发可以部署在容器调度平台上的微服务向工程师提出了新的挑战,尤其是在本地构建和测试有若干依赖项的服务。Kubernetes 1.3 包含一个基于 VM 的、可以在本地运行的单节点集群 minikube ,虽然这种方法很有用,但它会消耗大量的本地资源。开源工具 Telepresence 提供了另外一种方法,开发人员可以借助它在本地构建和测试服务,而该服务透明地集成(通过一个双向代理)了它所依赖的那些运行在远程集群上的服务。

开源工具 Telepresence 的创建者是来自 Datawire 的 Abhay Saxena 。近日,InfoQ 采访了他,内容包括:在将应用程序部署到类似 Kubernetes 这样的容器编排平台上之后,软件开发周期发生了怎样的变化;Kubernetes 为什么如此受欢迎;CNCF 在原生云领域中扮演什么角色。

InfoQ:嗨,Abhay,谢谢您今天接受 InfoQ 的采访。您能简单地介绍下自己以及 Telepresence Kubernetes 开发工具吗?

Saxena:我叫 Abhay Saxena,是一名来自 Datawire 的软件工程师。我维护着开源项目 Telepresence 。以前,我们在 Kubernetes 上使用微服务架构构建一个云应用程序,我们发现,在 Kubernetes 上,开发 / 调试周期比较长。每次代码变更,我们都得走一遍容器构建 / 部署流程,这种额外的延迟拖慢了进度。

因此,我们就问自己,在开发时有没有办法彻底地省掉这个流程,于是就有了 Telepresence。借助 Telepresence,我们在本地编写并运行服务,其他的都运行在远程 Kubernetes 集群上。Telepresence 在本地服务和远程 Kubernetes 集群之间创建了一个双向代理,因此,本地服务拥有远程集群的全部访问权限,反之亦然。

最直接的效果就是,我现在可以改两行代码,然后立即测试。

InfoQ:Telepresence 的典型应用场景是什么?您见过什么没想到的用法吗?

Saxena:最常见的应用场景是快速开发。持续集成 / 持续部署管道是一个重要的工具,但对实际的开发来说非常恐怖。没有哪个开发人员愿意每次变更时都等待 CI 完成。第二个场景乍听起来有点让人奇怪,就是运行调试器。我们有用户希望借助 Telepresence 在微服务上使用调试器,这就跟在代码上运行调试器一样简单。

InfoQ:像 Telepresence 这样一个工具,如何纳入使用 Kubernetes 的整个软件开发生命周期?

Saxena:如果你将基本的 Kubernetes SDLC 想成“编码、(金丝雀)部署、监控”,Telepresence 针对的仅仅是“编码”阶段。在编码阶段,你得编写并测试服务,Telepresence 可以提高你在那个阶段的生产力。一旦要部署到生产环境,你就需要使用 CI/CD 管道了。也就是说,我们正在做一些工作,让 Telepresence 可以用在一些生产相关的场景中。敬请期待!

InfoQ:您认为 Kubernetes 为什么会如此受欢迎?未来,Kubernetes 会怎么样?

Saxena:我认为,他们开始时就有可靠的技术和设计,在此基础上,他们比社区中方方面面的其他所有人做得都好,从向终端用户布道,到获取额外贡献的良好流程。

长远来看,我认为,Kubernetes 有望成为类似 POSIX(POSIX 是云基础设施的交互操作标准)云版本这样的东西。最近发布的 DC/OS Kubernetes 就是这样一个例子,我说的就是这个意思。近期,我们一直关注的是与声明式应用程序管理相关的工作,因为应用程序开发是 Kubernetes 生态系统(Datawire 也在这个领域努力做着工作)中其中一个最不成熟的部分。

InfoQ:您对原生云计算基础(CNCF)有什么看法?您想过将类似 Telepresence 这样一个工具捐献给他们吗?

Saxena:我们是 CNCF 的忠实粉丝。他们在孵化原生云技术方面做了许多了不起的工作。实际上,我们在日常工作中使用了若干 CNCF 技术:当然包括 Kubernetes,还有 Envoy、Prometheus 及 Docker。随着项目的发展,我们愿意把 Telepresence 捐献给 CNCF。我们亲眼看到,CNCF 提供了 Envoy 支持,我们也希望看到他们支持 Telepresence。

InfoQ:您还有其他想和 InfoQ 的读者分享的东西吗?我们还想问一下,参与 Telepresence 项目的最佳方式是什么?

Saxena:Telepresence 既可以和 Kubernetes 一起使用,也可以和 OpenShift 一起使用。我们一直期待人们有更多的反馈和建议,因此,如果你觉得 Telepresence 可能有用,就请访问 https://www.telepresence.io ,亲自试一下!

其他容器调度平台提供了类似的工具,辅助本地开发,包括 Docker for Mac / Windows 、Red Hat OpenShift minishift 及 Apache Mesos minimesos

查看英文原文 Building and Testing Kubernetes Applications Locally Using Telepresence

2017 年 10 月 26 日 19:001192
用户头像

发布了 1008 篇内容, 共 308.5 次阅读, 收获喜欢 273 次。

关注

评论

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

架构师训练营0期-8周作业

WW

Week 08 作业

鱼_XueTr

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第3章初识CSS

Geek_8dbdc1

CSS

一个文学青年的至暗时刻

半亩房顶

反思 就业

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第5章CSS盒子模型

Geek_8dbdc1

CSS

Week8作业

丿淡忘

数据结构&网络通讯原理

石刻掌纹

week8 作业

a晖

第八周课程总结

考尔菲德

Week08总结

熊威

架构师训练营week8作业

小高

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第4章CSS文本样式

Geek_8dbdc1

CSS

哪些资源容易造成性能瓶颈

彭阿三

架构师训练营作业

邵帅

week8 作业

雪涛公子

EasyDL全新升级,文心(ERNIE)3项能力助力快速定制企业级NLP模型

百度大脑

人工智能 nlp 百度大脑

初识 - DDD-CQRS

半亩房顶

DDD CQRS

找出两个链表交点(golang版)

2流程序员

第八周心得

方堃

数据结构与算法、网络模型总结

2流程序员

架构师训练营——第8周学习总结

jiangnanage

week 08作业

Safufu

判断两单链表是否相交

石刻掌纹

架构师训练营第八周总结

邵帅

week8 总结

a晖

week08总结

Safufu

作业-第八周

superman

Week08作业

熊威

领域驱动设计 学习笔记

半亩房顶

DDD

IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效

YourBatman

IDEA 新特性 IntelliJ IDEA

架构师训练营Week8作业总结

小高

使用Telepresence在本地构建和测试Kubernetes应用程序-InfoQ