saas化开源项目之housekeeper云上部署实践(代码片段)

华为云开发者社区 华为云开发者社区     2023-05-09     702

关键词:

摘要:华为云DTSE技术专家从源码构建、应用部署到系统调测,详细解读云原生SaaS应用构建的全过程。

本文分享自华为云社区HouseKeeper云上部署实践》,作者:华为云DTSE。

HouseKeeper是华为云开发者团队基于SaaS项目技术支持实践,采用微服务架构(SpringCloud),结合华为云服务能力开发的SaaS化开源项目,旨在为企业级开发者提供云原生SaaS应用构建的技术参考,包括微服务架构、多租隔离设计、多租户路由、数据存储多租设计等。

一、源码构建

1.代码托管

将gitee上的个人fork仓同步到华为云CodeArts平台上

启用软件开发流水线CodeArts

如下所示,选择北京4启用CodeArts,其基础版本免费试用,最大支持人数5人;编译构建并发数5,600分钟/月;代码托管10G存储空间,单个仓库容量上限2G。

创建项目

如下所示,选择scrum创建项目,自定义项目名称,如HouseKeeper。Scrum是增量迭代式的软件开发方法,通过迭代计划会议、每日站会、迭代回顾、验收会议等来简单高效管理开发项目。

导入外部仓库

如下所示,进行外部仓库配置。

如下所示,复制gitee上源码仓库地址。

将源码仓库地址复制到codearts外部仓库配置项中,并填写gitee源码仓访问信息后进入下一步。

注意选择同步全部分支,确认后创建仓库。

2、基于IDE online 修改预置参数

使用IDE online一键创建工程

如下所示,在新建的代码仓页面,点击右上角IDE online自动进入IDE,系统会基于当前仓库自动创建加载好相关工程。

切换分支为cloud1.0.0

如下所示,点击IDE online工程里左下角,在工程上方弹出的分支列表中选择cloud1.0.0分支。

修改源代码中helm镜像路径

如下所示,将源码中helm charts文件中的镜像路径修改为对应仓库,未避免名称冲突,此处将镜像修改为house-keeper-0504

修改源码中gitee访问信息

如下所示,修改helm/value.yaml文件中 giteePassword、giteeUser字段,其中字段数值采用Base64进行混淆

global:
...
  giteePassword: xxx
  giteeUser: xxx

提交修改文件

如下所示,将修改的文件提交到codeArts仓库。

或者通过命令行终端git命令方式提交修改。

cd helm-charts
git add values.yaml
git commit -m "修改gitee访问信息"
git remote -v
git push origin cloud-1.0.0

如下所示,在codearts代码仓可以查看对应的修改记录

3、创建镜像仓库

如下所示,按照helm-charts中修改的镜像路径,在北京4区域创建对应的组织。

4、创建并启动构建任务

如下所示,新建构建任务。

自定义任务名称,但为了方便维护,建议任务名称同helm-charts中保持一致。

选择maven容器模板。

设置任务参数,添加version字段,并设置为运行时设置。

如下所示,构建步骤中仅修改镜像推送配置,其它信息保持模板默认配置即可,其中组织名即上述环节中设置的,镜像名称同helm-charts中对应,工作路径即源码仓中对应模块的子路径,完成配置后点击右上角【新建并执行】构建任务。

5、通过自定义模板构建其它组件

如下所示,将上述saas-housekeeper-config-server的构建任务保存为自定义模板,名字自定义为House-Keeper。

如下所示,使用自定义模板创建其它构建任务,其中,构建frontend前台任务时无需maven打包,工作路径设置为代码根路径即可。

如下所示,相关模块均已构建成功。

二、应用部署

1、Helm工具打包

Helm工具安装

helm工具安装参考链接,下载对应的windows版本即可。

如下所示,设置好系统环境变量好,可以在git bash里查看工具版本。

下载源码到本地

如下所示,首次使用codearts时需要点击右上角个人用户图标,进入设置页面,进行ssh/https相关配置。

 

如下所示,本次使用https方式下载源码,命令如下

git clone https://username:password@codehub.devcloud.cn-north-4.huaweicloud.com/HouseKeeper00003/saas-housekeeper.git

helm打包安装包

如下所示,使用helm工具打包,命令

helm.exe package ./helm-charts
helm.exe lint housekeeper-1.0.0.tgz

2、创建CCE集群及工作节点

如下所示,按需购买CCE集群,其中出于demo成本考虑,CCE集群不启用高可用模式。

CCE集群创建需要时间,可在集群页面查看执行过程。

待CCE集群创建完成后,创建节点池,同样成本考虑,节点数量及规格不用太大,本次演示数量设置2,磁盘类型高IO。

按需购买2个EIP资源。

在ECS主机页面绑定EIP。

绑定EIP后如在CCE集群节点看不到对应的EIP时,选择手动同步云服务器。

3、导入模板并安装部署

如下所示,对应工作负载均已创建成功并正常运行。

4、创建ELB

为前段服务创建ELB访问

三、系统调测

1、配置内部域名解析

由于公网域名解析需要进行备案等,演示场景配置内部4级域名解析,具体相关要求请参考gitee对应项目的Readme。

2、创建测试PC

按需在对应VPC内创建windows镜像的测试PC

3、修改测试PC的hosts文件

如下所示,可以通过ping测试内部域名正常。

4、通过测试PC访问租户注册页面

源码对IE浏览器支持不太友好,建议使用谷歌浏览器进行测试,如下所示,访问租户注册页面,其中域名即上述配置的内网域名解析记录对应的。

http://housekeeper.saas.cloud.com/tenant/#register

其它操作可参考HouseKeeper开源项目继续进行。

 

点击关注,第一时间了解华为云新鲜技术~

k8s入门系列之介绍篇

...-完整的生态环境2.什么是kubernetes  Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调 查看详情

有哪些好用又安全的团队协作软件?

...己管控才是最安全的。这里推荐无忧·企业文档。它支持开源(提供100%源代码)、私有化部署(并支持SaaS模式与PaaS模式)、支持二次开发的企业级在线文档。私有化文档的优势:安全性,2019年某盟删库事件、某滴泄露基础出行... 查看详情

windows开发的idea项目部署到阿里云上(代码片段)

一云服务器需要做的基本准备1.java项目肯定要安装JDK环境2.安装应用服务器Tomcat3.项目要访问数据库这里使用MySQL,在MySQL中导入项目的数据库二windows(开发端的准备)1.获得项目的war包---从IDEA导出2.导出对应的sql文件  &nbs... 查看详情

javaweb项目上云教程(java项目在腾讯云上部署操作教程)

...三、安装宝塔面板并开放端口四、安装搭建环境五、部署项目前言我们一直都在本地开发运行Java的项目,从未在云端部署,此教程可以教你将本地项目上云,让别人通过网址进行访问你的项目。那么,就让我们开... 查看详情

docker快速上手之部署springboot项目

Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,ShipandRunAnyApp,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行... 查看详情

springcloudalibaba+saas企业架构技术选型+架构全景业务图+架构典型部署方案(代码片段)

...务系统集成、集中式应用权限管理、支持拓展其他任意子项目。一、架构技术选型 核心框架   SpringBoot   SOA   SpringCloud   安全框架   SpringSecurityOauth2   注册中心/配置中心   Nacos   集群部署网关   SpringCloudGateway ... 查看详情

springcloudalibaba+saas企业架构技术选型+架构全景业务图+架构典型部署方案(代码片段)

...务系统集成、集中式应用权限管理、支持拓展其他任意子项目。一、架构技术选型 核心框架   SpringBoot   SOA   SpringCloud   安全框架   SpringSecurityOauth2   注册中心/配置中心   Nacos   集群部署网关   SpringCloudGateway ... 查看详情

关于私有云专有云公有云saas独立部署多租户

...万,只有大企业才用得起。公有云:就是用阿里云上的公共的、公开的云服务公有云多租户:相当于SaaS,来一个 查看详情

如何在腾讯云上搭建一个人力资源saas

版权声明:本文由ihr原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/180来源:腾云阁 https://www.qcloud.com/community 在互联网盛行的时代,车联网,物联网相关的字眼随处可见。为了方便企业在... 查看详情

seafile开源文件同步和分享saas云盘

...管理适用于企业环境使用情况安装部署简介Seafile是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问题,注重安全和性能。Seafile通过“资料库”来分类管理文件,每个资料 查看详情

openstack安装部署指南翻译系列之概况

概况Openstack项目是支持所有类型的云环境的一个开源云计算平台。该项目旨在简单实施,大规模可扩展性和丰富的功能。来自世界各地的云计算专家为项目做出了贡献。OpenStack通过各种互补服务提供基础设施即服务(IaaS)解决... 查看详情

狂团ktadmin框架正式免费开源发布,助力独立版saas系统快速开发!

...的ThinkPHP6.x+Vue3+Elementui++Vite开发,是一款免费开源的多用户,多应用的独立版SAAS系统开发框架。【注】[KtAdmin]遵循较为宽松的Apache2.0开源协议,考虑到SAAS业务的特殊性,V1.0.3版本开始,用户后台及登录... 查看详情

springcloudalibaba+mybatis+elementui前后端分离分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案(代码片段)

...务系统集成、集中式应用权限管理、支持拓展其他任意子项目。一、架构技术选型 核心框架   SpringBoot   SOA   SpringCloud   安全框架   SpringSecurityOauth2   注册中心/配置中心   Nacos   集群部署网关   SpringCloudGateway ... 查看详情

国内优秀的java开源saas项目分享(代码片段)

国外的优秀开源项目没啥好说的,支持国产,今天重点聊聊国内优秀的Java开源项目。在国内开源项目做得最好的莫非于阿里巴巴了,今天特地给大家整理了阿里的11个神级项目。最后还有一个java全开源的saas新零售小... 查看详情

saas的发展趋势?

...更多为个人采购SaaS服务的商业模式,国内更向以组织、项目为主体而开展相关的商业运营,其终端交易对象的变化,决定了决策流程等方面的高度不同,从而影响承担的周期等众多方面;另一方面,Saleforce的退出竞争,也可以... 查看详情

优秀开源项目之二:流媒体直播系统openbroadcastersoftware

...roadcasterSoftware(OBS)是一款用于音视频录制和直播的免费开源软件。可以轻松部署到多种平台,目前支持Windows、MAC和Linux。特性:1.高性能的实时视频/音频捕获和混合,无限制的场景,可以通过自定义转换在这些场景之间无缝切... 查看详情

基于springcloudalibaba+mybatis分布式微服务高并发架构数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

...务系统集成、集中式应用权限管理、支持拓展其他任意子项目。一、架构技术选型二、架构全景业务图 需要架构源码的朋友可以看我个人简介联系我 三、架构典型部署方案架构源码可以加我WX:445909108 查看详情

流行开源软件云上体验周——一种正确的云上开源软件体验姿势!

当你想尝试一款新的开源软件时,当你一直关注的开源项目发行了最新的版本时,当你迫不及待想要成为新发布的开源项目的捉虫师,你会以什么样的方式去获得并安装最新的开源软件环境呢?是一直开着电脑下载几个G的安装... 查看详情