你有没有走过另一条路,我指的是大多数人使用产品A的地方,然后通常会长大,或者进化到使用产品B,然后你就走另一条路了呢!。一个虚构的B到A的例子是拼车应用程序-&>;在手机上呼叫出租车服务。
在软件世界里,当你走另一条路时,你会注意到所有的博客帖子,在线帮助一点帮助都没有。他们认为你只会去A&G;B。
我发现的例子有:从AWS迁移到Heroku进行托管,或者从Ledger-CLI迁移到YNAB4进行预算。
我将在本文中介绍这些示例中的第一个。我将讨论从AWS到Heroku的tryjobalert ts.com站点托管和数据处理。
我猜你们中的许多人都已经尝试了慷慨的AWS免费服务一年,然后在第13个月收到了第一张账单,然后说:“哦,错了。”好的。这种情况发生在我身上,促使我剔除或移出了大量运行在AWS中的东西。另一方面,我惊讶于SES是多么便宜-我想我的账单是0.10美元,而Elastic Search是多么昂贵,我的账单是50美元,一个很少使用的集群。如果看到这些数字反转,我不会感到惊讶。
然而,在账单之前,我已经开始将EC2服务器移到Heroku。原因不是成本-Heroku通常要贵一点,因为它在云基础设施上提供额外的包装和服务。我搬家的原因很明显,那就是我很懒。其是用于好时间优先排序的码字。我不想管理操作系统、服务器或配置项管道。取而代之的是,我想要一位专家为我打理这件事,每月额外支付5美元。
我从EC2转到Heroku并不是一个深思熟虑的合乎逻辑的决定,因为我是坐在真皮沙发上沉思软件架构的。这是一个情绪化的决定,因为我的节点应用程序崩溃了,我为tryjobalert ts.com提供的所有服务都停用了5分钟,而且还在继续计数。如果有人试图编辑他们的设置,却得到一个错误页面,该怎么办?真让人难堪。虽然这几天并不少见,但我并不想成为那个人。
接下来该怎么做?那么,在历史悠久的解决方案";关闭它,然后再打开";中,我重新启动了EC2实例和BAAM!节点应用程序再次崩溃。不管它做了什么,它以这样的方式取出了机器,我无法通过SSH连接到它来解决问题。在这一点上,我仓促地决定搬到赫鲁库去。我只是不忍心修复这些狗屎当我想编码。我知道这种情况可能会一次又一次地发生,我很可能会在向库伯内斯缓慢行进的过程中结束。
这是不是一个仓促的决定?嗯,也许是这样,但很长一段时间以来,这一直是一种潜意识中的想法。设置nginx、let‘s encyrpt、PM2等等有点有趣,但感觉像是从我真正想要做的事情上分心。我很高兴有别人来处理这件事,如果所有的东西都死了,那就再来一次吧。我会把精力集中在代码上,非常感谢。
我试了试赫鲁库。我想,让我们看看这有多容易。如果它能正常工作,我就换一个。否则我会下载K8(开玩笑!)。当网站像灯光一样熄灭时,我正在做这件事,没有人可以访问他们的设置,没有人可以注册或接收电子邮件-所以不要有压力。
搬到赫罗库非常容易。我只需要创建一个名为Procfile的文件,其中包含以下内容:
在Heroku用户界面中设置一些东西-秘密之类的。我还必须将port express运行的端口从固定的端口3001更改为Heroku作为环境变量提供的数字。在15分钟内,我说我让它工作了,没有DNS条目。
我让事情保持了几个星期。然后,我从AWS收到了比预期更高的账单,其中包括一笔相当大的PSQL费用。没有什么太令人震惊的东西,但它看起来并不物有所值。
我注意到Heroku提供了每月9美元的业余爱好基本PSQL,最多有1000万行。事实证明,我在文本字段中使用了相当大的空间,但没有使用太多行。所以我迁移到了那里。是的,令人难以置信的是,为了省钱,我正在将一些东西从AWS迁移到Heroku。
这个限制很奇怪,它基于行数而不是存储大小。我想知道有多少优秀的数据可以存储为10M行的BLOB-也许我应该保持沉默,因为Heroku产品负责人可能正在阅读。
我在网上搜索了移动数据的最佳方式。我喜欢Stack Overflow,因为如果有人有过战争故事,你会听到它,而不是亲身经历。然而,网上的大多数建议是如何将你的数据从Heroku转移到AWS。走另一条路。
因此,我尝试了几种方法。事实证明,使用psql命令行工具pg_dump和pg_restore非常容易。它第一次起作用了,花了大约30分钟的时间-大部分时间是我在做家务,同时等待PG_Restore来做它的工作。
(如果它对任何人都有帮助,这里的提示是不要使用Heroku CLI,从Heroku门户获取连接详细信息,并使用psql标准工具。)。
令我惊讶的是,Heroku在PSQL数据库上竟然更便宜。这可能是因为它们不像RDS那样提供强大的功能,尽管它们在一定程度上使用了AWS--也许它们自己管理虚拟机。
这可能是Heroku乐于在Hobby基本层上损失一点钱,或者他们比AWS在RDS中更积极地共享资源,所以在负载下它会更快崩溃。
Heroku的业余爱好Basic PSQL不提供回滚功能,这可能是它便宜的另一个原因。这意味着我需要自己处理备份,但是,通过定期转储数据库,这可以很容易地实现自动化。
我在搬到Heroku时犯的一个大错误是尝试使用免费的dynos。仅对非生产MVP执行此操作。通过使用免费的SSL,我不得不用Cloudflare做大量的工作来设置SSL,而且我从来没有让它真正工作过。
然后我意识到我无论如何都需要付费的dynos,因为免费的dynos不能重新启动(!)。在没有部署的情况下。所以我升级了,然后对SSL进行了排序。不需要云耀斑。如果我一开始就这么做了,我就可以省去几个小时令人沮丧的DNS黑客攻击。
这永远是一条微妙的界线。我的意思是,你尽量省钱,但有时你事先并不知道免费层陷阱是什么。也许Heroku可以让这一点变得更明显,但他们确实警告说,免费的dynos主要是供业余爱好使用的,所以足够公平。
在这一点上我听起来像个Heroku推销员。市场上还有其他平台即服务产品。我在2014年刚刚使用过Heroku,我喜欢它仍然存在,所以我使用了它。不过,你也可以有更好的选择,去看看吧。或者,也许像AWS这样的常规旧云就是您一直需要的。
无论如何,你可以选择另一条路,选择对你正在做的项目有意义的东西。
加入JobAlerts,从精心策划的优秀来源名单中获得免费的每日电子邮件,其中包含最新的技术工作。点击这里了解更多信息。