Etsy如何及为什么要手机如何迁移到新手机API优先的架构

在QCon纽约2016大会上Etsy软件工程师Stefanie Schirmer介绍叻其公司如何成功转换到API优先的架构,实现了多设备支持解决了服务器端性能问题,被开发团队迅速采用

Etsy工程团队已经名声在外,他們设计的架构方便了,让他们可以因此,你可能会觉得意外几年前,他们还在研究解决严重的性能问题

他们的目标是1000毫秒以下,洇此他们需要降低每个客户端请求的服务器处理时间。遗憾的是单线程的PHP世界轻易不允许并发API调用,只能缓慢地顺序执行Schirmer及其同事需要解决如何实现并发,否则他们就会冒着永久性性能问题的风险。更为复杂的是他们并不清楚,性能退化的根本原因是后台问题還是客户端请求的性质。

遗憾的是开发团队不能只是致力于提高性能。除了要支持和升级Etsy.com网站外移动应用的新特性需要从平台上增加鈳扩展性。这两个问题的解决方案需要API团队采用一种新的设计哲学同时要保证它们是开发团队所熟悉且易于为他们所使用的API。

Etsy使用“元端点(meta-endpoints)”创建了一个两层的API而不是依赖于一个有一组扁平端点的API。和及的模式类似Etsy的每个元端点都聚合了多个其他的端点。这让服務器端可以将底层的通用资源组合成设备或视图特有的资源

整个技术栈构成了一棵多层的树,如下图Schirmer的幻灯片所示面向客户的“订制(bespoke)”主页被裁剪成了特定的视图。它使用了一个并行元端点层后者反过来又调用了原子组件端点。只有最底层的组件(它们不是元端點)能够和数据库交互

元端点层降低了组合网站和移动应用订制视图的复杂性。不过多个元端点单线程处理无法满足性能需求。Etsy工程師利用cURL发起并行HTTP调用甚至是以满足需求。自定义的监控工具在请求通过框架扇出时将其调用层次可视化让开发人员可以定位故障点。

怹们还创建了其他的内部工具用于简化新API的应用。Etsy首先自动化了API客户端(它知道每个端点的具体参数)生成然后又配上了文档,简化叻开发人员的学习曲线团队没有采用一种通用的培训方法,而是参加实验小组、代码实验室、午餐和学习研讨班以及与有经验的开发囚员结对。

Schirmer认为她讲述的故事是一个关于架构变革的案例,可以移植到其他系统与API辅助工具和服务相关的工作有助于平台团队将新API“賣给”开发人员。为此Schirmer及其同事一直保持着与开发团队的沟通,以确保框架在不断演化的过程中可以照顾到所有人的利益

我要回帖

更多关于 手机如何迁移到新手机 的文章

 

随机推荐