过去,同学们在应用配置管理面临着各种挑战:多环境配置管理,同一环境下不同集群、不同主机的特性字段配置管理,甚至存在多种配置文件类型并存(KV、二进制文件等)等管理问题。与此同时,如今配置更新的频率愈发提高,在开发和测试环境尤为明显。传统的人工拆包组合部署配置方式过程繁琐、维护成本极高,让开发、测试和运维小伙伴们痛不欲生。
现在,EasyOps 的应用部署系统将启用全新的配置中心,帮助大家轻松走出配置维护的种种困境!
EasyOps 应用配置中心采用集中式的环境配置管理,使用环境-集群-主机的继承式配置方案,同时支持单独对特定集群、主机的特定字段进行个性化配置,发布时自动把管理的KV和模板转换为配置文件,和程序包一并发布,确保现网配置变更安全可控。
为什么需要配置中心?
“配置中心”,顾名思义,就是用来统一管理项目中所有配置的系统。
虽然听起来似乎很简单,但也不要小瞧了这个模块。如果一个中型互联网项目,不采用配置中心的模式,一大堆的各类配置项,各种不定时的修改需求,一定会让开发同学非常头疼且管理十分混乱。我们甚至可以直接用 “一个项目中是否有无采用「配置中心」” 这一粗略的条件,来判断一个互联网研发团队是否规范和成熟。
当没有“配置中心”这个功能时,我们是如何去处理各类配置参数问题呢?
一般是静态化配置
配置文件无法区分环境
配置文件过于分散
配置修改无法追溯
上面只是拿配置文件的形式来举例,有的项目会采用数据库配置,虽然灵活一点,但是依旧不能完全解决上述问题。既然传统的项目配置有这么多弊端,那我们看看“配置中心”的方案是如何解决这些痛点的:
“配置中心”的思路就是把项目中各种配置、各种参数、各种开关,全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就来「配置中心」的接口拉取。当「配置中心」中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
所以,我们应该非常清楚理想中的“配置中心”应该具备哪些特点了:
配置集中管理、统一标准
配置与应用分离
实时更新
高可用
具有上述特性的「配置中心」是如何解决上面传统配置所面临的问题的呢?
采用“配置集中管理”,可以很好地解决传统的“配置文件过于分散”的问题,所有的配置集中在Easyops平台统一管理。
采用“配置与应用分离”,可以很好的解决传统的“配置文件无法区分环境”的问题,配置并不跟着环境走,当不同环境有不同需求的时候,就到配置中心获取即可,极大的减轻了运维部署成本。
采用“页面完成全局或特定配置修改”,当线上系统需要调整参数地时候,配置管理员只需要通过配置中心地一个页面动态修改即可。
高可用,与持续部署天然结合,部署时可自动下发配置文件。
配置中心管理的原理与实践
看了上面的介绍,就能了解“配置中心”的核心功能,其实简单概括就是三点:
实现配置的记录
实现配置的读取、更新、消费
实现配置的查看
但是围绕着这几个核心功能,我们还需要实现实时线上更新,方便使用,有权限管理修改等周边辅助功能,这么看起来,一个完善便捷的“配置中心”就确实是不简单了。
EasyOps配置中心部分应用场景
一、蓝绿部署
功能概述:蓝绿部署的传统做法是通过负载均衡器切流量来实现。这种做法一般研发人员无法自助操作,需要提交工单由运维介入操作,操作和反馈周期比较长,出了问题回退还需运维人员介入,所以回退也比较慢,总体风险比较高。
蓝绿部署也可以通过配置中心 + 功能开关的方式来实现。开发人员在上线新功能时先将新功能隐藏在动态开关后面,开关的值在配置中心里头配。刚上线时新功能暂不启用,走老功能逻辑,然后开发人员通过配置中心打开开关,这个时候新功能就启用了。一旦发现新功能有问题,可以随时把开关关掉切回老功能。这种做法开发人员可以全程自助实现蓝绿部署,不需要运维人员介入,反馈周期短效率高。
二、限流降级
功能概述:当业务团队在搞促销,或者是系统受 DDOS 攻击的时候,如果没有好的限流降级机制,则系统很容易被洪峰流量冲垮,这个时候所有用户无法访问,体验非常糟糕。
所以我们需要限流降级机制来应对流量洪峰。常见做法,我们一般会在应用的过滤器层或者是网关代理层添加限流降级逻辑,并且和配置中心配合,实现限流降级开关和参数的动态调整。如果促销出现流量洪峰,我们可以通过配置中心启动限流降级策略,比如对于普通用户,我们可以先给出“网络不给力,请稍后再试”的友好提示,对于高级 VIP 用户,我们仍然保证他们的正常访问。
三、A/B测试
当我们需要对电商平台的结账 (checkout) 功能进行改版,考虑到结账功能业务影响面大,上线风险大,为了减低风险,我们可以在配置中心配合下,对结账功能进行 A/B 测试。
通过easyOps配置中心,我们可以灵活调整开关,先对新功能进行充分的 beta 试验,再考虑全量上线,大大降低关键业务新功能的上线风险。
实际应用的价值收益
1. 配置中心是微服务基础架构中不可或缺的核心组件,可很大程度上帮助开发人员和运维人员协作管理配置文件。
2. 配置中心有众多的应用场景,能帮助技术组织实现持续交付和 DevOps 文化转型。
……
后续,我们将持续依托EasyOps强大的全生命周期管理能力,在提升整体效能、促进组织协同、实现运维过程透明化、精准化等方面进行更多探索和分享,期待能够为您提供实质帮助。