如何每月花不到 200 美金就搭建一个支持产品运行的系统?

编译丨拓扑社 原野

在你发布产品之前,你首先得搭建起一个系统,你需要这个系统非常可靠稳定同时充满弹性,易扩张易规模化,但更重要的是它的运营维护的成本得低,不能一旦系统上线分分钟烧光所有钞票,立刻让你入不敷出。

在过去的几年时间里,我已发布了好几款产品,而在这个过程中,我尝试了各种各样的底层系统解决方案。本文的目标就是要帮助你,为你的用户实现价值,而同时还要尽量的节省时间和金钱。

我们将列举你所需要的一系列服务提供商,性价比都非常的高,所有费用加起来,你每个月花不到 200 美元就能搞定。

在此提前声明一下,下面我所提到的公司机构,跟我不存在任何商业往来上的利益关系,我在所推荐的产品和服务上不间接或直接持有任何的股份。我只是单纯的推荐而已。

让我们开始吧!如果你要打造一个支持产品运行起来的系统,那么你需要做下面的这些事情:

  • 一个易用性极高的 API;
  • 除非你的服务就单纯是一个 API,或者单纯的应用在某一款移动应用,聊天 Bot 里面,否则你还需要一款网页应用;
  • 文件存储系统;
  • 两个环境,一个环境用来进行测试和演示;另外一个环境用来制作和开发;
  • 为了监控的开发平台所需要使用到的工具;
  • 备有一个解决方案,能够动态实时地,根据当时需要来规模化你的服务器。

开发 VS 演示

你需要两个环境,一个是开发环境,这个环境里,你的客户将在日后实际用到你的产品;另外一个环境是演示环境,这个是专门为你的团队所准备的。一方面用来测试产品的各项功能,另外一方面需要将测试版的很多功能演示给你的客户。

演示这个阶段,设置准备工作越少越好,而你的开发环境中将涵盖了所有的服务内容和形式,可靠性也会得到保证。本文也会给你推荐一些比较基础,但是功能综合性也很强的工具,帮助你实现 7 X 24 小时的监控。

▎后端主机服务

我强烈建议你将后端 API 搭建在 Heroku 上面。它有多个语言版本,你可以在这里查看它支持哪些语言。请注意,尽管它还不支持 ASP.NET,但在这里还会有一些开源的开发者套件可供选择。

还有一些程序员在这方面持有不同的看法,他们认为 AWS EC 2 的成本比 Heroku dynos 要更低一些,当然如果你真的只是单纯比服务器的价格好的话,那确实是这样的。但是 Heroku 的运行速度更快,安装也更加便捷,能够跟更多服务很好的兼容整合,你将省去好几个小时的工作量,从这一点上,它完全弥补了价格上所体现出来的那一点点劣势。

现在,让我们先开始尝试在 Heroku 上面,针对你的 API 创建一个 Pipeline(通道),主要分为两个步骤:演示(staging)和开发(production)。你通过将你的代码推送演示应用上,然后,经过一系列的测试之后,你会将这个“演示版本”升级到“开发版本”。这样的顺序流程保证了不会在你的开发服务器上出现任何的配置错误,当然也就避免了你最终的客户受到影响。

你的通道看起来会像是下面的图一样:

如何每月花不到 200 美金就搭建一个支持产品运行的系统?

在这里,我建议你们这样设置:

在演示上,每个月花 7 美金,拥有一个业余的 dyno。(dyno 就是WEB服务器的进程数量。)

在开发上,拥有两个标准配置的 dyn,每个 dyno 每个月花费25 美金。

▎数据库主机服务

如果你现在正在使用 PostgreSQL,那么就用 Heroku 的服务就好了,刚好跟上面的解决方案匹配上。如果出现了其他的选择,那么使用 Compose,这是在早期性价比最高的服务。

如何每月花不到 200 美金就搭建一个支持产品运行的系统?

Compose 拥有所有必备的功能,比如“节点故障转移”、“每日备份”、“SSL 加密”、“基础的监控面板”等等。

你可以在 Compose 里面在一次“配置”上就能完成“演示”和“开发”这两个工作。但是为了保证你的开发数据独立性,安全性,将其与未经测试的代码进行隔离,你应该使用两个相对独立的数据库。

成本:我们将 MongoDB 作为参考,每个月 31 美金,如果是 PostgreSQL 将是每个月 27 美金。那么如果是两个数据库的话,一个月的成本就是 62 美金。

▎前端主机服务

我建议使用 Netlify,它的功能非常实用:

成功对 Git branch 进行推送后,将自动开发在 Netlify 服务器上的开发,然后自动的将其配置到他们的CDN 上。

这里还有额外的两部操作:

接下来就会开发出两个项目:

演示平台上的前端主机服务是免费的,而开发平台上的报价是每个月 9 美金。如果你的团队规模扩张,那么你很快就会用到 49 美金一个月的套餐。但是在一开始创业的时候,这完全没有必要。当你在世界范围内拥有数百万用户的时候,你可以选择升级来使用它的 Geo-IP CDN 服务。

成本:一个月九美金

▎文件托管服务

在文件托管上面,建议使用 AWS S3(最简单的存储服务),还是相对应的一个针对“演示”,一个针对“开发”。

内容是通过 AWS CDN 进行派发的,数据可以得到非常安全妥善的存储和取回。

最开始的 5GB 存储空间完全是免费的,后续每增加 1 G增加 0.03 美金的费用。但是在一开始,事实上你是完全不需要花任何钱的。

成本:每个月0美金

另外给一个忠告:我强烈建议你讲数据从网页应用上直接发送到 AWSS3 上,这样能够减轻 API 的负载。网上有很多文章来介绍如何安全的做到这一切。

域名和 SSL

绝大多数的顶级域名,一年的花费最多不会超过 50 美金。使用 Let’s Encrypt 服务,你可以对你所有的网络末端都开启 SSL 验证。市面上绝大多数的浏览器都信任这个认证,而且也是免费的。

成本:一年的费用是 50 美金

监控工具

时刻做到对你的开发平台的监控,这一点很重要。你需要知道错误出现的时间,这样便于在最短时间内搞定它们。用户是不会花这个力气将细小的错误上报上来的,但是他们对你服务的印象和评价肯定会大打折扣。

综合性的监控要求:

▎Slack

有了 Slack,你可以在一个通讯中心汇集所有的错误报告。Slack 就是为团队而生的,但是如果你想单打独斗,那么这些工具也同样趁手,它们就是你的团队成员!

在 Slack 上面开设一个账户,然后添加一个频道名为“#prod-errors”,你可以对你其他的服务进行设置,使得在 Slack 上面进行错误的提醒。

它可以做到 7 X 24 小时的即时监控和响应。

▎Papertrail

我建议使用 Papertrail来进行记录日志的管理。它提供:

它的样子如下图所示:

如何每月花不到 200 美金就搭建一个支持产品运行的系统?

第一眼看上去似乎没觉得有什么惊艳之处,但是它的交互界面已经近乎于一个真实的服务器控制台,你想象不到它确实有绝招。

将 Papertrail 作为插件,安装到你的 Heroku 演示应用和开发应用上。“演示平台”上是免费的,而“开发平台”上每个月是 7 美金,每天的日志存储量是 50MB,日志保存时间是 1 年时间。

对 Papertrail 进行提醒设置,将错误命令行推送到你的 Slack #prod-errors 频道上。请注意,这些日志将从你的 Dyno,通过一个名叫 logplex 的组件推送到插件上,如果上面存在某种能在几毫秒里产生数千个命令行的算法,那么 Logplex 将直接丢弃它们。

成本:每个月花费 7 美金

除此之外还有很多备选项。你可以在不需要重启 APP 的前提下,增加或者移除这些“日志工具”,这是很安全的,你甚至可以同时去测试好几种解决方案,最后发现更适合你的那一款产品。

但是根据我个人的体会,其他的日志系统对于刚开始上路的公司来说,有点儿大炮打蚊子的意思。Logentries 提供高级的分析公司,但是只有每个月 89 美金的套餐里你才会享受得到。Sumologic 当然也是一款非常优秀的工具,但是只有你的用户到达百万级别的时候它才成为必要。

▎Sentry

你的 API,网页应用,移动应用都应该把报告、错误、异常情况发送到Sentry。将其整合进来是一件特别简单的事情,你只需要把一些命令行复制黏贴到你的项目中即可。

在 Sentry 设置环节,你同样也可以把错误报告推送到 Slack 的 #prod-errors 频道里。

Sentry 的免费套餐其实就够用了,它允许你处理 5000 个事件。但是如果你的移动应用里有一个涉及数千用户的 Bug,那么它就不太顶事儿了。所以,如果你的团队人员数量大于等于 2 人时,最好使用它的初级套餐,每个月 29 美金。

成本:每个月 29 美金

▎Uptimerobot

这是一项健康度查询功能,你能确切的知道你的服务是否正常工作。

在设置环节,你需要:

在 Uptimerobot 里设置“宕机警告”功能,将信息推送到 Slack 的 #prod-errors 频道中。

目前这款产品不收任何费用

成本:每个月 0 美元

▎Librato

Heroku 本身就为你的 API 提供非常棒的指标跟踪服务,但是它仅限于追踪过去三天内发生的情况。Librato 追踪的时间更长,表盘上的信息也更加全面丰富。

将 Librato 作为一款插件,为你在 Heroku 上的应用进行配置。

对于演示应用来说使用免费的套餐方案。

对于开发应用来说,使用每个月 19 美金的方案,这样你就可以追踪过去 4 个星期里的一系列指标。

成本:每个月 19 美金

是时候算一算总账了!

让我们把刚才所有的费用进行一下整理,算一下每个月的费用花出去多少。

  • 末端在Heroku 上的服务,每个月 57 美金
  • 在 Compose 上的数据库服务,每个月 62 美金
  • 在Netlify 上专为网页应用提供的服务,每个月 9 美金
  • 域名,每年 50 美金,也就是每个月 4 美金
  • 使用 Papertrail、Sentry、Librato 等监控服务,每个月55 美金

总计:每个月 187 美金

看来,我们已经成功地达成把预算控制到 200 美金之下这个目标了,现在我还有多余的 13 美金可供支配。让我们看看这 13 美金花到哪里,可以提升软件工程效率和质量吧!

我们可以:

  • 为 Git 库准备一个 Bitbucket,它虽然不像 Github 那样流行,但是它可以提供免费的私人代码库供你使用。
  • 每个月 10 美金,可以享受到 JIRA这款产品,它能够作为一个灵活的计划工具和 Bug 追踪器。
  • Codeship提供免费服务,用以自动化你的 API Build。

接下来我还可以列举很多,清单会越拉越长。但是我们应该停下来了,毕竟,上限只有 200 美金不是么。

如果你是一名程序员,不管是出于兴趣,还是真正要创业而去开办一家SaaS 初创公司,我真心希望这篇文章能够为你提供帮助,它作为索引,让你能在最快的时间里寻找到最为正确的工具。

 

Tags:

我要发布评论

来!做第一个写评论的

avatar

wpDiscuz
51Gorwth就是增长黑客交流平台

登陆您的账户

or    

Forgot your details?

Create Account