CloudOS:仅需10分钟!从代码开始部署前后端分离的AI识图项目

前言

你是否在为其项目开发部署时因工具不统一,东拼西凑不好管理而烦恼?如果有一个可以承包你从代码开始部署一个前后端分离项目的工具,从前端、后端到应用发布一条龙服务的平台,你会心动吗?

——我会!

代码工程/项目介绍

代码库地址:

前端代码链接:https://gitlab.com/cloudospml/ai-demo-vue.git
后端代码链接:https://gitlab.com/cloudospml/ai-demo-tensorflow.git

前端

技术栈:vue;

核心逻辑:上传图片,将图片信息发送给后台,用接口返回的数据渲染识图结果。

后端-AI模块

技术栈:python TensorFlow Flask;

核心逻辑:把图片处理成numpy array,交给模型计算。

在CloudOS中发布应用

创建项目

由于前后端分离涉及多个服务,所以在此创建一个微服务项目。![在这里插入图片描述](https://img-blog.csdnimg.cn/7aed280d49d741c9bcbb7f6717acc1d3.png#pic_center在这里插入图片描述
在这里插入图片描述

绘制架构图

在CloudOS中,架构图是整个项目的核心资源,通过拖拉拽组件,描述整个应用中各服务的信息和它们之间的关联,最终平台会以这张图为依据将应用在集群中部署起来。

组件

①代码源

在架构图中首次新增代码类型的组件,需要绑定代码库的账号信息:
在这里插入图片描述在这里插入图片描述

完成绑定后,选择组件源码所在的代码仓库,选择默认分支:

在这里插入图片描述

②技术栈/编译构建

代码组件需要制作成为镜像才能完成部署,镜像构建可以选择平台中提供的通用技术栈,技术栈的具体信息可以在【项目设置】-【编译构建】中查看:

在这里插入图片描述

也可以根据项目的实际需求,自行在代码项目中维护Dockerfile,在技术栈选择时,选择【Dockerfile in source】,并提供Dockerfile在项目下的真实路径,平台会依此构建镜像。

在这里插入图片描述在这里插入图片描述

以上面提供的python项目为示例,Dockerfile在项目的根路径下,因此路径填写为Dockerfile即可。

在这里插入图片描述

python项目的镜像构建:选择合适的基础镜像,根据依赖文件下载module,运行主程序。

组件配置

声明端口:添加服务对外暴露的端口信息(非常重要:填写的端口信息和在代码项目中声明的保持一致),以python项目为例,flask服务的端口在代码中被配置为8001,那么在组件中就需要添加相同的端口信息。同时如果此端口需要对应用外的其他服务提供访问,则需要打开域名开关,为端口绑定可访问的域名地址。

在这里插入图片描述

例如:前端vue服务,需要提供地址供用户通过浏览器访问,就需要打开此开关:

在这里插入图片描述

组件间的访问

组件上端的端点代表组件发起后的地址输出,可以通过连线将这个数值赋给其他组件的环境变量。

在这里插入图片描述在这里插入图片描述

以前端服务请求后端java地址为例:从代码中可以看出前端nginx请求的后端地址前缀是从系统环境变量AI_SERVER_HOST中获取的。
在这里插入图片描述

因此在连线时为需要获取地址的服务新增环境变量并绑定即可。

在这里插入图片描述

也可以在组件的侧边栏详情中看到绑定关系。

在这里插入图片描述

tip:点击画布右下角【布局】按钮,即可获得整齐的架构图。

在这里插入图片描述

根据上述步骤,添加所有微服务组件,最后点击保存架构图。

发布应用

①发布配置

点击架构图右上角的发布按钮。

在这里插入图片描述

进入发布配置页面:选择组件用于部署服务的代码分支;需要提供访问域名的端口填写域名信息,最后点击发布。

在这里插入图片描述

发布过程

应用在发布过程中,或者应用卡片的【运维监控】入口查看相关信息。

在这里插入图片描述

在这个页面中,可以看到各组件所处的步骤和日志信息。其中:构建日志是代码拉取编译构建镜像整个过程的日志,启动日志是服务就绪前控制台输出的日志,启动事件是服务在k8s集群中的部署和调度信息。

在这里插入图片描述

应用访问

在这里插入图片描述

成功部署后的访问效果:

在这里插入图片描述

上传一张包含人像的图片(模特为我们攻城狮,请勿商用):

在这里插入图片描述

应用更新

在应用的发布有问题、架构图配置有变更或者代码有更新时,通过【应用升级】来更新应用。

在这里插入图片描述

如果架构图的配置有变更,修改架构图并保存,在更新时选择对应的架构图。

在这里插入图片描述

选择此次需要更新的组件,左侧为用于更新的应用的架构图,右侧为目前应用的真实服务情况。

在这里插入图片描述

更新升级时在发布配置界面可以调整应用的相关配置和参与此次更新的服务的相关配置。

以demo项目为例:

修改识图结果的置信度阈值:

在这里插入图片描述

仅代码有变更,应用更新时不需要重新选择架构图,选择源码变更后需要重新编译的组件。
在这里插入图片描述

在发布配置页面进行发布,此次更新将会获取代码源指定分支中的最新代码进行编译构建,并重新生成镜像进行部署。

更新成功后,查看效果,置信度阈值修改为0.8后,仅高于0.8的物体被识别:
在这里插入图片描述

以上就是如何通过CloudOS从源码开始发布一个前后端分离的ai物体检测/智能识图,并通过平台更新应用的全过程。

源码模型的部分参考:https://github.com/AIZOOTech/flask-object-detection ,感谢开源的力量~

云原生数字化创新平台

CloudOS (https://www.cloudtogo.cn/product-CloudOS)包含云原生应用可视化架构设计、在线协同编码开发、基于云原生的API管理和接口测试、多云交付和应用调度、灰度发布、流水线、应用运维、服务治理、多容器集群管理、云边一体化业务交付等能力。目标是提升应用架构敏捷度,为企业构建敏捷创新的应用研发环境,实现应用研发可视化和敏捷化、技术平台标准化,大大加快软件开发迭代速度,提高IT资源的弹性和利用率。支撑传统应用迁移上云,帮助企业客户加速实现业务价值,助力传统应用研发团队高效完成云原生应用创新。

在这里插入图片描述

CloudOS总体包括四部分:

  • 云原生应用工厂:实现对云原生应用研发的全方位支撑,集成云原生 DevOps能力,提供应用项目管理、架构设计、在线开发、在线测试、多云部署、可视化运维、测试环境管理、研发看板、流水线等能力。应用研发时可以使用云原生应用商店中的企业公共能力组件。

  • 云原生应用商店:实现企业云原生资产的沉淀和管理,包括企业公共的业务能力组件、消息中间件、数据库中间件等。应用工厂开发的企业公共业务能力组件可以上架到云原生应用商店。

  • 云原生应用管理:实现对企业数字化应用的部署、业务调度管理、业务运维、服务治理能力。K8S
    集群/容器平台实现数字化应用的运行支撑,包括自动伸缩、多副本等。此平台可以与其他厂家容器平台对接集成,或是由行云提供基于开源 K8S
    的版本。

  • 与 IaaS 资源对接:本产品对 IaaS 资源层无特殊要求,可以是公有云 IaaS 资源或者企业私有云资源,可以是物理机或者虚拟机。

猜你喜欢

转载自blog.csdn.net/weixin_44592002/article/details/131889274