app需要放在服务器吗?企业上线前先搞懂服务器配置、数据安全和预算
本文未附完整的测试环境、工具版本与原始结果,内容作为故障排查或选型资料参考,不标记为实测报告。
很多老板或者项目负责人在开发App、小程序、内部管理系统的時候會問一個問題:App要放到伺服器上嗎?
实际上用户手机上安装的是前端入口,而真正的登录、数据、订单、图片、权限、消息推送等都是在后端服务器上进行的。
选择不合适的服务器的话,轻则出现访问速度慢、接口报错的情况,严重的时候会造成数据丢失、业务中断以及之后的扩容费用增加。
简单来说就是:APP本身不一定要放在服务器上,但是APP背后的数据库、接口服务、管理后台、文件存储、缓存、备份系统等基本上都要靠服务器来支撑。可以选择使用云服务器,也可以选择使用物理服务器、自建机房或者托管机房,主要取决于业务规模、数据需求、预算以及运维能力。
如果是测试版APP、访问量小、数据不敏感的话,在初期使用云服务器会更加灵活,开通速度快、扩展容易,适合于初创团队或者试运行项目。但是对于企业的核心业务来说,例如ERP、MES、医院系统、学校平台、电商订单、会员系统、AI识别服务等,或者是有关于数据合规性、内网访问权限以及长期成本的问题时,则需要慎重考虑是否要购买独立服务器或者进行混合部署。
选择服务器的时候不要只看价格,可以参考以下几个方面来判断:
第一是看CPU核心数。APP后端需要处理用户的请求、接口调用、权限校验以及业务逻辑等任务,在并发度高的情况下,对于CPU的要求会比较突出。一般的公司可以使用8核或者16核开始;如果涉及到高并发、电商促销或者是大数据计算这类业务的话,则要依据访问量与程序结构来决定是否需要增加更多的核心数。
第二点就是看内存大小了。数据库、缓存、中间件都比较占用内存。很多系统的卡顿并不是因为CPU不足,而是由于内存长时间被占用而造成的。中小型企业可以使用32G或者64G以上的内存起始值,并且在数据库以及多个应用程序同时运行的时候要留出一定的扩展空间。
第三是看硬盘种类以及RAID方案。APP涉及到用户的个人信息、图片、日志、订单记录等等,所以硬盘不能随便配置。系统盘用的是SSD,数据库使用的是企业级SSD或者NVMe;重要的数据要采用RAID1、RAID5、RAID10等方案并且做好定期备份工作,“硬盘不会坏”的想法不能作为安全保障措施来对待。
第四点就是看网络带宽以及访问的方式。公网APP要注意到带宽、延迟、防护与备案方面的问题;而企业内部的APP需要考虑的是内网、VPN、专线、防火墙等等问题。如果图片、视频、文件上传量大,则要另外计算出存储及带宽的成本。
第五个就是冗余以及远端管理的问题。正式业务应该选用双电源、热插拔硬盘、远程管理模块等设备来便于故障排查与远程维护。很多企业的服务器出现问题,并不是修不起来,而是没有人能够马上找出故障所在。
第六个就是后期的发展情况。APP上线之后用户的增多、功能的增多、数据库变大都是很正常的。在购买的时候要查看内存插槽、硬盘位、PCIe扩展槽和GPU扩展能力等项目,以免使用了一年左右就全部被淘汰了。
还存在一个常见的错误认识就是把“购买一台服务器”当作方案已经完成了。真正的稳定的应用程序后端还需要考虑到系统的安装、数据库的部署、web环境的设置、安全策略、备份计划、监控报警、权限管理以及售后服务等等问题。即使预算有限也可以做到稳定,但是前提条件是配置与架构要根据实际业务场景来进行选择,并不是随便挑选一台便宜的机器。
如果有国产化替代、等保合规、内网部署、数据不出本地等等的要求的话,还要再确定一下CPU平台、操作系统、数据库、中间件以及应用程序之间的兼容性。例如国产服务器、国产操作系统、信创数据库是否可以适配现有的APP后端,在此之前应该进行测试,不能等到上线的时候才发现环境不兼容的问题。
因此,App是否需要服务器的答案一般为:需要,但是部署的方式不一样。小项目可以先轻量上云,核心业务建议采用规范化的服务器方案;当访问量增大之后,也可以由单机升级为数据库独立、存储独立、负载均衡、备份容灾等结构。
如果要上线APP、小程序或者企业内部系统的话可以将业务类型、预计用户数量、并发量、数据库大小、是否需要内网部署、预算范围等信息发送过来。可以帮您理清服务器配置思路、品牌或者国产化的方案、预算报价的方向,并且给出安装调试以及后续维护保养的意见。