1. 数据分析网首页
  2. 行业资讯

都说数据库是“监狱”,不妨看看Expensify是如何“越狱”的

为什么许多初创企业在数据库体系架构问题上一直犹豫不决?

都说数据库是“监狱”,不妨看看Expensify是如何“越狱”的

当财务管理公司Expensify首先设计出自己的数据库体系架构时,它实际上是为大多数人打造了本公司的商务卡。金融机构对于企业商务卡的签发要求很严格:毫秒以内的响应时间、实时进行复制的多个服务器。此外,每一笔交易都需要登录并且认证。在当时,对于初创企业来说,建立一个企业级的高级体系结构可谓是天方夜谭。初创企业往往意识不到自己早期的决策会带来多大价值。而只有在事后回顾时,David Barrett才意识到正是Expensify数据库体系架构建立早期遇到的限制才为它带来了关键性的竞争优势。

Barrett担任Expensify创始人以及首席执行官已经有八年多时间了。在此期间,他发现加大对于早期数据库设计的投资力度会给企业带来优势。这些优势不仅体现在产品功能上,它们还会为企业带来激进的商业模式。这样的商业模式不同于竞争对手,因而可以帮助公司吸引顾客。2015年,公司增长率超过120%,超过竞争对手近70%,目前,这家创企帮助了2万多家企业进行财务管理。Barrett将公司取得的发展成就主要归结于技术决策,尤其是公司强大的数据库体系架构。

在此篇独家采访当中,Barrett解释了初创企业在建立数据库体系架构时是如何做出具有危害性的默认选择的并且介绍了企业可以避免的一些具体错误。他分享了让企业在技术以及商业模型上取得升级和成功的三个关键步骤。最后,他还分享了如果你想要改变自己的数据库体系架构,那么你该如何在中途进行正确的选择。

为什么许多初创企业在数据库体系架构问题上一直犹豫不决

初创企业都会被告知要以数据来驱动公司的发展,但是他们中很少有人知道这对于做出关键性技术决策意味着什么。“当你开始起步的时候,你既没有数据也没有顾客。你所做的一切决策都能适用单个数据库和网页服务器。你会选择自己之前使用过的工具亦或是当下流行的工具,然后期待一切都能顺利。”Barrett这样说道,“但是当你发展企业的过程中,你会逐渐需要更多的服务器,这是因为单个服务器的表现以及准确性都会有所欠缺。因此,你会把一个又一个服务器塞进自己唯一的数据中心里。”

下面是此方法困住许多初创企业的原因:

工具选择太多。每当有人出现在电影《飞屋环游记》的主角道格的视线里,他都会在说完半句话后停下来,移开自己的眼睛并且大叫一声“松鼠”。千万别和道格一样。“大多数的公司都会选择使用自己最为熟悉的工具。这是稳妥的选择,这也可以将风险降低到最小。不幸的是,人们只会对过去的事物感到熟悉,而世界属于未来。”Barrett这样说道,“大胆的公司会选择抽身而出,从局外人的角度分析哪些是更合适自己的新工具。这样的选择也不错。但是有太多的公司误把‘流行’当做是‘更合适’,然后选择了一个当下流行但还未经验证的技术。这样的做法会让公司以缓慢而痛苦的方式走向失败。”

对于任何一家新的初创企业来说,它们面临的关键性挑战就是要保留过去的优势并且直面未来,同时要远离包含潜在问题的前沿技术。

你不是谷歌。这不是说你无法做到像谷歌一样成功,只不过是希望你别在一开始就抱有这样的臆想。新创企和谷歌需求一样的可能性微乎其微。“市面上确实有一些不错的数据库可供选择,比如说Postgres。但这些数据库已经不再那么出色了。有人也许会激动得表示谷歌采用的数据库技术多种多样。我想要成为谷歌一样的企业,那么我就去使用它的技术。”

但是人们忘记了谷歌能发展其技术基础的原因在于它运营着全球最大的搜索引擎。

你的公司可以每天复制互联网吗?如果不可以,那就别去模仿谷歌的数据库体系架构。

如何能辨别数据库体系架构是否适合自己呢?

复制自己崇拜公司的技术基础,这一做法会带来很大的问题,这是因为你自己公司的技术基础与你崇拜的公司的技术基础很有可能会相差甚远。它们做出的一些决策有可能会限制你的发展。下面是在设计数据库体系架构时降低这种风险的方法:

别因数据而昏了头。在没有考虑自己真正需求的情况下,你很容易被数据库的表现情况所迷惑。当你听说数据库可以分布到1000多个计算机当中并且可以处理以拍字节为单位的数据时,千万别把持不住自己。首先,请问问自己:我预计企业会真正拥有多少数据呢?对于普通初创企业来说,它们在几年内需要多个服务器的可能性会比较小。

优先维护,而不是扩充容量。“如今,市面上最便宜的戴尔服务器采用的是双核2.8GHz处理器以及500GB的RAID存储量,价格仅为700多美元。升级到八核3.7GHz主机、配备64GB的RAM以及10TB的存储量,这大概需要3200美元——远远低于Expensify每个月花在咖啡上的钱。大部分初创企业都会在廉价服务器出现容量不够的问题之前就已经倒闭或是被收购了。不论你是租用还是购买硬件,容量对于绝大部分初创企业来说都不是问题。但是维护问题却必须重视。倘若你仅有的服务器出现问题或是你需要升级,那么你在重新启动服务器之后会发生什么呢?你的整个服务都会不复存在。务必记住:计算机非常便宜,请多准备几个计算机。这并不是为了扩充容量,而是要预防服务器出现问题。

图片1

Expensify的创始人兼首席执行官David Barrett

仔细关注安全问题。Barrett表示大多数的流行新数据库都是依靠网页服务器代码提供安全性保证的。但问题是网页服务器是最容易受到入侵的,这是因为服务器直接与互联网相连。因此,黑客可以绕过安全措施,从宽松入口直接进入数据库。存储过程则是在数据库内部进行的,你可以在数据库内部部署安全防护。由于大多数的初创企业对此不知情(尤其是消费者公司),它们选择的都是一些不太安全的技术。当企业有了消费者之后,如果它想让服务器在不停工的前提下升级安全性能,那么此过程需要的成本远比一开始就做好安全准备工作要昂贵得多。

那么初创企业具体应该怎么做呢?

在早期阶段和发展阶段,每一家创企遇到的情况都不同,不过Barrett根据经验给出了一个方案,该方案应当适用于多数寻求智能数据库体系架构的科技公司。下面是具体做法:

从建立三个数据中心开始。考虑到如今的技术可以做到这一点,Barrett认为每一家初创企业在创建数据库体系架构的第一天就应该设立三个数据中心。“三是一个神奇的数字。”他这样说道,“一个不够好,因为单一数据库出问题是迟早的事。不管是什么原因,数据库不可避免会出现问题。两个数据中心则会出现‘裂脑综合征’。如果其中一个数据中心暂时或是永久出了问题,那么大家都会认为另一个也出了问题,这就意味着大家需要进行重复修复。”

有一个时钟,你总是可以知道时间。有两个时钟,你永远也不知道时间,这是因为你不知道究竟哪一个时钟是准的。

因此选用三个数据中心是最合适的做法。“这意味着不论何时,就算一个数据中心崩溃了,还有两个可以运作。二就相当于是一个法定数目,可以凭此来制定决策。”Barrett这样说道。

找到并且使用复制技术。为什么多数初创企业不会选用三个数据中心呢?这是因为建立三个数据中心意味着你在获取数据之前就需要解决数据的复制问题。每一个数据中心里的服务器需要不停和其他数据中心分享数据。

市面上已经有一些工具可以帮助不同数据中心内的服务器进行同步处理,但是开放源代码且易为采用的工具才刚刚出现。“我曾开发过P2P软件,所以我们决定自己开发一个解决方案。最终的技术成果叫做Bedrock,。无需Oracle或是MySQL的复杂操作,Bedrock就可以轻松完成实时复制。”Barrett这样说道。

Expensify计划将这项技术免费提供给创企。他们花费了八年时间不断进行完善,如今这项技术已经足够强大,可以应对现实世界的诸多问题了。

决定是否要分隔数据。从不同数据中心里选好三个服务器并且选好复制技术,之后你需要决定是否要分割数据。分割意味着将数据库分割成不同的独立部分。这一选择将会影响企业未来的很多决定。

关于是否要分隔数据,你不妨问问自己:我是想让每一位用户都可以和其他用户分享数据呢?还是想将他们分割在不同的群组里?

几乎所有人都会在一开始选择“分离群组”,这是因为从概念上来说,这是最简单的。不管是消费者产品还是企业产品,用户之间的关系是显而易见的。

但是这样做可能会带来一定风险,比如说:未来某一天你遇到了一个用户案例,它将两个你之前从未想过会有所联系的人联系在了一起。那么这个时候“分离群组”的模式就崩溃了。可供选择的另一个方式就是:假设任意两个用户有可能会在未来需要分享数据,然后在建立数据库体系架构的一开始就设计一个分享数据库。当然,此举后续的维护工作也会较为复杂。

走上正途的指向标

不是每一家初创企业都有机会重新开始。如果你已经做出了一些决定(且不论是有意还是无意),那么以下这些办法可以帮助你的企业回归正途。

1.选用一个可以在多个可用区复制的数据库。

2.试试Expensify的复制技术。

3.从存储过程入手。这种做法更加安全、能保证更好的数据分层并为终端用户提供更好的体验。

总结

大多数人不会觉得建立数据库体系架构是一件很酷的事情。但在你获得客户以及数据之前,这却是一项必不可少的准备工作。你是如何布置、升级数据库并且保证数据安全性的,这些问题不但会影响你的技术,还会影响你公司商业模型的扩展。

来自:猎云网

链接:http://www.lieyunwang.com/archives/228197

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

发表评论

登录后才能评论

联系我们

如有建议:>>给我留言

QR code