Remote configuration management for apps on billions of mobile devices—Part (6) of stories behind Meta's systems research papers
CQ Tang (Chunqiang Tang)
AI, ASIC/GPU/Accelerator, LLM/Llama, hardware/software co-design, HPC, IaaS, PaaS. Hiring PhDs and managers.
This post is part 6 of the series that introduces Meta’s systems research papers to a broader audience. Specifically, this post is about the following paper at NSDI’24: MobileConfig: Remote Configuration Management for Mobile Apps at Hyperscale.
Did you know that your Instagram, Facebook, Messenger, Quest VR, or Ray-Ban glasses may change the app appearance or enable/disable a feature without you taking any action because they are managed remotely via configs? Moreover, did you know that some features of your app are personalized specifically for you, once again, via the use of remote configs? Finally, did you know that today some people are still actively using Android 4, which was released in 2011, while others are still using an ancient, 7-year-old version of the Facebook app? This paper sheds light on these interesting topics and more.
Paper Abstract
While software configuration management is a ubiquitous practice in the industry and has been extensively studied, prior research has focused solely on desktop or server applications. This paper presents MobileConfig, perhaps the world’s largest configuration management system for mobile apps. It has been in production since 2015 and manages apps running on billions of devices, including Facebook, Instagram, Messenger, and AR/VR/glasses apps. Every day, Meta’s developers make a staggering number of live configuration changes, often in the thousands, to remotely control mobile apps, driving them to change runtime behaviors without requiring app code updates. These configuration changes serve diverse purposes such as A/B testing, feature rollout, and app personalization. We discuss how MobileConfig addresses several challenges unique to mobile environments, including (1) the lack of data consistency models that can simultaneously ensure both fast app startup and configuration data freshness; (2) the risk of misconfiguration impacting billions of app users; and (3) the proliferation of mobile client SDKs needed to support diverse mobile platforms, programming languages, and configuration use cases.
领英推荐
Motivations behind MobileConfig
MobileConfig was initiated in 2014 as part of Facebook's "mobile first" pivot at that time, which reminds me of Meta's current "all-in-on-AI" pivot. The primary issues MobileConfig aimed to address were (1) app cold start time, and (2) the proliferation of fragmented config-management SDKs for various platforms (e.g., iOS, Android, etc.) and use cases (e.g., feature gating, A/B testing, etc.).
The cold start time problem was resolved through a highly optimized implementation as well as the concept of "progressive consistency," which allows the app to start up without blocking on fetching configs while maintaining highly consistent config values, as described in Section 3.3 of the paper.
The SDK proliferation problem was tackled by writing the majority of the code in cross-platform portable C++ code and introducing one level of indirection on the server side to dynamically map different config parameters to various backend implementations that support diverse config use cases.
If you are interested in these topics and beyond, as wells the lessons learned from running MobileConfig on billions of mobile devices, please read the full paper.
Applying AI to accelerate climate solutions @ Aire Labs, ex Meta AI, Microsoft #OpenDoorClimate
11 个月Nice to see this work shared broadly CQ, Thawan and team!