云开发出现背景
在传统的开发模式下,我们需要构建一个应用,往往会有以下的情况。
- 从时间复杂度来讲,构建一个应用的周期是比较长的,服务器的搭建,数据库和后台管理服务,多服务器分布式部署,后台前端开发,再到域名申请和上线。其中的复杂度是特别高的,每个阶段都要有专业的人员去处理。
- 从资源消耗上来讲,首先是物理资源和文件资源,服务器,数据库,后台,域名。然后是人员消耗,服务器的维护人员,后台管理开发人员,前端开发人员,后期后台维护人员,前端维护人员等等。
- 从成本上来讲,首先,因为时间复杂度比较高,项目周期比较长,资源消耗又比较大,所以成本会比较的高,小型企业一般难以承受。
于是,大部分中小型企业都会选择去购买一个云服务器,然后在上面去部署自己的数据库,后端服务,前端服务,但是这依旧只是解决了服务器的维护问题。
于是,就有了云开发。
什么是云开发?
云开发(Tencent Cloud Base,TCB)是腾讯云为移动开发者提供的高可用、自动弹性扩缩的后端云服务,包含计算、存储、CDN、静态托管等能力(Serverless 化),可用于开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等,后续会陆续支持 iOS 和 Android 等移动应用开发),达到一站式后台服务构建多端应用,帮助开发者统一构建和管理后端服务和后端云资源,避免了应用开发过程中参与繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
这是官网的说法,咱们分几个维度来说。
- 从时间复杂度上来讲,相比于传统的应用构建,云开发只需要申请云开发服务器,就可以通过官方的SDK和云函数进行各种业务上的开发,和数据存储交互。并且云开发是一种弱化后端的方式,仅需要前端开发就能实现。
- 从资源消耗上来讲,首先,我们几乎没有了物理资源,文件也是丢在云文件储存里面,而且有官方服务支持,在没有服务器、数据库和后台维护的需求下,前端维护涉及到云相关的也可以请求腾讯支持。
- 从成本上来讲,时间短,资源消耗和人员消耗少,成本大幅降低。
那云开发究竟是什么呢?
- 用一句话来讲,云开发是一个支持小程序、web、安卓等多端的应用服务中心。
- 云开发为开发者提供完整的云端流程,简化后端开发和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代。
云开发有什么内容?
- 云函数:无需自建服务器,云端代码,微信天然鉴权,可自行创建和编辑。
- 云数据库:无需自建数据库,既可以直接通过下程序前端操作,也可以通过云函数读写的JSON数据库。
- 云储存:无需自建储存和CDN,可以直接在前端上传和下载云端文件,云开发控制台可视化管理。
- 云调用:可以基于云函数免鉴权使用小程序开放接口,包括服务调用和获取开放数据。
- HTTP API:通过API接口,使用者可以在已有的服务器上访问云端资源,实现互通。
- 云开发控制台:可以对云函数、云数据库、云储存以及网络状况等进行实时管理和监控。
云开发能做什么?
- 消除了前端和服务端的概念,能够为小程序开发者提供完整的云端支持,让不具备一定后端知识的开发者也能高效的开发出一款高质量的小程序
- 可以实现多平台互通。
- 可以实现产品的快速迭代,提升用户体验。
- 因地制宜,开发者在开发工具内编写好代码之后、一键上传部署即可运行发布,快速扩容/缩容。
- 能够自动过滤宜些低级安全问题(服务器漏洞、sql注入、代码注入等)
- 应用和服务器以及数据库统一管理和监控。
云开发的缺点
- 对云数据库的操作,所有的增删改查都需要通过API去执行HTTP接口调用。这对后台管理方面来说不是很有利。
- 数据都在云端,数据安全性全依赖于云服务器端。
- 数据库在云端,对数据库的备份和数据潜移以及数据库同步等操作比传统方式略显困难。
小结
- 云开发可以让开发更简单、开发高效快捷、运维更省事、成本更低。
- 云开发可以最快速方便的通过SDK执行数据库操作。
- 可以实现前端工程师的全栈式开发的梦想。
- 云开发控制台可以很方便的进行全方面的管理。
- 未来发展趋势之一,虽然目前也有一些不完善的地方,但是我们有理由相信,云的思维配合低成本全栈及各大优势,云开发的前景一片美好。
ps:接下来,将进行第一个云开发项目的搭建。