如何快速搭建微服务开发测试环境

如何快速搭建微服务开发测试环境

一、背景

作为后端开发一名,在某天下午接到紧急任务,需要根据客户需求快速搭建一套微服务架构的开发测试环境,以供客户联调。但是我们是小公司资源有限,在个人电脑上部署又很难对外提供服务。

经过一番查找,市场上符合开箱即用条件的厂商不多,有一些还是需要公有云或私有云部署,能提供开箱即用的SaaS化服务的就更少了。

比如:华为云提供了软件开发平台DevCloud,腾讯云收购CODING后也推出了自己的研发管理平台,但是要使用这些大厂的服务,就要为他们的其他生态工具买单,在前期投入有限的情况下,只能放弃。

二、CODING

我们先来看一下CODING,功能很完善,从文档管理、项目协同到部署测试,但是部署资源却需要自己准备,官方只提供有效期为6个小时到示例集群。

三、华为云

华为云提供的软件开发平台DevCloud同样也有类似的功能,不过这类云服务运营商,通常只能将应用部署在自家云服务器上。

四、StarOS

最后在朋友的推荐下,发现有一个名叫StarOS的一站式云原生在线开发平台,正在进行公开试用,各项服务暂时免费,提供免运维的容器集群,开箱即用的研发设施,非常符合我的需求。

StarOS主要分为:应用工厂、应用商店、云端编码三大板块。

1. 应用工厂

应用工厂顾名思义就是应用生产、发布的地方。StarOS最大的特色就是使用了组件化、可视化、可拖拉拽的应用编排模式,使得整个架构一目了然,非常清晰。

2. 应用商店

在应用商店里是平台内置的应用,可供用户快速发布自己想要的应用。

3. 云端编码

云端编码也就是在线IDE,可以在线编辑代码组件所引用的代码并推送。

五、搭建微服务架构图

为了方便其他人员维护,特次记录一下过程。

首先要做的准备工作:

  1. 确保在代码中使用环境变量来读取被调用服务地址,并上传至GitHub。
  2. 准备好nacos的docker镜像(nacos/nacos-server:latest)。
  3. 准备好mysql8的docker镜像(mysql:8)。
  4. 准备好mysql数据的初始化脚本,在mysql数据库发布后执行(https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql)。

1. 搭建mysql

首先新建一个mysql8的项目,使用镜像组件发布一个mysql应用,发布成功后使用nacos的sql脚本初始化数据库。

镜像组件的使用比较简单,只需架构图中拖入一个镜像组件,并在镜像地址栏中填写mysql8的docker镜像地址就好了。

如下图。

然后配置mysql8组件的参数,暴露网络服务端口号3306。

设置环境变量MYSQL_ROOT_PASSWORD为组件参数PASSWORD,组件参数是组件对外提供的可配置选项,参数的值将由用户在发布组件时录入,也可以通过组件间连线由其他组件的输出参数传入。

再设置mysql的存储路径用于数据持久化。

组件设置完成后保存架构图,点击发布按钮就可以发布mysql应用了。

在应用发布界面,mysql的访问地址和3306端口都会随机生成,当然也可以自行定义。

填写好参数PASSWORD的值和mysql数据持久化的数据卷就可以发布了。

发布成功后,就可以通过mysql的访问域名和端口进行连接了。

可以用navicat连接数据库,然后用nacos的sql脚本初始化mysql数据库。

为了让mysql数据库在其他项目中被使用,可在发布-运维监控界面点击组件的更多设置,打开允许项目外调用的开关。

数据库准备好后,就可以搭建nacos了。

2. 搭建nacos

数据库搭建好后采用同样的方法,我们新建一个Spring Cloud项目,采取镜像组件搭建nacos应用,在配置组件时,暴露的端口号和环境变量设置可参考官方docker部署文件(https://github.com/nacos-group/nacos-docker/blob/master/example/standalone-mysql-8.yaml)。

搭建完nacos后,使用外部组件引入上一步搭建的mysql8数据库。

外部服务组件是指通过网络调用的外部服务所形成的组件。其可以引用其他项目中的组件,也可以使用IP或域名,引用系统外的组件。

组件设置完成后,使用连线将这两个组件连接起来。

注册配置中心nacos就搭建完成了。

3. 搭建spring boot admin

接下来使用代码组件搭建服务监控spring boot admin,代码组件是指用git等源码服务器地址进行编译构建的组件。

在架构图中拖入一个代码组件,并绑定GitHub账号,绑定完成后代码组件就可以拉取到该账号在GitHub到代码仓库了。

我的代码使用的是spring boot,所以在技术栈选项里选择SpringBoot@JDK8就好了。

然后配置组件的网络服务端口,通过环境变量NACOS_HOST引入nacos服务地址。

组件设置完成后,使用连线将组件admin和组件nacos连接起来。

4. 搭建服务producer

参照以上步骤,使用代码组件搭建服务producer。

根据实际代码配置组件的网络服务端口,通过环境变量NACOS_HOST引入nacos服务地址。

组件设置完成后,使用连线将组件producer和组件nacos连接起来。

5. 搭建服务cosumers

参照以上步骤,使用代码组件搭建服务cosumers。

根据实际代码配置组件的网络服务端口,通过环境变量NACOS_HOST引入nacos服务地址。

组件设置完成后,使用连线将组件cosumers和组件nacos连接起来。

6. 搭建服务网关gateway

参照以上步骤,使用代码组件搭建服务网关gateway。

根据实际代码配置组件的网络服务端口,通过环境变量NACOS_HOST引入nacos服务地址。

组件设置完成后,使用连线将组件gateway和组件nacos连接起来。

到这一步,一个spring cloud微服务架构的基础框架就搭建完成了。

架构图搭建完毕后,就可以发布应用看看效果了。

7. 发布

在发布界面,系统会自动生成各个服务的随机域名和端口,当然也可以自定义域名和端口,要注意的是自定义域名和端口时不能重复,否则发布会失败。

发布成功后可通过相应的域名来访问服务。

按照以上步骤,就可以在StarOS上快速搭建一个微服务开发测试环境,真的是一键达成,非常方便。

后续我会继续完善这个微服务架构,预计后面会加入链路追踪、消息队列等。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容