1、Docker 与 GitHub-关于 Docker 容器技术和 GitHub 的简单报告一、了解容器技术后文有 docker 容器技术的具体介绍二、了解 PaaS平台即服务(Platform as a Service, PaaS)是软件即服务(Software as a Service, SaaS)的延伸。SaaS 提供的是定制好的远程软件服务,比如当你订购一个网络销售系统软件,就可以直接使用,不需要代码开发,但是缺点是客制化困难。PaaS 也是远程订购服务,但是你购买的是平台模块服务,如计算能力、数据库、储存和消息传送等。底层的平台已帮你铺建好,你需要开发自己的上层应用。首先,技术门槛降低让
2、应用更容易生成,而间接鼓励更多的商业模式创新。尤其是资金花在软件和硬件的比例会减低,给初创公司带来更大的生存空间;再来,可以有更多的平台服务架构在现有的 PaaS 上(Platform over PaaS),使得服务的种类多样化。这也会促成生态链的形成;最后,公司的合并门槛减低,如果两家公司用的是同一个平台服务,那么就没有技术整合的问题了。当然,PaaS 要大力发展还是有一些困难得克服,例如 vendor lock-in,也就是说 API 和数据都还不是标准化,使得应用迁移变得复杂。再者,网络的连接性也是一大问题当你的应用因为任何一端的网络而没办法连上平台服务时,你可能没有任何其他的备份方案。
3、最后,老实说国内的互联网产业要能真正提供 PaaS 还有一段路得走,毕竟技术门槛不是太低,尤其是分布式计算的构建不是一蹴而就的。PAAS 平台应用代表国外:Google、Salesforce、Amazon国内:八百客 用友 百度 BAE 新浪 SAE 阿里 Ali 魔泊云三、DockerDocker 是PaaS 提供商dotCloud 开源的一个基于LXC 的高级容器引擎,源代码托管在 Github 上, 基于 go 语言并遵从 Apache2.0 协议开源。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是
4、完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。注:LXC 即 linux container以上均为百度所查资料。四、个人总结1.什么是 docker?Docker 容器技术是现今云计算市场上的一种主流技术,以下是对 docker 容器的一个原理介绍:右上图为典型 linux 的 bootfs+rootfs 文件系统。左上图为建立在 AUFS 文件系统的 Docker 容器。个人总结:就是 docker 利用 lxc 实现了类似 VM 的功能,且启动快、占用资源小
5、。Vm 属于硬件级虚拟化方法,而 Lxc 则属于操作系统级虚拟化方法。2.docker 的作用A.沙箱(Sandbox)百度说:作为 sandbox 大概是 container 的最基本想法了 - 轻量级的隔离机制, 快速重建和销毁,占用资源少。用 docker 在开发者的单机环境下模拟分布式软件部署和调试,可谓又快又好。同时 docker 提供的版本控制和 image 机制以及远程 image 管理,可以构建类似 git 的分布式开发环境。可以看到用于构建多平台 image 的 packer 以及同一作者的 vagrant 已经在这方面有所尝试了,笔者会后续的 blog 中介绍这两款来自同一
6、 geek 的精致小巧的工具。B.PaaS从 二、了解 PaaS,我们知道 VM 可以搭建出 PaaS 平台来,经过 docker 容器的了解,Docker 也可以搭建出 PaaS 平台来,而且感觉更高大上些。国内也已经开始出现基于 Docker 的 PaaS。2015 年 3 月 11 日,云雀 Alauda 云平台正式开启内测,对外提供基于 Docker 的 PaaS 服务。3.docker 的部署4.把应用程序迁往 Docker 容器的方法网上的例子虽然少,但是还是有,这里就不再叙述,留个空白,等以后有机会再填GitHub-以下是百度的简单的介绍Git 是一个分布式的版本控制系统,最初由 Linus Torvalds 编写,用作 Linux 内核代码的管理。在推出后,Git 在其它项目中也取得了很大成功,尤其是在 Ruby 社区中。目前,包括Rubinius、Merb 和 Bitcoin 在内的很多知名项目都使用了 Git。Git 同样可以被诸如 Capistrano和 Vlad the Deployer 这样的部署工具所使用。