NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

龙建军:云开发技术在深圳机场旅客出行服务项目上的实践

腾讯云

  • 2020-11-30
  • 本文字数:2393 字

    阅读完需:约 8 分钟

龙建军:云开发技术在深圳机场旅客出行服务项目上的实践

2020 年 11 月 29 日,腾讯 2020「小程序·云开发」技术峰会在北京顺利召开。本次峰会以“重新定义开发”为主题,深度聚焦小程序云开发的创新成果与实践案例。以下为腾讯云高级应用开发工程师龙建军的演讲实录:


龙建军:大家好!我今天给大家分享的主题是讲一下企业级项目:深圳机场旅客出行项目在小程序云开发技术上的一些玩法和运用。


深圳机场旅客出行服务项目是我们腾讯云中标深圳机场的一个项目,大概过亿,每年旅客人次数大概 5000 万。本次分享的主要目的,就是希望大家听了我这个分享之后可以给大家起到抛砖引玉的作用,开拓思维,帮助大家可以挖掘云开发技术的更多玩法。


我本次分享主要分四块:第一,企业级项目的特征;第二,深圳机场旅客出行服务项目的总体架构,让大家有一个宏观的把握;第三,选几个重要的场景,讲述企业级项目上我们是如何来“玩”云开发技术的;第四,基于云开发的技术的再次封装场景以及解决一些业务上的痛点。


从这个架构上可以看出,整个机场项目是有三层架构的:第一层是 C 端,第二层是应用层,第三层是后台。而运营开发技术其实自始至终贯穿在我整个项目的应用层。其实这样的架构一切目的主要就是为了满足企业级开发的诉求,比如说收拢逻辑、快速运营(运营自闭环)、安全可靠、分工清晰。


为了让大家对架构有更好的理解,从概况图中可以看出,整个架构是三层,而整个应用层是架构在云开发基础上的,应用层主要是做运营、流量保护、脱敏以及业务组装等,后台主要是做协议转发和固化逻辑。


从开发到上线、再到运营、问题排查、后续监控,其实都是完备的工具链的建设,而云开发技术在整个链条建设过程中充当的是什么样的角色?时间关系我下面主要选几个重要的场景给大家分享。真实情况是,云开发技术在整个项目架构中是一条线,但是我今天分享的在你们听来可能只是一个一个点。


场景 1:性能建设。


目前我做了两套的缓存机制,一套本地缓存,一套是云端缓存。本地缓存机制主要是通过请求云函数,返回时间戳,来判断它是否过期,云端缓存主要是通过 C 端传递过来的 Tag 标记,以云业务函数中的 Tag 标记来判断是否缓存。其实整个流程就是,每次访问 C 端会去云函数拉一个时间戳和 Tag 值,每次请求都会带上 Tag 标记,Tag 标记就和云函数的标记进行对比,目前整个云函数如果是一些通用的缓存,是用云函数自身的内存来存储,如果有一些特色的量比较大的就是用 redis 进行缓存。这个缓存好像很简单,但其实整个缓存的穿透以及缓存的雪崩都有一些额外的异常处理。


场景 2:日志建设。


我们当前完全使用的是云开发提供的日志存储方式,以前的做法是需要我们自己建立一个完整的日志系统,但用云开发比较节省能力,可以看到,我们做日志存储的时候目前就是用云开发提供的高级日志接口打印日志,这个是日志接口的代码。


这是我对业务层收拢日志打印的调用业务逻辑,就是把云函数的日


志与小程序的日志和调用服务的日志全部收拢起来。这是云开发控制台上对日志进行查询,目前云开发日志支持多种查询方式:全文检索、键值检索、模糊关键字检索等等。其实整个日志背后还有一套更加完备的监控和体系。


场景 3:可靠性和稳定性建设。


作为一个企业级项目,当然可靠性、稳定性建设是很广的讲法,目前我只是挑了一个点,因为项目比较大,有很多开发者来参与协作开发,但整个协作开发中如何来保证发布流程不要把测网代码发到现网,为了避免这种情况我创建了三个环境:


一个代表测试环境,一个代表预发环境,一个代表现网环境。这三个环境小程序里面又是如何区分的呢?其实主要是在小程序里面有一个下斜杠 config,这个就是区分核心关键字,这样就避免了每次发盘的时候都要不断的去改善环境,以防把本来测试的代码加到现网去。


场景 4:多端建设。


作为一个企业级项目,它面向的群体用户是非常多样的,所以多端支持也是必然的诉求,目前深圳机场 APP 使用的是 Flutter 技术,C 端和小程序端他们应用层,所以存在 Flutter 怎么连接应用层的函数的,目前应用层提供了 Flutter—SDK,你们在官网是可以查得到的。目前深圳机场项目有 APP、小程序、H5。


世界上没有银弹,虽然云开发技术在我们搭建整个企业级链条上提供了非常强力的支持,但是有技术的地方就有坑,而我们要做的就是趋利避害。


我们在项目开发过程中,随着需求的增长和不断的迭代,以及不是很了解项目背景的开发人员加入后产生的问题,就是云函数乱用的问题。因为我们现在创建云函数成本很低,导致云函数越来越多,也被重复开发,有点混乱。而对于混乱的问题我做了一个云函数路由分发,下面又有一个动作,一个云函数代表一个业务的功能块,一个动作代表一个 C 端的请求,把公共能力也封装成公共云函数,就是复用一下那个能力,比如像后台的 GRPT 请求、HTTP 请求,用这个云函数做这个事情,云函数路由分发我还申请了一个专利。这样做的目的,为了解决云函数混用,让大家写面向 C 端 API 的时候有一个规范和标准。


在开发过程中还有一个问题,因为现在是用云开发来打印日志,使用的成本较低,导致大家随便就在云函数里打印个日志,导致日志非常混乱,排查问题的时候会发现根本不知道哪条日志是属于我的,针对于这种情况我把所有 C 端以及服务端请求的用户行为全部统一成一个自建模型,全部日志遵循这个模型来建模,这样日志和上报都成为了标准的格式化数据,方便后续做一系列的分析以及告警和问题排查。这个模型里面万物皆事件。


这些是基于业务痛点解决的一些问题,其实我写了一个业务框架叫做 wCore,大家可以扫这个地址,就可以看到 wCore 的使用方式,当然目前还属于“毛坯房”的阶段, 并不是很完善,后续我会开发出来,期待大家一起完善它。目前这个业务框架使用在我们深圳机场项目、川航项目、深圳地铁的项目。


感谢大家的耐心听讲,我上面的分享只是蜻蜓点水,希望在云开发


道路上大家都能够玩出自己的高度和境界。如果大家有一些关于企业级小程序云开发的一些探讨,我希望和大家一起来探讨,也许我的经验可以让你少走一些弯路。谢谢大家!

2020-11-30 16:58567

评论

发布
暂无评论
发现更多内容

AI数字人源码部署,打造自己品牌!

青否数字人

如何写好大模型提示词?来自大赛冠军的经验分享(基础篇)

Baihai IDP

人工智能 AI LLM Prompt Prompt Engineering

重磅!参编我国首个图计算平台标准 引领图数据库行业新机遇

百度安全

为什么要将应用微服务化?

伤感汤姆布利柏

程序员 微服务 低代码 架构师 JNPF

千万级数据深分页查询SQL性能优化实践

京东科技开发者

喜讯!无垠智能模糊测试系统入选“2023软件供应链优秀成果”

云起无垠

得物云原生容器技术探索与落地实践

得物技术

云原生 技术分享

【第七在线】服装企业对于智能商品计划系统的误区有哪些?

第七在线

AI数字人给教育行业带来机会!

青否数字人

MES生产执行系统在生产车间的主要作用

万界星空科技

工业互联网 MES系统 生产管理系统 mes 数字化车间

Video-LLaMA:为AI大模型注入视听觉

百度开发者中心

人工智能 大模型

Meta Llama大模型:引领人工智能创新

百度开发者中心

人工智能 深度学习 大模型

如何提升时序数据多表低频场景的写入性能?一文详解

TDengine

tdengine 时序数据库

类似 Microsoft Project 的12款在线项目管理工具

PingCode

项目管理 项目经理 项目管理工具

深入理解WebSocket ACK:关键技术提升数据传输的可靠性

Apifox

前端 后端 websocket 协议 WebSocket ACK

数字人源码独立部署的教程!

青否数字人

数字人

深入了解LLaMA大模型

百度开发者中心

深度学习 nlp 大模型

Code Llama:基于 Llama 2 的 AI 代码生成大模型

百度开发者中心

人工智能 大模型 代码生成

即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]

JackJiang

网络编程 即时通讯 IM

DxO ViewPoint 4 for Mac(照片修复校正工具)v4.13.0.282激活版

影影绰绰一往直前

Navicat Charts Creator for Mac(Navicat图表创建器)v1.2.15激活版

影影绰绰一往直前

一文带你揭秘淘宝终端技术

阿里技术

基础设施 招聘 淘宝 终端技术

DxO PureRAW for Mac(RAW照片处理器)v3.9.0中文激活版

影影绰绰一往直前

数据展现之道:精心打造可在线浏览的动态数据报表

EquatorCoco

数据库 动态数据

每日一题:LeetCode-209. 长度最小的子数组

半亩房顶

算法 LeetCode 二分查找 前缀和 滑动窗口

4K Video Downloader Plus Pro for Mac(4K视频下载器)v1.4.0激活版下载

影影绰绰一往直前

Pocket Yoga for mac(口袋瑜伽)v14.3.0激活版

影影绰绰一往直前

如何在苹果手机上进行文件管理

使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

京东科技开发者

FotoMagico for Mac(专业幻灯片制作软件)v6.5.4激活版

影影绰绰一往直前

基于企业级SaaS低代码平台的协同制造产品解决方案

万界星空科技

低代码 MES系统 低代码开发 万界星空科技 低代码云MES

龙建军:云开发技术在深圳机场旅客出行服务项目上的实践_语言 & 开发_InfoQ精选文章