[云原生] DevOps介绍

什么是DevOps?

DevOps是一个复合词,它是Development + Operations的组合,它强调了开发(Dev)运维(Ops) 的沟通协作。
DevOps 整个流程包括敏捷开发>持续集成>持续交付>持续部署。
请添加图片描述

DevOps的概念提出

单体架构 + 瀑布模式

单体架构为LNMP,这时Dev即全栈。开发好直接部署就行。

这个时候服务监控也简单,服务出了问题,直接去线上看一下运行日志,为了解放双手监控服务,开发者会写一些脚本分析日志,服务器少,部署简单,通常开发就可以完成运维的工作,不需要专门的运维来做部署,所以开发模式很简答,直接按照瀑布流方式开发就可。
在这里插入图片描述

分布式架构+敏捷开发模式

随着业务的增多,需要多人协作。人员一多,为了更好的分工,大多会将项目进行拆分,每个人负责专注于一部分。

敏捷开发的核心理念:就是既然我们无法充分了解用户的真实需求是怎样的,将一个大的目标不断拆解,把它变成一个个可交付的小目标,然后通过不断迭代,以小步快跑的方式持续开发。

另外,为了保证项目质量,测试环节不可减少,为了加快速度增大开发效率,QA 的工作最好是和开发同步交替进行的,需要将测试环节从后面注入到整个开发环节当中,每次可交付的都是一个可用的功能集合,对开发交付的内容进行持续验证。

公司业务一大,像大公司的动不动就是几千台服务器,就需要专门的运维介入了,。但是这个时候也不是 DEVOPS,而是 DEV+OPS,这时 Ops 的主要职责就是:硬件维护、网络设备维护、DBA 、基础服务维护、数据监控等,运维们擅长写各种部署,监控脚本,减少机械的重复工作,开发模式变成了敏捷开发模式
在这里插入图片描述

微服务架构 + DevOps

微服务架构将项目拆成一个个小的服务单独部署。这时,拆分部署催生出 DevOps,再看看这种架构下的开发模式 DevOps,运维需要做的上线工作,主要就是将代码部署到对应的机器里面,微服务有那么多的服务,每个大点的公司几百个服务不算多,而且还可能随时搞一个服务出来,如果还按照原始的脚本部署方式,可能最后连是哪个脚本都找不到。

那么为何不能再远程部署一些机器,专门用来管理代码,进行上线工作,由运维事先把上线的规则都给定义好了,开发只要按照他的规则都访问这台服务器进行各自的代码合成和发布,自己上线呢,能用代码自动完成的事情就绝不要手动解决,这是每个开发人员都在想的东西。运维需要做的事情,慢慢的都沉淀到了各个平台上面,例如监控,有专门的监控组件和可视化,基础服务例如服务器,CDN,负载均衡等基础服务可以外包到云服务厂商,日志也有专门的日志工具,链路追踪也有专门的组件和可视化,还有网关等,渐渐的,只要这些都配置好了,开发也可以做运维的部分工作,毕竟开发才是最了解代码的人,哪里出了问题看看监控日志,可以最快速度定位到问题,于是 DevOps开发模式诞生了,开发也是运维。

在这里插入图片描述
下面的图说明了DevOps的位置及价值:
请添加图片描述

下面就是一个简单的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
其中最常用的几种就是Git、Jenkins、Docker、Kubernetes。
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orbitgw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值