DevOps 入门

DevOps 是什么?企业该如何建设 DevOps 能力?我们必须在数字化转型的背景下加以考察,具体来说包含业务交付和系统运行两个方面。

第一:持续顺畅高质量地交付有效价值。它的目的是缩短从业务想法的提出到实现和交付的时长,使这一过程更加顺畅和精准。数字化的组织,要围绕这一目标构建技术工程体系和协作模式,消除业务需求交付过程中的一切阻碍和等待,让 IT 交付节奏,跟上业务发展的需要。

第二:极致弹性和韧性的系统运行。IT 系统必须满足业务运营的要求,具备极致的弹性和韧性。弹性是指它随业务负载自动、实时的扩缩容,以精准的弹性和合理的成本满足业务;韧性指的是确保系统安全、合规和稳定的运行,实现系统运行的连续可用性和安全稳定。

《精益思想》一书将精益定义为:有效组织人类活动的一个新的思维方法,目标是消除浪费,以更多地交付有用的价值。书中进一步总结了精益的 5 个原则,同时也是精益的 5 个实施步骤:

  1. 定义价值:站在用户的视角定义什么是价值,并把它描述为具体产品或服务;
  2. 识别价值流:识别和映射创造价值的流程步骤,消除不增加用户价值的步骤和活动;
  3. 让价值持续流动:让用户价值在流程步骤中流动起来,使它们持续、顺畅地流向最终用户;
  4. 用户价值拉动:由用户价值拉动流动,避免不带来用户价值的浪费
  5. 精益求精:不断重复 1 到 4 步。追求完美的价值和价值流动,消除过程中所有浪费。

在传统的 IT 组织下,开发团队(Dev)和运维团队(Ops)之间诉求不同——开发团队(尤其是敏捷团队)追求变化,运维团队追求稳定。双方往往存在利益的冲突,比如,精益和敏捷的团队把持续交付作为目标,而运维团队则为了线上的稳定而强调变更控制。部门墙由此建立起来,这当然不利于 IT 价值的最大化。

DevOps 的目标是支持业务敏捷
在这里插入图片描述

进入数字化时代,IT 成为业务的一部分。以项目为单位来规划和交付,越来越不能满足即时响应业务的需要。项目面向一次性交付的特点,也不利于资产(特别是软件资产)的长期积累和优化,不利于工程能力及基础设施的持续优化。
在这里插入图片描述

高效本地开发

为了进行全流程的高效开发,应该尽量使用反馈比较快的验证方式,并及早发现问题,逐步进行更加集成,更加真实的测试。
一般来讲,一个开发过程可以经过下面的三个阶段:

  1. 编码+单元测试。在小的逻辑单元的层面保证正确性。
  2. 针对单个应用的集成测试,可能需要对依赖的应用进行 HTTP 级别的 mock。
  3. 结合公共测试环境进行完整的集成测试。
    基于上面的三个阶段,可以使用以下的方式来解决前面提到的几个问题
  4. 使用各个语言相应的测试工具(比如 JUnit)来进行单元测试
  5. 使用 moco 等 HTTP Mock 工具来解决本地隔离验证的问题,完成单个应用的集成测试。
  6. 使用 kt-connect 和 virtual-environment 等工具来解决云原生基础设施下,本地和测试环境的互相连通性问题,
    及 http 请求链路的染色和路由。
  7. 使用 ngrok 等工具解决外部依赖调用本地应用的问题
  8. 使用“主干稳定环境”作为公共测试环境,提高其稳定性
  9. 使用中间件的染色隔离能力保证 http 请求之外的其它链路(比如消息)的染色和路由。
    其中第 1、4 是成熟的技术,这里不再赘述。第 5、6 点会在后面的测试环境相关的章节中我们详细讲解。

本文主要就第 2、3 点展开讲解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值