浅析Docker容器的应用场景

飞来科技  发布时间:2019-08-08 15:04:05

本文关键词:微服务架构 云计算

微服务架构 云计算_云计算 微服务_微服务架构部署图

作者:娄超

过去几年开源界以openstack为代表的云计算持续火了很久,这两年突然又冒出一个叫Docker的盛器技术,其发展之迅猛远超预料。网上介绍Docker容器的标题已经好多了,用一句话概括:Docker是一种轻量虚拟化的盛器技术,提供相似虚拟机的隔离系统,并使用了一种分层的联合文件功能技术管理镜像,能极大简化环境运维过程。

Docker容器云则是使用Docker技术构建的一站式容器云服务平台,即CaaS(Containers as a Service)-容器即服务;可以将它简单看也是PaaS的升级版,使用Docker容器技术的CaaS平台系统更强大,使用灵巧,部署更方便。

Docker容器作为一个全新的定义还是广受关注,所以对于怎样使用Docker,将容器技术真正落地用起来,当前可能很还没有非常清晰的思维。写这篇短文主要动机就是根据Docker容器的优点,描述Docker容器到底能用于干什么,超过抛砖引玉的动机。

可以表示容器云是处于IaaS和PaaS之间的位置,容器编排集成度越高越像PaaS,反之越像IaaS,据此这里简单地将Docker容器的应用分两大类:主机和服务。

一、也是云主机使用

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

云计算 微服务_微服务架构部署图_微服务架构 云计算

特别是现在随着功能、硬件越来越多,研发试验环境越来越复杂,仅仅靠多用户共享的那种方法节约资源带给的恶果就是环境完全不可控。Docker容器的出现让每位人仅仅通过一个几KB的Dockerfile文件就会建立一个自定义的功能镜像,从而启动一个完整功能容器,让人人都能作为 DevOps。

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

当前docker容器管理服务器在windows下运行需要通过Toolbox工具,但是微软在2014年底就计划提供Windows Server容器镜像但当前还没有发布,但是想在docker里跑windows功能的盛器的人还需要等待,能够到时候微软能裁剪出一种轻巧的windows基础镜像,其实容器本身就是一种更轻量级的功能。

二、也是服务使用

因为你仅仅把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容器用在网游服务端使用docker,因为对网游不了解,具体什么用的没太关注,有才能的人可以参考下你们的应用策略。

关于物联网的使用,这儿有一篇介绍怎么使用 Docker 容器快速开发物联网应用程序(IoT)的翻译文章。

网易云计算基础服务是一个为开发者打造的基于Docker的盛器云,提供安全灵活的盛器即服务,兼顾应用引擎类PaaS服务的便利性和IaaS服务的灵活性,是虚拟主机的变异版本。为满足不同用户需求,如上文所述,当前同样提供容器(主机)和服务两种应用方法,容器可看成是一个独立的主机节点,提供ssh客户端登录实现自由操作;服务则是一组无状态的可随时伸缩的服务组,对外通过网易的负载均衡暴漏统一服务入口提供服务。

网易云计算基础服务的docker镜像仓库里包括最常见的一些公有镜像供各位直接使用,用户还可以在里面管理自定义的私有镜像,通过偏平的用户私有网络实现外部容器之间的互通。对无状态容器服务提供可信、可伸缩的服务(RDS)微服务架构 云计算,后端还能配置负载均衡服务NLB方便按需扩容和缩容。此外,还可以在平台上配置的监控服务,提供短信、电话报警提醒。

对于无法自行维护一整套容器服务的小企业、个人用户,通过云计算基础服务也可以很方便就能尝试体验docker容器的气质,网易云计算基础服务早已全面开放注册,最近还打出初次充值1元即可返30元的特惠活动,欢迎试用!

本文来自网易云社区,经作者娄超授权发布

本文来自互联网,由机器人自动采编,文章内容不代表本站观点,请读者自行辨别信息真伪,如有发现不适内容,请及时联系站长处理。

    相关阅读
    时时彩平台