LeanCloud 2019 回顾

在过去的一年里,数万新用户选择了 LeanCloud,开发者在我们的平台上创建了数万新应用。尽管在 6 月遇到了一些因外部因素带来的困难,2019 年仍然是 LeanCloud 实现整体盈利的第一年。这离不开用户的长期支持,同时健康的财务对于为用户提供持续、稳定、不断改进的服务也是至关重要的。

在过去一年里我们正式推出了 LeanCloud 国际版,全面支持域名绑定,并为对稳定性、可控性、灵活性有更高要求的用户开发了全新的独立部署方案。多人对战 Client Engine 正式上线,同时为规模较大的游戏提供了独立部署选项。云引擎新增了云队列和 MySQL 支持。其他服务和 SDK 也有大量改进和优化。

国际版正式运行

为了适应用户的需求变化以及产品下一步的发展,让 LeanCloud 正式成为国际化的产品,我们推出了 LeanCloud 国际版。 国际版使用独立的顶级域名 leancloud.app 和账户体系,由 LeanCloud 的境外公司作为主体运营,费用使用美元结算。 我们已经初步完成了网站、控制台、文档的国际化,也提供英语技术支持,让英文环境的开发者也可以使用 LeanCloud。

全面支持域名绑定

为了确保能长期稳定为开发者提供服务,按照相关法律法规和有关部门的要求,我们推动了使用 LeanCloud 服务的应用绑定自有域名。 绑定自有域名也有利于从域名层面做好应用隔离,确保业务稳定。 为了保证安全性,API 域名必须启用 SSL(云引擎域名、文件域名推荐启用 SSL),我们也推出了自动管理功能,支持 SSL 证书的自动申请和自动续期。

存储服务

全新独立部署方案

为了满足众多企业客户对平台稳定性、后端可控性以及功能多样性方面的要求,我们推出了新的独立部署方案,希望减少使用中的限制,给开发者更大的灵活性,同时也提供一个更加稳定可靠的完整后端,满足业务系统的更高要求。

新的独立部署方案里,我们会使用「独立的存储集群 + 独立的 API 集群 + 独立的扩展服务集群」的模式来构建一个完整的、物理隔离的公有云系统,供单个用户和应用独享使用。 这里的「扩展服务」是指基于存储到云端的结构化数据,解决特定业务需求的垂直服务,例如并行计算(原离线分析功能)、全文检索(原应用内搜索功能)等。

新的 API Server 是完全重新开发的,我们针对单应用独立部署的使用场景进行了功能裁剪和架构优化,取消了共享集群方式下的一些请求限制(例如数据导入导出、并发线程上限等),增加了更多数据处理接口(例如提供了索引操作和聚合查询的 REST API),同时还有更好的并发处理性能和弹性伸缩能力。

云引擎

云队列

我们推出了云队列服务。云队列提供了一种在云引擎之外调度云函数的能力,它基于云引擎已有的「云函数」这个概念实现了重试、去重、结果查询、延时任务、定时任务等功能,是对云函数功能的一个补充。尚未运行的任务会以一种可靠的方式暂存在云队列,即使你的云引擎因部署、过载、崩溃而重启,任务也不会丢失,云队列会等待你的云引擎实例恢复正常后继续运行它们。我们也基于云队列重新实现了定时任务,它兼容之前的绝大部分用法,并支持以 JSON 形式向云函数传递自定义的参数,以及配置在超时情况下的行为(重试或放弃)。对了,我们还移除了定时任务的个数限制。

MySQL

我们在华北节点推出了高可用、高性价比的 MySQL 数据库托管方案
开发者可以在云引擎中使用通用的 MySQL 客户端类库,访问完整的 MySQL 功能。

其他

云引擎统计结果展示也进行了优化,现在开发者可以在控制台按照总览、网站托管请求以及单个云函数来分别查看请求数(按分钟聚合)和响应时间的变化趋势,还可以看到整体的 CPU、内存以及流量消耗,希望在程序运行状况和代码优化上给大家提供更多参考信息。

云引擎命令行工具也发布了 0.21.0 版,修复了一些 bug,也支持指定 --prod 参数直接部署到生产环境,以及本地调试静态网站项目。

云引擎 Java 环境支持指定 Java 版本,开发者可以选用 Java 8、11、12、13、14 来开发项目。

云引擎 Node.js 环境新增了 internal 选项,用来禁止在客户端调用云函数。
我们还推出了一个常用功能和示例汇总代码仓库,其中包括推荐的最佳实践和常用的代码片段,每个文件中都有较为详细的注释,适合云引擎的开发者阅读、参考,也可以将代码片段复制到你的项目中使用。

推送和即时通讯

Android 混合推送现已支持 vivooppo小米推送国际版,可以覆盖更多终端用户。

我们还对即时通讯和推送服务做了一些其他改进和优化,以便为开发者提供更稳定的服务、更灵活的功能:

  • 即时通讯新增了客户端上下线 hook 支持,在客户端登录成功、登出成功、意外下线后调用。
  • 通过 SDK 新建对话默认启用 unique 参数,更贴合大多数应用的使用场景。
  • 通过 REST API 发送消息现在也支持提醒用户(mention_allmention_client_ids 参数)了。
  • 即时通讯的离线推送记录现在也加入到推送历史记录里面,可以在控制台一并查看。
  • 推送服务现在支持直接指定设备 ID 进行推送,比通过查询条件推送更快,延迟更低。
  • 开发者现在能对推送时间和推送速度(flow_control 参数)进行更精细的控制。

游戏解决方案

为了更好服务较大规模的游戏开发者,我们推出了多人对战 GameServer 的独立部署版本。独立部署的后端服务节点(集群),让业务完全独享所有的物理资源,以便给开发者带来更好的稳定性和灵活度。

相比于共享集群模式,独立部署的 GameServer 有如下优势:

  • 支持通过 hook 函数 的方式来编写服务端逻辑,业务扩展代码与 GameServer 在同一个进程内运行,与 Client Engine 方式相比在实时性上有显著提升。
  • 取消了部分使用限制,例如房间最大人数、最大消息下发频率、消息体大小限制等,在硬件能力许可范围内尽可能满足业务需求。
  • 对资源独占使用,支持自动扩容。

此外,游戏解决方案迎来了以下改进:

  • Client Engine 在完善底层架构、使用框架、文档之后,发布了正式版。
  • 排行榜增强了防作弊的策略,只放行可信环境的数据更新请求,避免被恶意刷榜。
  • 优化了游戏 SDK,简化了进入游戏大厅的逻辑,并且将消息序列化协议全部切换到 Protocol Buffers,进一步降低客户端的网络流量和传输延时。

控制台和官网

我们对控制台进行了改版,目前存储服务部分已经完成并上线。新版本的控制台,我们将存储相关的功能(如 LiveQuery、离线分析和应用内搜索)合并到了一起,对普通的结构化数据存储、文件、用户系统进行了拆分,并且将数据展示与权限设置、索引和性能优化等内容集中起来,希望控制台逻辑更清晰,可以给开发者带来便利。上文提到的云引擎统计结果展示界面的改进,就是基于新版控制台重新实现的。

此外,控制台新增了激活归档应用和注销账号功能,个人实名认证也切换到了基于支付宝客户端的方案。我们也重新设计了官网的价格页面,更加清晰、全面地展示各项服务的价格方案。

SDK

2019 年各 SDK 也发布了不少新版本,除了跟进上文提到的各服务的新功能外,主要还有以下改进:

Java

新推出的统一的 Java SDK 正式取代旧版的 Java SDK 和 Android SDK。
新版的 SDK 全面采用了 Reactive 编程风格,同时也兼容老的 Callback 方式。在 Android 平台上,新版 SDK 切换到了 AndroidX。

对于开发者担心的 Android 应用在客户端暴露 appKey 可能带来的潜在风险,我们现在允许应用程序只通过 appId 来完成 LeanCloud 服务初始化,从而避免了暴露应用核心配置信息的风险。

有些只使用推送服务的客户希望优化产品移动端体验,我们为此专门推出了精简版推送 SDK,显著优化了安装包大小(1.2 MB -> 180 KB)和启动时间(59 ms -> 5 ms)。

Swift & Objective C

Swift SDK 增加了对即时通讯、推送、云函数调用的支持,并完善了结构化存储方面的功能,在功能上基本对齐了 Android、Web 平台的 SDK。
有许多 iOS 平台的开发者已经从 Objective C SDK 迁移到 Swift SDK, 还有一些新应用直接基于 Swift SDK 开发。

Swift 语言的演进十分迅捷(swift),Swift SDK 同样如此,现已支持 Swift 5 和 Swift Package Manager。

Objective C SDK 也增加了一些功能,修复了许多 bug。

另外,为了精简代码和集中资源,Swift SDK 不再支持 iOS 10 之前的系统,Objective C SDK 不再支持 iOS 8 之前的系统。

JavaScript

JavaScript SDK 的主要改进有:

  • 小程序用户系统增加了 UnionId 支持。
  • 增加了手动启用、停用调试模式的开关:debug.enable()debug.disable()
  • AV.File#save 方法增加了 keepFileName 参数允许保留文件的文件名。
  • 增加了 AV.Object#revert 方法撤销部分或全部修改了但未保存(save)的改动。
  • MESSAGE_UPDATEMESSAGE_RECALL 事件现在会额外返回一个 reason 参数来指示修改、撤回的原因(如果有的话)。
  • 修复和完善了大量 TypeScript 定义。

C Sharp

C# SDK 的主要改进有:

  • 简化、统一 portable 和 Unity 初始化方式,现在只需要在代码中初始化,不需要在 Unity Editor 拖拽和设置。
  • 增加消息撤回/修改功能。

结语

在这一年里,许多用户通过工单、论坛、邮件等各种渠道向我们反馈问题和意见,也有用户向我们开源的 SDK 提交代码。上面提到的很多新功能、改进、优化都源于用户的反馈。感谢大家的帮助和信赖,我们期待在新的一年里为用户提供更好的产品和服务。

本文参与了 SegmentFault思否征文「2019 总结」,欢迎正在阅读的你也加入。
Image placeholder
xuanyuan95
未设置
  24人点赞

没有讨论,发表一下自己的看法吧

推荐文章
回顾2019年度京东集团10件大事:不忘初心,坚定前行

岁月不居,时节如流。2019,京东不忘初心,风雨兼程。在“以零售为基础的技术与服务企业”定位的指引下,京东各项业务有序发展,经营业绩屡创新高,技术转型成果显著,服务水平全面提升。感谢有你,给予我们信赖

嗨!你的 2019 晒好封存了吗?快来看程序老兵的 2019 吧!

时间过得真是太快快快了,2019还剩下最后几个小时了。回望即将过去的这一年,老兵哥做了不少事情,有计划内的,也有计划外的,当然还有不少事情没做。赶在最后时刻晒一晒我的2019年,希望从成绩荣誉中获得一

谷歌云重磅推出混合云平台Anthos,兼容竞争对手云服务 | Google Cloud Next’19

大数据文摘出品作者:蒋宝尚、周素云当地时间4月9日,谷歌云年度盛会GoogleCloud Next’19在旧金山的Moscone召开。在会上,谷歌云的新任CEO,曾经的甲骨文二号人物ThomasKur

前端培训-中级阶段(31)- Class 的基本语法、Class 的继承(2019-12-26期)

前端最基础的就是HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知

再见,2019!你好,2020!

今天,是2019年的最后一天。虽有不舍,但终归还是得说再见!明天又会翻开新一年的篇章,希望各位在新的一年都能升职加薪迎娶白富美,走上人生巅峰。19年某月某日突发奇想,想用公众号分享一下这些年学到的技术

送别2019,期待2020!

概述2019年时间过得很快。有欢笑、有离别、有压力、有收获。关于工作项目发生了变动,团队也发生了变动,不过总体是成长的,在这感谢领导的关照、信任!下半年开始学习Go语言,并用Go进行搭建项目,也算是刚

2019年7月数据库流行度排行:Oracle王者归来获大幅增长

2019已然走过一半,DB-Engines的数据库流行度排行榜7月出炉,这可以算是数据库流行度的半年报了。7月的明星产品是Oracle,其积分大幅增长了22分,较去年同期增长了43分,这说明Oracl

OOW2019 :Oracle数据管理技术创新盘点

Oracle作为传统关系型数据库的霸主,不管是数据库性能还是商业上,一直以来都是全球各大数据库厂商致力追赶的对象。近年来,全球云数据库市场迅速发展,Gartner预测,到2023年,世界上四分之三的数

Oracle ADW业务数据平台点亮DTCC2019数据库技术大会!

数字大脑、互联网+、智能+、人工智能、边缘计算……信息技术领域好像从不缺少概念,但无论世界如何变化,数据是一切业务的核心。要想有效管理、分析和挖掘数据带来的价值,数据库一定是必需品。2019年5月8日

Google 21 岁生日,一文回顾 Google 发展史

9月27日,谷歌在Google搜索引擎首页庆祝自己21岁生日。 在涂鸦存档上,谷歌发布了一封庆祝信: 21年前,两位斯坦福大学博士生谢尔盖·布林和拉里·佩奇发表了一篇有关启动“大型搜索引擎”原

解读2019华为第001号文件:AI时代软件开发的第一要义是可信

晓查发自凹非寺量子位出品|公众号QbitAIAI加持,万物互联、万物智能。我们在享受科技进步的同时,软件开发行业却面临着更大的挑战。过去,软件出现安全问题或许仅仅意味着经济损失,但当走向产业互联网时代

Eclipse发布:2019年物联网开发者调查

如果你想了解一项重要技术的未来,那么先看开发人员在做什么。考虑到这一点,在EclipseFoundation对 1700 多名物 联 网开 发 人 员 (pdf) 进行的一项新调查中,可以获得对整个物

十年软件通胀率:从 2009 到 2019 年,软件越来越昂贵

过去十年,软件定价逐渐上升。在我们调查的一百个商业应用程序中,价格平均上涨了62%,其中包括一些比较便宜的应用程序。如果用户现在花钱购买一款应用程序,那么它很可能比十多年前的价格贵98%以上。

2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?

大数据文摘出品来源:thegradient编译:张大笔茹、曹培信、刘俊寰、牛婉扬、Andy2019年,机器学习框架之争进入了新阶段:PyTorch与TensorFlow成为最后两大玩家,PyTorch

《2019 Dell Technologies World》观后感

这是我第二次参加DellTechnologiesWorld大会:同样的时间、同样的地点、不一样的内容、不一样的感受!五一劳动节期间,一年一度的戴尔科技集团全球大会在拉斯维加斯隆重举行。今年是戴尔公司成

七牛云许式伟:当 Cloud 遇上 AI

从2014年起,中国人工智能产业的创业潮就开始兴起,直至2018年,机器学习、深度学习、大数据等能力的增强,促进了计算机视觉以及应用平台等技术的不断突破。随着人工智能在我国移动互联网、智能家居、智能

Spring Cloud Stream整合Kafka

引入依赖 org.springframework.cloud spring-cloud-stream-binder-kafka 或 org.springframework.cloud spr

解密:华为CloudLink视讯引领行业的“金刚钻”

“华为新一代CloudLink视讯解决方案,完全基于鲲鹏+昇腾双引擎打造的全新平台、全系列智能协作终端等一系列新产品,未来华为视讯平台将全部更新换代。”华为IT产品线企业通信领域总裁孙权在接受IT16

Spring Cloud 上手实战-架构解析及实作

Spring简介为什么要使用微服务单体应用:目前为止绝大部分的web应用软件采用单体应用,所有的应用的用户UI、业务逻辑、数据库访问都打包在一个应用程序上。缺点:开发相互干扰,随着应用的不断升级沟通协

拐点已至,阿里云进入All in Cloud全面上云时代!

当新旧设备交替势不可挡,当云的基础设施开始超过传统的数据中心,一个新时代开始了。在这样的时代里,以数据、计算、智能为主要特征的新一代信息技术,开始成为企业数字化转型的核心动力。对于所有云服务商来说,就

基于Redis实现Spring Cloud Gateway的动态管理

引言:SpringCloudGateway是当前使用非常广泛的一种API网关。它本身能力并不能完全满足企业对网关的期望,人们希望它可以提供更多的服务治理能力。但SpringCloudGateway并不

AWS在中国开通三个CloudFront站点,可降31%的延迟

4月23日,北京消息,亚马逊旗下公司AmazonWebServices,Inc.(AWS)今天宣布,通过与宁夏西云数据科技有限公司(简称西云数据)协作,在中国开通三个由西云数据运营的AmazonClo

揭秘青云QingCloud第二代云主机性能提升4倍的背后

前不久,青云QingCloud正式推出第二代企业型云主机,其搭载第二代英特尔至强可扩展处理器,采用独享CPU模式,可提供更高更稳定的计算性能,并针对人工智能工作负载进行优化,性能提升400%,满足企业

apicloud如何打包vue项目?

apicloud如何打包vue项目?APICloud新建项目后,会生成以下目录结构其中index.html是入口文件,而vue-cli打包生成的文件是在dist目录下├─dist │└─static

{