Categories
程式開發

微信研發體系下的分佈式配置系統設計概要


本文旨在分析分佈式配置系統的必要性、可行性,及其關鍵約束,並介紹一款基於該系列分析,在微信研發體系下的實踐嘗試。

前言

對很多的業務開發同學而言,對運營素材的處理不是一件輕鬆的事,通常需要定制化的進行數據的清理、格式的轉換、工具的開發。筆者就曾過這樣一段不愉快的回憶,為了導入一次性的近十種類型的配置數據,就耗去了兩天的時間。如果說這段經歷有何價值的話,那就是促使我思考分佈式配置系統,並且在工作中實踐,使自己避免再次陷入如此槽糕的過程中。

本文正是旨在分析分佈式配置系統的必要性、可行性,及其關鍵約束,並介紹一款基於該系列分析,在微信研發體系下的實踐嘗試。

配置的定義

我們清楚軟件建模的本質是對現實世界(人、事、物及規則)的映射,映射的產出物即包括編程系統和配置。配置為我們提供了 動態修改程序運行時行為的能力 ,即常說的“系統運行時飛行姿態的動態調整”,究其根源則是“我們人類無法掌控和預知一切,映射到軟件領域上,我們總是需要對系統的某些功能特性預留出一些控制的線頭,以便我們在未來需要的時候,可以人為的撥弄這些線頭從而控制系統的行為特徵。”

因此,本文所指的配置特指內部運營人員產生的數據(廣義的系統運營人員,包括產品、運營、研發等),並且作為輸入參數而作用於編程系統(包括實時系統、批跑程序以及數據任務等)。

原文鏈接:【https://www.infoq.cn/article/mBZwTHiO9V9SsuWcbFMJ】。未經作者許可,禁止轉載。