我开发了一份 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 应用还需要用其他哪些云服务。
阿里云只是作为举例。如果其他云更合适也可以。
欢迎各位帮我支招啊
现在可以本地小分布式的运行。现在想把这个应用做成一个多用户的在线 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 应用还需要用其他哪些云服务。
阿里云只是作为举例。如果其他云更合适也可以。
欢迎各位帮我支招啊
