技术开源
科技创新驱动社会变革,宜信技术学院致力于传播有价值的金融科技研究成果及落地实践,推出Davinci、Moonbox、Wormhole、UAV.Monitor等10项领先开源技术,以将宜信的技术和方法开放共享,繁荣技术生态。

SIA-TASK

微服务任务调度平台

SIA-TASK是基础开发平台的一项重量级产品,契合当前微服务架构的运行模式,具有跨平台,可编排,高可用,无侵入,一致性,异步并行,动态扩展,实时监控等特点。


  • 基于注解自动抓取任务,在暴露成HTTP服务的方法上加入@OnlineTask注解,@OnlineTask会自动抓取方法所在的IP地址,端口,请求路径,请求方法,请求参数格式等信息上传到任务注册中心(zookeeper),并同步写入持久化存储中,此方法即任务;
  • 基于注解无侵入多线程控制,单一任务实例必须保持单线程运行,任务调度框架自动拦截@OnlineTask注解进行单线程运行控制,保持在一个任务运行时不会被再次调度。而且整个控制过程对开发者完全无感知;
  • 调度器自适应任务分配,任务执行过程中出现失败,异常时。可以根据任务定制的策略进行多点重新唤醒任务,保证任务的不间断执行;
  • 高度灵活任务编排模式,SIA-TASK的设计思想是以任务为原子,把多个任务按照执行的关系组合起来形成一个作业。同时运行时分为任务调度中心和任务编排中心,使得作业的调度和作业的编排分隔开来,互不影响。在我们需要调整作业的流程时,只需要在编排中心进行处理即可。同时编排中心支持任务按照串行,并行,分支等方式组织关系。在相同任务不同任务实例时,也支持多种调度方式进行处理。

ns4_frame

分布式服务框架

ns4_frame是一个高性能优秀的分布式服务框架,允许创建复杂的流程/业务流,对于业务服务节点的实现可串联,可分布式。其精简、轻量,实现了“脱容器”(不依赖tomcat、jetty等容器)独立运行。NS4框架是一套MAVEN父子项目,由五个项目组成:


  • NS_MQ:负责和底层消息队列进行通信,提供了对消息队列进行操作的API
  • NS_TRANSPORTER:通过调用NS_MQ提供的API,对业务消息进行收取,处理,转发
  • NS_CHAIN:一个可选开发框架,负责对同一个jvm中的业务处理步骤进行链条式的整合,组成当前业务模块的业务处理流程
  • NS_CONTROLLER:一个业务消息转发应用,负责将接收到的消息转给对应的业务模块进行处理,同时负责将业务模块根据整体业务进行关联。NS_CONTROLLER本质是一个独立的应用系统,构建于 NS_TRANPORTOR和NS_CHAIN之上
  • NS_DISPATCHER:NS4架构规定的消息入口,通过提供的HTTP服务接受业务系统边界外的http请求,并将请求转化成业务系统内部通信使用的消息协议格式

ns4_gear_idgen

ID 生成器组件

ns4_gear_idgen是完全利用ns4_frame实现的一个组件demo,支持分布式部署,生成全局唯一的ID。优点:


  • 很方便的线性扩展,能够支撑大多数业务场景
  • 生成ID 规则多样,可配置且支持10 进制、36 进制、62 进制
  • 业务之间ID 相互隔离,互不影响
  • 获取 ID 不用频繁操作数据库,快消耗完号段内 ID 时才会操作数据库,减轻了数据库的压力
  • 提前初始化号段内的ID,保证在每个号段内 ID 使用完之前初始化完成,避免业务使用完ID 后才初始化带来的影响
  • 可以自定义 key_value 的大小,非常方便业务从原有的ID 方式上迁移过来
  • 容灾性高:服务内部有号段缓存,即使DB 宕机,短时间内服务仍能正常对外提供服务

ns4_gear_watchdog

监控系统组件

ns4_gear_watchdog是ns4_frame进程的父进程,守护并管理ns4_frame进程。它的职责包括以下几个方面:


  • 对ns4_frame进行远程启动和停止、实时监测ns4_frame进程的健康状态、内存消耗、CPU使用、内部线程
  • 收集ns4_frame实现的业务日志归集、实现业务内部实时流转的业务数据,达到实时对ns4_frame进程在线上的运行状态、实现的业务以及业务数据的流转状态等方面的监控,并精准、快速、便捷地定位出异常以及CPU、线程等运行状态。

ns4_chatbot

通讯组件

ns4_chatbot是一个通讯组件,集成了qqbot、WxChat、rasa以及web服务。通过微信和qq聊天窗口由机器人角色向群组发送有效的消息等。其中ns4_gear_watchdog监控信息就是通过ns4_chatbot发送到对应的群组中通知相关负责人。

Insight

洞察

洞察:是宜信安全部开发,集成应用系统资产管理、漏洞全生命周期管理、安全知识库管理三位一体的管理平台,使用了Python语言进行开发,利用Flask框架+MySQL+Docker部署实现。


  • 应用系统资产管理:对公司应用系统资产进行管理,包括系统名称、域名、重要级别、部门、负责人等。
  • 漏洞生命周期管理:对公司应用系统产生的安全漏洞进行线上提交、通告、知悉、复测、分类、风险计算、修复期限计算、邮件提醒、漏洞数据分析统计等。
  • 安全知识库管理:对安全知识、管理制度进行集中存放、线上学习、安全培训、知识传承等。

UAV.Monitor

全维监控

UAV.Monitor是业务,应用/服务,基础三维一体的监控平台,同时支持单体架构,SOA架构,微服务架构。只需部署1个Agent即可采集全维度数据,支持物理机,虚拟机,Docker。


  • 基础监控:操作系统以及进程级性能指标(CPU,内存,连接数,网络流量,磁盘IO等)
  • 应用/服务性能监控:Java应用无需修改代码,即可采集应用/服务实例,应用服务器,JVM,客户端(http/dubbo/SQL/MQ/redis/mongoDB等),数据库连接池等的性能指标
  • 日志监控:系统/应用日志自动归集和搜索,支持动态开关策略
  • 业务监控:支持自定义指标归集
  • 多技术栈支持:Java系列Tomcat/Jetty/SpringBoot/JSE/MSCP,其他JVM语言Scala,Groovy等
  • 全维报警:支持基础/应用/服务的性能指标,业务指标以及日志报警,报警条件支持多维表达式
  • 历史追踪:任意时间范围的不同指标组合的性能指标展示
  • 支持移动化运维,手机访问

UAV.APM

应用性能管理

UAV.APM是UAV.Monitor的增强扩展,实现对应用/服务性能全方位的管理。支持主流技术栈,与UAV.Monitor相同。


  • 代码无侵入性,JVM语言支持Java,Scala,Groovy等。
  • 应用/服务画像:自动化提取应用的技术栈和实例元数据,包括服务接口,客户端使用,实例URL,日志配置,类库等。
  • 服务图谱:自动绘制应用/服务之间的调用关联关系的可视化展示,支持代理穿透
  • 全量无侵入式调用链跟踪:支持主流技术栈服务,客户端,方法级的全量/采样跟踪;两种粒度动态调节:轻调用链,全量采集近乎无损;重调用链,包含所有请求/响应,方法入参/出参的内容
  • 一键式线程分析:一键收集目标JVM的线程Dump和线程性能数据,支持代码关联
  • 浏览器访问跟踪:自动追踪来自浏览器的访问来源,访问目标,访问时间。
  • 多维可视化看板:同视图多维度(业务指标,性能指标,日志,调用链等)数据对标分析

UAV.MSCP

微服务计算

UAV.MSCP(Micro-Service Computing Platform)提供了一套基于微服务架构的计算平台。UAV系列软件包括任务机器人,全维监控,APM,服务治理等都是基于MSCP。它使用Java语言,并提供了一系列特性来简化计算任务的开发工作。


  • 开发框架/组件支持:Http/RPC通信,定时调度任务,并行处理,异步化响应,资源限制器,配置管理中心,共享资源管理,流程处理等
  • 功能即服务:每个功能被定义为Feature,每个进程被定义为计算节点,计算节点支持多Feature运行,支持Feature热启停,热配置更新,Class/配置隔离,资源限制
  • 服务化支持:服务注册与发现,负载均衡,自动切换/重试,熔断隔离
  • 组件图谱:可自动生成组件图谱,清晰了解代码静态结构与动态关联关系
  • 动态服务编排:根据Feature语义自动协调具备符合业务能力的节点参与任务执行
  • 动态计算编排:根据计算资源自动协调合适的节点参与任务执行

Wormhole

大数据流式处理

Wormhole是一个SPAAS(Stream Processing as a Service)平台解决方案。Wormhole面向大数据项目开发和管理人员,致力于简化和统一开发管理流程。尤其是针对流式实时和流式准实时数据处理场景,Wormhole提供了可视化的操作界面,极简的配置流程,基于SQL的业务开发方式,并屏蔽了大数据处理底层技术细节,极大的降低了开发管理门槛,使得大数据项目开发和管理变得更加轻量敏捷可控可靠。Wormhole的设计理念:


  • 统一流式处理DAG高阶分形抽象
  • 统一通用流转消息UMS协议抽象
  • 统一表命名空间Namespace定义抽象

DBus

大数据总线

DBus专注于数据的收集及实时数据流计算,通过简单灵活的配置,以无侵入的方式对源端数据进行采集,采用高可用的流式计算框架,对公司各个IT系统在业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数据使用方订阅和消费,充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。


  • 无侵入方式接入多种数据源,海量数据实时传输
  • 感知源端schema变更,数据实时脱敏
  • 初始加载和独立加载
  • 统一标准化消息传输协议,可靠多路消息订阅分发
  • 实时监控&预警,可视化后台管理系统
  • 支持分表数据汇集

Moonbox

大数据虚拟混算

Moonbox是一个DAAS(Data Virtualization as a Service)平台解决方案。Moonbox面向数据仓库工程师/数据分析师/数据科学家等,致力于提供数据虚拟化解决方案。既可作为数据应用底层数据查询计算统一入口,也可作为逻辑数据仓库替代现有数据仓库。用户只需通过统一SQL服务调用和Moonbox交互,即可透明屏蔽异构数据系统异构交互方式,轻松实现跨异构数据系统Adhoc混算。Moonbox的设计理念:


  • 统一异构数据系统查询语言为SQL
  • 跨异构数据系统全SQL优化
  • 多混算引擎支持

Davinci

大数据可视洞察

Davinci是一个DVAAS(Data Visualization as a Service)平台解决方案。Davinci面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立使用,也可作为可视化插件集成到三方系统。用户只需在可视化UI上简单配置即可服务多种数据可视化应用,并支持高级交互/行业分析/模式探索/社交智能等可视化功能。Davinci的设计理念:


  • 围绕数据视图和可视组件核心概念设计
  • 强化集成定制能力和社交智能能力

LAIN

PaaS(平台即服务)平台

LAIN是宜信公司大数据创新中心开发的开源PaaS平台。LAIN以Docker技术为基础,简化和规范了应用开发、测试、集成和部署工作流。LAIN融合了DevOps最新理念和最佳工具链,可大大提高运维自动化水平。

LAIN主要面向技术栈多样、寻求高效运维方案的高速发展中的组织,面向用户包括开发工程师、测试工程师、运维工程师等,既可以提高开发规范性和敏捷性,也可以提升组织运维自动化水平。LAIN也是个人开发者使用Docker的一个利器。

LAIN的所有配置都在Git管理下的一个YAML文件里,大大降低了开发人员使用Docker的门槛。在LAIN的web界面可以轻松实现服务伸缩,还可以方便管理敏感的配置文件。通过多个自研和第三方开源组件,LAIN还为企业提供了一体化的运维解决方案,包括单点登录、监控报警、日志收集等功能。

Themis

数据库审核

Themis是宜信公司DBA团队开发的一款数据库审核产品。其名称源自希腊神话中的正义与法律女神。项目取此名称,寓意此平台对数据库质量公平判断,明察秋毫。此平台可实现对Oracle、MySQL数据库进行多维度(对象结构、SQL文本、执行计划及执行特征)的审核,用以评估对象结构设计质量及SQL运行效率。可帮助DBA及开发人员,快速发现定位问题;并提供部分辅助诊断能力,提升优化工作效率。全部操作均可通过WEB界面进行,简单便捷。此外,为了更好满足个性化需求,平台还提供了扩展能力,用户可根据需要自行扩展。