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

2023-11-01

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

 本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122940876


目录

第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项目概述

https://gitee.com/y_project/RuoYi-Cloud

https://blog.csdn.net/HiWangWenBing/article/details/122937375

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

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-system
  • ruoye-gen
  • ruoye-job
  • ruoye-file

(3)后端网络

  • ruoye-gateway
  • ruoye-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-system
  • ruoye-gen
  • ruoye-job
  • ruoye-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:部署的生产环境


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

 本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122940876

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • K8s基础10——数据卷、PV和PVC、StorageClass动态补给、StatefulSet控制器

    文章目录 一 数据卷类型 1 1 临时数据卷 节点挂载 1 2 节点数据卷 节点挂载 1 3 网络数据卷NFS 1 3 1 效果测试 1 4 持久数据卷 PVC PV 1 4 1 效果测试 1 4 2 测试结论 二 PV PVC生命周期 2
  • KVM-7、KVM 虚拟机创建的几种方式

    通过对 qemu kvm libvirt 的学习 总结三种创建虚拟机的方式 1 通过 qemu kvm 创建 2 通过 virt install 创建 3 通过 virt manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持
  • K8S 工作负载(一)

    K8S 工作负载 1 Pod Pod 是 Kubernetes 中创建 管理和调度的最小计算单元 用户可以在 K8S 中通过调用 Pod API生成一个 Pod 让 K8S 对其进行调度 Pod 是一组 一个或多个 容器 这些容器共享存储
  • [云原生专题-42]:K8S - 核心概念 - placeholder-有状态服务

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 placeholder 作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址
  • Prometheus监控 controller-manager scheduler etcd

    用prometheus插件监控kubernetes控制平面 例如 您使用kubeadm构建k8s集群 然后kube控制器管理器 kube调度程序和etcd需要一些额外的工作来进行发现 create service for kube cont
  • k8s部署springboot

    前言 首先以SpringBoot应用为例介绍一下k8s的部署步骤 1 从代码仓库下载代码 比如GitLab 2 接着是进行打包 比如使用Maven 3 编写Dockerfile文件 把步骤2产生的包制作成镜像 4 上传步骤3的镜像到远程仓库
  • kubernetes08(kubernetes的资源对象)

    文章目录 kubernetes08 kubernetes的资源对象 一 引子 二 kubernetes资源 一 kubernetes的资源对象作用 二 kubernetes的资源对象分类 三 kubernetes资源清单 一 kubenet
  • 单机版kubernetes

    Kubernetes 集群的搭建是有一定难度的 官方安装推荐了MiniKube作为单机调试 学习 1 centos安装 1 1 先决条件 安装VirtualBox KVM Note Minikube 也支持 vm driver none 选
  • kubernetes集群更新证书(kubeadm方式)

    一 kubernets证书详情 1 查看证书 tree etc kubernetes pki etc kubernetes pki apiserver crt apiserver etcd client crt apiserver etcd
  • 3. 部署Fabric2.2 集群(使用官方Demo)

    我们将一步一步搭建Fabric2 2 版本的区块链网络 从0开始搭建服务器环境 到运行官方Demo集群 创建通道 安装合约 以及从零完成基于区块链的农产品溯源项目开发 适用于无区块链开发经验的朋友们 已经有经验的请绕行 上节作者新购买云服务
  • kubeadm构建(Calico+Dashboard+Containerd)

    文章目录 前言 一 环境 二 部署容器网络 CNI master操作 1 下载yamll 2 修改yaml 3 部署 三 部署 Dashboard 1 下载yaml 2 修改yaml 3 部署 4 创建管理员 四 切换容器引擎为Contai
  • kubeadm配置虚拟机k8s集群

    环境 centos7 vm pro windows terminal termius 虚拟机 硬件配置 2核2G 实验用 具体可根据电脑调整 配置3台 master01 node01 node02 通过克隆虚拟机直接复制 配置通一项以后建议
  • k8s Failed to create pod sandbox错误处理

    错误信息 Failed to create pod sandbox rpc error code Unknown desc failed to get sandbox image k8s gcr io pause 3 2 failed to
  • namespace命令空间

    目录 1 解决什么问题 2 基本介绍 2 1 定义 2 2 应用场景 3 使用案例 4 资源配额 5 标签 5 1 定义 5 2 pod资源打标签 5 3 查看标签 1 解决什么问题 命令空间类似于C 中的命名空间 当用户数量较多的集群 才
  • 决战k8s,Kubernetes、Master节点部署组件,部署kube-proxy、测试、部署Dashboard(Web UI)、超细详解 ,安装篇③完结篇

    文章目录 下面这些操作在master节点完成 创建kubeconfig文件 创建kube proxy kubeconfig文件 下面这些操作在node节点完成 俩个节点上面拉取镜像 systemd管理kubelet组件 部署kube pro
  • K8S暴露端口-dubbo应用远程Debug

    1 Dockerfile增加环境变量 ENV JAVA OPTS Xdebug Xrunjdwp transport dt socket address 9901 server y suspend n 2 暴露端口 template ser
  • k8s学习(五)ReplicaSet的使用

    ReplicaSet ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合 可确保指定数量的pod在任何设定的时间运行 因此 它通常用来保证给定数量的 完全相同的 Pod 的可用性 示例 1 nginx
  • MariaDB数据库的主从配置

    1 前置工作 首先准备两台可以互相ping通的机器 两台机器可以互为主从 示例 10 210 23 77主服务器 10 20 84 183从服务器 2 安装 在两台机器上各自安装数据 解压MariaDB安装包 tar zxvf MariaD
  • K8S学习--Kubeadm-7--Ansible二进制部署

    K8S学习 Kubeadm 安装 kubernetes 1 组件简介 K8S学习 Kubeadm 安装 kubernetes 2 安装部署 K8S学习 Kubeadm 3 dashboard部署和升级 K8S学习 Kubeadm 4 测试运
  • 无人机视角、多模态、模型剪枝、国产AI芯片部署

    无人机视角 多模态 模型剪枝 国产AI芯片部署是当前无人机技术领域的重要研究方向 其原理和应用价值在以下几个方面进行详细讲述 一 无人机视角 无人机视角是指在无人机上搭载摄像头等设备 通过航拍图像获取环境信息 并进行图像处理和分析 这种技术

随机推荐