金蝶云苍穹财务共享中心智能质检服务私有云部署手册修订记录Ver.No日期编制/修订审核批准修改的章节号V0.120210323宁义双初始版本前言概述本文档描述了如何基于金蝶云苍穹部署财务共享中心智能质检服务,供实施和运维人员提供参考。读者对象本手册适用于现场实施顾问、总部研发人员、苍穹系统管理员等。最终解释权归苍穹认知智能服务部。目录1金蝶云苍穹智能质检服务私有云部署概要............................................................................41.1苍穹补丁升级........................................................................................................................41.2智能质检服务部署................................................................................................................41.2.1可支持性环境说明....................................................................................................41.2.2私有云部署架构........................................................................................................41.2.3私有云部署方案........................................................................................................41.2.4私有云部署工具介绍................................................................................................52公共组件介绍与容器化安装...........................................................................................................52.1docker介绍与安装..............................................................................................................52.2k8s介绍.................................................................................................................................73自动化工具安装...............................................................................................................................93.1安装前准备............................................................................................................................93.1.1系统环境确认............................................................................................................93.1.2安装包准备................................................................................................................93.2安装过程..............................................................................................................................103.3MC配置..............................................................................................................................144搜索日志查看.................................................................................................................................14④内部公开请勿外传1金蝶云苍穹智能质检服务私有云部署概要1.1苍穹补丁升级苍穹补丁升级到V2.0.039及以上版本。1.2智能质检服务部署1.2.1可支持性环境说明表1-1环境说明环境类型具体配置最低配置推荐配置CPUArchitecturex86_64x86_64ModelnameIntel(R)Xeon(R)Gold6143CPU@2.80GHzIntel(R)Xeon(R)Platinum8275CLCPU@3.00GHzL3cache22M36608KCores88内存容量4G8G操作系统X86_64位Centos7.x或Ubuntu,部署k8s的服务器要求系统内核版本4.4及以上网络环境各个节点之间的网络带宽至少1000Mbps1.2.2私有云部署架构金蝶云苍穹智能质检服务采用微服务架构,部署灵活,能根据负载实现弹性伸缩,极大降低企业总体拥有成本。4/14④内部公开请勿外传1.2.3私有云部署方案金蝶云苍穹智能质检服务采用容器化部署。1.2.4私有云部署工具介绍(1)部署工具清单表1-2部署工具清单及说明工具名称功能说明金蝶云苍穹金蝶云苍穹系统Docker服务部署自行在Linux服务器上安装并启动服务k8s容器集群管理容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能(非必须)ZooKeeper、Kafka日志管理与金蝶云苍穹共用,无需单独安装(2)部署工具流程容器化部署流程金蝶云苍穹补丁升级->智能质检服务2公共组件介绍与容器化安装2.1docker介绍与安装(1)什么是dockerDocker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之5/14④内部公开请勿外传间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。Docker解决了软件环境部署复杂的问题。在软件部署的时候,经常会发生在这台机器上可以跑,但是在另一台机器上却运行失败的情况。运维人员需要不断在开发环境和服务器环境之间调试。使用Docker,只需要简单的几行命令,就可以做到所有的运行环境都一致。(2)什么是docker镜像Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。银企云的镜像就是将单独部署在服务器的文件目录跟随JRE环境统一打包在一起,形成一个镜像文件。镜像文件可通过启动脚本或管理工具,将镜像导入在容器内运行。(3)什么是docker容器容器不是一台机器。Docker利用的是Linux的资源分离机制,例如cgroups,以及Linux核心命名空间(namespaces),来建立独立的容器(containers)。容器看上去是一台机器,实际上是一个进程。相比于虚拟机,容器的优势主要有:资源占用少启动速度快本身体积小Docker容器创建和销毁非常方便,很适合用来动态扩容和缩容,可以直接用在云计算当中的弹性服务当中。另外,基于Docker容器的隔离特性,一台服务器上可以同时跑很多个程序而做到管理方便,符合微服务架构的需要。(4)Docker可以解决哪些问题作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。首先,Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行5个不同的应用就要起5个虚拟机,而Docker只需要启动5个隔离的应用即可。Docker在如下几个方面具有较大的优势:高效的利用系统资源快速的启动时间一致的运行环境持续交付和部署轻松的迁移、简单的管理轻松的维护和扩展快速的交付和部署6/14④内部公开请勿外传(5)Docker在linux系统安装步骤1)检查内核版本,必须是3.10及以上[root@localhost~]#uname-r2)安装docker[root@localhost~]#yuminstalldocker3)启动docker[root@localhost~]#systemctlstartdocker查看版本[root@localhost~]#docker-vDockerversion1.12.6,build3e8e77d/1.12.64)开机启动docker[root@localhost~]#systemctlenabledocker5)停止docker[root@localhost~]#systemctlstopdocker6)重启docker服务[root@localhost~]#sudosystemctlrestartdocker或者[root@localhost~]#sudoservicedockerrestart7)设置拉取docker镜像的仓库地址[root@localhost~]#vi/etc/docker/daemon.json{"registry-mirrors":["https://imzdredd.mirror.aliyuncs.com"]}配置完成,需要重启docker服务生效。2.2k8s介绍(1)什么是KubernetesKubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。通过Kubernetes你可以:快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用Kubernetes特点:可移植:支持公有云,私有云,混合云,多重云(multi-cloud)可扩展:模块化,插件化,可挂载,可组合自动化:自动部署,自动重启,自动复制,自动伸缩/扩展(2)k8s总体架构7/14④内部公开请勿外传k8s集群由两节点组成:Master和Node。在Master上运行etcd、ApiServer、ControllerManager和Scheduler四个组件。后三个组件构成了K8s的总控中心,负责对集群中所有资源进行管控和调度。在每个node上运行kubectl、proxy和dockerdaemon三个组件,负责对节点上的Pod的生命周期进行管理,以及实现服务代理的功能。另外所有节点上都可以运行kubectl命令行工具。APIServer作为集群的核心,负责集群各功能模块之间的通信。集群内的功能模块通过ApiServer将信息存入到etcd,其他模块通过ApiServer读取这些信息,从而实现模块之间的信息交互。Node节点上的Kubelet每隔一个时间周期,通过ApiServer报告自身状态,ApiServer接收到这些信息后,将节点信息保存到etcd中。ControllerManager中的nodecontroller通过Apiserver定期读取这些节点状态信息,并做响应处理。Scheduler监听到某个Pod创建的信息后,检索所有符合该pod要求的节点列表,并将pod绑定到节点列表中最符合要求的节点上。如果scheduler监听到某个Pod被删除,则调用apiserver删除该Pod资源对象。kubelet监听pod信息,如果监听到pod对象被删除,则删除本节点上的相应的pod实例,如果监听到修改Pod信息,则会相应地修改本节点的Pod实例。图2-1k8s总体架构(3)k8s可以做什么使用Web服务,用户希望应用程序能够7*24小时全天运行,开发人员希望每天多次部署新的应用版本。通过应用容器化可以实现这些目标,使应用简单、快捷的方式更新和发布,也能实现热更新、迁移等操作。使用Kubernetes能确保程序在任何时间、任何地方运行,还能扩展更多有需求的工具/资源。8/14④内部公开请勿外传3自动化工具安装3.1安装前准备3.1.1系统环境确认请客户方提前准备好以下内容并在安装前逐一确认!准备好操作系统,并确认操作系统的CPU,内存及文件系统的大小满足硬件需求确保金蝶云苍穹系统已正确安装确保Docker已正确安装并启动确认操作系统用户需具有scp,ssh权限,若为非root用户需要具有sudo的权限3.1.2安装包准备金蝶云苍穹智能质检服务镜像下载链接:dockerpullkcr.kingdee.com/quality_detect/quality_detect:v1表2-1镜像环境变量配置镜像名称环境变量智能质检服务例如:quality_detect:v1KAFKA_BOOTSTRAP_SERVERKafka服务地址及端口例如:kfk.kingdee.com:9092TOPICKafka私有云环境Topic例如:baseline_a_test-logAPPNAMEaishare_kafkaLOG_LEVELinfo3.2安装过程(1)命令行部署加载及运行智能质检服务#dockerrun--namequality_detect_kafka-p"35399:1115"-e9/14④内部公开请勿外传KAFKA_BOOTSTRAP_SERVER="kfk.kingdee.com:9092"-eTOPIC="baseline_a_test-log"-eAPPNAME="aishare_kafka"-eLOG_LEVEL="info"-idtkcr.kingdee.com/quality_detect/quality_detect:v1(2)k8s部署加载及运行智能质检服务图3-1加载及运行智能质检服务查看服务是否正常启动10/14④内部公开请勿外传图3-2查看服务是否正常启动(3)接口测试上传数据请求地址:http://SERVER_IP:SERVER_PORT/quality_detect/pushdata请求方式:POST请求参数:{"datas":[{"id":"1107919806063924224","if_exemption":"false","task_type":"一级审批","create_month":202103,"label":"false","organization":"公司","credit_score":"105.0","department":"环宇国际集团有限公司","extract_num":6,"job":"Java","share_num":15,"user":"总部","accuracy":0.60,"record_num":"CCSQ-210226-000005","record_type":"出差申请单","sum":"","nums":"1","if_return":"false","project":""}]}响应结果:{"code":0,"err":"ok","result":["数据上传成功"]}初始化模型请求地址:http://SERVER_IP:SERVER_PORT/quality_detect/init请求方式:POST请求参数:{"choice":{"feature_name_1":"job","feature_name_2":"department","feature_name_3":"accuracy"}}11/14④内部公开请勿外传响应结果:{"code":0,"err":"ok","result":["模型初始化成功"]}智能质检预测请求地址:http://SERVER_IP:SERVER_PORT/quality_detect/predict请求方式:POST请求参数:{"10":{"id":"553653","user":"李范","project":"苍穹","task_type":"质检任务","sum":54.0,"nums":5,"if_return":"true","record_num":"KDC-02-2018","if_exemption":"true","create_month":10,"credit_score":45.2,"extract_num":75,"share_num":36,"accuracy":100.0,"record_type":"苍穹费用报销单","organization":"部门","job":"核算会计","department":"集成平台部"}}响应结果:{"code":0,"err":"ok","result":[{"id":"10","record_num":"4","prediction":0.2,"level":"低"}]}返回基本信息请求地址:http://SERVER_IP:SERVER_PORT/quality_detect/information请求方式:POST请求参数:无需参数响应结果:{"code":0,"err":"ok","result":[{"service_name":"intelligent-quality-detect","model_name":"LightGBM","used_times":20,"accuracy":0.9,"recall":0.9,"f1_score":0.9,"last_train_time":“2021-3-20”,"train_data":10,"version":1}]}相关性分析请求地址:http://SERVER_IP:SERVER_PORT/quality_detect/correlation请求方式:POST12/14④内部公开请勿外传请求参数:无需参数响应结果:{"code":0,"err":"ok","result":[{"feature":"if_exemption","feature_name":"是否为免审单据","importance":0.75},{"feature":"credit_score","feature_name":"提单人信用分","importance":0.01},{"feature":"extract_num","feature_name":"提单人历史提单数量","importance":0.1},{"feature":"share_num","feature_name":"审核人历史共享任务数量","importance":0.43},{"feature":"accuracy","feature_name":"审核人历史50条质检任务准确率(%)","importance":0.02},{"feature":"create_month","feature_name":"任务创建时间(月份)","importance":0.27},{"feature":"record_type","feature_name":"单据类型","importance":0.01},{"feature":"organization","feature_name":"提单人所属组织形态","importance":0.0},{"feature":"job","feature_name":"提单人岗位","importance":0.0},{"feature":"department","feature_name":"提单人部门","importance":0.0},{"train_data":"10020","version":"200","last_train_time":"2020-11-19"}]}3.3MC配置(1)在MC配置参数:ai.quality_detect_service.url=http://SERVER_IP:SERVER_PORT,如下图所示。13/14④内部公开请勿外传4搜索日志查看搜索日志可通过苍穹monitor在浏览器中查看。14/14