分享

PPT全程实录 详细解读

 mrjiangkai 2016-08-28

PPT全程实录 详细解读

Ben Golub,CEO,Docker General Session

PPT全程实录 详细解读

21日DockerCon的General Session主题是Docker in Production,我们可以看到雇员超过500人的公司里面,73%已经在使用Docker了。

PPT全程实录 详细解读

Docker在Cloud、DevOps和App方面都带来巨大变革。

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

Docker带给企业级应用的变革将会是渐进式的,传统应用逐步转变为适合上云的微服务架构。

PPT全程实录 详细解读

PPT全程实录 详细解读

Container as a Service在Agility、Portability和Control三个方面为企业应用带来巨大便利。

PPT全程实录 详细解读

Docker Datacenter是Docker公司推出的CaaS服务。

PPT全程实录 详细解读

Docker公司正式推出Docker Store,是提供经过验证的Docker程序的应用市场。

PPT全程实录 详细解读

PPT全程实录 详细解读

Docker的生态系统已经相当庞大了。

Arnaud Porterie,Senior Engineering Manager, Docker

Anusha Ragunathan,Software Engineer, Docker

Docker for Ops: Extending Docker with APIs, Drivers and Plugins

PPT全程实录 详细解读

三种方式来扩展Docker:APIs、Plugins、Drivers,这三种方式的难易程度是由易到难递增的。

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

以上七张图是关于如何使用Docker API来管理Docker。

使用Docker API的难度很低。Docker的API都是RESTful风格的,基于HTTP通讯,消息格式都是Json。

有一个重要的Docker API是Docker Event API。通过Docker Event API可以获取任何Docker应用的动作,比如创建、联网、断网、结束、销毁等Docker应用全生命周期的各种动作。

https://github.com/ehazlett/interlock展示了用Docker Event API加HAProxy实现服务发现功能。

PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读PPT全程实录 详细解读

以上九张图是关于如何使用Docker Plugin。使用Docker Plugin的难度属于中等。

Docker插件是Docker引擎额外依赖的第三方程序,Docker插件与Docker引擎通过RESTful方式通讯。

Docker插件因为是独立于Docker引擎之外又被Docker引擎依赖的第三方程序,必须是高可靠的。Docker插件也可以从Docker Store(Docker公司认证过的应用商店)下载。每个Docker插件的功能都有对应的manifest文件来定义。

未来在Docker 1.13里,每个主机可以分别安装Docker插件,而且Docker插件也会和Swarm结合,由Swarm来管理每个节点上的Docker插件,甚至也可以用插件来定制Docker编排的策略。

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

上面七张是是关于如何使用Drivers。使用Drivers的难度很高。

Open Container Initiative(OCI)定义了容器的runtime(运行标准),由containerd守护进程来管理容器,由runC来具体运行每个容器。

Docker对容器的运行方式是符合OCI标准的,Docker的守护进程dockerd跟containerd之间通过gRPC通讯,由containerd和runC来分别管理运行Docker容器。

runC是OCI标准的容器运行方式,还有其他方式,比如runZ在Solaris上运行Docker。

PPT全程实录 详细解读

小结——管理Docker的三种方式: 1、使用Docker API,非常易用;

2、使用Docker插件,难度中等,Docker 1.12重新定义了Docker插件的接口;

3、使用Drivers,非常难,主要适用场景是要定制容器的运行环境,比如在Unix上运行Docker等。

Mindy Preston,Software Engineer, Docker Unikernels and Docker: From Revolution to Evolution

PPT全程实录 详细解读

PPT全程实录 详细解读

Unikernel是指运行时不区分内核态与用户态,Unikernel程序完全运行在物理地址空间,Unikernel程序对操作系统无依赖。Library OS是在Unikernel程序中,用于组合各种依赖库来代替传统OS的功能。应用程序+Library OS组成Unikernel程序。

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

其实人们并不关系Container或者Unikernel,人们只关心应用程序运行得好不好。而且人们希望程序的运行尽量简单、高效,不希望程序有复杂的配置和过多的资源消耗。

通常,为了运行一个程序,需要:源代码、编译器、额外的依赖库、OS(包括共享库)。但是这样很容易碰到运行时各种错误。

用Docker的方式运行程序的话,用Dockerfile定义程序构建方式以及程序运行时依赖,这样使得程序具有可移植性,但是Docker运行程序仍然不完美,对宿主操作系统有依赖。Unikernel程序,完全消除了对OS的依赖,使得Unikernel程序自成一体完全没有外部依赖。

PPT全程实录 详细解读

PPT全程实录 详细解读

可以在容器里构建Unikernel程序。

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

PPT全程实录 详细解读

现在的OS要支持各种复杂功能,时间、网络、存储、日志、各种IO,等等。而且对Linux内核进行调试修改的话非常复杂,而且非常麻烦。

使用Unikernel的话,可以自行定制OS的各种库,比如网络库。这样Unikernel程序开发者同时也对OS有完全的掌控,可以任意定制。

Unikernel程序开发者可以任意修改OS的状态,这样可以测试Unikernel程序在各种边界情况下的运行情况,比如Unikernel可以定制出文件系统写满的状态、快设备总是繁忙的状态等等。

很多程序都对网络有依赖,而且网络配置很复杂,OS上常常要配置VPN、DNS、Proxy等等。VPNkit是一种Library OS,可以运行在Docker里。VPNKit提供了网络方面的依赖库,可以用于对网络有依赖的Unikernel程序开发。

PPT全程实录 详细解读

目前Docker的一些Library OS:VPNKit、HyperKit。MirageOS也是一种流行的Library OS。unikernel.org列出了一些常见的unikernel项目。

今年的DockerCon完满落下帷幕。我们看到Docker从一个新生的开源技术成长到如今遍布世界大多数地方,并且它仍然是新鲜的,充满活力的,值得探索的。巨额融资、IT巨头竞相支持的背后,是一片更为广阔的Docker生态链。

Read more postsby this author.

Share this post

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多