1. 介绍

​ 随着金融市场的完全开放,移动互联网时代的到来,国内银行的竞争日益激烈。银行业针对复杂多变的客户需求和应用场景,由此会构建大量的IT系统建设满足市场要求。面对大量的系统运维势必会带来极大的挑战,所以在IT管理层面,银行业需要建立统一的管控体系,实现项目的集中化管理、提升自主可控能力,降低系统运行和维护风险。

​ 伴随着近几年分布式技术、微服务、docker技术的发展,相应的也产生了很多诸如分布式上百机器的监控问题,分布式服务的治理问题,不同服务配置统一管理问题,上百应用统一管理问题,分布式日志、链路统一管理问题,分布式系统常用的开源软件监控和管理问题,分布式发布的问题(优雅发布,灰度发布,多版本测试),任务(批量任务、shell任务)的管理,还有统一的监控通知中心,运维统计(交易报表、巡检报告),基于应用的智能诊断等等。

​ NTC是一个集应用生命周期管理、监控、运维等一站式平台,完全自主研发且支持传统和分布式系统架构,NTC的目的就是为了解决将这些应用、开源软件、服务器等统一进行管理与监控,并达到管理成百上千机器和应用,从而解决互联网用户使用和应用运行的各种问题,极大地提高了排查问题,解决问题的各种能力。

​ 科蓝公司结合目前市场发展情况,以及多年来运维使用经验和客户反馈出发,以应用为中心,自研了NTC。

​ 1)目前市场都有很多不同的开源技术,但是各自技术各成体系,拥有独立的规范和管理界面给运维造成很大的不便,NTC采用统一的技术规范和管理界面,使得运维的效率极大地提升。

​ 2)应用系统目前的建设水平有比较大的不一样,基于传统型和分布式的系统架构,NTC可以兼容各种主流的技术栈,各种系统架构,灵活方便地进行一体化的管控,消除了管控差异。

img

1.1. 主要功能

​ 业务层建立在以应用为中心的基础之上,覆盖了应用从部署,监控,运维等业务,为科技人员搭建一个方便易用一体化管控平台,提升科技实力与运维水平,该层包含的核心功能模块如下所示:

1.1.1. 应用中心

快速交付:支持应用全生命周期管理,可以借助应用管理模块实现应用新建,部署,启动,停止等全流程管理,轻松管理几十上百个节点;支持标准化Java应用和基于命令行应用;支持apache和nginx服务器管理及部署全流程管理。

监控运维能力:在应用运行期间,进行监控管理,包括数据源,会话,应用安全,应用诊断,关键组件。

热修复能力:在生产有些故障,经常是因为一两行代码的问题导致业务失败。这些故障又需要紧急进行处理,但是因为环境监管,重新打包、传包、上线是来不及处理的。热修复就是解决这个问题,提供对类反编译,在线修改代码、对类重新编译,对最新class类进行热发布代换的功能。并对spring bean的属性查看、设置等功能。

1.1.2. 构建中心

持续集成与持续部署:具有操作简便,界面人性化等特点,不需要像市场上很多产品如jenkins一样进行复杂的命令或其他操作,就能轻松完成这部分工作。支持构建历史查看,支持代码检查和测试报告,支持定时构建让版本发布无需人工等待;大大的缩减了项目从打包到部署的时间,实现版本的快速迭代。

1.1.3. 分布式发布

分布式发布主要包括优雅发布、灰度发布、多版本发布等功能,在微服务架构应用系统中,NTC通过分布式路由组件对应用路由进行控制,配合应用发布实现对应用多场景的发布。优雅发布通过路由控制来保证应用在发布窗口时间内不产生业务中断异常;灰度发布保证实例优雅发布的同时,通过路由控制使固定用户访问固定实例;多版本发布使不同代码分支请求访问对应分支实例,实现多分支实例共存。还提供了路由管理对路由进行自由控制,多数据中心共用一套注册中心时优先调用本中心实例等功能。

分布式发布相对于市场上其他产品而言,优势非常明显。包括不依赖注册中心,同时支持dubbo和springcloud分布式微服务架构;同时具备分布式路由组件对路由进行控制,还具备应用发布进行应用的部署;支持灰度用户规则,可以让灰度用户访问灰度实例,减少或避免新版本上线对互联网用户的影响,等待灰度用户测试通过后,才将新版本提供给互联网用户访问;完善的监控和管理功能满足客户多样化的需求。

1.1.4. 服务治理

服务治理支持dubbo的服务管控,从而可以友好管理服务的注册和订阅,这在微服务分布式架构下是必不可少的;提供了限流降级、服务监控、服务预警等高可用管控组件,可高效应对突发的流量洪峰和服务依赖所引发的雪崩问题,极大地提高了平台的稳定性。

1.1.5. 配置中心

配置中心是NTC分布式配置中心、能够集中管理不同数据中心、不同应用集群,做到配置修改实时生效、定时生效、本地保存,和应用无感知对接、配置备份等等实用功能。适用于传统应用、分布式应用配置等等配置场景。

1.1.6. 日志中心

交易日志:交易日志提供针对业务问题bug的快速排查功能。当我们知道某一个用户在某一个时间,做了一些交易报一些错误的时候,排查问题。可以先通过用户标识先查询一段时间内做的所有交易汇总信息,通过汇总信息进一步查看各个交易明细列表。 通过具体一笔交易的信息查询到这笔请求的全链路与链路日志信息。交易日志就是类似以前交易流水表,运维人员通过交易流水表查看所有用户的操作记录,再通过日志文件来查看日志信息。在ntc提供界面查询,并将再通过这些记录把日志、链路自动的关联起来。

日志搜索:日志搜索提供针对全文搜索的快速排查功能。NTC管理界面提供基于时间、日志级别、流水号、系统编号、用户ID、交易码、应用流水号、内容等各种条件进行检索。根据日志链路采用相同全局流水可结合链路跟踪快速定位问题点。

日志文件、日志预警、日志脱敏等实用日志管理功能。

1.1.7. 链路跟踪

故障快速定位:通过调用链跟踪,一次请求的逻辑轨迹可以完整清晰的展示出来。开发中可以在业务日志中添加调用链traceId,可以通过调用链结合业务日志快速定位错误信息;

各个调用环节的性能分析:在调用链的各个环节分别添加调用时延,可以分析系统的性能瓶颈,进行针对性的优化。通过分析各个环节的平均延时等信息,可以找到系统的薄弱环节,对一些模块做调整,如数据冗余等;

方法分析:分析方法栈耗时情况,支持抓取异常线程信息,定位代码级问题;

链路日志:分析每一个调用节点的日志情况,可以快速展示每个节点的日志并有序展示,从而可以分析一笔请求的详细信息,进一步排查问题。

链路预警和性能分析工具:实时监控异常链路信息,同时提供全链路快照、链路分析、APM分析等性能分析工具。

1.1.8. 智能诊断

目前市场上有很多监控系统,他们收集了很多监控信息,也提供了各种图来展示。但是这些系统的指标异常预警阀值需要用户积累。再者当某一个指标有异常时,比如CPU异常时,监控系统也只是告诉用户,CPU有异常,没有可以帮助排查的信息,最多提供CPU指标走势图。这时项目组只能通过海量的日志去排查哪个线程、哪个功能、哪一行代码导致CPU异常。

目前ntc应用自检是内置最佳自检参数,对交易、cpu、内存、存储、关键组件、日志等模块进行自检。当模块自检异常,实时采集可以帮助诊断的信息。最终生成自检报告,在生成报告中将可以帮助用户分析的 线程、交易、日志、链路、监控项、交易统计报告等信息有机关联起来。帮助用户快速定位异常。

1.1.9. 监控通知中心

负责整体的监控预警功能。包含了操作系统100多项监控、应用50多项监控,服务20多项监控、关键组件的监控,提供了友好的监控大盘与预警。能快速保存与归档海量监控数据,准实时预警,并且秒级返回监控数据。可以全方位监控服务器,应用,第三方软件的健康状态。提供了用户、关键交易、应用拓扑的大盘展示,关键交易支持流水滚屏展示。

通知中心是NTC各个类型预警通知消息通知管理,能够查看不同类型通知历史,对通知方式通知类型通知人/组管理、不同通知方式的通知模板配置、通知变量管理、通知配置管理等。

1.1.10. 任务中心

应用内部往往有许多的定时调度任务,为了统一管理这些任务,因此提供了基于xxl-job的任务管理。

支持shell任务调度,包含一次性调度,定时调度等。

1.1.11. 运维统计

巡检报告:针对运维的定期巡检,对所有应用和服务器快速生成实时的监控报告。

交易报表:交易的聚合统计分析,提供日报、周报、月报、年报等不同维度的交易报表。

1.1.12. 软件管理

分布式服务下往往会使用很多的第三方软件和组件,所以为了项目的正常运行,提供了各种开源软件的统一监控预警和管理。目前集成的第三方软件包含:ZooKeeper,Redis,ElasticSearch,Solr,RocketMQ,RabbitMQ,Kafka,Eureka,Consul,Oracle,MongoDB。

1.1.13. docker/k8s

提供了docker引擎在线部署安装;harbor私有仓库和docker官方仓库管理;docker容器,镜像管理,网络,数据卷等管理;提供了对swarm的支持,包括Docker Swarm集群列表可以创建、新增、删除集群,查询每个集群基本状态,占用资源。也可以对集群每个节点进行升级、降级、删除、强制脱离等操作;Docker应用管理支持创建、部署、更新、收缩、扩容和删除应用,以及查看操作历史、修改应用配置和对部署操作进行还原。

K8S模板基于K8S的应用部署功能,提供了快速部署、自动扩容缩容,自动启停、应用监控、实时日志,传统和云视图切换,根据部署模板可以一键式创建和管理应用。同时也提供了K8S的基础资源和K8S的集群监控管理,通过一键快速切换不同K8S集群,快速查看管理不同的基础资源,对集群提供实时的预警监控,发生异常信息实时通知。

results matching ""

    No results matching ""