这是一个创建于 2052 天前的主题,其中的信息可能已经有所发展或是发生改变。
我开发了一份 Golang 爬虫数据采集+机器学习 NLP 算法的程序,Beego 前端+RPC 多个服务组件。
现在可以本地小分布式的运行。现在想把这个应用做成一个多用户的在线 SaaS 平台。类似 scrapyhub 那种平台但是特点是带特定领域的 NLP 和数据处理。
我现在有点困惑怎样来做这个方案,因为 AJAX 爬虫( headless 浏览器)和机器学习组件都是比较耗 CPU 和网络的,这和的 SaaS Web CRM 有点不一样。
问题 1:我该选择哪种后台搭建方案?
方案一是 阿里云上租 N 台云服务器,所有用户共享后台组件和服务,在所有 API 和主要函数上加 user_id 来隔离。我现在就是这样实现的。这个的小问题是 chrome 服务抢占 CPU。
方案二是 阿里云上租 N 台云服务器,为每个用户在 docker 里起动后台进程。通过 docker 限制每个进程的资源。我现在没有用 docker,因为我的程序本身就是 golang 单文件就可以部署。
方案三是 阿里云上租 N 台云服务器,每个用户独占 1 到多台云服务器。来一个用户,就单独开机器。
问题 2:除了开云主机,Mysql,OSS 存储外,我还需要其他组件吗?
我是一个后端算法为主的开发,以前的主要经验在后端算法,机器学习,熟悉 Linux,数据库,redis,消息队列,前端 Beego 比较简单我也能解决。
但是除此以外的,对 Nginx,CDN,负载均衡,域名网络之类的都没有接触。
我不知道做成一个全国各地都能访问的 Web 应用还需要用其他哪些云服务。
阿里云只是作为举例。如果其他云更合适也可以。
欢迎各位帮我支招啊