Show
❝ 这里先给出维基百科的定义,没指望你一下子看懂,先有个概念了解一下。 devops概念提出单体架构+瀑布模式以电商系统为例,单体应用架构为 LNMP,这个时候只有 DEV 没有 OPS,DEV 就是全栈,就跟我们上大学玩的 demo 一样,项目开发好,找台服务器安装好环境,把 jar 包 scp 到远程服务器,放上去开启服务就可以。 这个时候服务监控也简单,服务出了问题,直接去线上看一下运行日志,为了解放双手监控服务,开发者会写一些脚本分析日志,服务器少,部署简单,通常开发就可以完成运维的工作,不需要专门的运维来做部署,所以开发模式很简答,直接按照瀑布流方式开发就可。 分布式架构+敏捷开发模式随着业务体量发展越来越大,一台机器扛不住,那么就加机器,单机变多机,业务架构也开始加入了 nginx,cdn,缓存等通用基础服务,业务变多肯定会招人,就涉及到多人协同开发,多人多机器模式。
先说说多人协同开发问题,人员一多,为了更好的分工,大多会将项目进行拆分,每个人负责专注于一部分,有点包干到户的感觉,敏捷开发的核心理念就是
再说说多机器问题,之前机器很少架构简单的时候,开发就可以干运维的活,就算加了几台服务器,那也是脚本将 JAR 包同时发布到这些机器上,好像也挺简单,但是会有两个人同时上线部署被覆盖的问题,所以大家在上线之前可能会去群里吆喝一声,”我要上线了,大家先别上线哈“,可想而知这样效率也很低下。 公司业务一大,像大公司的动不动就是几千台服务器,就需要专门的运维介入了,一方面是因为开发分工每个人都专注于自己的事情,不会那么用心进行维护,另一方面是运维的学习成本确实变高了,开发人质量参差不齐,服务器要是每个人都可以上估计领导每天晚上都要做噩梦。
加入运维,就要协调人员配合,运维的宿命就是维稳,他们是很讨厌变动的;开发的天职确是不断地推代码上线,进行代码变动,更替迭代,这两个工种天生就是对立的。 很多大公司有那种,开发人员想要上线,需要提交各种审批,层层签字画押,多少人的上线激情被一句冷冰冰的‘还没到窗口发布期’给泼的透心凉。所以,敏捷开发解决了协同开发和多机器部署开发问题,但是没有解决内部人员的矛盾,留着这个矛盾在公司,开发和运维随时都可能约‘生死架’。 微服务架构+DEVOPS❝ 上面是我摘自wiki对微服务的定义,注意几个关键词:软件架构风格,小型功能区块,模块化,语言无关。 第一,公司发展到BAT这种体量,会招很多人,JAVA,PHP,GO 技术栈都会有,需要协调技术栈;第二,项目到后期往往会变得很大,全部都兑到一个项目里,最直接的后果就是项目变得很大,上线项目启动时间变长,一个BUG可能导致整个业务全线崩溃,最终的后果就是项目变得越来越难以维护,加一个改一个东西几乎搞不动,而且还越来越难重构,牵一发而动全身。 所以,
那么为何不能再远程部署一些机器,专门用来管理代码,进行上线工作,由运维事先把上线的规则都给定义好了,开发只要按照他的规则都访问这台服务器进行各自的代码合成和发布,自己上线呢,能用代码自动完成的事情就绝不要手动解决,这是每个开发人员都在想的东西。 devops深度理解我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:产品规划、开发编码、构建、QA测试、发布、部署和维护。 最初大家说到DEVOPS,都是指的‘开发运维一体化’,如下图: 现在大家说的 DevOps 已经是扩大到“端到端”的概念了,如下图: DevOps 的三大支柱之中,即人(People)、流程(Process)和平台(Platform)。即
人 + 流程 = 文化 流程 + 平台 = 工具 平台 + 人 = 赋能 devops实现相关工具人自然不用多说,开发前后中涉及到的所有人,流程前期是产品出原型,UI出设计,然后前后端代码开发,QA测试,最终部署上线,下图是部分流程图: 这里重点来看看devops平台搭建工具,工具很多,组件很多,百家争鸣,这里我列举的大多数是我公司用的,也是大部分公司都在用的。 devops平台搭建工具
有了这一套完整的流程工具,整个开发流程涉及到人员都可以无阻碍的进行协调工作了,开发每天到公司,先看看jira,看看线上日志,出了问题看看监控日志,运营同学反馈问题不着急的去JIRA,着急的群里吆喝,产品和UI的图直接蓝湖看,运维关注监控着大盘,改革春风开满地,互联网人民真高兴~ 这一篇有点姗姗来迟的意味,之前一直陷入了迷茫不知道该写什么,于是低调的修炼,有了这一篇,有问题欢迎指正,关注我的公众号’小龙飞‘,即可联系到我,很开心你能看到这里,共同努力,共同进步。 DevOps指的是什么?DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。
DevOps到底是什么?DevOps 是一套实践、工具和文化理念,可以实现软件开发团队和IT 团队之间的流程自动化和集成。 它强调团队赋能、跨团队沟通和协作以及技术自动化。 DevOps 运动始于2007 年左右,当时软件开发和IT 运营社区开始担忧传统的软件开发模式。 在此模式下,编写代码的开发人员与部署和支持代码的运营人员会独立工作。
DevOps是开发吗?DevOps 是一系列整合软件开发和软件运维活动的实践(Practices)。 目标是缩短软件开发生命周期并使用持续交付提供高质量的软件。 另: DevOps 与敏捷软件开发是互补关系,DevOps 的许多方面来自于敏捷方法论。
为什么要使用 DevOps?DevOps的目的是更快速,更可靠地创建质量更好的软件,同时开发,运维团队之间进行更多的沟通和协作。 它是一个自动化过程,允许快速,安全和高质量的软件开发和发布,同时保持所有利益相关者在一个循环中。 这就是DevOps获得越来越多的大型互联网公司青睐的真正原因。
|