专访技术达人Patrick Chanezon:如冲浪一般随时代而行,容器创造了截然不同的软件构件模式

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在刚刚结束的DockerCon EU 2017上,Docker公司宣布全面支持Kuberentes和Swarm双套编排系统。而10月12日杭州•云栖大会的容器技术专场上,Docker公司的首席开发布道师 Patrick Chanezon则进行了《The Docker Way: Modernize Traditional Applications without Action and Create New Cloud Native Micro-services Application with Naturalness》的主题分享。

在刚刚结束的DockerCon EU 2017上,Docker公司宣布全面支持Kuberentes和Swarm双套编排系统。而10月12日杭州•云栖大会的容器技术专场上,Docker公司的首席开发布道师 Patrick Chanezon则进行了《The Docker Way: Modernize Traditional Applications without Action and Create New Cloud Native Micro-services Application with Naturalness》的主题分享。(容器技术专场视频回放地址)

2013年Docker公司开源的容器项目令技术人们眼前一亮,在GitHub开源项目排行榜中迅速窜升;四年后,容器技术生态不断发展壮大,虽然如何在企业生产环境使用还是一个挑战,但是技术人始终坚信着容器会带来的变革和产生的影响。

在Patrick Chanezon的杭州之行中,我们非常荣幸对他进行了采访。

Patrick

Q1:在加入Docker公司之前,您曾经在先后在Accenture、Netscape、AOL、Sun、Google、Microsoft等很多公司工作过,为什么这样选择您的职业路线?似乎您每一次选择的都是当时的IT热门趋势?

Patrick: 我很喜欢冲浪运动,冲浪时你需要预知下一个浪的到来;在互联网领域中冲浪也是如此。在Accenture的时候,我感受到web的浪潮,于是我加入了NetScape,因为那里可以创建web应用;后来加入Sun,是因为Java越来越普及也很强大,它的应用可以跑在任何地方;再后来,我看到Google的搜索和广告API很好,我就加入了Google先后做了搜索、社交和云计算方面的内容。

当我接触到Docker的时候,我发现这是一个截然不同的软件构建方式,在和Solomon沟通之后,我就决定开启这个巧妙的旅程。

Docker是一项可以让开发者们效率更高的新技术;在我看来,我们不应该过度沉浸于工作细节和具体操作中,而是要站在更高层去抽象化思考,这一点很重要并且令人受益,而Docker恰恰是可以帮助我们做到这一点的一项技术。

Q2:2015年加入Docker时,比起应用软件,您说您感兴趣的是基础设施软件?请问这两种软件有什么不同?在提供企业级服务的过程中,有哪些困难?

Patrick: 在企业场景使用,你需要考虑角色控制,需要考虑安全,需要深入了解企业不同架构的详情。2015年,我们开始做企业版,我们在中国和阿里巴巴一同售卖Docker企业版。

Docker属于基础设施软件的范畴,你需要用一个工具搭建起来一个平台,这个平台是要给开发人员和运维人员共同使用的,为了实现这一点,我们公司进行了相当大量的工作,并提供了Docker for mac和Docker for windows,Docker for mac深度定制并绑定了网络等插件。接下来,还会有更多的功能置入。

那么企业级平台都要考虑哪些呢?从开发角度来看,要考虑是否可以支持代码的快速更迭、测试是否可以简捷高效。由于企业级平台涉及软件的生产化,这就需要考虑整个的软件供应链,即从开发角度到运维角度。企业级基础设施软件需要可将公司整个的软件生产流程自动化。

那么容器的作用是什么呢?首先从开发角度可以将应用镜像打包,并使用签名加签之后放入镜像仓库。而对于运维而言,则涉及到很多不同的架构(大型机、windows系、Linux系等),这些Docker都考虑到了,会搜索后端架构然后进行配套支持,用户需要在这之上加入一个控制层,让团队成员看到需要的信息,然后共同协作,即开发和运维在一起。同时,根据开发组、测试组、运维组的不同工作内容,可以看到不同的镜像。

Q3: 2015年的时候Mesos势头很强,但是现在却没有那么频繁地被提及了,您怎么看待呢?

Patrick: Docker要比Mesos范围更大,Mesos是专门用来做大数据、流处理的编排系统。

Docker是从容器技术开始,然后添加更多的功能以实现DevOps。最重要的是与用户的需求共进,比如我们的一个举措就是将Docker模块化、分散化。

Docker发展的前两年,我们增加的是功能;最近两年,我们是Moby化,我们重构了docker项目,然后把containerd捐赠给CNCF。Moby现在就有很多分散的模块,可以用小的模块化去拼接。这对于使用不同系统(different type of system)的用户而言很重要,除了需要构建云原生架构的,比如IoT可以直接用组件,containerd、LinuxKit去以他们自己的方式集成。期望Moby可以越来越好,可以帮助大家用Moby的工具组件去创造将来他们需要的工具。

Q4: 但是您怎样看待Moby发布之后,社区中的误解和抱怨?
Patrick: Moby面向的是完全不同的群体——系统的构建者,他们可以选用Moby组件按照各自特定的需求去建设不同容器平台。社区之所以会有抱怨,在我看来,可能是因为大家当时都是期望听到都是Docker项目的新功能新特性,也就是Docker CE和Docker EE的相关平台类的内容。

虽然目前Docker大多数的开发者都是使用Docker EE或者Docker CE,可能他们不是很关心Moby项目;但是对于开源项目而言,这是一个重大的变革,我们必须把这个消息在DockerCon上发布。

Q5: Kubernetes最近发展迅速,从Kubernetes身上我们能学到什么?
Patrick: Kubernetes是一个非常优秀的项目,由Google开发并捐赠给了CNCF基金会。值得一提的是Docker也是CNCF的创始成员,Kubernetes实际上是在DockerCon2014发布的。

我们双方已经在很多领域都进行合作:一个例子是containerd,最小化的runtime,这是已经赠给OCI的标准,已经被Kubernetes、Swarm采用;另外一个例子是大家都知道Docker的网络规范是CNM,而Kubernetes则是CNI,但是在刚刚结束的北美Moby Summit,我们演示了一个CNI插件的使用。

在10月17日的丹麦DockerCon上,Docker公司宣布Docker平台可以支持Kubernetes、Swarm双编排系统。Docker认为用户们有选择编排系统的自由,Swarm是我们专门为企业设计的产品,而早期的Kubernetes并不满足企业级别的安全需求(不过现在情况有所好转)。

Q6:Docker公司的特色是什么?你们怎么样能做到与众不同呢?
Patrick: Docker可以适用所有的环境,大型机、windows、linux系列,物理机、虚机、各种编排系统和云等,这是目前唯一一个可以做到这点的容器平台。

Docker的另外一个特点是Modernize Traditional Apps(MTA),除了微服务架构之外,Docker还适用于传统型架构的容器化改造。

Q7:你怎么展望未来呢?二年、五年和十年?
Patrick: 未来两年,我希望Docker在更多的企业中被应用,帮助他们现代化。

未来五年,在云原生和企业架构之外,我希望可以看到Docker累积更多的客户实践用例。尤其是IoT、无人机、机器人。自改造成Moby项目,我们和很多的有特定需求的IoT厂商、开发者进行了密切的沟通,不过现在还尚不能公开的使用案例。

至于未来十年,这对于IT领域,真的很难猜测。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5天前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
6天前
|
Kubernetes 开发者 Docker
基于容器技术的微服务架构
基于容器技术的微服务架构
10 0
|
2月前
|
人工智能 弹性计算 调度
阿里云容器服务 ACK 产品技术动态(202312)
容器服务 Kubernetes 版 ACK 【新功能】 Feature:支持基于机密虚拟机的 AI 模型推理保护 ACK 现已支持将基于 Intel® Trusted Domain Extension(Intel® TDX)技术的 ECS 实例加入 TDX 机密虚拟机计算节点池,使集群具备 TDX 机密计算能力,实现 AI 模型的可信推理和微调,保障模型数据的机密性与完整性。结合 PyTorch 与 Intel® AMX指令集,您可以在 32 核实例上实现秒级出图的推理能力。
401 1
|
3月前
|
Serverless API 容器
函数计算容器模式如何设置多久释放资源啊?
函数计算容器模式如何设置多久释放资源啊?
357 0
|
7天前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
18 0
|
15天前
|
运维 API Docker
深入浅出:微服务架构与容器化技术的完美融合
【2月更文挑战第13天】 在现代软件开发领域,微服务架构和容器化技术已成为推动企业快速发展的两大核心力量。本文将从微服务的基本概念出发,深入探讨其与容器化技术结合的必然性与优势,进而分析如何在实践中有效地实现二者的完美融合。通过对微服务架构的细致解析及容器化技术的应用展示,旨在为读者提供一种全新的视角,理解并掌握这一前沿技术趋势,以指导实际工作中的技术选择与架构设计。
|
1月前
|
运维 Java Linux
深入解析:使用Docker容器化技术提升Java应用的部署效率
在快速迭代的软件开发周期中,如何保证应用的快速、一致和可靠部署成为了开发团队需要面对的重大挑战。本文将探讨如何利用Docker容器化技术,结合Java应用,实现高效、一致的部署流程。我们将从Docker的基本概念出发,详细介绍将Java应用容器化的步骤,包括创建Dockerfile、构建镜像以及运行容器等关键环节,并通过示例代码加以说明。此外,本文还将讨论在使用Docker部署Java应用时可能遇到的常见问题及其解决策略,旨在为读者提供一种提升部署效率、优化开发流程的有效方法。
293 2
|
1月前
|
虚拟化 开发者 Docker
深入浅出:利用Docker容器化技术加速Web开发流程
在本篇文章中,我们将探讨Docker容器化技术如何为Web开发带来革命性的效率提升。通过具体案例和实操示范,我们不仅会介绍Docker的基本概念和工作原理,还将深入分析如何利用Docker容器化技术简化开发环境的搭建、提高应用的可移植性以及加快部署速度。本文旨在为读者提供一种全新的视角,理解并实践如何通过Docker优化现代Web开发流程,无论是对于个人开发者还是团队项目,都将带来前所未有的便捷和效率。
16 0
|
1月前
|
负载均衡 开发者 Docker
深入浅出:利用Docker容器化技术提升Web开发效率
在快速变化的软件开发领域,开发者面临着环境一致性和项目部署效率的双重挑战。Docker作为一种先进的容器化技术,为解决这些问题提供了优雅的解决方案。本文将探讨Docker的核心概念、优势以及如何在Web开发中应用Docker来提升开发和部署的效率。通过实际案例分析,读者将了解到如何构建、分享和运行Docker容器,以确保开发环境的一致性,并加速Web应用的交付过程。
|
2月前
|
敏捷开发 Cloud Native 持续交付
大道至简,容器化技术助力软件开发与部署
在当今快节奏的软件开发环境中,容器化技术如Docker以其高效、灵活和可移植的特性成为了热门话题。本文将深入探讨容器化技术的原理和使用,解析其对软件开发和部署的巨大影响。

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版