摘要:华为云DTSE技术专家从源码构建、应用部署到系统调测,详细解读云原生SaaS应用构建的全过程。
本文分享自华为云社区《HouseKeeper云上部署实践》,作者:华为云DTSE。
HouseKeeper是华为云开发者团队基于SaaS项目技术支持实践,采用微服务架构(SpringCloud),结合华为云服务能力开发的SaaS化开源项目,旨在为企业级开发者提供云原生SaaS应用构建的技术参考,包括微服务架构、多租隔离设计、多租户路由、数据存储多租设计等。
一、源码构建
1.代码托管
将gitee上的个人fork仓同步到华为云CodeArts平台上
启用软件开发流水线CodeArts
如下所示,选择北京4启用CodeArts,其基础版本免费试用,最大支持人数5人;编译构建并发数5,600分钟/月;代码托管10G存储空间,单个仓库容量上限2G。
![](https://pic3.zhimg.com/80/v2-6bac0cbe6a0c8d8fe4fdb838d5896162_720w.webp)
创建项目
如下所示,选择scrum创建项目,自定义项目名称,如HouseKeeper。Scrum是增量迭代式的软件开发方法,通过迭代计划会议、每日站会、迭代回顾、验收会议等来简单高效管理开发项目。
![](https://pic2.zhimg.com/80/v2-48c521320a0738111d0b82e6b81460c1_720w.webp)
导入外部仓库
如下所示,进行外部仓库配置。
![](https://pic4.zhimg.com/80/v2-bc3b7d3e7bbb67bfdff0419e83a880a7_720w.webp)
如下所示,复制gitee上源码仓库地址。
![](https://pic1.zhimg.com/80/v2-344338384ddde8ccb3d859f406e9b3c0_720w.webp)
将源码仓库地址复制到codearts外部仓库配置项中,并填写gitee源码仓访问信息后进入下一步。
![](https://pic4.zhimg.com/80/v2-d46cd469faf34366650b4243ac5a73eb_720w.webp)
注意选择同步全部分支,确认后创建仓库。
![](https://pic1.zhimg.com/80/v2-e0fd9c0ab1561967ee8b5b408ccae290_720w.webp)
2、基于IDE online 修改预置参数
使用IDE online一键创建工程
如下所示,在新建的代码仓页面,点击右上角IDE online自动进入IDE,系统会基于当前仓库自动创建加载好相关工程。
![](https://pic4.zhimg.com/80/v2-ab1eaac90e40da79c7d91fbd4d11bf4f_720w.webp)
![](https://pic3.zhimg.com/80/v2-797a915b1729b7217cd3354da3ea4d8a_720w.webp)
切换分支为cloud1.0.0
如下所示,点击IDE online工程里左下角,在工程上方弹出的分支列表中选择cloud1.0.0分支。
![](https://pic1.zhimg.com/80/v2-00fdec391b5a239c9a2fef0a00589c5c_720w.webp)
修改源代码中helm镜像路径
如下所示,将源码中helm charts文件中的镜像路径修改为对应仓库,未避免名称冲突,此处将镜像修改为house-keeper-0504
![](https://pic4.zhimg.com/80/v2-d32a29a16172103569dd6c359d34ecf7_720w.webp)
修改源码中gitee访问信息
如下所示,修改helm/value.yaml文件中 giteePassword、giteeUser字段,其中字段数值采用Base64进行混淆
global: ... giteePassword: xxx giteeUser: xxx
提交修改文件
如下所示,将修改的文件提交到codeArts仓库。
![](https://pic1.zhimg.com/80/v2-3b047dc06c304731dd7975583d0530f4_720w.webp)
![](https://pic4.zhimg.com/80/v2-d745f3289c63941d0fbcf140bf4b28bf_720w.webp)
或者通过命令行终端git命令方式提交修改。
cd helm-charts git add values.yaml git commit -m "修改gitee访问信息" git remote -v git push origin cloud-1.0.0
如下所示,在codearts代码仓可以查看对应的修改记录
![](https://pic3.zhimg.com/80/v2-b7d16ab08923b2c38ffbb2a852e9a036_720w.webp)
3、创建镜像仓库
如下所示,按照helm-charts中修改的镜像路径,在北京4区域创建对应的组织。
![](https://pic2.zhimg.com/80/v2-52635339ac8c1e5a0f4adaf48cbdf055_720w.webp)
4、创建并启动构建任务
如下所示,新建构建任务。
![](https://pic3.zhimg.com/80/v2-ee03e1ac3d48eeb97bcc18655aa82452_720w.webp)
自定义任务名称,但为了方便维护,建议任务名称同helm-charts中保持一致。
![](https://pic1.zhimg.com/80/v2-116275592b1af7606207997cf7a29184_720w.webp)
选择maven容器模板。
![](https://pic4.zhimg.com/80/v2-d254fd5b783a43db7a22fa99af55a023_720w.webp)
设置任务参数,添加version字段,并设置为运行时设置。
![](https://pic2.zhimg.com/80/v2-bcce92af35117d89c76e8ecd7bea469d_720w.webp)
如下所示,构建步骤中仅修改镜像推送配置,其它信息保持模板默认配置即可,其中组织名即上述环节中设置的,镜像名称同helm-charts中对应,工作路径即源码仓中对应模块的子路径,完成配置后点击右上角【新建并执行】构建任务。
![](https://pic2.zhimg.com/80/v2-036a65256ef6aa74b9325ee5526dc155_720w.webp)
5、通过自定义模板构建其它组件
如下所示,将上述saas-housekeeper-config-server的构建任务保存为自定义模板,名字自定义为House-Keeper。
![](https://pic1.zhimg.com/80/v2-24bcf5cee4cacd21c5caf19e3c4ab5a4_720w.webp)
如下所示,使用自定义模板创建其它构建任务,其中,构建frontend前台任务时无需maven打包,工作路径设置为代码根路径即可。
![](https://pic2.zhimg.com/80/v2-81277de52544b6456e642cb454d8c301_720w.webp)
![](https://pic4.zhimg.com/80/v2-c04fbd58ad8bbd819446c428b04fc237_720w.webp)
如下所示,相关模块均已构建成功。
![](https://pic4.zhimg.com/80/v2-3c23bea51f353c869e9018388d6fee5b_720w.webp)
二、应用部署
1、Helm工具打包
Helm工具安装
helm工具安装参考链接,下载对应的windows版本即可。
如下所示,设置好系统环境变量好,可以在git bash里查看工具版本。
![](https://pic3.zhimg.com/80/v2-4b98f4c44d1823a6ea55a7f7b96309ae_720w.webp)
下载源码到本地
如下所示,首次使用codearts时需要点击右上角个人用户图标,进入设置页面,进行ssh/https相关配置。
如下所示,本次使用https方式下载源码,命令如下
git clone https://username:[email protected]/HouseKeeper00003/saas-housekeeper.git
![](https://pic1.zhimg.com/80/v2-b9daa7cfcb503b81bb844bc11fb3a4a4_720w.webp)
helm打包安装包
如下所示,使用helm工具打包,命令
helm.exe package ./helm-charts helm.exe lint housekeeper-1.0.0.tgz
![](https://pic4.zhimg.com/80/v2-b74c494f2a0d723f36a093778470d5f3_720w.webp)
2、创建CCE集群及工作节点
如下所示,按需购买CCE集群,其中出于demo成本考虑,CCE集群不启用高可用模式。
![](https://pic1.zhimg.com/80/v2-8dde2cdcd427000a9c4214aa806315d0_720w.webp)
CCE集群创建需要时间,可在集群页面查看执行过程。
![](https://pic4.zhimg.com/80/v2-ce4d5d7fe714385334eff9cf18b5e273_720w.webp)
待CCE集群创建完成后,创建节点池,同样成本考虑,节点数量及规格不用太大,本次演示数量设置2,磁盘类型高IO。
![](https://pic2.zhimg.com/80/v2-476806ac8bd686731b392c02a3558eb5_720w.webp)
按需购买2个EIP资源。
![](https://pic3.zhimg.com/80/v2-a429c5040b056cb0537e5bb4df3c5efe_720w.webp)
在ECS主机页面绑定EIP。
![](https://pic2.zhimg.com/80/v2-f2cf3aa3c27828bab5e5491a380ed531_720w.webp)
绑定EIP后如在CCE集群节点看不到对应的EIP时,选择手动同步云服务器。
![](https://pic3.zhimg.com/80/v2-2da0e7020ff8759813dc3fa6f067e5d2_720w.webp)
3、导入模板并安装部署
![](https://pic3.zhimg.com/80/v2-b4a61723b04039a69737ac53aad758b6_720w.webp)
![](https://pic4.zhimg.com/80/v2-9975cb0c2f2833fccc0c6086c7e0c957_720w.webp)
如下所示,对应工作负载均已创建成功并正常运行。
![](https://pic3.zhimg.com/80/v2-0982e514b0cc573ce18649fcb2ec80e6_720w.webp)
4、创建ELB
为前段服务创建ELB访问
![](https://pic4.zhimg.com/80/v2-4403dddcdfc1ef00a41ef1708a5f5a67_720w.webp)
三、系统调测
1、配置内部域名解析
由于公网域名解析需要进行备案等,演示场景配置内部4级域名解析,具体相关要求请参考gitee对应项目的Readme。
![](https://pic3.zhimg.com/80/v2-815bcec2aa2f108e1d9c9ee500c876b2_720w.webp)
2、创建测试PC
按需在对应VPC内创建windows镜像的测试PC
![](https://pic1.zhimg.com/80/v2-881ae7f11708820fe1be38263df63aa4_720w.webp)
3、修改测试PC的hosts文件
![](https://pic1.zhimg.com/80/v2-6c13edcb4857c591b940a6ff12e73420_720w.webp)
如下所示,可以通过ping测试内部域名正常。
![](https://pic1.zhimg.com/80/v2-a79ac7722ee1fc114bb0d0256766fc90_720w.webp)
4、通过测试PC访问租户注册页面
源码对IE浏览器支持不太友好,建议使用谷歌浏览器进行测试,如下所示,访问租户注册页面,其中域名即上述配置的内网域名解析记录对应的。
http://housekeeper.saas.cloud.com/tenant/#register
![](https://pic1.zhimg.com/80/v2-52ae22c4cb073c75a87ffdd97ae888cc_720w.webp)
其它操作可参考HouseKeeper开源项目继续进行。
标签:HouseKeeper,SaaS,如下,helm,源码,构建,创建,所示,云上 From: https://www.cnblogs.com/huaweiyun/p/17385524.html