文档章节

SOFADashboard 启动开源共建 | SOFAStack 一站式管控平台

SOFAStack
 SOFAStack
发布于 05/06 11:34
字数 2219
阅读 19
收藏 0

SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。

为了建设更完整的 SOFAStack 微服务体系,我们计划发起 SOFADashboard 项目,计划通过社区的方式共建,将其打造为一站式的 SOFAStack 管控平台。欢迎共建~

SOFADashboard:https://github.com/alipay/sofa-dashboard [1]

背景

从 2018 年 4 月 19 日宣布开源至今,SOFAStack 目前已经开源了包括 SOFABoot、 SOFARPC、SOFALookout、SOFATracer、SOFARegistry 等在内的一系列微服务相关的项目,并投入分布式事务 Seata 进行重要贡献。随着 SOFAStack 架构体系的不断丰富和完善,外部对于 SOFAStack 的管控平台的需求也愈加强烈。

由于 SOFAStack 内部的管控平台依赖众多的内部基础设施,为了建设更完整的 SOFAStack 微服务体系,我们计划发起全新的 SOFADashboard 项目,计划通过社区的方式共建,将其打造为一站式的 SOFAStack 管控平台。

能力大图

SOFADashboard 作为一站式 SOFAStack 管控台,希望对 SOFAStack 各个组件的使用等进行统一管理。为此我们为 SOFADashboard 规划一版能力图,包含了微服务里的一些能力点,例如应用信息管理、服务治理、配置管控、动态模块等等。见下图所示:

image.png

每个能力点对应的实现我们都做了一层抽象。例如服务查看需要从注册中心获取数据,我们封装了一层服务列表获取接口,底层可以是从 Zookeeper 或者 SOFARegistry 等不同的注册中心实现读取服务列表。

技术栈选择

为了最大限度的降低开发成本、部署成本及运维成本,SOFADashboard 会基于开源社区优秀的产品来进行开发构建。经过讨论,最终选择社区主流的前后端分离思路,具体的组件包括:

  • Ant Design:基于 React [2] 封装的一套 Ant Design 的组件库,主要用于研发企业级中后台产品。从产品成熟度、社区活跃度、框架上手难易程度等各个方面均有很好的表现。
  • SOFABoot:蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。
  • MyBatis:Mybatis 相对于 JPA 来说,上手难度略低,JPA 更加倾向于结合 DDD 使用(业务越复杂,对于DDD 的需求越高);对于简单的增删改查业务操作,Mybatis  相对来说更灵活和可控。

v1.0 发布

4 月 30 日,我们上传了第一个 SOFADashboard 版本,主要能力包括:应用信息、服务查看、动态模块管控等。

目前演示地址:http://dashboard.dev.sofastack.tech:8000/ [3]

image.png

详细设计图

image.png

基础依赖

从架构图中可以看到,目前 SOFADashboard 中的服务治理、SOFAArk 管控等需要依赖于 Zookeeper 和 MySQL;它们承担的解决如下:

外部依赖 作用 备注
Zookeeper 注册中心 SOFARPC 服务治理
配置推送 SOFAArk 管控
MySql 资源存储 注册的 ark-biz 信息,插件与应用的关联信息,插件版本信息等

应用面板

SOFADashboard 支持查看应用的 IP、端口、健康检查状态等基本信息,此功能依赖 SOFADashboard client。SOFADashboard client 用于向 SOFADashboard 服务端注册 IP、端口、健康检查状态等应用基本信息;SOFADashboard client 并非是直接通过 API 调用的方式将自身应用信息直接注册到 SOFADashboard 服务端 ,而是借助于 Zookeeper 来完成。

image.png

客户端向 Zookeeper 中如上图所示的节点中写入数据,每一个 ip:port 节点代表一个应用实例,应用本身信息将写入当前节点的 data 中。

如果一个应用需要将应用信息展示到 SOFADashboard 管控端,可以通过引入客户端依赖即可,具体使用参考 SOFADashboard client 快速开始 [4]。

服务治理

SOFADashboard 服务治理是对 SOFARPC 的服务进行管理,服务治理管控台部分,主要包括基于服务名查询和服务信息列表展示两个基础能力。在服务治理管控台界面,可以直观的看到当前服务的一些基本元数据信息:

image.png

当点击 服务 ID 对应的超链接时,会进入到当前服务的详情页;服务提供者详情页中,可以看到当前服务所有的提供方信息列表,每个 item 行对应一个服务提供方实例,通过此界面可以快速查看服务的 providers 信息。

image.png

服务消费者详情页中,可以看到当前服务所有的消费方信息列表。

image.png

SOFAArk 管控

SOFAArk [5]本身提供了多种方式来支持多应用(模块)合并部署 ,包括基于命令行的管控,基于 API 的管控等;SOFAArk 管控是 SOFADashboard 针对 API 管控的一种实现。通过面向 Zookeeper 进行命令的推送和命令的解析执行。SOFAArk 管控主要包括以下功能:

  • 插件注册

将 ark-biz 插件注册到 SOFADashboard,作为基础数据,统一管控。

image.png

插件基本信息录入:

image.png

插件列表:

image.png

  • 关联应用

将 ark-biz 插件与宿主应用进行绑定,此关联信息在 SOFAArk 多应用(模块)合并部署中作为重要的基础信息存在。在后续的操作中,可以通过此关联关系查看到某个插件下挂载的应用信息。

image.png

  • 插件详情

通过插件详情页,可以看下当前 ark-biz 插件下所有关联的宿主应用信息,以及宿主应用中的 ark-biz 状态信息,插件详情页中,可以查看所有关联此插件的应用中,插件的状态信息。

image.png

  • 命令推送

命令推送是 SOFADashboard 中提供 SOFAArk 管控的核心能力,通过面向 Zookeeper 编程的方式,将指令信息传递给各个宿主应用中的 ark-biz 模块,ark-biz 在接收到相关指令之后再进行相应的行为,如安装、切换、卸载等。

可以针对应用维度、IP 维度推送一些指令,比如 install、uninstall 等等,当这些命令被写入到 Zookeeper 的某个节点上时,所有监听此节点的宿主应用均会解析此指令,并进行相关的操作。

基于 IP 维度推送如图例所示,每个应用实例表单默认会有对应的操作,可以通过展示的命令按钮操作当前实例行为:

image.png

点击 安装按钮,延迟 1~1.5s 之后 界面将会刷新新的状态:

image.png

基于应用维度此处不再赘述。

##社区共建

SOFADashboard 作为整个 SOFA 体系的“管家”,目前在能力上还比较薄弱;与其他 SOFAStack 产品不同的是,SOFADashboard 是一款从一开始就希望社区共建的,天然定位开放到社区的产品。随着 SOFAStack 体系内产品的不断丰富,SOFADashboard 希望通过社区共建的方式来锤炼和完善功能,大家可以提出不同的需求,建设更多的能力,从而更好的服务整个 SOFAStack 技术体系。

待建设列表如下,欢迎大家参与贡献:

任务列表 进度 计划版本 说明
集成 SOFARegistry 开发中 1.1.0
完善应用面板功能,支持多维度的应用信息展示 -- 1.1.0
完善服务治理能力,包括权重设置,服务降级等 -- 1.1.0
增加链路分析展示功能 -- 1.2.0
集成 Apollo  -- 1.3.0
支持 Docker  -- --
支持 Kubernetes -- --
前端优化 持续进行中 --

小结

本文介绍了 SOFADashboard 产生的背景,并对 SOFADashboard 提供的功能进行了介绍。随着 SOFAStack 架构体系的不断完善,SOFADashboard 也将会承担更多的管控能力。在功能丰富和前端优化上,希望可以有更多的同学能够参与,一起打造一个功能完备、简单易用的 SOFADashboard。

文章涉及相关链接

[1] SOFADashboard:https://github.com/alipay/sofa-dashboard

[2]  Reacthttp://facebook.github.io/react/

[3] 演示地址:http://dashboard.dev.sofastack.tech:8000/

[4] SOFADashboard client 快速开始https://github.com/alipay/sofa-dashboard-client

[5] SOFAArkhttps://www.sofastack.tech/sofa-boot/docs/sofa-ark-readme

© 著作权归作者所有

SOFAStack
粉丝 25
博文 48
码字总数 183083
作品 1
杭州
私信 提问
SOFA Meetup#2 上海站-使用 SOFAStack 快速构建微服务

| 蚂蚁金服 SOFAStack SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,历经蚂蚁金服超过十年的...

SOFAStack
05/13
66
0
基于 SOFAArk 和 SOFADashboard 实现动态模块管控 | Meetup#2 回顾

作者:卫恒(宋国磊),SOFATracer 以及 SOFADashboard 开源负责人。 本文根据 5月26日 SOFA Meetup#2上海站 《使用 SOFAStack 快速构建微服务》主题分享整理,着重分享如何使用 SOFADashbo...

SOFAStack
05/30
36
0
蚂蚁金服 SOFAStack 荣获云计算开源产业大会尖峰开源技术创新奖

2019 年 7 月 3 日,在 2019 云计算开源产业大会上,蚂蚁金服自主研发的金融级分布式架构 SOFAStack(Scalable Open Financial Architecture Stack)荣获 OSCAR 尖峰开源技术创新奖(自主研发...

SOFAStack
07/08
34
0
2019云原生产业大会召开 蚂蚁金服贡献云原生典型实践

4月24日,国内最权威、最大规模的云原生应用大会——2019云原生产业大会在北京召开。 本次大会上,中国信息通信研究院重磅发布了《云原生行业应用实践白皮书》和《无服务架构技术白皮书》两份...

华蒙
04/26
0
0
KubeCon 上海 SOFAStack Cloud Native Workshop

KubeCon EU 前几天刚刚结束,6月24日(星期一)KubeCon China 又要来了。KubeCon + CloudNativeCon + Open Source Summit China 2019,蚂蚁金服核心技术团队将举办一场全天的 Workshop,给大...

SOFAStack
05/29
27
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
57分钟前
5
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部