各位 LeanCloud 的用户大家好。2020 年是不平静的一年,每个人的生活和工作都因为疫情发生了很大改变。在这一年里很多活动都由线下转向了线上,我们很高兴在这个转变过程中为很多用户提供了有价值的服务,也想在这一年结束时对大家的长期支持表示衷心的感谢。
过去一年里,我们一如既往地不断推进产品和服务的改进和优化:推出了 Flutter SDK,助力使用 Flutter 跨平台移动应用开发方案的开发者;基于 .Net Standard 2.0 重写 C# SDK,提供更完善的 API 接口和对更多平台的支持;在华北节点上线了网络隔离优化方案,支持账户层面乃至应用层面的访问入口隔离,降低意外情况下相互影响的风险,确保服务稳定。
网络隔离
我们在华北节点上线了网络隔离优化方案,为拥有商用版应用的账户免费分配了一个独立 IP(默认提供 2Gbps 的防护带宽),以作为账户下所有应用使用存储服务的默认入口。
使用独立 IP 后,不同开发者的应用使用不同的网络访问入口,可以隔离风险,避免因为其他开发者的应用碰到 DDoS 攻击等意外情况而受牵连。
如果开发者希望更进一步隔离各个应用之间的网络,或者希望为云引擎也配置独立 IP,还可以额外购买更多的独立 IP。
我们推荐使用云引擎的开发者,特别是在云引擎上托管动态站点的开发者,也为云引擎配置独立 IP。未配置独立 IP 的云引擎服务默认会为静态站点优化,使用边缘节点为静态资源加速访问。但由于边缘节点的限制,对有些动态内容请求不怎么友好。详见文档。
存储服务
大数据量的 Class 现在也能在控制台自助创建索引,无需联系技术支持。索引会在闲时自动创建,在控制台可以查看索引创建任务的状态。
Class 自增列实现优化,同时控制台也可以重置自增起始值。
LeanCloud 内建账户系统支持 Apple 和支付宝小程序、百度小程序、头条小程序的第三方登录,并会自动为第三方登录使用的授权数据(authData)创建索引。
在云引擎或自有服务器等受信任环境下,Python SDK 和 PHP SDK 支持通过 Master Key 指定上传文件后在云端的路径,例如,指定路径为 robots.txt
用于限制搜索引擎抓取自定义文件域名下的 URL。
商用版应用可以在控制台刷新 CDN 缓存,适用于删除文件后需要确保文件链接马上失效等使用场景。
好友关系接口升级,区分单向/双向的好友请求,支持使用 LiveQuery 订阅「请求添加好友」通知。单向关注类似微博,无需申请,关注后自动成为其粉丝。双向好友类似微信,添加好友需要对方确认,同意后双方互为好友。原好友关系接口主要适用于单向关注这一场景,升级后增加了对双向关注的支持,也允许用户标注自己的好友。目前 JavaScript SDK 已适配新的好友关系接口。
应用内搜索升级了搜索、分词引擎,优化了中英文混合文本的分词,支持了索引重建过程中的多版本平滑过度,更名为「全文搜索」。
短信签名、模板的申请流程改版,以跟进短信运营商政策方面的变动。各 SDK 增加了通过短信验证码绑定或更新手机号的接口。国际短信支持更多国家(印度、捷克、荷兰、爱尔兰、芬兰、乌克兰)。
华北节点商用版应用的数据存储更换了新的存储引擎,性能有不小的提升。
推送
安卓混合推送的第三方依赖全面升级,以修复底层库的 bug 和支持厂商的新功能与接口。由于安卓应用可能选择只接入部分厂商通道,或者为不同的分发渠道分别打包,所以我们在 all-in-one 的 library 外,新提供了单一厂商推送的 library,尽量减少应用打包体积。
云引擎
云引擎的控制台在 2020 年全面改版,新的「资源」页面取代了实例管理,通过设置规格和数量,开发者可以更简单地管理计算资源、进行水平扩展。我们调整了可供购买的标准版规格列表,取消了 256 MB 内存、新增了 4096 MB 内存。同时将所有标准版实例统一为了单核心,这样开发者只需根据单个进程的最大内存用量来选择规格,之后通过调整实例数量来应对请求量的增加。
我们还做了一些工作让云函数和 Hook 可以运行在任意的分组上(之前只能运行在主要分组),借助这一能力开发者可以将包含云函数的服务拆分到不同分组、为不同分组的程序设置定时任务,甚至可以使用不同的语言去编写云函数和 Hook,充分利用每一种语言的优势。我们在控制台上添加了单独的「云函数」页面,可以看到每个云函数或 Hook 所属的分组和请求量。为了鼓励开发者更多地使用这项能力,我们还取消了分组管理费用。
LeanCache 和 LeanDB 在 2020 年也迎来了一次升级,我们将 LeanCache 升级到了 Redis 5。同时还为 Redis 和 MySQL 提供了统计图表,可以查看连接数、查询数、内存用量等指标,方便开发者自行诊断性能问题。我们引入了一个管理 LeanCache 与应用之间关系的「共享管理」功能,允许开发者限制可以访问 LeanCache 的应用,提升数据安全性。
我们为云引擎增加了一种新的域名绑定形式 —— 加速域名,对于静态站点(图片、文件等静态资源)或前后端分离应用的前端部分,使用加速域名可以以更低廉的价格获得更快的终端用户访问速度。
SDK
我们在 2020 年发布了 Flutter SDK。Flutter SDK 的数据存储部分直接调用 REST API 接口,即时通讯部分则以插件(Plugin)的形式开发,底层依赖 Swift SDK 和 Java Unified SDK,以更好地利用原生系统层面的能力。我们也提供配套的中英文文档和 Demo。
.Net SDK 基于 .Net Standard 2.0 接口标准重写,支持 Unity 2018.1+、.NET Core 2.0+、.NET Framework 4.6.1+、Mono 5.4+ 等框架,对 API 接口的支持也比旧版完善许多。旧版 .Net SDK 现已停止更新,请大家及时迁移。
Objective-C SDK 用自行实现的 WebSocket 库替换了原本的第三方库,解决因第三方库 bug 导致的偶现奔溃问题,同时优化了库体积、内存占用、功耗。
JavaScript SDK 增加了对支付宝、百度、头条小程序的支持,另外也提供了平台无关的的版本,方便开发者自行实现目标平台的 Adapters 进行适配。
使用 TypeScript 重写的新一代 JavaScript SDK,以及全新的 Go SDK 都已经完成了主要的开发工作。这两个 SDK 会带来全新风格的 API(不在本地自动追踪改动,更加简单可靠,也便于支持多应用),即将发布,敬请期待。
控制台、文档
华北节点控制台启用了独立子域名 console.leancloud.cn,华东节点控制台也换到了 console-e1.leancloud.cn。
2020 年控制台每个月都有一些或大或小的改进,比如新设计的应用列表页和应用概览页,增加了搜索框,可以根据名称和描述搜索应用,左上角的下拉菜单列出了常用应用,希望应用比较多的开发者能更方便快捷地访问应用。应用列表页右栏增加了消费概况、产品最近更新,应用概览页列出了各个服务的关键统计数据,便于大家参考。各个服务的页面也大都重新设计过,改进了用户体验,比如增加了一些统计图表和功能说明。
数据安全是每个应用都需要关注的,我们重构了数据安全、ACL 指南,希望有助于更多的开发者加固应用。
国际版新增了 REST API 文档和数据安全、ACL 指南,相信能给英文环境的开发者带来更便捷的体验。
谢谢大家
过去的一年里,有许多开发者通过工单、论坛、邮件等各种渠道向我们反馈问题和意见,也有不少开发者在博客或社区分享使用 LeanCloud 的经验,我们十分感激。
上面提到的新功能和改进优化大多源自大家的反馈意见。
感谢大家在过去一年里对 LeanCloud 的支持和信赖,我们期待在新的一年里为大家提供更好的产品和服务。
祝大家身体健康,事业顺遂!