Square如何支持快速创建服务

创投 2020-01-10 15:44:55

Square是一家快速发展的公司,它提供iOS和Android应用程序,使商家能够从智能手机中直接接受信用卡支付。它还扩展到面向服务的体系结构中,以便在执行文档的同时方便地创建新的服务。

几周前,在2012年RubyConf上,Square的Chris Hunt详细描述了Square的开发人员可以快速创建符合公司标准和流程的新服务的过程。(见下文视频)根据他所介绍的会议,亨特提供了他和他的团队如何基于Ruby构建服务的地图,目标是在主要基于Java服务的环境中运行。

亨特说,Four的API作为一种支付服务运作良好,但该公司正在迅速扩大其能力和服务的范围,因此现有的基础设施正在受到影响。他说:“我们说‘哇,也许我们现在就想给人们发送收据,这样用户就可以登录查看他们的支付历史,并对他们进行分类和搜索,以及诸如此类的东西。所以我们在同一个Rails应用程序中增加了10个控制器和一堆API。它开始变得非常大,用一个单片Rails应用程序。如今,它拥有183个控制器、197个应用程序模型和65.7万行代码。”

因此,增加功能需要几天时间,而且需要在低峰期完成。亨特说,解决办法是部署“小型服务,而不是为我们仍在使用的现有应用程序添加功能。”Square的团队已经可以访问预先构建的框架,这些框架由构建服务的所有基本元素组成,包括监控和安全。所有服务都部署到运行在其基础设施上的Java虚拟机,支持多种语言,包括Jruby和Python。

亨特说,Square的服务部署过程是文档驱动的。这是通过一个名为“fdoc”的机制来实现的,这是为了纪念漫画《未来》中的法恩斯沃思教授。fdoc需要所有服务的文档。”fdoc看了所有的请求。如果它没有被记录下来,那么它就会破坏构建,”他说。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢