写点什么

使用 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:001343
用户头像

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

关注

评论

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

稳坐开发领域霸主之位,揭秘C语言无可取代的几大原因!

华为云开发者社区

c go rust

将项目发布到 Homebrew 官方仓库

郭旭东

macos brew homebrew

周小川深度解读:DC/EP和数字人民币e-CNY

CECBC区块链专委会

数字人民币

区块链商品追溯平台开发,区块链防伪追溯系统搭建

13530558032

Spring 源码学习 05:BeanDefinition 概念及其实现

程序员小航

spring 源码 源码阅读 BeanDefinition

构师训练营 - 第六周课后练习

joshuamai

年轻人会用C++实现一种协程吗?

ShenDu_Linux

Linux 程序员 多线程 协程 什么是多线程

AOT星辰生态系统APP开发|AOT星辰生态软件开发

开發I852946OIIO

系统开发 现成系统

江西吉安:一个上了区块链柚子的真情告白

CECBC区块链专委会

区块链 蜜柚

LeetCode题解:51. N 皇后,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

《穿越数据的迷宫》笔记:第 3 章 DAMA的数据管理原则

方志

数据治理

面对日益严峻的网络安全问题,CDN可以做什么?

阿里云Edge Plus

“黑五”前夜的裁员:无接触配送大趋势为什么都带不动亚马逊无人机?

脑极体

一万字详解 Redis Cluster Gossip 协议

程序员历小冰

redis 分布式 redis cluster

构师训练营 - 第六周学习总结

joshuamai

线程模型Reactor/Proactor的区别

Linux服务器开发

reactor 线程 多线程 Linux服务器开发 Proactor

Spring AOP核心类解析,这是最全的一篇了!!

冰河

spring aop ioc 注解驱动 切面编程

当千行万业的轨道,换上智能云网的高铁

脑极体

区块链电子发票应用落地,区块链电子发票系统开发

13530558032

什么是KMP算法(详解)

赖猫

c++ Linux KMP

我理解的信息化、数字化、数智化

boshi

数字化 数据智能 信息化

框架设计

raox

极客大学架构师训练营

3本书免费学习数据科学与统计学

计算机与AI

统计学

数字货币管理三大新模式

CECBC区块链专委会

数字货币

2020亚马逊“黑五”再次成为亚马逊史上最大的年终全球狂欢

爱极客侠

区块链版权应用搭建,区块链版权存证平台开发

13530558032

《穿越数据的迷宫》笔记:第 2章 数据管理的挑战

方志

数据治理

自己搭建服务器需要多少钱?

德胜网络-阳

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

996小迁

Java 架构 面试 调优

Spock单元测试框架实战指南一Spock是什么?它和JUnit有什么区别?

Java老k

Java 单元测试 JUnit Mock spock

极客大学 - 架构师训练营 第十一周总结

9527

低代码的认知误区与落地实践

低代码的认知误区与落地实践

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