作为一个Android开发者,要自己开发服务端,选择服务端开发方案的过程
一,Serverless
开始是想用serverless,只关注业务逻辑,其它的环境配置,安全验证,动态扩容等都交给serverless平台来做
1. 阿里云serverless
阿里云serverless平台,是国内最早做的,看起来也很完善,但实际使用起来各种蛋疼,最严重的两个问题是:本地调试,log查看
本地调试:文档上提了一句可以用docker+sandbox做,但是没有具体步骤,叮叮上问了,也只是一句简单地用sandbox,没有任何步骤,等我把docker装好后,开始以为是我自己不会做,后来参考aws和华为云,它们都有详细的步骤,而且有sandbox的各种命令来模拟本地环境,但是阿里云完全没有提及,应该就是功能不完善,害我搞那么久
问题:
因为不能本地调试,验证一次小的改动都要走一遍发布流程,效率极低及其操蛋
log似乎也有问题,经常看不到自己打印的日志,不好定位问题
各种角色,权限等配置,也很复杂
阿里云控制台,文档网页时不时卡死,其他云的网站都没出现过这种问题,垃圾啊,可能是骄傲了不求上进
实际测试发现冷启动比较慢,并发量稍大的时候,会有一段时间没响应
需要绑定备案域名
结论:阿里云serverless不适合做web/移动应用的后端,而且这次对阿里云的印象很差
2. 华为云serverless
偶然发现华为云,发现做的还不错,基本功能向阿里云看齐,serverless很全包含了函数计算(有sandbox本地调试),API网关,表格存储,对象存储,而且现阶段免费,所以决定试一下
hello word demo跑起来后,发现sandbox只支持Linux,Windows,命令行cli竟然只支持Linux,放弃...
3.百度云函数计算,压根就不支持做后端服务,目前看只能用于iot, 腾讯云的函数计算也是功能不全
4. aws lambda
阿里云应该就是学的它的,该有的都有,国内也能访问,但是sandbox本地调试处于公测阶段,整体看了下文档感觉比较复杂,另外国外有一个serverless.com的网站,集合了aws,微软,Google的serverless,做了一套统一的工具,但是对node.js,python支持较好,Java不能本地调试,后来参考了(https://www.phodal.com/)的文章,感觉serverless目前还是不太适合做APP后端,一是本地很不方便,配套工具还很初级,二是实际使用也有限制,比如冷启动特备是对于java jvm更慢
二,租用云服务器
常规方法,租云服务器
缺点:需要自己配置搭建环境,豆豆租房后端用的是这种方案(jetty+jersery+mongodb),但是没有配置log服务,也没有涉及到分布式等,以后真的数据量大了,还有很多工作要做,很多东西要学,一个人可能搞不过来
三,App Engine
目前暂定APP engine,百度GAE
好处:
不用管扩容,日志等问题,以后可以直接加实例来解决
直接上传war包,基础版mongdb可以导出,以后可以方便移植到云服务器
基础版很便宜256m内存+5m宽带+2g磁盘 4毛一天
操作简单,文档,控制台比阿里云舒服
问题:
目前基本版mongodb只有1g的容量,以后满了怎么办
基础版能不能满足后面的需求
专业版最低需要80多一个月,略贵
会不会有其他的坑,国内App Engine就两家,新浪SAE,百度BAE,阿里云以前上过但后来下架了,是因为市场太小,还是这个方案本身有缺陷???
网友评论