OA系统的容器化开发

举报
MJ_C 发表于 2023/11/10 20:45:24 2023/11/10
【摘要】 项目使用了华为云服务提供的基于鲲鹏计算架构的远程 ECS 主机和Gauss DB 数据库,完成了 OA 系统的部署与配置、镜像的搜索和下载、云数据库信息的迁移、使用云容器部署 CCE 系统等实验任务,并通过华为云提供的 SWR服务部署镜像文件到云端,了解一整套云服务部署过程。实验结束后,成功在 ECS服务器上部署运行了 OA 系统,且可以通过 HTTP 协议正常登录、访问

一、实验内容

使用华为云提供的云服务,完成在鲲鹏平台上部署企业自动化办公(Office Automation,简称OA)系统,同时掌握如何将本地自建的MySQL数据库迁移到云数据库GaussDB,以及如何在鲲鹏平台上部署应用的高可靠。之后,通过一个开源的OA系统实例,实现OA系统在华为云鲲鹏云服务器上的部署,并通过华为云容器引擎CCE部署OA系统,使得应用快速部署至华为云鲲鹏平台。具体包括以下几个方面的实践内容:
(1)掌握华为云鲲鹏云服务的操作方法;
(2)掌握自建数据库迁移到云数据库GaussDB的原理、流程和操作方法;
(3)完成鲲鹏云平台应用的高可靠部署;
(4)完成GaussDB云数据库的配置与使用;
(5)使用SWR构建OA系统服务。

二、实验原理与参数

2.1 组网环境

2.1.1 实验组网示意图

image.png

图2-1 OA部署组网环境

2.1.2 理解与分析

云计算的一个重要环节就是网络连接,否则本地将无法操作远程的计算资源。如图2-1所示,在华为云的组网中,用户通过虚拟私有云访问相应实例ecs-oa,该主机和云上自建的数据库主机ecs-mysql相连,从而完成一整套办公系统的自动化运行。

2.2 远程连接手段

image.png

图2-2 云主机的远程操控
本次实验使用远程连接工具对ECS主机进行访问与操作。使用的工具包括PuTTY、Xshell等,均用到了SSH协议:如图2-2所示。SSH是一种加密的网络传输协议,可在不安全的网络中网络服务提供安全的传输环境,通过在网络中创建安全隧道来实现 SSH 客户端和服务器之间的连接。

2.3 ECS实验环境参数

2.3.1 CPU/GPU型号与参数

表2-1 CPU参数

属性 型号 核心数 架构 规格名称 BogoMIPS
参数 Huawei Kunpeng 920 2.6GHz 2 鲲鹏计算 kc1.large.2 200.00

表2-2 GPU参数

属性 设备编码 规格
参数 02:03.0 Virtio GPU(rev 01)

2.3.2 内存容量与带宽

表2-3 主存参数

属性 内存容量 基准/最大带宽 可用空间
参数 4 GiB 0.8/3 Gb/s 2471190 kB

2.3.3 互联网络参数

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.14  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f816:3eff:fe12:6a78  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:12:6a:78  txqueuelen 1000  (Ethernet)
        RX packets 24481  bytes 36216491 (34.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2588  bytes 207445 (202.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

三、鲲鹏部署OA系统

3.1 应用部署

3.1.1 购买华为云ECS云服务器

首先根据要求,从华为云官网上配置ECS弹性云服务器资源。配置成功界面如下图3-1所示:
image.png

图3-1 ECS资源的云上配置

3.1.2 安装JDK

使用Xshell 7,根据ECS主机的IP地址创立和本机的SSH远程连接。然后使用yum install安装Java 1.8 JDK,成功界面如图3-2所示:
image.png

图3-2 安装JDK

3.1.3 安Maven

首先创建Maven安装目录,切换进去以后使用wget获取安装包。使用tar解压后,编辑profile环境配置文件。然后使用source将配置生效后,校验是否成功安装。成功界面如下所示:
image.png

图3-3 安装Maven

3.1.4 Maven更换下载源与项目复制

使用vim工具,在Maven安装配置文件中添加新的基于华为云的镜像下载源地址,这样能避免安装超时。添加内容如图3-4所示:
image.png

图3-4 修改配置文件

3.1.5 Git项目复制

在配置修改完成之后,安装git工具,然后使用git clone将项目源码下载到本地。下载成功界面如图3-5所示:
image.png

图3-5 git项目复制

3.1.6 GaussDB for MySQL连接

再次使用vim工具,修改application.properties文件,修改url、username和password为ecs-mysql的内网地址、mysql的登录用户名和密码,保存文件退出。

四、鲲鹏平台云数据库部署

4.1 部署云数据库GaussDB

从云数据库服务中配置并完成购买。部署成功界面如图4-1所示:
image.png

图4-1 华为云数据库的配置

4.2 数据导入

4.2.1 导入数据到gauss-oa

登录数据库服务器,然后选择从外部导入数据,执行给出的oasys.sql代码文件。等待SQL语句执行完成后的界面如图4-2所示。可以看到oasys中全部数据表项已经创建完成,执行记录也已经导入成功。
image.png

图4-2 数据的导入

4.2.2 编译安装系统

1.首先,使用vim修改配置文件,使得OA系统的数据库能够正常访问;
2.安装Maven。执行以下mvn install命令,进入项目目录,使用Maven本地安装,如图4-3所示可见创建成功:
image.png

图4-3 安装OA系统
3.启动oasys.jar应用,在终端界面可以看到启动成功的日志:
image.png

图4-4 启动OA应用
4.通过ECS弹性公网地址123.249.5.155:8088访问OA系统登录页,使用用户名“soli”和密码“123456”登录OA系统主界面,如图4-5所示:
image.png

图4-5 登录OA系统

五、鲲鹏平台OA系统容器化部署

5.1 通过Dockerfile构建OA系统镜像

5.1.1 构建OA系统镜像

1.首先参照实验1的步骤为ecs-oa安装Docker(在此之前需要安装Docker依赖工具)。之后使用vim工具创建Dockerfile然后编辑。完成后Dockerfile文件中的内容如下:
image.png

图5-1 修改Dockerfile
2.之后配置镜像加速器,通过tee修改daemon配置文件“daemon.json”来使用加速器。通过Dockerfile创建OA系统镜像,构建成功界面如图5-2:
image.png

图5-2 构建镜像oa-kunpeng
3.使用docker images指令可以看到新建的镜像文件如下图所示:
image.png

图5-3 查看新构建的oa-kunpeng

5.1.2 镜像的SWR上传

1.按照实验指导书的要求,在华为云网站的容器镜像服务SWR上新建cloud-tju,然后通过docker临时登陆指令在ecs-mysql远程登陆,如图5-4所示:
image.png

图5-4 docker的远程登陆
2.对镜像打标签,然后docker push上传上一步构建的私有镜像。上传成功的日志输出如图5-5所示:
image.png

图5-5 oa-kunpeng镜像的上传
在我的镜像界面可以看到新增了已经上传的oa-kunpeng镜像文件如图所示:
image.png

图5-6 私有镜像文件列表

5.2 CCE鲲鹏集群的构建

1.按照实验指导书的要求,在CCE服务界面购买实验所需的集群。任务提交、创建成功后在集群列表可以看到新建的集群如图5-7所示:
image.png

图5-7 新建集群oa-kunpeng
2.构建弹性负载均衡服务ELB。按照实验指导书的要求,在服务界面购买实验所需的负载均衡服务。创建成功后在列表可以看到新建的ELB如图所示:
image.png

图5-8 新建ELB oa-kunpeng
3.在集群oa-kunpeng里创建一个可用集群节点,如图5-9所示:
image.png

图5-9 新建CCE节点

5.3 CCE部署OA系统

1.在CCE集群oa-kunpeng创建工作负载,构建成功界面可以看到新增的访问方式如图5-10所示:
image.png

图5-10 新建工作负载访问方式
2.通过负载均衡弹性公网IP(121.36.5.21)加8088端口访问OA系统登录页,使用用户名“soli”和密码“123456”登录进入OA系统主界面,如下图所示:
image.png

图5-11 弹性负载均衡+SWR镜像访问OA系统
此外,对于该系统的具体功能(如:讨论区),也进行了测试。如下图所示,可见数据库已经完整的导入OA系统中,且镜像功能上传是无损的。
image.png

图5-12 OA系统讨论区

六、实验拓展与展望

6.1 对OA系统的理解

6.1.1 OA系统概述

OA(Office Automation)是一种办公自动化的工具,它可以通过网络和OA软件构建单位内部的办公平台,从而辅助办公工作。OA系统是一种组织行为管理软件,它可以协同管理单位内部的各个部门和人员,从而提高工作效率。OA系统包括沟通协作、信息共享、文档管理和工作流程等多种功能,可以实现多人、多部门、跨地域的协同办公模式。
OA系统的使用门槛非常低,通过OA办公系统实现多人、多部门、跨地域的协同办公模式,使日常许多通过手工完成的事情被计算机和网络提供的功能所代替。

image.png

图6-1 一个OA系统的应用实例

6.1.2 OA系统与云计算

OA系统和云计算是密切相关的。云计算是一种基于互联网的计算方式,它通过网络为用户提供计算资源和服务,包括存储、处理、分析等。而OA系统则是通过网络和软件构建一个单位内部的办公平台,实现办公自动化和信息化。因此,大多OA系统基于云计算平台来实现,从而实现更高效、更安全、更灵活的办公方式。通过使用华为云等平台,OA系统可以实现资源共享、灵活扩展、弹性计算等功能,从而更好地满足单位内部的办公需求。同时,云计算还可以提高OA系统的可靠性和安全性,保障办公数据的安全和可靠性。

6.2 对Docker容器的理解

6.2.1 Docker的概念和运行原理

Docker是一个用于应用程序级虚拟化的系统。虽然不同的Docker容器可以共享一个kernel,但它们通常很少共享其他内容:文件、进程等都可以单独使用。它通常用于测试软件系统和在生产中运行它们。
Docker有这样几个概念:dockerfile,image,container,可以把image镜像理解为可执行程序,container是运行起来的进程。如果说写程序需要源代码,那么创建image就需要dockerfile,创建程序通过执行dockerfile里的指令创建对应容器。因此我们只需要在dockerfile中指定配置和依赖,之后将其交给docker进行docker build编译,生成的image就可以通过docker run运行了,image运行起来后就是docker container,如图6-2所示。
image.png

图6-2 Docker工作流程

6.2.2 Docker与云计算

随着云计算的广泛应用以及开发和运营团队高效协作的需要,Dcoker的使用越来越突出,其中Docker作为容器技术的一个广受欢迎的例子,已经成为了软件开发中的标准,并在改变完全堆栈虚拟化的范式方面发挥了重要作用。Docker对于云计算而言十分重要,原因在于Docker 容器允许开发人员将他们的应用程序与所需的依赖项(例如配置、框架、库和运行时)打包到其中,由此提供了一个把应用程序拆分为分布式组件的方法,并且用户还可以管理、升级这些容器成为集群。

6.3 对Gauss DB以及云数据库的理解

6.3.1 云计算与数据库

数据库和云计算有密切的关系。云计算提供了强大的计算和存储资源,使得数据库可以实现分布式、高可用、高性能等特点。同时,数据库也是云计算的重要应用之一,为云计算平台提供了数据存储和管理的基础支持。具体来说,云计算平台可以为数据库提供以下支持:
(1)弹性扩展:云计算平台可以根据业务需求自动调整数据库的容量和性能,实现弹性扩展。
(2)多副本和备份:云计算平台可以为数据库提供多副本和备份,实现数据的高可用和灾备。
(3)安全和隔离:云计算平台可以为数据库提供安全的网络隔离和访问控制,保障数据的安全性。
(4)数据治理:云计算平台可以为数据库提供数据治理和数据安全的功能,实现数据的合规性和质量控制。

6.3.2 华为云Gauss DB

GaussDB是华为云推出的一款关系型数据库管理系统,支持分布式、高可用、高性能的特点。它可以应用于各种场景,包括企业核心业务、大数据、物联网等等。GaussDB支持多个数据库引擎,,可以满足不同的业务需求。此外,GaussDB还支持自动容灾、自动备份、自动修复等功能,提供了安全可靠的数据保障。
相比于传统的MySQL数据库,GaussDB有以下优势和劣势:
1.优势:
(1)支持分布式架构,可以实现数据的高可用和水平扩展。
(2)支持海量数据处理,可以满足大规模数据的存储和分析需求。
(3)支持OLAP引擎,可以实现复杂的数据分析和处理。
(4)支持多种数据类型,包括空间数据和时间序列数据等。
(5)支持自动容灾、自动备份、自动修复等功能,提供了安全可靠的数据保障。
2.劣势:
(1)相对于MySQL,GaussDB的学习成本较高,需要掌握更多的技术知识。
(2)相比于MySQL,GaussDB的性能较低,需要更高的硬件资源和更复杂的配置。
(3)相比于MySQL,GaussDB的生态系统较为薄弱,缺乏相关的工具和应用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。