Docker 大大简化了环境的初始化过程和应用部署过程。通过将执行过程模板化,可以做到在部署环境上 DO NOT REPEAT YOUR SELF 。

Docker 之前

以前设计一个应用或者架构,会仔细考虑部署的复杂度和所依赖中间件的初始化和搭建成本。尽量用部署简单的产品,避免部署复杂的产品。尽可能少的安装依赖。从这个角度看 Golang 比 Java 应用的一个优势就是不用再安装 JVM ,直接启动进程。或者把 Java 应用打包成 Fat jar 当成进程启动和维护,而不再安装容器。

Docker 之后

但是这些顾虑在 Docker 出现后不再那么强烈。因为维护成本大大降低了。

使用 Docker 也可以避免这些中间件对开发环境的污染。不用再担心在自己开发环境安装 Hadoop 这样的重量级产品。

而一些常用的重量级产品:Zookeeper、Kafka、Spark 也可以轻松用 Docker 维护,启停自如。不用担心部署的复杂度而不用这些产品。

Docker templates

为此我在 Github 上建立了一个 Docker templates 项目:

https://github.com/doubaokun/dockers

主要目的是用在自己的开发环境上,随时启用这些可能用到的依赖环境。

目前包含了这几个模板:Java 应用;Zookeeper;Kafka;  Spark。

生产环境

针对于生产环境,很多公有云已经支持 Docker 的部署

Google Cloud:https://cloud.google.com/container-engine/

AWS: http://aws.amazon.com/elasticbeanstalk/

个人和小团队用的话推荐:DigitalOcean 可以平滑的从 $5 美元开始过度到数十台服务器。

注册 DigitalOcean 免费获得 $10 折扣

推荐这些相关文章

订阅这个博客:

关注我的微博:

关注我的推特: