• 五分钟学GIS | Docker在GIS中的应用


    什么是Docker
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    Docker起源
    Docker的思想来自于集装箱,集装箱可以把货物规整地摆放起来,并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响,任何一艘大船都可以运送这样的集装箱。使用Docker,开发者的应用可以实现一次打包,多处运行,即Docker提出的“Build once,Run anywhere”。

    为什么用Docker
    举个简单的应用场景例子,假设用户试图基于最常见的LAMP(Linux + Apache + MySQL + PHP)组合来运维一个网站,按照传统的做法,首先,需要安装Apache、MySQL 和PHP以及它们各自运行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);经过大量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则意味着更多的时间代价和不可控的风险。可以想象,如果再加上更多的应用,事情会变得更加难以处理。更为可怕的是,一旦需要服务器迁移(例如从阿里云迁移到腾讯云),往往需要重新部署和调试。这些琐碎而无趣的“体力活”,极大地降低了工作效率。
    而Docker提供了一种更为聪明的方式,通过容器来打包应用,意味着迁移只需要在新的服务器上启动需要的容器就可以了。这无疑将节约大量的宝贵时间,并降低部署过程出现问题的风险。

    为什么不用虚拟机
    容器和虚拟机这么类似,为什么不直接用虚拟机?简单点说,Docker 容器相对于虚拟机 有以下三个优点:
    1.启动速度快,容器通常在一秒内可以启动,而虚拟机通常要更久;
    2.资源利用率高,一台普通PC机可以跑上千个容器,但虚拟机可能最多几十个;
    3.性能开销小,虚拟机通常需要额外的CPU和内存来完成 OS 的功能,这一部分占据了额外的资源。

    为什么容器和虚拟机会有如此巨大的差距呢,这其实和他们的设计理念是相关的。设计图如下:
    举例来说,VM 的 Hypervisor 需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。Docker 几乎就没有什么虚拟化的东西,并且直接复用了Host 主机的OS,在 Docker Engine 层面实现了调度和隔离,重量一下子就降低了好几个档次。

    Docker在GIS中应用的优势
    1.性能更高
    性能问题是大型GIS系统中最受关注的问题。大型GIS系统通常会使用多个服务节点,在这一过程中,服务节点的创建、启动、响应三个方面也是影响性能的重要因素。
    服务节点的创建与启动,通常是一个等待过程,而Docker的引入,极大地减少了这个等待过程,通过对比测试发现,Docker节点的新建和启动比FusionCompute快9倍。

    服务节点响应,针对这一点,我们对常用的三个GIS功能进行了对比测试,从测试结果可以看到,整体上Docker的性能都要优于VMWare,数据查询在Docker环境要比VMWare快32.5倍。
    2.资源利用率高,体积小
    在大型GIS项目中,经常通过创建多个服务器节点来搭建应用集群,从而减轻大量用户同时访问带来的高并发压力。因为Docker体积更小,资源利用率更高,那么就可以更加充分的利用硬件资源,创建更多的Docker节点,从而有效提高GIS的并发能力。
    3.价格优势
    Docker是免费的应用容器引擎,相比vSphere、FushionCompute等其他商业软件动辄上万元的价格,Docker更能节省GIS项目成本。
    4.环境标准化
    上文中已通过LAMP案例介绍了Docker的环境标准化优势,目前Docker已广泛应用到各GIS应用中,SuperMap五个产品(iServer、iPortal、iExpress、iCloudManager及iDesktop Cross)在Docker官网提供了完整镜像。通过下载镜像,大家可以一键部署SuperMap产品,省去了软件安装、许可配置、系统依赖库查找等诸多环节,同时有效避免了因操作系统环境差异而造成的依赖库缺失等问题。
    最后,为大家提供Docker镜像中心地址,大家可以体验一下更便捷的SuperMap产品安装部署方法,同时大家也可以制作自己的Docker镜像,上传到官网,分享给其他用户使用。
    Docker镜像中心地址:https://hub.docker.com/
    SuperMap Docker镜像下载地址:https://hub.docker.com/u/supermap
    ————————————————
    版权声明:本文为CSDN博主「supermapsupport」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/supermapsupport/article/details/74923994

  • 相关阅读:
    Python 爬虫的工具列表
    使用rabbitmq手动确认消息的,定时获取队列消息实现
    redis订阅发布简单实现
    ubuntu下打开html页面
    关系数据库基本术语
    事务的基本概念,附图示
    oracle 一对多数据分页查询筛选
    一个在linux环境执行io操作的bug
    再springMVC中自定义文件上传处理解决与原spring中MultipartResolve冲突问题
    oracle存储过程删除树状结构的表数据
  • 原文地址:https://www.cnblogs.com/perfectdata/p/15958511.html
Copyright © 2020-2023  润新知