持续交付36讲
王潇俊
携程系统研发部总监
立即订阅
7125 人已学习
课程目录
已完结 41 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 量身定制你的持续交付体系
免费
基本概念 (3讲)
01 | 持续交付到底有什么价值?
02 | 影响持续交付的因素有哪些?
03 | 持续交付和DevOps是一对好基友
配置管理 (4讲)
04 | 一切的源头,代码分支策略的选择
05 | 手把手教你依赖管理
06 | 代码回滚,你真的理解吗?
07 |  “两个披萨”团队的代码管理实际案例
环境管理 (6讲)
08 | 测试环境要多少?从现实需求说起
09 | 测试环境要多少?从成本与效率说起
10 | 让环境自己说话,论环境自描述的重要性
11 | “配置”是把双刃剑,带你了解各种配置方法
12 | 极限挑战,如何做到分钟级搭建环境?
13 | 容器技术真的是环境管理的救星吗?
构建集成 (5讲)
14 | 如何做到构建的提速,再提速!
15 | 构建检测,无规矩不成方圆
16 | 构建资源的弹性伸缩
17 | 容器镜像构建的那些事儿
18 | 如何做好容器镜像的个性化及合规检查?
发布及监控 (6讲)
19 | 发布是持续交付的最后一公里
20 | Immutable!任何变更都需要发布
21 | 发布系统一定要注意用户体验
22 | 发布系统的核心架构和功能设计
23 | 业务及系统架构对发布的影响
24 | 如何利用监控保障发布质量?
测试管理 (3讲)
25 | 代码静态检查实践
26 | 越来越重要的破坏性测试
27 | 利用Mock与回放技术助力自动化回归
持续交付平台化 (3讲)
28 | 持续交付为什么要平台化设计?
29 | 计算资源也是交付的内容
30 | 持续交付中有哪些宝贵数据?
持续交付移动App (3讲)
31 | 了解移动App的持续交付生命周期
32 | 细谈移动APP的交付流水线(pipeline)
33 | 进阶,如何进一步提升移动APP的交付效率?
实践案例 (4讲)
34 | 快速构建持续交付系统(一):需求分析
35 | 快速构建持续交付系统(二):GitLab 解决代码管理问题
36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题
37 | 快速构建持续交付系统(四):Ansible 解决自动部署问题
特别放送 (2讲)
持续交付专栏特别放送 | 答疑解惑
持续交付专栏特别放送 | 高效学习指南
结束语 (1讲)
结束语 | 越痛苦的事,越要经常做
持续交付36讲
登录|注册

10 | 让环境自己说话,论环境自描述的重要性

王潇俊 2018-07-26
在前两篇文章中,我从现实需求、成本与效率的角度,分析了对环境管理者来说最重要的一个问题,即到底需要多少套环境来支撑持续交付。如果你已经从中能掌握了一些环境管理的窍门,那么你基本就可以搞定对环境管理的宏观把控了。
但是,除了宏观的把控和管理外,即使只有一套环境,你还是有可能陷入无穷无尽的细节工作中。因为在日常的环境管理过程中,环境配置才是工作的重头和难点。那么今天,我就来跟你详细说说有关环境配置的问题。
从我的实践经验看,要想把环境配置这件事做好,就是要做到让环境自己能说话。
要做到这点,首先需要定义配置的范围。
从面向的目标来看,环境配置大体上可以分为两大部分:
以环境中每台服务器为对象的运行时配置;
以一个环境为整体目标的独立环境配置。

服务器运行时配置

以一个 Java Web 应用为例,需要哪些运行时配置呢?
安装 war 包运行依赖的基础环境,比如 JDK,Tomcat 等。
修改 Tomcat 的配置文件,关注点主要包括:应用的日志目录,日志的输出格式,war 包的存放位置。Tomcat 的 server.xml 配置包括:连接数、 端口、线程池等参数。
配置 Java 参数,包括 JVM 堆内存的 xmx、xmn 等参数,GC 方式、参数,JMX 监控开启等。
考虑操作系统参数,比较常见的一个配置是 Linux 的文件句柄数,如果应用对网络环境有一些特殊要求的话,还需要调整系统的 TCP 参数等配置。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《持续交付36讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • 韭菜 罗聪聪 ChaseLaw
    感觉还是没有说到“how”
    2018-08-14
    6
  • 有道测试组
    环境问题、服务路径, 服务配置,也经常是一些历史遗留问题。没有从上之下的政策,一般人都不愿意接受改变带来的风险,
    需要从clone操作系统开始, 定制什么服务用什么clone模板, 里面包含特定的依赖包, 对于服务需要标准化,能够用统一的编译方式,统一的启动方式,启动路径,统一的代码配置自动生成方式。
    有些项目中既有底层c++,又有上层web接口,还有app端等,依赖ant的, gradle 编译的,cmake等, 这样要做到端到端的持续交付确实在环境部署上就是一个大问题
    2018-12-26
    3
  • robin
    感觉基本上都是问题陈述,没有给出解决方案,或者什么场景下做什么事,包括每次给的思考题,也没有一个解说

    作者回复: 标准化,约定,自描述,就是解决环境配置问题的方案,文章中应该也都讲到了,关于具体场景,我们可以一起讨论,针对你的问题来解答:)

    2018-09-11
    2
  • 孙磊
    目前做法,开发测试环境使用自建私有云,使用ansible做配置中心(克隆生产环境ansible代码进行修改),开机器~推统一基础配置~推环境和代码部署,之后就是开发测试自己玩了。

    作者回复: 基本思路很正,逐步再增加一些辅助配置工具,方便开发测试自助调整就更棒了

    2018-10-06
    1
  • 旭东
    配置 Java 参数,包括 JVM 堆内存的最大最小方式,GC 方式、参数,JMX 监控开启等。
    ==================
    请问JVM堆内存的最大最小方式是什么?

    作者回复: 笔误了,xmx和xmn了,至于设置多少,是非常复杂的问题,要具体应用,具体分析

    2018-08-02
    1
  • 图·美克尔
    如果老师在讲了理论之后再讲一套最佳实践就更棒了
    2019-08-29
  • 春之绿野
    没有人做这些事,都是辅助项目的同事各自管自己的环境
    2019-06-11
  • 小豪
    那么像ansible这种自动化运维工具在建立环境自描述过程中能扮演什么样的角色呢

    作者回复: ansible还是很有作用的,通过同步保持环境的收敛是它的长处,但是环境个性化却不是,环境分工越细,越不一致它的维护难度就越大。之后发布的章节中关于immutable,我也会从理论角度告诉大家,为什么ansible有些事情不合适用它

    2018-08-08
  • 心在飞
    我们会先制作一个“金映像”,安装没法自动化的应用,比如Visualstudio, 然后通过Chef做环境配置管理,每台被管理的Chef client 每隔30分钟就会和Chef server同步,确保它们运行在正常的状态。通过修改Chef recipe来同步。
    2018-07-27
收起评论
9
返回
顶部