ServiceStage-华为微服务开发与管理平台
前言
在上一篇文章一年前,我来到国企搞IT 中,和小伙伴分享了我在国企这一年当中的所见,所闻,所想,很高兴能够获得很多同道中人的共鸣。过去一年,我的很大一部分工作都投入到公司技术平台的建设中。Jira,Confluence,Jenkins,Docker,Kubernetes,微服务等等DevOps工具链,技术栈,都是从无到有一步一步搭建起来的,这其中虽然有第三方供应商的支撑,但过程还是非常艰难的。在数字化转型的大浪潮下,各式各样的IT系统也随之立项,落地,从以前的单体,到要求越来越多的微服务架构,以及带来后续日渐繁杂的监控运维工作,无不对IT的技术能力有了更高的要求,也让本就缺乏IT技术大拿的国企信息面临诸多的挑战。实话说,这一年的工作也让我成长了很多!
正因为有如上诸多的问题,寻找一个稳定的企业级的微服务开发运维平台,是眼前比较清晰的方向。由于公司与华为长期的战略合作关系,华为的微服务开发与运维管理平台ServiceStage,走入我们的视野。搜索了一下全网,确实没有发现涉及ServiceStage方面的文章。所以,在接下来的几篇文章中,我将以真实的POC验证角度,通过改造迁移公司已有的一个微服务项目,一步一为大家分享如何接入ServiceStage、CSE等华为已有的企业级Paas平台,也欢迎朋友帮忙评估建议ServiceStage的能力。
ServiceStage
ServiceStage是一个应用托管和微服务管理平台,可以帮助企业简化部署、监控、运维和治理等应用生命周期管理工作。面向企业提供微服务、移动和Web类应用开发的全栈解决方案,帮助您的各类应用轻松上云,聚焦业务创新,帮助企业数字化快速转型。
以下是ServiceStage提供的能力概况,从整张生态图来讲,确实提供的能力是很全面的,跟多应用场景可参考 。
微服务改造
由于之前大部分项目都是通过Spring Cloud全家桶进行架构的,这里我们直接使用Spring Cloud Huawei来改造我们已有的微服务架构。
官方文档: https://support.huaweicloud.com/devg-servicestage/cse_java_0054.html
项目地址: https://github.com/huaweicloud
注册中心改造
pom引入,这里直接引入huawei ServiceComb服务注册组件,移除consul的依赖。
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-servicecomb-discovery</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-consul-discovery</artifactId>-->
<!-- </dependency>-->
application.yml指向注册中心。这里由于暂时是本地改造微服务架构,没有连接云上的微服务管控控制台,所以这里直接下载Local CSE的客户端,点击start.bat启动
启动成功之后,访问http://localhost:30106/ 即可看到本地版的CSE控制台页面。
application.yml改动
spring:
cloud:
servicecomb:
discovery:
address: http://127.0.0.1:30100 --30100为服务注册端口
main app保留注解,并启动
@EnableDiscoveryClient
成功之后,便可以在CSE控制台看见注册成功的服务列表
配置中心改造
配置中心的改造也比较简单,移除原有的配置中心依赖,pom引入spring-cloud-starter-huawei-config
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-config</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-config</artifactId>
</dependency>
bootstrap.yml替换原有的spring cloud config配置中心的方式,如下
spring:
application:
name: admin
cloud:
servicecomb:
config:
serverAddr: http://127.0.0.1:30113
watch:
delay: 10000
credentials:
enabled: false
测试配置中心
@RefreshScope
@RestController
@RequestMapping("/servicestage")
public class ServiceStageController implements ApplicationListener<ConfigRefreshEvent> { @Value("${dd:}")
private String dd;
@RequestMapping("/price")
public String sayHello(@RequestParam("id") String id) { return "price ---> " + id;
} @Override
public void onApplicationEvent(ConfigRefreshEvent event) {
System.out.println("change = [" + event.getChange() + "]");
}
}
访问 http://localhost:30106/#/cse/services/config,添加配置,作用域下拉列表可选择作用于哪个服务,配置key, value
测试访问
修改配置文件,将dd改为其他值,测试refreshscope功能,可见配置自动更新。
日志打印
2020-11-24 13:31:22.558 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.558 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.559 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.559 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'environmentProperties' with value of type String
change = [[dd]]
重新访问服务,配置已更新
网关
网关目前依旧是Spring Cloud ApiGateway的方式,无需额外配置。
以上为主要微服务组件的改造工作,其他微服务治理相关,目前huawei还在迭代中,后续我们将改造的微服务部署在华为云上。
<End>
小墨唯一公众号 《DevOps特种部队》,分享我在国企数字化转型中,DevOps领域所有相关技术栈,也包含职场的苦与乐,希望各位朋友搜索或者扫描下方图片一键关注,给个支持!
ServiceStage-华为微服务开发与管理平台的更多相关文章
- Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...
- mPass多租户系统微服务开发平台
目录 项目总体架构图 基于SpringBoot2.x.SpringCloud并采用前后端分离的企业级微服务,多租户系统架构微服务开发平台 mPaaS(Microservice PaaS)为租户业务开发 ...
- 基于 abp vNext 微服务开发的敏捷应用构建平台 - 项目介绍
缘起 目前使用ABP框架已经将近3年了,大大小小的项目也陆陆续续做了很多.由于现有信息系统的架构模式是在底层的技术平台上直接构建信息系统并采用技术主导,使用业务无关的编程工具来开发信息系统的缺陷使得系 ...
- 基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录
系列文章: <基于 abp vNext 微服务开发的敏捷应用构建平台 - 设计构想> [点击查看] <基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录> [ ...
- 深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台
深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台 大家好,欢迎大家参加这次DC/OS的技术分享. 先做个自我介绍,刘超,Linker Networks首席架构师,Open DC/OS社区 ...
- 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发
<ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...
- 微服务低代码Serverless平台(星链)的应用实践
导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性.场景化.定制化等难度不太高.但比较繁琐的需求,如服务前端的后端(BFF).服务流程编排.异步消息 ...
- 构建微服务开发环境8————Hello 微服务
[内容指引] 1.用IDEA打开微服务项目; 2.更新Maven依赖: 3.IntelliJ IDEA JDK配置; 4.修改代码: 5.运行微服务: 6.将代码变更提交到Github. 经过前面的努 ...
- 黑少微服务商店之Iron Cloud微服务开发云
近日,由黑少微服务研发团队推出的Iron Cloud微服务开发云已经正式对外提供服务,这是国内第一家基于云端操作的微服务专业开发工具. Iron Cloud 微服务开发云(www.ironz.com) ...
随机推荐
- 测试之-Jmeter使用
一. 修改语言 修改 在 bin 目录下的 Jemeter.properties 二 . Jmeter主要元件 1.测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器 ...
- 通俗的讲解Python中的__new__()方法
2020-3-17更新本文,对本文中存争议的例子进行了更新! 曾经我幼稚的以为认识了python的__init__()方法就相当于认识了类构造器,结果,__new__()方法突然出现在我眼前,让我突然 ...
- 深入理解Java的抽象类和接口
对于面向对象来说,抽象是其重要特征之一.对于之中的抽象类和接口,两者有很多相似的地方,又有两者之间区别的地方. 用几个简单的例子让你快速的理解两者之间的概念和区别 鸣谢 一.抽象类 在了解抽象类之前, ...
- 实战四:Gateway网关作全局路由转发
Gateway网关的作用主要是两个:路由转发,请求过滤.此篇讲的是路由转发,下篇介绍请求过滤. 一,创建网关module,添加依赖 1,new -> module -> maven 或直接 ...
- springcloud中使用dubbo开发rpc服务及调用
spring cloud中基于springboot开发的微服务,是基于http的rest接口,也可以开发基于dubbo的rpc接口. 一,创建goodsService模块 1, 在创建的goodsSe ...
- zookeeper Cli的常用命令
zookeeper Cli的常用命令 服务管理 启动ZK服务: zkServer.sh start 查看ZK状态: zkServer.sh status 停止ZK服务: zkServer.sh sto ...
- 枚举 switch case 标签必须为枚举常量的非限定名称
枚举 switch case 标签必须为枚举常量的非限定名称 错误描述: Error:(63, 24) 错误: 枚举 switch case 标签必须为枚举常量的非限定名称. 解决思路: switch ...
- .netcore 自定义多种身份验证方法混用
背景: 公司项目有很多租户,每个租户的系统都可能调用我们的租户服务,原来的解决方案是为每个租户提供一个service.随着租户的增多,service也多了起来,但是每个service里的逻辑都是一样的 ...
- php中Standard中配置选项,在TargetFrameworks环境下如何输出库存
在.NET Standard/.NET Core技术出现之前,编写一个类库项目(暂且称为基础通用类库PA)且需要支持不同 .NET Framework 版本,那么可行的办法就是创建多个不同版本的项目( ...
- 《Google软件测试之道》 第一章google软件测试介绍
前段时间比较迷茫,没有明确的学习方向和内容.不过有一点应该是可以肯定的:迷茫的时候就把空闲的时间用来看书吧! 这本书,目前只是比较粗略的看了一遍,感触很大.以下是个人所作的笔记,与原文会有出入的地方. ...