[云原生专题-58]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 上云部署过程总体概述与总体流程

网友投稿 259 2022-11-03

[云原生专题-58]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 上云部署过程总体概述与总体流程

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

​目录​

​​第1章 RuoYi Cloud概述​​

​​1.1 RuoYi Cloud项目概述​​

​​1.2 单机部署的应用程序上云过程中的主要变化​​

​​1.3 RuoYi Cloud项目上云,涉及4个方面的主要工作:​​

​​(1)有状态的中间件,主要是数据库​​

​​(2)无状态的业务相关的微服务(手工制作docker镜像)​​

​​(3)微服务应用程序相关的配置文件​​

​​(4)网络​​

​​第2章 RuoYi Cloud项目业务软件架构​​

​​(1)数据库微服务层​​

​​(2)应用微服务层​​

​​(3)微服务注册层​​

​​第3章 从代码层面看RuoYi 支持的微服务​​

​​(1)前端服务​​

​​(2)后端服务​​

​​(3)后端网络​​

​​第4章 手工本地化部署的主要步骤​​

​​步骤0:前置条件​​

​​步骤1: Clone项目代码到本地机器​​

​​步骤2:启动nacos服务​​

​​步骤3:启动MySQL服务​​

​​步骤4:启动Redis​​

​​步骤5:启动ruoye程序​​

​​第5章 手工上云分步部署的主要步骤 ​​

​​步骤0:前置条件​​

​​步骤1: Clone项目代码到本地机器​​

​​步骤2:部署中间件数据库​​

​​步骤3:微服务管理层​​

​​步骤4:部署微服务​​

​​步骤5:部署网关​​

​​步骤6:部署前端UI​​

​​第6章 DevOps自动化部署​​

​​6.1 DevOps的整体流程​​

​​6.2 DevOps自动化部署的阶段​​

第1章 RuoYi Cloud概述

1.1 RuoYi Cloud项目概述

​​单机部署的应用程序上云过程中的主要变化

RuoYi Cloud一款基于Web的​后台管理​系统,由多个功能模块组成,大都数功能模块是可以划分为一个个独立的微服务,本文并不打算介绍或学习功能模块的使用或代码实现,而是根据该开源项目的源代码,采用微服务部署的方式,把该项目部署到云端。

单机部署的应用程序上云过程中的主要变化如下:

​(1)总体​

​采用微服务的方式部署:​而不是一体化的方式部署该应用;​部署到云端:​而不是部署到单机,实际上,该项目是可以部署到单机上的。

​(2)中间件的变化​

中间件程序被部署成有状态的服务,有自己独立的IP地址,而不是local IP。需要分层部署:docker -》 deployment -》 service这三层,最底层的doker,最接近单机上的一个功能。

​(3)单个应用程序的变化​

相对于第三方中间件的部署方式:​该项目的部署,是从源代码开始:​需要自己编译、制作镜像、发布镜像,然后再根据镜像进行部署,而不是直接使用镜像仓库中的镜像部署。相对于单机版应用程序:上云后的每个应用程序以微服务的形式存在,以docker镜像的方式存在,因此相对于单机版,程序总体的镜像的大小发生了变化,需要消耗更多的内存和硬盘。每个pod被部署成无状态的服务,pod所需的参数和中间要访问的数据,都通过数据库中间件保存和持久化。

​(4)网络的变化(最大的变化单机内部进程通信变成了集群内分层的网络通信)​

单机版的网络通信,所有的IP地址都是127.0.0.1,通过端口号区分各个应用程序 。上云后,每个微服务都有自己独立的集群内的IP地址。上云后,一个微服务又进一步抽象为service,每个service可以部署多个depolyment实例,支持多个pod实例的负载均衡。每个service和微服务pod都有自己独立的IP地址。同一个微服务的多个实例之间,不是通过端口号区分,而是通过IP地址区分。通过端口暴露的方式,提供集群外访问服务Service,暴露端口的时候,保持内网的端口号不变。也就是说,集群内、外访问微服务用到IP地址和端口号都不一样。特别是外部访问的端口号进行了映射。微服务与微服务之间,通过集群内部的集群内的域名访问,而不是IP地址进行通信,这样的好处是微服务动态伸缩的时候,IP地址会发生变化,如果通过IP地址通信,服务的动态伸缩就面临这严重的问题。支持单一的、统一的网关,访问集群内部的所有服务。

​(5)项目和微服务配置的变化​

生存环境、开发环境、运营环境的配置是不一样的,通过名字空间进行隔离。

1.3 RuoYi Cloud项目上云,涉及4个方面的主要工作:

​(1)有状态的中间件,主要是数据库​

RuoYi Cloud的后台管理系统,需要生成大量的管理数据。

这些数据将存储在数据库微服务中间件中,数据库微服务的代码开发,并不是该项目的一部分,它们将作为第三方代码被集成进RuoYi Cloud系统,所谓集成,并非而动态或静态库文件的方式进行集成,而是以动态微服务的方式集成。这些第三方的微服务,在安装部署的时候,直接取于各自docker hub仓库,而不是RuoYi Cloud项目自身。

中间件镜像的部署数据库数据的导入

​(2)无状态的业务相关的微服务(手工制作docker镜像)​

源码的编译

RuoYi Cloud后端代码是java语言编写的代码,前端是js代码,因此需要相应的编译环境。

镜像的制作

RuoYi Cloud的微服务的目标文件是jar文件,以java基础环境为基础docker镜像,在此基础之上生成新的docker镜像。

镜像的发布

生成的多个微服务镜像,可以发布到阿里云的免费的个人仓库中。用于后续的部署。

镜像的部署

一旦把镜像发布到镜像仓库中,后续就可以普通的docker镜像的部署方式来部署RuoYi Cloud的微服务了。

备注:

业务相关的微服务之所以是无状态,是因为其数据全部存储在数据库中,并根据数据库的内容,决定应用程序的当前状态。

​(3)微服务应用程序相关的配置文件​

大多微服务都有自己配置文件,用于对微服务的启动和运行时的行为进行配置和控制。

配置文件的挂载配置文件的修改

​(4)网络​

部署NodePort服务,用于通过公网访问部署的微服务部署服务,实现负载均衡部署服务,实现统一网关访问

第2章 RuoYi Cloud项目业务软件架构

​分为三层:​

​(1)数据库微服务层​

mysql数据库:用于存放nacos对RuoYi 所有前后台微服务注册配置信息。redis数据库: 用于存放RuoYi 所有前后台微服务管理数据。对象存储:存储文件,如log。

​(2)应用微服务层​

前台后台负载均衡与限流网关

​(3)微服务注册层​

服务注册与发现:nacos

部署的过程自下而上。

第3章 从代码层面看RuoYi 支持的微服务

(1)前端服务

ruoye-ui

(2)后端服务

ruoye-systemruoye-genruoye-jobruoye-file

(3)后端网络

ruoye-gatewayruoye-auth

第4章 手工本地化部署的主要步骤

这个过程虽然不是必须的,但通过这个过程起到两个作用:

(1)通过单机版的方式快速熟悉ruoye项目的各个功能组件(各个微服务)

(2)通过比较,感受云上部署与本地单机版部署的区别

(3)便于把本地数据库方便的迁移到部署在云上的数据库

步骤0:前置条件

(1)为MySQL数据库安装客户端程序:​​MySQL Workbench​​

(2)为Redis数据库安装客户端程序: ​​Visual Studio Code - Code Editing. Redefined​​

(3)为后台编译安装java编译环境: ​​Visual Studio Code - Code Editing. Redefined​​

(4)为前台提编译安装node.js编译环境:​​Download | Node.js​​

步骤1: Clone项目代码到本地机器

Clone到本地的目的是编译目标文件和获得配置文件。

步骤2:启动nacos服务

步骤3:启动MySQL服务

步骤4:启动Redis

步骤5:启动ruoye程序

第5章 手工上云分步部署的主要步骤

步骤0:前置条件

(1)为MySQL数据库安装客户端程序:​​MySQL Workbench​​

(2)为Redis数据库安装客户端程序: ​​Visual Studio Code - Code Editing. Redefined​​

(3)为后台编译安装java编译环境: ​​Visual Studio Code - Code Editing. Redefined​​

(4)为前台提编译安装node.js编译环境:​​Download | Node.js​​

步骤1: Clone项目代码到本地机器

Clone到本地的目的是编译目标文件和获得配置文件。

步骤2:部署中间件数据库

MySQL数据库+数据库数据的导入 =》用于nacos微服务Redis数据库+数据库数据的导入   =》用于ruoye-xxx微服务

步骤3:微服务管理层

nacos服务的部署与配置sentinel服务的部署与配置

步骤4:部署微服务

ruoye-systemruoye-genruoye-jobruoye-file

步骤5:部署网关

ruoye-gateway

步骤6:部署前端UI

ruoye-auth

第6章 DevOps自动化部署

6.1 DevOps的整体流程

6.2 DevOps自动化部署的阶段

​(1)clone code:克隆代码​

​(2) unit test:代码编写与单元测试​

​(3)build and push:构建镜像​

​(4)push latest:发布镜像​

​(5)deploy to dev :部署到开发环境​

​(6)deploy to production:部署的生产环境​

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ZooKeeper框架教程Curator分布式锁实现及源码分析
下一篇:USB Type-C接口的优缺点分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~