温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

低代码应用在TSF实现服务治理的解决方案是什么

发布时间:2021-12-06 15:06:54 来源:亿速云 阅读:144 作者:柒染 栏目:云计算

低代码应用在TSF实现服务治理的解决方案是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

01
业务场景

当企业有大型应用需要拆分成多个微服务的需求时,Mendix在不依赖任何云平台,如Mendix Cloud、Openshift、K8S等情况下,无法满足服务治理所有的功能,对于Private Cloud环境的运行更是如此。即便是在开源的上如K8S、Openshift、Mesos、Rancher、Docker-swarm容器平台等也不具备较强的服务治理能力。对于代码侵入式较高的服务治理框架,SpringCloud、Dubbo等对于Mendix应用的开发难度较高(对于Mendix应用目前可以通过javaAction方式自定义代码,对于Springcloud,自定义代码的权限远远不够),固不适用;而对于专业的无代码侵入式Service Mesh服务治理框架,如Istio,Linkerd、Nginmesh、Maistra等却需要有专业的团队去维护, 时间成本,运维成本都大大增加项目预算,因此在Private Cloud环境下需要一套快速实现服务治理的一套解决方案。


拥有可以用低代码的方式创建一个基于微服务集群的大型企业级应用,帮助企业快速应用最新的互联网技术,加速企业创新更好的支持敏捷快速迭代开发,提升整体IT管理能力。

02      
  应用范围

使用腾讯云微服务平台TSF来实现Mendix应用之间的服务治理。


如服务路由、服务限流、服务鉴权规则。用户可以通过配置、权重标签的形式进行细粒度的流量控制,实现灰度发布、就近路由、流量限制、访问权限控制等功能 。



03      
  TSF服务治理能力

Mesh 微服务平台(Tencent Service Mesh Framework,简称 TSF Mesh),基于 Service Mesh 的理念,为应用提供服务自动注册与发现、服务路由、鉴权、限流、熔断等服务治理能力,且应用无需对源代码进行侵入式改造,即可与该服务框架进行集成。了解TSF Mesh更多信息点击此处请查看《腾讯云中间件团队在Service Mesh中的实践与探索》。


通过腾讯云的TSF微服务平台,提供Mendix开发的微服务之间治理的解决方案。  
  • 服务      线上管理      ,实现      服务可视化全生命周期管理。
  • 业务自定义标签,应用于用户自定义服务鉴权与服务路由规则。
  • API列表与调试,方便用户API接口信息查看及远程调试。
  •  服务统计,提供服务运营监控数据,用于快速定位服务异常,发现系统瓶颈。
  • 服务鉴权,防止服务非法调用。
  • 服务限流 ,保护自身服务,防止流量击穿导致系统异常。
  • 服务路由,灰度发布,金丝雀发布,蓝绿发布。
  • 服务熔断,当下游的服务因为某种原因导致服务不可用或响应过慢时,上游服务为了保证自己整体服务的可用性,不再      继续调用目标服务,直接返回。      当下游服务恢复后,上游服务会恢复调用。
  • 日志告警,快速发现系统异      常。
  • 实时日志,检测服务启动日志。
  • 日志检索,快速发现系统异常。
  • 服务依赖拓扑,展示应用服务全景图,用于快速定位服务异常,发现系统瓶颈。
  •      调用链查询及详情,以接口维度      快速定位服务异常,发现系统瓶颈。      弹性伸缩,保障服务高可用,减少人工操作,节约系统资源。
  • 全链路灰度发布。
  • 分布式事务,跨多个库数据一致性保障。
  •      微服务网关,全局服务的鉴权,服务路由,服务管理。

 
04    
准备工作
 
为了顺利完成本次实践,您需要提前做好 以 下TSF的相关 准 备工作 :  
  • 登录腾讯云控制台,注册并实名认证后,登录腾讯云账号:
    https://cloud.tencent.com。
  • 确认腾讯云账户余额大于100元。
  • 若使用主账号进行登录,则默认已有所有资源的访问权限;若使用子账号进行登录,则需要提前授予相关权限,可前往下面链接查看如何使用CAM策略进行授权:
    https://cloud.tencent.com/document/product/598/10600。
  •  一台可以访问公网的机器(可在腾讯云CVM页面进行购买),用于上传Mendix应用镜像。
  •  容器服务TKE。

 
05    
Mendix镜像构建      

1. 通过Mendix Studio Pro 开发的多个微服务  

如ilink.mpk、native.mpk项目包,两者相互调用彼此提供的服务。

传统的Rest API调用:http://ip:port


低代码应用在TSF实现服务治理的解决方案是什么  


改造后的Rest API调用, http://service-name/,使用服务名字实现服务之间的相互调用。


低代码应用在TSF实现服务治理的解决方案是什么  

 2. 构建镜像

(1)下载相关的脚本文件


git clone https://github.com/mendix/docker-mendix-buildpack.git
 


(2)文件目录结构


├── Dockerfile

├── Dockerfile.rootfs.bionic

├── Dockerfile.rootfs.trusty

├── LICENSE

├── Makefile

├── README.md

├── scripts

│ ├── cleanupjdk

│ ├── compilation

│ ├── git

│ ├── startup

│ └── vcap_application.json

└── tests

    ├── docker-compose-azuresql.yml

    ├── docker-compose-k8s.yml

    ├── docker-compose-mysql.yml

    ├── docker-compose-postgres.yml

    ├── docker-compose-sqlserver.yml

    ├── stop.sh

└── test-generic.sh
 


(3)将开发好的MPK包放到与docker-mendix-buildpack同级目录

低代码应用在TSF实现服务治理的解决方案是什么  

ilink.mpk和native.mpk为Mendix所开发的两个微服务。docker-mendix-buildpack-ilink和docker-mendix-buildpack-native是这两个app镜像构建,容器部署相关的脚本,主要文件包括Dockerfile、Makefile、startup启动文件。


(4)Makefile文件修改

修改前:  
低代码应用在TSF实现服务治理的解决方案是什么  
修改后:    
低代码应用在TSF实现服务治理的解决方案是什么  
(5)创建nativeService.tar.gz文件,内容如下:    
文件目录:
 
├── apis

│ └── native.yaml

├── logs

└── spec.yaml
 


##Spec.yaml文件主要是定义服务及健康检查相关的内容:
apiVersion: v1
kind: Application
spec:
  services:
    - name: native
      ports:
        - targetPort: 8080
          protocol: http
      healthCheck:
        path: /
##native.yaml主要定义相关的api,不做强求,内容如下:

openapi: 3.0.0
info:
  version: "1.0.0"
  title: native service
paths:
  /api/v6/user/create:
    get:
      responses:
        '200':
           description: OK
        '401':
           description: Unauthorized
        '402':
           description: Forbidden
        '403':
           description: Not Found
  /api/v6/user/account/query:
    get:
      responses:
        '200':
           description: OK
        '401':
           description: Unauthorized
        '402':
           description: Forbidden
        '403':
           description: Not Found
  /health:
    get:
      responses:
        '200':
           description: OK
        '401':
           description: Unauthorized
        '402':
           description: Forbidden
        '403':
           description: Not Found
 


nativeService.tar.gz文件所处的位置如下所示:

低代码应用在TSF实现服务治理的解决方案是什么  
(6)同理创建ilinkService.tar.gz文件,内容如下  

文件目录:

├── apis

│ └── native.yaml

├── logs

└── spec.yaml
 


##Spec.yaml文件主要是定义服务及健康检查相关的内容:
apiVersion: v1
kind: Application
spec:
  services:
    - name: ilink
      ports:
        - targetPort: 8080
          protocol: http
      healthCheck:
        path: /
 

(7)修改Dockerfile文件

修改后的内容如下:

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  

(8)修改script目录下的startup文件

在末尾添加内容:    
os.system('mkdir -p /opt/tsf/app_config/apis')
os.system('cp /opt/app/nativeService/spec.yaml /opt/tsf/app_config/')
os.system('cp -r /opt/app/nativeService/apis /opt/tsf/app_config/')
 
低代码应用在TSF实现服务治理的解决方案是什么  

(9)镜像构建

##make get-sample 相当于解压文件到build文件夹
##make build-image 构建镜像并指定相应的镜像的tag
 
低代码应用在TSF实现服务治理的解决方案是什么  
需要关注dockerfile修改的文件内容  
低代码应用在TSF实现服务治理的解决方案是什么  

当出现以下内容则构建成功

低代码应用在TSF实现服务治理的解决方案是什么  

3. 腾讯云镜像仓库功能存储构建的镜像

使用说明: 
https://cloud.tencent.com/document/product/457/9118

 

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  


将本地构建的镜像包上传到镜像仓库:  
低代码应用在TSF实现服务治理的解决方案是什么  


06      
腾讯微服务平台      



 
1. 创建2台微服务云服务器
 

(1)具体的创建过程请参考:https://cloud.tencent.com/document/product/213/2936

低代码应用在TSF实现服务治理的解决方案是什么  
(2)设置安全组    
低代码应用在TSF实现服务治理的解决方案是什么  

(3)添加相应的安全规则

低代码应用在TSF实现服务治理的解决方案是什么  


参考:

https://cloud.tencent.com/document/product/213/12452  
2. 登陆微服务平台    

(1)打开控制面板,搜索TSF

低代码应用在TSF实现服务治理的解决方案是什么  

(2)进入腾讯微服务平台TSF

低代码应用在TSF实现服务治理的解决方案是什么  
3. 新建集群  
(1)新建集群, 该 容器集 群 是利用了腾讯云的容器服务TKE平台。  


低代码应用在TSF实现服务治理的解决方案是什么  

(2)导入云主机,以下是已经绑定过的,选择之间创建好的2台云服务器即可。

低代码应用在TSF实现服务治理的解决方案是什么  

(3)集群信息如下图所示,包括两台云主机:

低代码应用在TSF实现服务治理的解决方案是什么  



 
4. 新建应用  

 
低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  

同理

低代码应用在TSF实现服务治理的解决方案是什么  

 
5. 新建日志配置项  
低代码应用在TSF实现服务治理的解决方案是什么  
6. 配置

 
(1)编辑配置信息。  

 
低代码应用在TSF实现服务治理的解决方案是什么  

(2)添加发布规则

低代码应用在TSF实现服务治理的解决方案是什么  

 
7. 新建部署组  
低代码应用在TSF实现服务治理的解决方案是什么  

(1)新建部署,编辑相关信息:

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  
(2)在保存下一步之前需要检测是否有足够的资源。 同理创建另外一个mendix-ilink。 创建完成,如下图所示:  
低代码应用在TSF实现服务治理的解决方案是什么  

8. 创建后端数据库服务

(1)打开容器服务平台

低代码应用在TSF实现服务治理的解决方案是什么  

(2)可以看到刚才在微服务平台创建好的集群,点击集群id

低代码应用在TSF实现服务治理的解决方案是什么  
(3)新建Deployment  
低代码应用在TSF实现服务治理的解决方案是什么  
MYSQL_USER=mendix
MYSQL_PASSWORD=mendix
MYSQL_DATABASE=mendix
MYSQL_ROOT_PASSWORD=root
 


低代码应用在TSF实现服务治理的解决方案是什么  
 
低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  
(4)创建好的mysql数据库服务  
低代码应用在TSF实现服务治理的解决方案是什么  

(5)Pod管理

低代码应用在TSF实现服务治理的解决方案是什么  

(6)为mysql再创建一个数据库实例

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  


create  database  mxIlink;
GRANT ALL ON *.* TO 'mendix'@'%';
flush privileges ;
 

9. 为微服务应用添加环境变量

(1)编辑yaml文件

低代码应用在TSF实现服务治理的解决方案是什么  

为其中一个添加内容:

低代码应用在TSF实现服务治理的解决方案是什么  


- name: ADMIN_PASSWORD
   value: Password1!
 - name: DATABASE_URL
    value: mysql://mendix:mendix@ilink-mysql:3306/mendix
##另外一个添加内容:
- name: ADMIN_PASSWORD
   value: Password1!
 - name: DATABASE_URL
    value: mysql://mendix:mendix@ilink-mysql:3306/mxIlink
##两者数据库实例不同即可
 

(2)当pod的数量和期望一致时,则应用部署完成

低代码应用在TSF实现服务治理的解决方案是什么  

 
07    
服务验证
     

     

     

 
由于之前我们设置主机端口的形式访问应用,两个应用的端口对外分别为   30080、30089,通过任一台云服务器即可访问。  
将新建的Task通过Rest 形式POST到另外一个微服务,GET会从另外一个微服务获取发送的数据,如下所示:  
低代码应用在TSF实现服务治理的解决方案是什么  


另外一个微服务平台接收到的Task数据

低代码应用在TSF实现服务治理的解决方案是什么  

在构建镜像的时候提到了Rest API,传统的方式是ip+port,现在可以直接使用service-name的方式调用。传统方式:

低代码应用在TSF实现服务治理的解决方案是什么  

现在的方式:

低代码应用在TSF实现服务治理的解决方案是什么  

同理相互调用。TSF提供服务注册、服务发现等服务治理相关的功能。

低代码应用在TSF实现服务治理的解决方案是什么  

 
08    
微服务服务治理
     

     

     

 

 
1. 服务治理查询  

 
低代码应用在TSF实现服务治理的解决方案是什么  

目前我们部署的服务都是一个实例,可通过容器服务平台进行弹性伸缩。

低代码应用在TSF实现服务治理的解决方案是什么  

 
2. 服务依赖拓扑
低代码应用在TSF实现服务治理的解决方案是什么  


两个服务之间相互调用相关的依赖关系如上图所示。 调 用概览图如下图所示:  
低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  
3.     
调用链查询    
低代码应用在TSF实现服务治理的解决方案是什么  

TraceId追踪

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么  

   
4. 服务监控
低代码应用在TSF实现服务治理的解决方案是什么  

服务健康状况:

低代码应用在TSF实现服务治理的解决方案是什么  

 延时状态码统计:

低代码应用在TSF实现服务治理的解决方案是什么  
5. 日志服务


由于之前已经创建了日志配置项,因此可以通过TSF的日志服务可以对日志进行检索。

低代码应用在TSF实现服务治理的解决方案是什么  


通过通过多种查询方式如基本查询、Lucene语法、正则表达式。如下所示:

低代码应用在TSF实现服务治理的解决方案是什么  
低代码应用在TSF实现服务治理的解决方案是什么

关于低代码应用在TSF实现服务治理的解决方案是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI