结合个人经历谈谈如何理解CALMS模型

简介: 结合个人经历谈谈如何理解CALMS模型

一、前言

DevOps的概念在国内已经发展了一段时间了,目前大部分开发人员都被要求有一定的运维能力,这就是“开发运维”。

提到DevOps的话,不得不提CALMS。CAMS代表Culture, Automation, Measurement, Sharing四个单词的首字母缩写。CAMS已经成为许多DevOps从业者的价值参考模型。

下面我和你一同分析这五点,并结合我自己的工作经验体会,希望你看了之后能有自己的理解。

二、Culture(文化)

Culture(文化)- 是指拥抱变革,促进协作和沟通。

随着项目不断实践,我们的管理和流程会慢慢发生变化。比如小型企业随着业务的不断增长,需要招聘独立的DBA去管理数据库,当有新的流程引入之后,必定会导致之前的业务流程发生变化。

那么,在团队内部,我们就需要的是对变化本身采取接受的态度,并提前进行相关培训。

文化这个东西,乍一看是虚的,如果我们想要落地,就需要花时间去培养。

三、Automation(自动化)

Automation(自动化)- 是指将人为干预的环节从价值链中消除。

自动化区别去手动化,早期的服务器部署工作,需要我们手动创建服务器,并配置网络和基础环境。

DevOps通过设施即代码(Iac)的方式,用配置文件的方式管理服务器、网络、数据库,并且整个流程可以复用。

这么做的好处有

  • 高度复用,不会因为某个服务器手动配置出错而出现问题
  • 反应迅速,扩容及时,减少操作时间

为了达到目的我们需要维护全程的自动化,包括 基础设施、持续集成、构建、测试、持续交付、部署后测试。

四、Lean(精益)

Lean(精益)- 是指通过使用精益原则促使高频率循环周期。

我最早听到精益这个词,是精益创业,其实这个词来源于制造业,精益的本质是消除浪费,到了以工程师作为生产力的软件行业,则是提高软件迭代的循环周期,这其实也可以理解为消除了浪费,只不过从实体行业的原材料变成了软件行业的沟通和流程。

上面一条自动化,消除了大量人工操作带来的不确定性和时间成本,也就达到了精益的目的。

我觉得,精益还有一层含义,就是对整体效率的提升,整个团队成员因为DevOps流程的变化,加上相互学习提高水平,最终共同提高了整个团队的效率。

五、Metrics(指标)

Metrics(指标)- 是指衡量每一个环节,并通过数据来改进循环周期。

我们能看到的指标就是云平台(亚马逊、阿里云、腾讯云)的控制面板,以及各种日志推送。

上家公司的老大一直在重复的一句话就是,判断问题不能瞎猜,要有证据。

不能说我们发现了一个地方出了bug,就很自然地认为是哪里的问题,然后马上去修复。一定要有证据,比如数据的异常、日志、浏览器调试等等。

不通过指标盲目去做事,本身就不精益了。

此外,指标不但能够告诉我们哪里做错了,还能告诉我们性能上是不是有提升,改进的策略是否有效。

直觉会骗人,但是数据不会。

六、Sharing(分享)

Sharing(分享)- 是指与他人开放分享成功与失败的经验,并在错误中不断学习改进。

积极分享的目的是实现共同进步,改善整个行业或者团队。所以我从能带团队开始,一直鼓励团队的内部分享,和团队外部的博客分享。

我们能从复述自己的错误中不断改进,别人也能从学习别人的错误中找到解决方案。

七、总结

CALMS模型从DevOps中来,也会一直伴随我们进入云原生。CALMS模型是一种团队的思想,每个关键词都有基本的含义,和结合自己实际经验学到的含义。

相关文章
|
2月前
八问八答搞懂Transformer内部运作原理
【8月更文挑战第28天】这篇名为“Transformer Layers as Painters”的论文通过一系列实验,深入探讨了Transformer模型内部不同层级的信息处理机制。研究发现,中间层级在表示空间上具有一致性,但功能各异,且模型对层级的去除或重排表现出较强的鲁棒性。此外,论文还分析了层级顺序、并行执行及循环等因素对模型性能的影响,揭示了不同任务下层级顺序的重要性差异,并指出随机化层级顺序和循环并行化对性能损害最小。
39 5
|
5月前
|
存储 分布式计算 Java
深入探究JAVA编程语言:概念、应用与实例分析
**JAVA**是广泛应用的高级编程语言,以其易学性、跨平台能力和高效的性能著称。它采用面向对象编程,强调封装、继承和多态,且具备平台无关性、内置安全性和多线程支持。JAVA广泛应用于Web开发(如JSP、Servlet)、移动应用(Android开发)、大数据处理(Hadoop、Spark)和桌面应用。通过一个计算两数之和的简单示例,展示了JAVA的易读性和面向对象特性,帮助读者理解JAVA在实际开发中的运用。
如何理解和控制情绪
如何理解和控制情绪
94 0
|
安全 Linux 程序员
Linux环境编程必须搞懂的几个概念
Linux环境对于初学者来说,必须深刻理解重点概念才能更好的编写代码,实现业务功能,下面就几个重要的及常用的知识点进行说明。搞懂这几个概念后以免在将来的编码出现混淆。
20814 0
Linux环境编程必须搞懂的几个概念
|
前端开发 架构师 JavaScript
谈谈架构的本质和架构分类
谈谈架构的本质和架构分类
|
编解码 缓存 NoSQL
7点 讲明白地图切片的概念与原理
7点 讲明白地图切片的概念与原理
449 0
模型驱动是什么意思?底层原理是什么?
模型驱动是什么意思?底层原理是什么?
917 0
|
设计模式 存储 算法
理论:第七章:用生活的案例解释23种设计模式
理论:第七章:用生活的案例解释23种设计模式
124 0
理论:第七章:用生活的案例解释23种设计模式
|
安全 前端开发 数据库
并发编程常用术语通俗解释
并发编程常用术语通俗解释
|
编解码 缓存 NoSQL
7 段话说明 地图切片的概念与原理
7 段话说明 地图切片的概念与原理
207 0
下一篇
无影云桌面