带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(2)

简介: 带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(2)

《云原生机密计算最佳实践白皮书》——07解决方案——Intel Confidential Computing Zoo: Intel机密计算开源解决方案——部署TensorFlow Serving在线推理服务(1) https://developer.aliyun.com/article/1230820?groupCode=aliyun_linux



步骤一:部署客户端

本实践运行的环境信息参考:

• 规格:加密内存≥8G

• 镜像: Ubuntu20.04

• 公网IP

• 安装SGX软件栈

1、环境配置

安装所需的mesa-libGL软件包。

sudo pip3 install --upgrade pip 
sudo pip install multidict
sudo yum install mesa-libGL

2、下载软件包

下载本实践所用的TensorFlow Serving脚本代码并安装所需的argparse、aiohttp、tensorflflow等软件包。

git clone https://github.com/intel/confifidential-computing-zoo.git
cd confifidential-computing-zoo/cczoo/tensorflflow-serving-cluster/ tensorflflow-serving/docker
/client/
pip3 install -r ./requirements.txt

3、下载模型

./download_model.sh

下载训练好的模型文件将会存放在创建的 models/resnet50-v15-fp32 目录下。

4、模型格式转换

为了兼容TensorFlow Serving,需要对训练好的模型文件进行格式转换。

python3 ./model_graph_to_saved_model.py --import_path `pwd -P`/models/res
net50-v15-fp32/resnet50-v15-fp32.pb --export_dir `pwd -P`/models/resnet50-v15-fp32 
--model_version 1 --inputs input --outputs predict

转换好的模型文件将会存放在models/resnet50-v15-fp32/1/saved_model.pb。

5、创建gRPC TLS证书

本实践选择 gRPC TLS 建立客户端和TensorFlow Serving之间的通信连接,并设置 TensorFlow Serving域名来创建单向 TLS Keys 和证书,用来建立安全通信通道。该脚本将会创建 ssl_confifigure 文件夹,里面包含server和client相应的证书。

service_domain_name=grpc.tf-serving.service.com
client_domain_name=client.tf-serving.service.com
./generate_twoway_ssl_confifig.sh ${service_domain_name} ${client_domain_name}

6、创建加密模型

mkdir plaintext/
mv models/resnet50-v15-fp32/1/saved_model.pb plaintext/
LD_LIBRARY_PATH=./libs ./gramine-sgx-pf-crypt encrypt -w fifiles/wrap-key -i plaintext/saved_
model.pb -o models/resnet50-v15-fp32/1/saved_model.pb

7、启动密钥验证服务。

本实践使用Gramine提供的secret_prov_server_dcap作为远端SGX Enclave Quote认证服务,底层依赖调用SGX DCAP提供的Quote相关的认证库,该认证服务会向阿里云PCCS获取Quote认证相关的数据,比如TCB相

关信息以及CRL信息等。

SGX Enclave Quote验证成功后,会将当前目录下存放的密钥fifiles/wrap-key发送到远端应用。这里远端应用为vSGX环境中的Gramine,Gramine拿到wrap-key中的密钥后,便会对加密的模型和TLS配置文件进行解密。

• a. 切换到secrec_prov_server目录

./download_model.sh

• b. 使用密钥验证服务镜像

I) 下载密钥验证服务镜像

sudo docker pull intelcczoo/tensorflflow_serving:anolis_secret_prov_server_latest

II) 根据脚本编译镜像

sudo ./build_secret_prov_image.sh

• c. 获取secret_prov_server镜像ID

sudo docker images

• d. 启动密钥验证服务

sudo ./run_secret_prov.sh -i secret_prov_image_id -a pccs.service.com:ip_addr

服务启动后便会在后台运行等待远程认证访问。当接收到远端认证后,认证通过会将密钥发送回远端。

• e. 查看secret_prov_server容器IP地址

sudo docker ps -a #查看secret_prov_server镜像ID
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <secret_prov_
server_container_id> 
#<secret_prov_server_container_id>需修改为实际的secret_prov_container_id



《云原生机密计算最佳实践白皮书》——07解决方案——Intel Confidential Computing Zoo: Intel机密计算开源解决方案——部署TensorFlow Serving在线推理服务(3) https://developer.aliyun.com/article/1230817?groupCode=aliyun_linux

相关文章
|
2月前
|
Cloud Native 测试技术 持续交付
构建高效稳定的云原生应用部署策略云端防御:云计算环境中的网络安全与信息保护策略
【5月更文挑战第27天】 在快速迭代和持续交付成为企业软件开发新常态的今天,如何确保云原生应用的部署效率与稳定性是每个运维工程师面临的重要挑战。本文将探讨一种综合性部署策略,该策略结合了容器化技术、微服务架构、自动化测试以及持续集成/持续部署(CI/CD)流程,旨在为现代云原生应用提供一个可靠且高效的部署模式。通过分析传统部署模式的不足,并引入先进的技术和实践,我们的目标是降低部署风险,提高部署速度,同时确保产品质量和服务的稳定性。
|
2月前
|
敏捷开发 Kubernetes Cloud Native
【阿里云云原生专栏】跨云部署与管理:阿里云云原生技术的多云策略
【5月更文挑战第25天】阿里云云原生技术提供多云策略,助力企业高效跨云部署与管理。通过容器化(如Kubernetes)、服务网格等,实现应用一致性与可移植性;统一资源管理,简化跨云操作。挑战包括数据同步、网络问题和平台差异,但阿里云的解决方案为企业在多云环境中实现资源优化、业务敏捷和系统可靠性提供了强有力支持。随着云计算发展,阿里云将持续演进其多云策略,为企业数字化转型提供保障。
110 1
|
2月前
|
人工智能 弹性计算 监控
【阿里云云原生专栏】阿里云云原生与AI结合:智能应用的快速构建与部署
【5月更文挑战第24天】阿里云融合云原生和AI技术,助力快速构建智能应用。弹性伸缩、CI/CD、微服务和自动化运维带来优势。通过需求分析、环境准备、数据处理、模型开发到服务部署,阿里云提供容器服务、函数计算、服务网格等工具,支持自动化测试和监控,实现一站式智能应用开发。示例代码展示创建ACK集群和部署AI模型服务过程。
388 1
|
2月前
|
监控 Cloud Native 持续交付
云原生之使用Docker部署Magma导航页
【5月更文挑战第19天】云原生之使用Docker部署Magma导航页
48 0
|
2月前
|
Cloud Native 搜索推荐 测试技术
云原生之使用Docker部署homarr个人导航页
【5月更文挑战第18天】云原生之使用Docker部署homarr个人导航页
84 1
|
2月前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
247 6
|
2月前
|
Cloud Native 测试技术 数据库
【云原生之Docker实战】使用Docker部署flatnotes笔记工具
【5月更文挑战第17天】使用Docker部署flatnotes笔记工具
96 8
|
2月前
|
监控 Cloud Native 测试技术
构建高效稳定的云原生应用部署策略
【5月更文挑战第17天】 在现代软件工程实践中,云原生应用的持续集成与部署(CI/CD)已成为提升开发效率、确保产品质量的关键因素。本文将探讨构建一个高效且稳定的云原生应用部署策略,涵盖从自动化测试到多阶段部署流程的设计。通过分析容器化技术、微服务架构以及自动化工具的应用,我们旨在为运维工程师提供一套优化部署流程的解决方案,以实现快速迭代和高可用性的平衡。
|
2月前
|
运维 监控 Cloud Native
构建高效稳定的云原生应用部署策略
【5月更文挑战第17天】 在现代软件工程实践中,云原生架构已成为实现敏捷开发、持续交付和微服务治理的关键。本文深入探讨了如何构建一个既能满足业务快速迭代需求,又能保障系统稳定性的云原生应用部署策略。通过分析容器化技术、微服务设计原则以及自动化部署工具的选择与使用,提出了一种综合部署流程优化方案。文章旨在为运维工程师提供一种系统性解决方案,以应对复杂多变的生产环境挑战。
28 1
|
2月前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
82 4