部署说明
简介
Hi,您好,欢迎使用UNIT私有化部署产品。
UNIT私有化部署方案是基于UNIT对话模型封装而成的能够本地化部署的纯软件方案,将软件包成功部署在本地服务器或专有云服务器上后,启动服务,即可调用与在线API功能基本完全相同的接口(参数有少量区别,具体说明请参考接口调用文档)。
本文档主要介绍UNIT私有化软件包的部署流程。
前提条件
- 获取部署包:部署包的申请、下载,请参考如何接入。下载好部署包之后,请参考本文档进行安装、部署。
准备服务器
硬件要求,请参考下面的硬件要求。
安装系统:目前只支持CentOS 7、Ubuntu 14/16/18、RedHat 7.2,系统的安装流程请按照官方介绍进行安装。
部署指南
部署方案支持以下两种模式,可根据不同业务场景选择适合自身环境的部署方式。
- 单机一键部署: 将鉴权服务、应用服务部署在一台物理机上的场景。即执行一条命令将鉴权服务、应用服务安装完成。
- 多机分离部署: 将鉴权服务、应用服务分别部署的场景。首先部署鉴权服务、然后部署应用服务。
鉴权服务部署:鉴权服务包含百度发布的服务授权证书,如果不安装鉴权服务,后续的应用服务也将无法启动
应用服务部署:包含Docker等基础环境以及相关技术方向的算法模型,是私有化产品的核心。部署应用服务的前提是部署鉴权服务,应用服务在运行时会实时请求鉴权服务,需要保障两个服务之间能够顺利通信。
名词解析:
- 基线目录:为了方便介绍目录结果,约定私有化部署解压目录为基线目录,路径为/home/private,读者可以自行替换。
- License:由百度发布的服务授权证书,只有经过授权的服务器才能成功部署服务,待部署服务器的信息请使用百度提供的机器指纹采集工具采集指纹后提交到申请后台。
- 工作目录:/home/baidu为百度服务使用的工作目录。
单机一键部署
1、获取部署包安装文件下载链接,下载部署包;
下载完成的文件示例如下:609859F08F4B4FB782948D669EE3CFE3.tar.gz;
2、执行以下命令解压部署包;
tar zxvf 609859F08F4B4FB782948D669EE3CFE3.tar.gz
3、解压后进入original目录执行bash download.sh命令获取全部安装文件,执行脚本后会自动下载以下安装文件:鉴权服务安装包、应用服务安装包以及docker安装包等基础依赖环境;
bash download.sh
4、将带有全部安装文件的original文件夹上传到待部署的服务器中;
5、进入以下文件路径;
cd original/package/Install
6、执行一键部署命令;
python install.py inall
期间需要根据提示,在终端输入一些参数,回车继续执行,具体输入如下:
- 如果硬件参数检查不符合条件,可以进行机器的硬件扩容,或输入:continue,继续部署,但需要注意机器性能不足可能会带来的运行问题,比如磁盘空间不足导致后续安装失败。
- 提示鉴权地址,为内网IP,输入:鉴权服务的本机IP(比如192.168.0.6)
- 提示是否初始化DB,输入:y
- 提示输入鉴权地址(unit_private-chat镜像),输入:鉴权服务的本机IP(比如192.168.0.6)
- 输入下游服务地址,ip均为部署实例服务的本机IP
- 提示输入鉴权地址(querysim镜像),输入:部署服务的本机IP(比如192.168.0.7)
- 提示输入鉴权地址(basequ镜像),输入:部署服务的本机IP(比如192.168.0.7)
7、安装过程中会自动进行环境检查,如果安装进程停住并提示"Environment checking failed! Please fix them before installation."表明环境检查失败,请先排查失败的环境检查项,再重新执行安装,或者输入continue强制继续安装;
8、安装过程中会提示输入auth server cluster's ip、local server's ip,两个ip地址均输入本机实际网络地址即可;
9、提示安装成功后,可检查服务是否启动;
docker ps ;
10、如果服务没有启动,可以使用docker ps -a, 查看容器id;
11、鉴权服务默认的http端口为8443,通过netstat -apn | grep 8443可以看端口是否已经被监听;
应用服务默认的http端口请参考接口调用文档。
多机分离部署
1. 鉴权服务部署
硬件要求(物理机)
- CPU架构:AMD 64/x86_64
- 内存:>=32G(推荐,不强制)
- 硬盘:>=512G (推荐)
- 网络环境:机器需要在局域网内,且能获取到ip地址
操作系统要求
- 基于安全的角度,暂时不支持虚拟机部署,包括但不限于Virtual Box、VMware等
-
支持的Linux发行版列表
- Ubuntu: 14、16、18
- CentOS:7.0及以上
- RedHat:7.2
- SUSE 12
- Linux内核要求 >=3.10
- GLIBC >=2.17
- GLIBCXX >=3.4.19
- Python 2.7
鉴权服务部署流程
1、获取部署包安装文件下载链接,下载部署包;
下载完成的文件示例如下:609859F08F4B4FB782948D669EE3CFE3.tar.gz;
2、执行以下命令解压部署包;
tar zxvf 609859F08F4B4FB782948D669EE3CFE3.tar.gz
3、解压后进入original目录执行bash download.sh命令获取全部安装文件,执行脚本后会自动下载以下安装文件:鉴权服务安装包、UNIT对话服务安装包以及docker安装包等基础依赖环境;
bash download.sh
4、将带有全部安装文件的original文件夹上传到待部署的服务器中;
5、进入以下文件路径;
cd original/package/Install/
6、执行以下命令完成鉴权服务的安装;
python install.py in c-offline-security-server
7、安装过程中会自动进行环境检查,如果安装进程停住并提示"Environment checking failed! Please fix them before installation."表明环境检查失败,请先排查失败的环境检查项,再重新执行安装,或者输入continue强制继续安装;
8、安装过程中会提示输入auth server cluster's ip、local server's ip,两个ip地址均输入本机实际网络地址即可;
9、提示安装成功后,可检查服务是否启动;
docker ps ;
10、如果服务没有启动,可以使用docker ps -a, 查看容器id;
11、鉴权服务默认的http端口为8443,通过netstat -apn | grep 8443可以看端口是否已经被监听。
2. 应用服务部署
部署环境需求
- 只有对话服务,无训练服务
环境类别 | 环境需求 |
---|---|
硬件要求 | 支持物理机、虚拟机部署方式; CPU架构:AMD 64/x86_64;内存: >=48G;主板主频>1833mHZ;硬盘:>=512G(应用服务安装目录磁盘空间>100G);机器需要在局域网内,且能获取到ip地址 |
操作系统(64位) | CentOS 7、Ubuntu 14/16/18、RedHat7.2 |
网络环境 | 有线局域网,不支持无线网络 |
服务端口 | 请参考接口调用文档 |
- 包含对话服务与训练服务
环境类别 | 环境需求 |
---|---|
硬件要求 | 支持物理机、虚拟机部署方式; CPU架构:AMD 64/x86_64;内存: >=64G;主板主频>1833mHZ;硬盘:>=512G(应用服务安装目录磁盘空间>100G);机器需要在局域网内,且能获取到ip地址 |
操作系统(64位) | CentOS 7、Ubuntu 14/16/18、RedHat7.2 |
网络环境 | 有线局域网,不支持无线网络 |
服务端口 | 请参考接口调用文档 |
应用服务部署流程
单机部署
1、获取部署包安装文件下载链接,下载部署包。
下载完成的文件示例如下:609859F08F4B4FB782948D669EE3CFE3.tar.gz;
2、执行以下命令解压部署包
tar zxvf 609859F08F4B4FB782948D669EE3CFE3.tar.gz
3、解压后进入original目录执行bash download.sh命令获取全部安装文件,执行脚本后会自动下载以下安装文件:鉴权服务安装包、UNIT对话模型安装包以及docker安装包等基础依赖环境。
bash download.sh
4、将带有全部安装文件的original文件夹上传到待部署的服务器中。
5、进入以下文件路径;
cd original/package/Install
6、查看可用模块,
python install.py se
7、查看已安装模块;
python install.py li
8、安装应用服务(xxx为服务名);
python install.py in xxx
9、提示安装成功后,可检查服务是否启动
docker ps ;
10、如果服务没有启动,可以使用docker ps -a, 查看容器id;
单实例启动后,默认的http端口请参考接口调用文档
11、参考接口调用文档,开始调用接口服务。
多机部署
多机部署方式即在多台机器上重复单机部署的操作流程。
部署方法参考单机部署方法。
性能指标
机器配置 | 内存占用 | QPS | 平均响应时间 | 说明 |
---|---|---|---|---|
8核64G内存虚拟机 | 27G-40G | 50-100 | 150ms-200ms | 压测环境说明:压测并发数为10,部署方式为单技能单实例部署,技能类型为对话技能性能指标说明: a.内存占用与私有化技能个数、每个技能的模型大小成正比 b.QPS与机器CPU核数有关,如果私有化多个技能,多个技能共享机器CPU资源 |
注:以上性能指标仅供参考,具体应用中以项目实测为准
License更新说明
适用于已经完成私有化部署后,进行License延期、License扩容、License新增产品授权的场景。
- License延期:延长私有化部署包使用时间。
- License扩容:增加私有化部署的应用实例数,使私有化部署包可在更多的设备上部署。
- License新增产品授权:如部署完UNIT对话服务后还需要在当前环境(同一台机器或同样的局域网环境)进行其他服务的部署,需进行License变更。
如何获取更新后的License
1、License延期:在UNIT网站-私有部署服务管理/查看详情页面点击延期申请,发起License延期,审核通过后即可获得更新的License证书文件。或与工作人员线下沟通后获取新的License证书文件。
2、License扩容:请线下沟通后获取新的License证书文件。
3、License新增产品授权:请线下沟通后获取新的License证书文件。
更新流程
一键部署工具支持对私有化部署包的License证书进行一键更新,一键更新时不需要下载任何包及安装任何模块,请参考以下流程进行License证书更新。
1、获取到包含License的部署包后,解压缩,进入以下文件路径;
cd original/package/Install
2、执行以下命令完成License更新;
python install.py lu
3、操作成功后如下图所示,提示License update successfully即更新完成。
常见问题
1、鉴权服务是做什么用的?
鉴权服务是UNIT私有化应用服务运行的基础,只有在鉴权服务运行成功后,才能启动应用服务。
2、鉴权服务启动异常,一直处于"wait to be ready"状态
服务日志在解压后目录的/home/baidu/work/c-offline-security-server/log下,提供该目录下的所有日志文件,可以通过日志定位问题。
跟license文件的签发人确认license的正确性,以及授权文件是否已过期。
3、怎样判断鉴权服务是否运行正常
确认鉴权服务进程是否运行:ps aux | grep c-offline-security-server
检查鉴权服务是否可访问,如执行下述命令后,有:baidu-rpc 字样的logo返回,则授权服务启动正常。
curl (鉴权服务机器ip):8443
4、如何重启鉴权服务?
停止服务:cd /home/baidu/work/c-offline-security-server/ && bash start/c-offline-security-server-stop.sh
启动服务:cd /home/baidu/work/c-offline-security-server/ && bash start/c-offline-security-server-start.sh
5、出现‘GLIBC_2.14' not found错误, 原因是glibc-2.14没有安装,导致服务启动失败,检查命令:strings /lib64/libc.so.6 |grep GLIBC
6、服务没有连有线局域网,导致鉴权服务失败,日志关键词” machine auth check failure”,建议使用ifconfig命令请检查网络。
7、部署的机器错误,如果提取指纹和安装服务的机器不一致,会导致服务部署失败,参考关键日志” machine auth check failure”
8、机器指纹采集后,服务器ip发生变更,导致授权失败,参考关键日志” machine auth check failure”
9、执行命令 netstat –apn | grep {port},检测不到8443端口时,提供鉴权服务日志,服务日志在解压后目录的/home/baidu/work/c-offline-security-server/log下,提供该目录下的所有日志文件,可以通过日志定位问题。压缩后发送给百度的技术支持,待技术支持定位问题后,反馈解决方案;
10、安装docker失败时,通过docker info命令查看是否已安装docker,如果未安装成功,检查apt/yum的源配置最近是否操作过变更,且没有进行环境更新或重启,如果是,请重启服务器再重新进行安装;
11、日志窗口出现nginx install fail关键字或者通过docker ps命令无法看到nginx容器时,打开/home/baidu/work/logs/openresty/error.log日志,查看具体的异常信息,如果是端口占用,请关闭服务器上已使用该端口的进程,然后重试;其他无法解决的问题,请联系技术支持。