
不通过可观测性扩展系统的经验教训
|
33
收到了
5
个不同系统的告警。我选择改用
Icinga/Nagios
和
Ganglia
,因为这些是我最熟
悉的工具。
Parse
是一个有趣的团队,因为它在许多方面都非常领先(
2013
年被
Facebook
收购)。
在“微服务”这个名称出现并被人人推崇之前,我们就有了微服务架构。我们使用
MongoDB
作为数据存储,并与它一起成长:开始时,还只是
2.0
版本,每个副本集只有
一个锁。我们一直用
Ruby on Rails
进行开发,而且必须用猴子补丁(
monkey patch
)来
让
Rails
支持多个数据库分片。
我们有复杂的多租户架构和共享租户池。在早期阶段,团队只考虑更快的开发速度,这
就是全部。
我想在这里停下来强调,先关注开发速度是正确的做法。当然因为这个决定,我们做出
了许多早期选择,后来不得不进行重构。但大多数初创公司不会因为选择错误的工具而
失败。我们需要明确一点:大多数初创公司确实失败了。他们失败是因为他们的产品没
有需求、他们找不到适合的产品
/
市场、客户不喜欢他们创造的东西或者时机不对等。
选择一个使用
MongoDB
和
Ruby on Rails
的堆栈,使我们能足够快地进入市场,从而让
客户感到高兴,尽快为产品付费。
大约在
Facebook
收购
Parse
时,我们托管了
6
万多个移动应用程序。两年半后,当我
离开
Facebook
时,我们托管了
100
多万个移动应用程序。但早在
2012
年我第一次加入
时,崩溃问题就开始显现了。
Parse
在我加入几个月后正式推出。我们的流量翻了一番 ...