首页 > 其他分享 >什么是DevOps?

什么是DevOps?

时间:2023-03-11 19:34:32浏览次数:26  
标签:上线 服务 运维 项目 部署 什么 DevOps

  DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic)的API集相互通信。

第一,公司发展到BAT这种体量,会招很多人,JAVA,PHP,GO 技术栈都会有,需要协调技术栈;第二,项目到后期往往会变得很大,全部都兑到一个项目里,最直接的后果就是项目变得很大,上线项目启动时间变长,一个BUG可能导致整个业务全线崩溃,最终的后果就是项目变得越来越难以维护,加一个改一个东西几乎搞不动,而且还越来越难重构,牵一发而动全身。

所以,拆分解耦是最终的出路,将项目拆成一个个小的服务单独部署,以电商项目为例如图,将整个项目拆分为用户服务,商品服务,订单服务,积分服务......每个服务单独部署,之间通过互相调用的方式来交互,而且可以将一些基础服务例如上传图片,发送短信等很多服务都需要的基础东西,抽象到一个单独的服务,也就是前些年鼓吹的很厉害的‘中台服务’。

拆分部署催生出DEVOPS 再看看这种架构下的开发模式DEVOPS,运维需要做的上线工作,主要就是将代码部署到对应的机器里面,微服务有那么多的服务,每个大点的公司几百个服务不算多,而且还可能随时搞一个服务出来,如果还按照原始的脚本部署方式,可能最后连是哪个脚本都找不到。而且,如果每个服务上线都需要运维来同意,开发也太卑微了,估计要天天求着运维同意发布,运维也会烦不胜烦。

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

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

DevOps = 人 + 流程 + 平台

人 + 流程 = 文化

流程 + 平台 = 工具

平台 + 人 = 赋能

 

 

标签:上线,服务,运维,项目,部署,什么,DevOps
From: https://www.cnblogs.com/hcnyyds/p/17206761.html

相关文章

  • 什么是PON?
    概念PON是一种典型的无源光纤网络,是指(光配线网中)不含有任何电子器件及电子电源,ODN全部由光分路器(Splitter)等无源器件组成,不需要贵重的有源电子设备。一个无源光网......
  • 不同类型的指针指向统一地址有什么区别
    首先先明确不同类型的指针有什么区别:对于不同类型的指针:所占的内存空间大小是相同的,不会因为指向内容有差别。指针本质为一个地址,只与cpu、操作系统和编译器位数有关。......
  • 为什么 Go 语言 struct 要使用 tags
    原文链接:为什么Go语言struct要使用tags在Go语言中,struct是一种常见的数据类型,它可以用来表示复杂的数据结构。在struct中,我们可以定义多个字段,每个字段可以有不......
  • 什么叫有限状态机?Python中如何实现?
    Automat是一个Python类库,用于创建有限状态机(FSM)。有限状态机是一种计算模型,它在任何时刻只处于有限数量的状态之一。有限状态机由一个状态集合、一个初始状态、一组可能的输......
  • 进销存系统能给企业带来什么好处?
    企业必须思考如何提高企业管理,如何更高效地降本增效?在这种背景下,进销存系统便诞生了。点晴进销存系统能给企业带来哪些好处?我们一起来看一下吧!点晴进销存系统是什么?点晴进销......
  • Promise是什么?怎么使用?回调地狱
    Promise概念:Promise是ES6提供的原生的类(构造函数),用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作)。Promise的两个特点:(1)对象的状态......
  • 什么是Scrum的3355
    什么是Scrum的3355在一个真实项目中,往往会有这种情况,产品经理或者领导,总喜欢往项目中新增任务,打乱原先的开发节奏,导致程序员压力倍增,而Scrum就是要保护程序员,同时兼顾产品......
  • DevOps
    DevOps"Dev"就是软件开发人员,"Ops"是IT运维技术人员,DevOps就是一种重视软件开发人员和IT运维技术人员沟通合作,交流配合的文化。通过“软件交付”和“架构变更”的流程,来使......
  • 什么是cache一致性?
    1.什么是cache一致性? 1)cache的作用。Zynq7000系列的架构图部分内容如下图所示,它的PS侧有两个cpuarm核,分别成为0核、1核,每个cpu核都有一个D-Cache(数据缓冲区......
  • 使用PostgreSQL而不是MySQL存储中型数据有什么好处?
    我可以明确地回答.我们之所以选择Postgres,是因为它在操作上比MySQL更可靠,而当时公司的创始人相信SQL数据库的可移植性.随着年份的发展,我们发现了这一点,我们发现基本上,Post......