使用零停机时间重新设计Pinterest的广告投放系统(第2部分)
Ning Zhang; Principal Engineer | Ang Xu; Principal Machine Learning Engineer | Claire Liu; Staff Software Engineer | Haichen Liu; Staff Software Engineer | Yiran Zhao; Staff Software Engineer | Haoyu He; Sr. Software Engineer | Sergei Radutnuy; Sr. Machine Learning Engineer | Di An; Sr. Software Engineer | Danyal Raza; Sr. Software Engineer | Xuan Chen; Sr. Software Engineer | Chi Zhang; Sr. Software Engineer | Adam Winstanley; Staff Software Engineer | Johnny Xie; Sr. Staff Software Engineer | Simeng Qu; Software Engineer II | Nishant Roy; Manager II, Engineering | Chengcheng Hu; Sr. Director, Engineering |
Ning Zhang; 高级工程师 | Ang Xu; 高级机器学习工程师 | Claire Liu; 软件工程师 | Haichen Liu; 软件工程师 | Yiran Zhao; 软件工程师 | Haoyu He; 高级软件工程师 | Sergei Radutnuy; 高级机器学习工程师 | Di An; 高级软件工程师 | Danyal Raza; 高级软件工程师 | Xuan Chen; 高级软件工程师 | Chi Zhang; 高级软件工程师 | Adam Winstanley; 软件工程师 | Johnny Xie; 高级软件工程师 | Simeng Qu; 软件工程师 II | Nishant Roy; 工程经理 II | Chengcheng Hu; 高级工程总监 |
In the first part of the post, we introduced the motivations on why we decided to rewrite the ads serving systems and the desired final state. We also outlined our design principles and high level design decisions on how to get there. In part 2 of the post, we are going to concentrate on the detailed design, implementation, and validation process towards the final launch.
在文章的第一部分中,我们介绍了为什么决定重写广告服务系统以及期望的最终状态的动机。我们还概述了我们的设计原则和高级设计决策。在文章的第二部分,我们将集中讨论详细的设计、实现和验证过程,以实现最终的发布。
Design Principles
设计原则
To recap, below is the list of design principles and goals we wanted to achieve:
回顾一下,以下是我们希望实现的设计原则和目标的列表:
- Easily extensible: The framework and APIs need to be flexible enough to support extensions to new functionalities as well as deprecation of old ones. Design-for-deprecation is often an omitted feature, which is why technical systems become bloated over time.
- 易于扩展:框架和API需要足够灵活,以支持对新功能的扩展以及对旧功能的废弃。设计废弃功能往往是一个被忽视的特性,这就是为什么技术系统随着时间的推移变得臃肿的原因。
- Separation of concerns: Separation of infra framework by defining high level abstractions that business logic can use. Business logi...