2016年容器市场7.6亿美元,看Docker应用场景有哪些(下)

社区编辑2018-05-17 18:24

本文连接上文:2016年容器市场7.6亿美元,看Docker应用场景有哪些(上)

一、作为云主机使用

相比虚拟机来说,容器使用的是一系列非常轻量级的虚拟化技术,使得其启动、部署、升级跟管理进程一样迅速,用起来灵活又感觉跟虚拟机一样没什么区别,所以有些人直接使用Docker的Ubuntu等镜像创建容器,当作轻量的虚拟机来使用。

特别是现在随着系统、软件越来越多,开发测试环境越来越复杂,仅仅靠多用户共享的这种方式节省资源带来的后果就是环境完全不可控。Docker容器的出现让每个人仅仅通过一个几KB的Dockerfile文件就能构建一个自定义的系统镜像,进而启动一个完整系统容器,让人人都能成为 DevOps。

容器云主机也完全能像普通主机一样随意启动、稳定运行、关机、重启,所以在上面随意搭建博客,小网站,VPN代理服务器等也完全不在话下。除了常用的托管服务业务,你完全可以自定义任何用法,包括在上面使用任何云服务提供商的云硬盘、云数据库,部署各种你需要的服务。 


二、作为服务使用 

如果你仅仅把Docker容器当作一个轻量的固定虚拟机用,那其实只能算是另类用法,Docker容器最重要价值在于提供一整套平台无关的标准化技术,简化服务的部署、升级、维护,只要把需要运维的各种服务打包成标准的集装箱,就可以在任何能运行Docker的环境下跑起来,达到开箱即用的效果,这个特点才是Docker容器风靡全球的根本原因。下面重点列举几个使用Docker容器部署服务的场景。

1、Web应用服务

Web应用服务是使用最广泛的一类服务,典型的架构是前端一个Tomcat + Java服务,后端mysql数据库。前端的Java web服务器是最适合使用Docker容器的,先将Java运行环境、web服务器直接打包成一个通用的基础Docker镜像,之后再将自定义应用代码或编译程序包加入到该基础镜像中就能产生一个新的应用镜像,最后通过Docker服务立马就能以容器的形式启动web应用服务。因为web应用程序一般是无状态的,随着业务访问量增减,用同样的镜像新建、销毁容器即可轻松实现伸缩(前面还需配上DNS域名或者负载均衡的服务),例如下图所示。


Docker容器的web服务


2、持续集成和持续部署

互联网行业倡导敏捷开发,持续集成部署CI/CD便是最典型的开发模式。使用Docker容器云平台,就能实现从代码编写完成推送到git/svn后,自动触发后端CaaS平台将代码下载、编译并构建成测试Docker镜像,再替换测试环境容器服务,自动在Jenkins或者Hudson中运行单元/集成测试,最后测试通过后,马上就能自动将新版本镜像更新到线上,完成服务升级。整个过程全自动化,一气呵成,最大程度地简化了运维成本,而且保证线上、线下环境完全一致,而且线上服务版本与git/svn发布分支也实现统一。


Docker的持续集成持续部署流程

3、微服务架构使用

如果说上面两种应用场景还不足以体现出与传统的PaaS平台相比的巨大优势的话,那么对微服务的架构这种复杂又灵活的使用场景的无缝支持绝对具有革命意义。

微服务架构将传统分布式服务继续拆分解耦,形成一些更小服务模块,服务模块之间独立部署升级,这些特性与容器的轻量、高效部署不谋而合。如下图所示,每个容器里可以使用完全不同环境的镜像服务,容器启动即产生了一个独立的微服务主机节点(独立的网络ip),上层服务与下层服务之间服务发现通过环境变量注入、配置文件挂载等多种方式灵活解决,而且还可以直接将云平台提供的各种云服务与自定义的微服务整合组成一个强大的服务集群。

更重要的是,拥有如此多服务的集群环境迁移、复制也非常轻松,只需选择好各服务对应的Docker服务镜像、配置好相互之间访问地址就能很快搭建出一份完全一样的新集群。


Docker容器搭建微服务架构例子

4、其他应用场景

跑一次性/定时任务

有些情况下用户只是需要执行一次性的任务,例如计算出某个结果即可,如果采用传统的服务模式,服务器需要一直运行,造成的极大的资源浪费。而容器的快速创建、销毁能很灵活满足这种完全按需付费的场景。只要制作好一次性程序运行的Docker镜像,当需要运行的时候实时通过镜像创建出容器来执行任务,程序执行完成容器自动退出释放资源。

当然,容器本身只包含静态的镜像和上层的临时可读写层,运行的数据是不会持久化的,所以任务相关数据可以从云存储、云硬盘或者云端数据库里读写。

科学计算服务

在信息化的今天,除了计算机领域,自然科学等领域也越来越需要借助一些复杂的程序软件来做计算分析,如果还要求他们学习繁杂的服务运维部署就太麻烦了,国外就有科研人员用Docker自行部署IPython Notebook服务器开展数据科学研究的例子。

游戏和网联网等

国内大型游戏公司宣称他们已经将在游戏服务端使用Docker容器。

 

网易云基础服务(网易蜂巢)基于Kubernetes和Docker容器技术打造的新一代云计算平台,致力于改变互联网软件的生产方式,推荐使用服务的方式,服务是一组无状态的可随时伸缩的服务组,对外通过网易的负载均衡暴露统一服务入口提供服务。当然,网易蜂巢同时提供容器(主机)使用方式,容器可看成是一个独立的主机节点,提供SSH客户端登录实现自由操作。欢迎大家使用。

网易云原创文章,未经许可,禁止转载。