赵成的运维体系管理课
赵成
蘑菇街平台技术总监
立即订阅
5576 人已学习
课程目录
已完结 48 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 带给你不一样的运维思考
免费
应用运维体系建设 (11讲)
01 | 为什么Netflix没有运维岗位?
02 | 微服务架构时代,运维体系建设为什么要以“应用”为核心?
03 | 标准化体系建设(上):如何建立应用标准化体系和模型?
04 | 标准化体系建设(下):如何建立基础架构标准化及服务化体系?
05 | 如何从生命周期的视角看待应用运维体系建设?
06 | 聊聊CMDB的前世今生
07 | 有了CMDB,为什么还需要应用配置管理?
08 | 如何在CMDB中落地应用的概念?
09 | 如何打造运维组织架构?
10 | 谷歌SRE运维模式解读
11 | 从谷歌CRE谈起,运维如何培养服务意识?
效率和稳定性最佳实践 (20讲)
12 | 持续交付知易行难,想做成这事你要理解这几个关键点
13 | 持续交付的第一关键点:配置管理
14 | 如何做好持续交付中的多环境配置管理?
15 | 开发和测试争抢环境?是时候进行多环境建设了
16 | 线上环境建设,要扛得住真刀真枪的考验
17 | 人多力量大vs.两个披萨原则,聊聊持续交付中的流水线模式
18 | 持续交付流水线软件构建难吗?有哪些关键问题?
19 | 持续交付中流水线构建完成后就大功告成了吗?别忘了质量保障
20 | 做持续交付概念重要还是场景重要?看“笨办法”如何找到最佳方案
21 | 极端业务场景下,我们应该如何做好稳定性保障?
22 | 稳定性实践:容量规划之业务场景分析
23 | 稳定性实践:容量规划之压测系统建设
24 | 稳定性实践:限流降级
25 | 稳定性实践:开关和预案
26 | 稳定性实践:全链路跟踪系统,技术运营能力的体现
27 | 故障管理:谈谈我对故障的理解
28 | 故障管理:故障定级和定责
29 | 故障管理:鼓励做事,而不是处罚错误
30 | 故障管理:故障应急和故障复盘
31 | 唇亡齿寒,运维与安全
云计算时代的运维实践 (6讲)
32 | 为什么蘑菇街会选择上云?是被动选择还是主动出击?
33 | 为什么混合云是未来云计算的主流形态?
34 | Spring Cloud:面向应用层的云架构解决方案
35 | 以绝对优势立足:从CDN和云存储来聊聊云生态的崛起
36 | 量体裁衣方得最优解:聊聊页面静态化架构和二级CDN建设
37 | 云计算时代,我们所说的弹性伸缩,弹的到底是什么?
个人成长 (5讲)
38 | 我是如何走上运维岗位的?
39 | 云计算和AI时代,运维应该如何做好转型?
40 | 运维需要懂产品和运营吗?
41 | 冷静下来想想,员工离职这事真能“防得住”吗?
42 | 树立个人品牌意识:从背景调查谈谈职业口碑的重要性
加餐 (4讲)
划重点:赵成的运维体系管理课精华(一)
划重点:赵成的运维体系管理课精华(二)
划重点:赵成的运维体系管理课精华(三)
新书 |《进化:运维技术变革与实践探索》
结束语 (1讲)
结束语 | 学习的过程,多些耐心和脚踏实地
赵成的运维体系管理课
登录|注册

14 | 如何做好持续交付中的多环境配置管理?

赵成 2018-01-28
上一篇内容中,我们讲到软件配置中的代码配置和应用配置,这两种配置之间最大的区别就是看跟环境是否相关。由此,就引出了持续交付过程中最为复杂的环境配置管理这个问题,准确地说,应该是不同环境下的应用配置管理。
今天我就结合自己的经验和你聊一聊环境管理的解决方案。

多环境问题

上篇内容我们介绍了应用配置的三种情况,今天我们稍微聚焦一下,以上篇文章中提到的前两种应用配置场景为主进行介绍,也就是平台类的业务。我们一起来看同一套软件在持续交付过程中和交付上线后,多环境情况下的配置管理问题。
我们先从生命周期的角度,对环境做个简单说明,主要包括:
开发环境,主要是在应用或软件开发过程中或完成后,开发人员对自己实现的代码进行单元测试、联调和基本的业务功能验证;
集成环境,开发人员完成代码开发并自验证通过后,将应用软件发布部署到这个环境,测试人员再确保软件业务功能可用,整个业务流程是可以走通的;
预发环境,在真实的生产数据环境下进行验证,但是不会接入线上流量,这也是上线前比较重要的一个验证环节;
Beta 环境,也就是灰度环境或者叫金丝雀发布模式。为了整个系统的稳定性,对于核心应用,通常会再经历一个 Beta 环境,引入线上万分之一,或千分之一的用户流量到这个环境中;
线上环境,经历了前面几个阶段的业务功能和流程验证,我们就可以放心地进行版本发布了,这个时候就会将应用软件包正式发布到线上 。
以上是一个持续交付体系中必须要有的几个环境。环境建设,又是一个比较大的话题,我们后面会专门来讲,今天就聚焦在环境配置管理上。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《赵成的运维体系管理课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • 贺明
    集中用携程开源的apollo这类配置中心来管理呢?定个配置型的命名规范和集中管理中心,是不是解决之道
    2018-05-27
    3
  • 王德宝@me
    我们是在第一种基础上做的改进,不同环境有不同的配置文件,但不是打包替换,是不同的环境有系统的环境变量来区分,应用自然就知道加载哪和配置文件了,请老师评价这个方案

    作者回复: 运行时的参数这样做是没问题的,主要是启动时依赖的参数,这个必须是启动前也就是构建后的软件包中,就必须确定好的,所以这部分就要根据不同的环境构建不同的包

    2018-03-15
    1
  • Tom
    淘宝的配置中心还有一个叫diamond的,webx和diamond都是基于JAVA的;现在的业务系统有多种语言,如果是其他语言比如php,python,nodejs和go,这种分布式配置中心可以只使用一个?还是说要根据每个编程语言各自做一个?

    作者回复: 一个就够了,服务端提供不同的语言的client或者http接口就好

    2018-03-05
    1
  • 张青
    AutoConfig这种思路的静态配置中心,是目前见到最好的处理多环境配置的方案。

    作者回复: 有实践经验吗?可以简单分享下,这块业界分享的确实不多。

    2018-02-06
    1
  • 阳生
    我最近在折腾配置中心,比较纠结服务怎么做自动注册,还是说手动配置再进行注册

    作者回复: 可以先思考下你要解决的问题是什么。

    2018-01-29
    1
  • 微笑
    老师,想问一下,文中“再就是,这里需要针对不同环境进行单独的构建过程,也就是要多次打包,这一点是跟持续发布的指导建议相悖的。”,为什么说不同环境多次打包和持续发布是相悖的
    2019-08-09
  • 牧野静风
    啊,现在还停留子啊项目配置全部在代码里,也是分环境的配置,如果能将配置做成专门的服务,可能会更好点,专门的模块来配置
    2019-07-26
  • 无争就是yk
    在开源的分布式配置中心上面二次开发管理界面应该可以满足不同环境的配置问题,比如disconf
    2018-06-14
  • 王德宝@me
    接我之前的留言,是应用启动时会根据不同的环境变量来加载指定的配置文件。包是同一个。
    Spring有这个机制,spring.profiles.active

    作者回复: 针对spring的配置可以这样做,但是有很多配置我们并不是通过spring管理的,这套机制就没法用起来,不过这个思路还是值得借鉴的。

    2018-03-26
  • manatee
    想请问下老师,如果在同一个环境下有多个版本在进行同步开发那这个多分支的配置应该如何处理呢

    作者回复: 每个分支,单独一套配置喽。

    2018-01-30
收起评论
10
返回
顶部