V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GrapeCityChina
V2EX  ›  推广

BI 系统打包 Docker 镜像及容器化部署的具体实现

  •  
  •   GrapeCityChina · 2022-04-07 14:56:12 +08:00 · 747 次点击
    这是一个创建于 959 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在过去的几年中,"云"作为明星热词站在了各种新潮技术之中,你可能使用过,但说不清它的原理;或者是没用过,但听过它的大名;也可能连它的名字都没听过,但你对这只蓝色鲸鱼一定十分眼熟。作为一名技术人员,只要你在这个软件行业里摸爬滚打,就一定对他有不同程度的了解。

    Docker 是什么?

    Docker 的 LOGO 十分有特点,一条鲸鱼载着很多集装箱,集装箱中满是要交付的货物。鲸鱼就是操作系统,而集装箱就是 Docker ,集装箱中的就是要交付的货物,也就是应用程序。各种"货物"之间的尺寸、大小、形状是各不相同的,都要放到鲸鱼身上,那么就要考虑各种货物怎么安放,还得考虑货物之间能否重叠起来。于是就有了集装箱的概念,将每件货物都放到集装箱中,这样鲸鱼就可以有顺序的安放,省时省力。

    那么就可以理解为:打包好的软件放到容器中,容器再放到操作系统中,就是简单的"build——ship——run",这样就可以保证在自己电脑上怎么运行,在服务器上也是怎么运行,大大减少因为环境原因出错而导致程序运行错误,开发需要花费大量的精力去折腾环境。

    Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,将镜像打包后上传到仓库,就可以发布应用到任意平台中。在使用时,只用一条命令就可以将镜像拉取到本地,然后一条命令就可以快速的将项目部署起来。这也完美的诠释了 Docker 的三大核心:镜像,容器,仓库。

    那么,首先我们要来了解一下 Docker 的优势:

    1.快

    运行时的性能可以获取极大提升(经典的案例是提升 97%)。

    管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。

    1. 敏捷

    像虚拟机一样敏捷,成本更低,部署方式简单。

    1. 灵活

    将应用和系统"容器化",不添加额外的操作系统。

    1. 轻量

    你会拥有足够的"操作系统",仅需添加或减小镜像即可。在一台服务器上可以布署 100~1000 个 Containers 容器。

    5.便宜

    开源的,免费的,低成本的。由现代 Linux 内核支持并驱动。注* 轻量的 Container 必定可以在一个物理机上开启更多"容器",注定比 VMs 要便宜。

    1. 云支持

    云服务提供创建和管理 Linux 容器框架。

    在之前的文章,我们也系统地介绍过 Docker ,感兴趣的同学可以戳:

    第一章:Docker 与 k8s 的恩怨情仇(一)—成为 PaaS 前浪的 Cloud Foundry

    第二章:Docker 与 k8s 的恩怨情仇(二)—用最简单的技术实现"容器"

    第三章:Docker 与 k8s 的恩怨情仇(三)—后浪 Docker 来势汹汹

    第四章:Docker 与 k8s 的恩怨情仇(四)-云原生时代的闭源落幕

    第五章:Docker 与 k8s 的恩怨情仇(五)——Kubernetes 的创新

    第六章:Docker 与 k8s 的恩怨情仇(六)—— "容器编排"上演"终结者"大片

    第七章:Docker 与 k8s 的恩怨情仇(七)—— "服务发现"大法让你的内外交互原地起飞

    第八章:Docker 与 k8s 的恩怨情仇(八)——蓦然回首总览 Kubernetes

    Docker 应用部署 BI 数据分析

    通过上面一系列的介绍,我们可以从发展背景到具体原理和使用了解 Docker 。接下来我们将从 BI 数据分析应用为例,为大家介绍如何实现 Docker 应用程序部署。

    首先我们从 BI 数据可视化分析说起。通过对目前国内市面上多个 BI 应用进行调研后发现这些应用都存在一些问题。

    1. 依赖于运行环境 JDK ,JAR ,.NET Core 等,若运行环境不一致也会导致各种问题出现。
    2. 安装复杂。对于非专业人员,部署一套系统需要投入很大精力。
    3. 过于依赖于操作系统。例如会存在 x32 位不可支持,win7 环境配置难度大,winserver2008 以前版本不支持等各种系统问题。
    4. PC 安装有各类应用软件,容易和已安装软件冲突,引发不可预知的异常问题。
    5. PC 安装各种杀毒软件,如 360 、金山毒霸、电脑管家等一些杀毒软件,会将进程杀掉,引起一些 BI 服务无法正常运行。
    6. BI 产品普遍有很多运行计划任务,个人 PC 安装 BI 应用后,即使不打开软件,程序依然在跑,容易引起 PC 运行比较卡顿。

    上述问题的存在,就让 Docker 可以很好凸显他的价值。

    首先 Docker 中的容器是与其他容器相互隔离的,在所获取的镜像中包含了 Docker 运行所需要的全部依赖的运行环境;所以只需要简单两行代码,就可以安装一个完整的 BI 应用。我们以 Wyn Enterprise 的部署为例,给大家演示下 Docker 进行软件部署的具体过程。

    示例步骤:

    1. 安装 Docker
    2. 获取镜像:
    
    sudo docker pull grapecitycn/wyn-enterprise
    
    
    1. 创建并运行 docker 容器:
    
    sudo docker run --name wyn -p 51980:51980 -d grapecitycn/wyn-enterprise
    
    
    1. 至此,我们就可以通过 http://{server_ip_address}:51980 来访问 Wyn

    通过以上示例,我们可以看到,仅需简单的 3 个命令行,就快速完成了 BI 系统的部署。请问,还有什么比 Docker 更简单快捷的部署方式吗?

    Docker 镜像打包

    部署如此简单,那么如果要进行移植该如何做,集成的项目如何发布 Docker 仓库中呢?

    接下来,我们通过一个案例系统的解镜像打包过程,为大家解答这两个问题。

    事情的起因是客户找到葡萄,表示希望将 BI 软件打包到自己应用系统中,在实现 OEM 白标处理后,做一些个性化配置后,重新打包镜像,上传到 Docker 仓库中。

    说做就做,咱们现在就开始项目。

    1. 首先,使用 Wyn Enterprise 提供的 Docker 镜像来创建一个自己的 Docker 容器
    
    sudo docker pull grapecitycn/wyn-enterprise
    
    sudo docker run --name wyn -p 51980:51980 -d grapecitycn/wyn-enterprise
    
    

    通过: http://{server_ip_address}:51980 进行个性化操作配置。

    1. 按自己的要求进行系统配置

    可以根据自己的需要来对系统进行配置,比如替换登录页面的背景图片和 LOGO ,系统左上角显示的 LOGO ,以及替换浏览器 tag 页上面显示的 LOGO ;还可以根据自己的需要创建一些示例文档。

    1. 用 admin 登录到系统后,导出你需要的文档以及配置。
    2. 制作 Docker 镜像 4.1. 准备一台 Linux 机器,把文件夹 custom-wyn 拷贝到这台机器上面去; 4.2. 把步骤 3 中导出的压缩文件重命名为 sample_files.zip ,并拷贝到目录 custom-wyn/sample_files ; 4.3. 如果需要在自定义的 Docker 镜像中内置字体,请把准备好的字体文件拷贝到目录 custom-wyn/custom_fonts 下; 4.4. 根据自己的需要,修改 dockerfile 文件中 docker 镜像 wyn-enterprise 的 tag 名称; 4.5. 参照脚本文件 push-docker-image.sh 中的内容,制作并且上传 Docker 镜像到 Docker 仓库中。 4.6. 打包资源

    从该地址下载即可:

    https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=139206

    4.7. 拉取 Docker 镜像进行验证

    拉取上面步骤中创建好的 Docker 镜像,并使用该镜像创建一个 docker 容器。

    访问该 docker 容器中运行的 Wyn Enterprise 应用并进行验证。

    至此我们的 Docker 镜像都已经制作完成。

    总结

    这里我们系统为大家介绍了 Docker 应用的优势,以及整个 BI 项目在 docker 中部署的全过程。其中 Docker 镜像打包也是目前很多企业中比较喜欢的一个功能,通过简单的操作 BI 集成到自己的应用系统中一起打包,完美的解决了嵌入融合的问题。

    目前越来越多开发者已经投入到 Docker 的队伍中,同时随着技术更新迭代,BI 也在不断进步,现在WynEnterprise 已经支持 K8S 集群部署。接下来,将持续为大家分享数据集成,数据分析,集群部署等内容。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   996 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:17 · PVG 06:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.