什么是DevOps | DevOps初了解

WHAT

维基百科定义

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

简单理解

打破开发和运维之间的墙

WHY

从开发视角和运维视角看产品。
两个视角看产品
Dev的关注点是如何开发测试交付新的功能
Ops的关注点是保证应用运行的稳定和高性能
开发不考虑运维运营,只管开发完最基本的功能就交付,但怎么运维怎么运营根本不考虑,甚至怎么如何安装升级都没有文档;反过来,运维也不为开发提供硬件/网络配置/发布环境等信息,并且总是提各种问题阻止变更和发布。

概念发展

单体架构+瀑布模式
设计
开发
测试
部署

这个时候只有 Dev没有 Ops,Dev就是全栈,就跟我们上大学玩的 demo 一样,项目开发好,找台服务器安装好环境,把 jar 包 scp 到远程服务器,放上去开启服务就可以。

开发者会写一些脚本分析日志,服务器少,部署简单,通常开发就可以完成运维的工作,不需要专门的运维来做部署。

分布式架构+敏捷开发模式
设计
开发测试
...
开发测试
部署

业务体系发展越来越大,单机变成多机,分布式开发。其中,会出现多机协作多人协同开发情况。

  1. 多机协作
    问题:两人同时上线部署会被覆盖。易出错、效率低下。
    解决:专人部署,出现Ops。运维们擅长写各种部署,监控脚本,减少机械的重复工作。
    特点:此时是Dev+Ops,不是DevOps。
  2. 多人协同开发
    问题:如何分工、多人沟通。
    解决:敏捷开发模式。将大任务拆分为一个个可交付的小任务,不断迭代,小步跑实现持续开发。
    特点:开发和测试同步进行,不断迭代。
微服务架构+DevOps开发模式
设计
开发测试部署
...
开发测试部署
  • 公司发展到BAT这种体量,会招很多人,JAVA,PHP,GO 技术栈都会有,需要协调技术栈。
  • 项目到后期往往会变得很大,全部都兑到一个项目里,最直接的后果就是项目变得很大,上线项目启动时间变长,一个BUG可能导致整个业务全线崩溃,最终的后果就是项目变得越来越难以维护,加一个改一个东西几乎搞不动,而且还越来越难重构,牵一发而动全身。
  • 微服务:拆分解耦,将项目拆成一个个小的服务单独部署。在微服务架构下,运维需要代码部署到对应的机器里面。
    问题:微服务很多,用原始的脚本部署方式费时费力。
    解决:远程部署一些机器,专门用来管理代码,进行上线工作,由运维事先把上线的规则都给定义好了,开发只要按照他的规则都访问这台服务器进行各自的代码合成和发布,自己上线。

DevOps开发模式:开发也是运维

深度理解

DevOps 的三大支柱之中,即人(People)、流程(Process)和平台(Platform)。

DevOps=人+流程+平台

人 + 流程 = 文化
流程 + 平台 = 工具
平台 + 人 = 赋能

HOW

devops平台搭建工具,工具很多,组件很多,百家争鸣。

参考文章:
https://www.zhihu.com/question/58702398
https://baijiahao.baidu.com/s?id=1686052246463497135&wfr=spider&for=pc

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值