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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 在刚刚结束的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领域,真的很难猜测。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1天前
|
持续交付 开发者 Docker
掌握 Docker:容器化技术在现代开发中的应用
Docker 是一个开源容器化平台,使开发者能够将应用程序及其依赖项封装在轻量级容器中,确保跨平台的一致性。本文介绍了 Docker 的基本概念、核心组件及优势,并展示了其在快速部署、一致性、可移植性和微服务架构中的应用。通过示例说明了 Docker 在本地开发环境搭建、服务依赖管理和 CI/CD 流程中的作用,以及多阶段构建、资源限制和网络模式等高级特性。掌握 Docker 可大幅提升开发效率和应用管理能力。
|
7天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
7天前
|
Kubernetes Cloud Native Docker
云原生技术:容器化与微服务架构的融合之道
【9月更文挑战第4天】在数字化时代的浪潮下,企业追求敏捷、高效、可扩展的IT架构成为共识。云原生技术作为现代软件部署的黄金标准,其核心理念在于推动应用的快速迭代与无缝迁移。本文将深入探讨云原生技术的精髓——容器化与微服务架构如何相互促进,共同构建起适应云计算环境的应用生态系统。我们将通过实际案例,揭示如何在云平台上利用这些技术实现服务的解耦、弹性伸缩及自动化管理,进而提升企业的竞争力。
|
11天前
|
Kubernetes Cloud Native Docker
探索云原生技术:从容器化到微服务的实践之旅
在数字时代的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本文将带你领略云原生的奥妙,从容器化技术的基石Docker讲起,到Kubernetes集群管理的航海术,再到微服务的架构设计,我们将一起构建、部署并运行一个简单的云原生应用。准备好,让我们启航!【8月更文挑战第31天】
|
11天前
|
Kubernetes Cloud Native Docker
探索云原生技术之旅:从容器到微服务
【8月更文挑战第31天】 本文将带你踏上一场云原生技术的奇妙之旅,我们将从容器技术的基础出发,逐步深入到微服务架构的世界。你将了解到如何利用Docker和Kubernetes简化应用部署与管理,以及如何通过微服务设计原则构建可扩展、灵活的系统。准备好一起探索这些令人兴奋的技术了吗?让我们开始吧!
|
11天前
|
Kubernetes Cloud Native Docker
探索云原生技术:从容器化到微服务的实践之旅
【8月更文挑战第31天】在数字时代的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本文将带你领略云原生的奥妙,从容器化技术的基石Docker讲起,到Kubernetes集群管理的航海术,再到微服务的架构设计,我们将一起构建、部署并运行一个简单的云原生应用。准备好,让我们启航!
|
11天前
|
Kubernetes Cloud Native Docker
探索云原生技术:从容器到微服务
【8月更文挑战第31天】在数字化转型的浪潮中,云原生技术以其高效、灵活的特点成为企业IT架构升级的首选。本文将从容器化技术入手,逐步深入到微服务架构,通过实际代码示例,展示如何利用Kubernetes和Docker构建和管理云原生应用,助力读者理解并实践云原生理念。
|
11天前
|
应用服务中间件 Java Maven
掌控视图的力量!深入解析 JSF 视图管理,揭秘视图生命周期的秘密,让你的应用更高效!
【8月更文挑战第31天】JavaServer Faces (JSF) 是一种强大的框架,用于管理 Web 应用程序的视图。本文通过具体案例介绍 JSF 视图管理的基础知识,包括创建、管理和销毁视图的过程。首先,在 Eclipse 中创建一个新 JSF 项目,并配置 Maven 依赖。接着,在 `WEB-INF` 目录下配置 `web.xml` 文件,设置 JSF servlet。
26 0
|
11天前
|
Kubernetes Cloud Native Docker
探索云原生技术:从容器化到微服务架构
【8月更文挑战第31天】云原生技术正改变着软件开发和运维的方式,它让应用更加灵活、可扩展且易于管理。本文将深入探讨容器化如何助力应用快速部署,以及微服务架构在提升系统弹性和可维护性方面的作用。我们将一起学习Docker和Kubernetes的基础使用,并通过实际代码演示如何构建一个简单的微服务应用。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供宝贵的知识和技能。
|
11天前
|
Kubernetes Cloud Native 持续交付
云原生技术探索:从容器化到微服务的实践之旅
【8月更文挑战第31天】 在这个由快速迭代和持续交付驱动的时代,云原生技术已经成为现代软件开发的基石。本文将带你深入理解云原生的核心概念,包括容器化和微服务架构,并通过实际代码示例展示如何将理论应用到实践中。我们将一起构建一个简单的微服务应用,了解如何在Kubernetes集群上部署和管理它,从而揭示云原生技术的强大力量和灵活性。