华为云业务部署实践
实践一
在华为云平台进行微服务项目的部署,项目来源于开源产品“pig”,项目模块清晰,架构完备。
模块说明
pig-ui -- https://gitee.com/log4j/pig-ui
pig
├── pig-auth -- 授权服务提供[3000]
└── pig-common -- 系统公共模块
├── pig-common-bom -- 全局依赖管理控制
├── pig-common-core -- 公共工具类核心包
├── pig-common-datasource -- 动态数据源包
├── pig-common-job -- xxl-job 封装
├── pig-common-log -- 日志服务
├── pig-common-mybatis -- mybatis 扩展封装
├── pig-common-seata -- 分布式事务
├── pig-common-security -- 安全工具类
├── pig-common-swagger -- 接口文档
└── pig-common-feign -- feign 扩展封装
├── pig-register -- Nacos Server[8848]
├── pig-gateway -- Spring Cloud Gateway网关[9999]
└── pig-upms -- 通用用户权限管理模块
└── pig-upms-api -- 通用用户权限管理系统公共api模块
└── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000]
└── pig-visual
└── pig-monitor -- 服务监控 [5001]
├── pig-codegen -- 图形化代码生成 [5002]
├── pig-sentinel-dashboard -- 流量高可用 [5003]
└── pig-xxl-job-admin -- 分布式定时任务管理台 [5004]
项目核心依赖
依赖 | 版本 |
---|---|
Spring Boot | 2.7.2 |
Spring Cloud | 2021.0.3 |
Spring Cloud Alibaba | 2021.0.1.0 |
Spring Authorization Server | 0.3.1 |
Mybatis Plus | 3.5.2 |
hutool | 5.8.4 |
Avue | 2.6.18 |
涉及到华为云产品
产品 |
---|
代码托管 CodeHub |
云数据库 RDS |
云数据库 GaussDB(for Redis) |
弹性云服务器 ECS |
弹性公网IP EIP |
1.代码导入
在CodeHub上面上传代码,方便后续部署。代码库的相关操作和gitlab基本一致。
pig 为后端项目
pig-ui 为前端项目
2.开通RDS
进入购买数据库实例页面,选择相应的配置。云数据库支持主备模式、磁盘加密等高级模式。我们这里只是测试使用,选择单机即可。
开通完成,需导入项目初始化SQL脚本。
3.开通Redis
进入购买数据库实例页面,选择相应的配置。
4.开通ECS实例
进入购买弹性云服务器页面,选择相应配置开通即可,这里我们要部署多个模块,内存需要大于10g。
开通完ECS需要绑定IP,不然外网没发访问,弹性公网IP云平台也有相应产品开通即可。
5.项目部署
在上面的一顿操作后,我们已经成功开通项目关联的组件了,下面开始进行部署操作。
部署采用docker镜像方式进行,把微服务相关模块打成镜像,使用docker-compose进行服务编排。
ECS需要预装Git、docker、docker-compose相关软件。
-
从CodeHub上面拉取代码并进行打包,结果如下:
-
使用compose脚本启动服务:
-
启动完成后先验证nacos服务是否可用并修改相应的配置信息:
-
登录系统
实践二
上面利用了华为云平台ECS进行项目的部署,下面介绍下云容器实例(Cloud Container Instance,CCI)服务提供Serverless Container(无服务器容器)引擎,无需创建和管理服务器集群即可直接运行容器。
因为项目涉及到的模块较多,我们以nacos部署为例进行介绍,其它服务基本类似大同小异。
涉及到华为云产品
产品 |
---|
代码托管 CodeHub |
云数据库 RDS |
云数据库 GaussDB(for Redis) |
云容器实例 CCI |
流水线 DevCloud |
弹性公网IP EIP |
容器镜像服务 |
基本操作流程:
创建流水线->拉取指定代码库->打包编译->编译成功->镜像上传->容器拉取镜像启动->对外提供服务
1.配置流水线
2.镜像打包完成自动上传至仓库
3.配置容器实例
查看日志是否启动完成:
3.访问服务
实践三
下面使用华为云提供的相关demo,使用微服务引擎进行服务部署。
微服务引擎(Cloud Service Engine)提供高性能微服务框架和服务注册、服务治理、配置管理等全场景能力;帮助用户实现微服务应用的快速开发和高可用运维。
华为云微服务引擎,完全替代nacos的相关功能,提供高可用的服务配置及注册中心的相关功能。
涉及到华为云产品
产品 |
---|
代码托管 CodeHub |
云容器实例 CCI |
流水线 DevCloud |
弹性公网IP EIP |
容器镜像服务 |
注册中心
华为云微服务引擎为了方便本地调试开发,提供了本地轻量化微服务引擎,下载相应版本安装即可。
安装启动完成,访问操作界面:
下载相关demo
启动完成,查看服务状态
服务调用验证
配置中心
配置相关测试配置项
访问验证
至此,在华为云平台上面进行了3种不同方式的项目实践。平台还支持原生k8s、CAE等不同技术的部署方案,总之,平台提供的能力还是很强大和灵活,在一定程度上提高了研发效率。
平台其它能力,有待继续探索…
更多pig部署参考地址:https://www.yuque.com/pig4cloud/pig