摘要:华为云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开源项目继续进行。

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

SaaS化开源项目之HouseKeeper云上部署实践的更多相关文章

  1. github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载

    github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载 参考 https://blog.csdn.net/kcx64/article/details/83 ...

  2. 码云上部署hexo博客框架

    title: 码云上部署hexo博客框架 Hexo框架在码云上实现个人博客 本文受 https://www.jianshu.com/p/84ae2ba1c133 启发编写 本地调试 安装完Node.j ...

  3. 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法

    在阿里云上部署了zabbix,一直能正常接收到zbx发来的报警邮件(报警邮箱是163的),不知是什么原因,突然无法接收到报警邮件了. 但在服务器上手动执行echo "hello"| ...

  4. 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)

    之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...

  5. 把项目放到码云上,通过git 进行项目管理

    1.在码云上新建一个项目 把使用 Readme文件初始化这个项目这个勾选去掉  项目生成后会看到 码云的git 简易的命令行入门教程: Git 全局设置: git config --global us ...

  6. eclipse基于git上传项目到码云上

    此文章只讲如何把项目上传到码云上面,前提是你的项目已经用git创建好了. 关于如何用git创建项目,请读者见我博客的另一篇文章. 继续:右键点击ssm [ssm master]项目-->选择Te ...

  7. 把项目从码云上clone到IntelliJ IDEA

       前期工作:安装并已配置好git,并且IDEA已经配置好git了   操作如下:   1) 在IDEA启动页面选择Get from Version Control   2) 打开码云上想要clon ...

  8. 在腾讯云上部署Hexo博客

    推荐理由 ----搭建个人的空间博客目前深受个人开发者的追捧,然而博客的种类和平台有很多,Hexo是一个开源的静态博客生成器.相比于其他博客而言它只要是web容器就能用.除了闷头专研技术之外,程序员还 ...

  9. Tencent Cloud 腾讯云上部署 EMR Cluster + Kafka + Confluent (Schema-Registry)

    腾讯云上有些操作比起 Amazon AWS 还是很方便的, 尤其部署EMR Cluster,下面详细介绍步骤:

  10. 如何在阿里云上部署war包到tomcat服务器

    一. 准备工作:xshell和xftp 首先我们得确保,xshell能够远程连接阿里云ECS,xftp能够保证windows和linux之间的文件传输(当然也可以选择FileZilla,但xftp感觉 ...

随机推荐

  1. 2021.06.18 思科anyconnect安全移动客户端通知

    mac系统更新后,开关机后都会弹出思科anyconnect安全移动客户端通知的弹框,很烦,所以要干掉它! 打开终端,执行以下两行命令即可: cd /Library/LaunchAgents/ mv / ...

  2. 转贴:阿里云ESC-centos7服务器小白搭建FTP教程

    1. 安装vsftpd yum -y install vsftpd 2. 检查vsftpd是否安装成功 rpm -q vsftpd vsftpd-3.0.2-29.el7_9.x86_64 # 检查方 ...

  3. git操作回顾,从零入手

    1.可在极狐或者git上直接通过http克隆项目,或者通过ssh密钥,这样就不用每次上传代码需要输入密码和验证 ssh密钥参考如下 (80条消息) git如何生成ssh密钥 git生成配置ssh密钥k ...

  4. Python第四章实验报告

    一.实验项目名称:<零基础学Python>第四章的14道实例和4道实战 二.实验环境:IDLE(Python 3.9 64-bit) 三.实验目的和要求:熟练掌握Python序列的应用 四 ...

  5. Vue的官方脚手架 Vue-cli 安装使用解析

    ------------恢复内容开始------------ 1.首先什么是vue-cli 可以知道Vue-cli是一个官方提供的脚手架,主要作用是用来快速搭建Vue的项目模板,可以预先定义好项目的结 ...

  6. 《MySQL是怎样运行的》第一章小结

  7. Redis内存淘汰策略

    目录 一.内存淘汰策略重要性 二.Key值过期策略 三.内存淘汰策略 三.Redis内存淘汰策略配置 一.内存淘汰策略重要性 我们都知道redis的性能很高,最主要的原因之一就是redis的数据都在内 ...

  8. BitBake使用攻略--BitBake的语法知识二

    目录 写在前面 1. BitBake中的任务 2. 任务配置 2.1 依赖 2.1.1 内部任务间的依赖 2.1.2 不同菜谱下的任务间依赖 2.1.3 运行时态下的依赖 2.1.4 递归依赖 2.1 ...

  9. 声网自研传输层协议 AUT 的落地实践丨Dev for Dev 专栏

    本文为「Dev for Dev 专栏」系列内容,作者为声网大后端传输协议负责人 夏天. 针对实时互动应用对网络传输带来的新需求和新挑战,声网通过将实时互动中的应用层业务需求与传输策略的分层和解耦,于 ...

  10. 如何快速体验ChatGPT-4模型

    OpenAI免费版基于Gpt3.5,无法使用最新发布的 GPT-4 模型,必须开通 ChatGPT Plus.但是 OpenAI 不但屏蔽了中国的 IP 地址,连国内的 Visa 信用卡也一同屏蔽,即 ...