上一节我们谈到了《微服务技术》,要实施微服务一个关键动力取决于企业的运维能力。

相比于传统架构,微服务的落地增加了大量的运维工作。随着服务的增多,有更多的服务需要部署、监控。另外,随着服务的增多,出错的可能性大大增加,出错时如何快速恢复也是件很复杂的事。

因此,在实施微服务的过程中,运维能力直接决定了实施的效率和产出。如果开发团队和运维团队之间无法密切协作,那实施过程将会存在很大的沟通成本。

所以引入DevOps很有必要!

一.DevOps 是什么

对于DevOps的定义和理解,大家都是望文生义,众说纷纭,争论不休。

  • 有人说DevOps是开发与运维的协作

  • 有人说DevOps是流程自动化

  • 有人说DevOps是频繁的最小交付

  • 有人说DevOps是…

其实大家说的都对,只是角度不同,正所谓:“一千个读者就有一千个哈姆雷特”。

DevOps一词来自于Development和Operations的组合,重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。 如下图所示:

换句话说,DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

DevOps涵盖了代码、部署目标的发布和反馈等环节,闭合成一个无限大符号形状的能力环。

二.DevOps的价值

1. 加速软件交付

扩大协作,让开发、测试、运维、用户处于一条业务生产线, 以便消除组织沟通和管理的障碍。

2. 平衡速度、成本、质量和风险

软件交付过程自动化,以便消除人力、资源的浪费和工期延误。

3. 降低客户反馈时间

扩大用户反馈圈,以便可以持续提高产品质量。

三.DevOps的组成元素

关于DevOps,平时我们谈的最多的应该是流程和工具,但DevOps最重要的一个组成元素是文化。如下图所示:

  1. 从文化角度上,DevOps应该成为组织文化的一个内在要求。

    首先,企业关注的产品应该转向最终交付价值以及响应用户和市场变化的能力。

    其次,企业需要从组织架构上解决遗留下来的Dev和Ops隔离的状态,为他们走向融合提供组织上的保障。

    最后,DevOps文化强调跨部门协作和直接主动沟通。

  2. 从流程角度上,DevOps打通了开发、构建、测试、部署、运维、修复等各个环节,是最大化交付价值的最佳实践。

  3. 从工具角度上,DevOps是一种工具链,这其中包括代码管理工具,持续构建工具,代码部署工具,系统监控与运维工具等。

四.DevOps实施

DevOps落地指导原则:自上而下的文化渗透,自下而上的逐步实施。

以下是一个简单的DevOps流水线:

这个图看上去很简单,但实际落地涉及到的细节还是很多,建议分阶段开展:

  1. 一个小团队走通最小的一个闭环,打通从开发到上线(测试环境),再到测试的全部流程。

  2. 其他(微服务)团队逐个引入,然后将各个团队开发的功能服务集成到一起。

  3. 企业内部所有流程走通且成熟稳定后,扩展到生产环境。

五.DevOps实施工具

DevOps实施的硬性要求:工具上的准备。现将工具类型及对应的不完全列举整理如下:

• 代码管理: GitHub、GitLab、SubVersion

• 构建工具:Ant、Gradle、maven

• 持续集成(CI): TeamCity、Jenkins、Bamboo

• 配置管理:Ansible、Chef、Puppet

• 容器:Docker、LXC

• 编排:Kubernetes

• 脚本语言:python、ruby、shell

• 日志管理:ELK(ElasticSearch, Logstash, Kibana)、EFK(ElasticSearch, Fluentd, Kibana)

• 系统监控:Prometheus 、Zabbix

• 压力测试:JMeter

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

六.对DevOps的思考

DevOps带来的技术冲击,远远胜过容器技术:

对于IT从业人员:
  • 请走出舒适区,学习提升技能和方法,留给你的时间不多了。

  • 请延伸自己的技术和知识面,成为通才,这是市场发展的要求。

对于研发人员:
  • 需要实践内建质量的软件工程。

  • 注重保证质量和流程工具的使用。

  • 提高自己的抽象思维能力。

  • 在设计和研发时,需要考虑可持续集成性、可测试性、可部署性、可自动化运维能力。

对于测试人员:
  • 多学习使用脚本语言,不断提升自动化测试的开发能力。

  • 能够针对系统性能和稳定性提出要求和建议。

对于运维人员:
  • 不断提升自动化运维的开发能力。

  • 熟练使用各种自动化运维的脚本和工具。

  • 提高系统调优和问题定位能力。

总结

云计算和容器技术的快速普及,DevOps越来越被重视,甚至成为保证公司生产力的最佳之选,但DevOps成功与否,公司组织文化是否利于协作是关键,其次是流程的设计,最后才是具体的工具选择。

说到工具,现流行的容器集群管理系统–kubernetes想必大家有所耳闻,下节就为大家分享《Kubernetes 快速上手》。

云原生系列技术(四):DevOps技术相关推荐

  1. 云原生系列「四」我为啥不看好ServiceMesh?

    前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础.作为架构师,如果你现在还不了 ...

  2. 云原生系列三:K8s应用安全加固技术

    今天叶秋学长带领大家学习云原生系列三:10大K8s应用安全加固技术~ 本文译自 Top 10 Kubernetes Application Security Hardening Techniques[ ...

  3. 解读云原生的2021:抢占技术C位,迎来落地大爆发

    来源 | InfoQ 作者 | 褚杏娟 2021年,云原生迎来黄金时代 本文是"2021 InfoQ 年度技术盘点与展望"系列文章,重点聚焦云原生领域在 2021 年的重要进展.动 ...

  4. 为什么说云原生会成为未来企业技术变迁的趋势

    云原生是当下的热点话题,但是很多人对云原生有很多误解,特别是传统产业物联网或工控.物联网行业对云原生显得"后知后觉".与其在这里说是预测,不如说是现在进行时,只是由于传统产业本身的 ...

  5. 什么叫云平台_为什么说云原生会成为未来企业技术变迁的趋势

    云原生是当下的热点话题,但是很多人对云原生有很多误解,特别是传统产业物联网或工控.物联网行业对云原生显得"后知后觉".与其在这里说是预测,不如说是现在进行时,只是由于传统产业本身的 ...

  6. 《云原生人才计划之Kubernetes 技术图谱》发布!

    简介:如今越来越多的公司正在拥抱Kubernetes ,当前Kubernetes 已经主导了云业务流程. 那么称霸容器领域的Kubernetes 究竟有什么魔力呢?又该从何学起呢?这需要对Kubern ...

  7. 华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易

    摘要:云原生数据仓库GaussDB(DWS)架构师应邀为大家解读数仓深度技术. "云原生"在2020年成为备受瞩目的热词,云原生在确保企业数字化转型中资源快速供给.按需使用的同时, ...

  8. 【重识云原生】第四章云网络4.3.10.5节——VXlan组网架构

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第三章云存储第1节--分布式云存储总述 第四章云网络第一节--云网络技术发展简述 第四 ...

  9. 【重识云原生】第四章云网络4.3.10.6节——VXLAN应用部署方案

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第三章云存储第1节--分布式云存储总述 第四章云网络第一节--云网络技术发展简述 第四 ...

  10. 【重识云原生】第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第三章云存储第1节--分布式云存储总述 第四章云网络第一节--云网络技术发展简述 第四 ...

最新文章

  1. linux界面设计论文,毕业设计(论文)-基于linux的云校园桌面虚拟化系统的设计与实现.doc...
  2. 传统的线性降维方法效果不佳。_高压断路器机械故障诊断与定位的新思路:KPCA-SoftMax诊断方法...
  3. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题
  4. 算法(二叉树-矩阵-堆排序)
  5. html中的rel,rev是什么?
  6. MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
  7. ES6+webpack实现Counter
  8. 高盛:Github开源、Marquee、SecDB
  9. 非线性系统基于干扰观测器的抗干扰控制
  10. 几何平均回归Geometric Mean Regression——使用Python实现
  11. java int short区别_Java基础之数据比较Integer、Short、int、short
  12. python无法打开h5权限_求助:python post请求访问不到数据
  13. 白帽子讲Web安全(一)浏览器安全
  14. 计算机组装考核记录表,计算机组装与维护考核方案(必修).doc
  15. html背景图片的隐藏,CSS隐藏图片背景上方的文字内容
  16. mate7安装android o,华为Mate7怎么刷机 华为Mate7刷机教程【步骤详解】
  17. 我对价值投资的思考(二)
  18. 如何查看公众号文章的排版格式字体大小
  19. 王烁老师 - 问得太少你吃亏
  20. oracle启用amm,Oracle11g自动内存管理(AMM)相关的初始化参数

热门文章

  1. rust php 扩展,在PHP程序中使用Rust扩展的方法_PHP
  2. 小白修神传~程序员成神之路
  3. 希望C语言能够给我铺路
  4. IoT物联网——各大厂质量保障实践汇总(智能硬件其他篇)
  5. TOP30排行榜 第04期:花5万元刷榜能上No.1
  6. 计算机技术在家庭方面的应用,物联网技术在家庭方面的应用
  7. 【原生代码】Python3 实现ATR、MA、EMA、SMMA、RMA、TEMA指标的计算
  8. 城域网的互联网专线接入带宽合规合法
  9. 网络故障排查常见方法
  10. P1455 搭配购买