首页 > 其他分享 >Web DevOps

Web DevOps

时间:2023-02-07 13:00:17浏览次数:40  
标签:Web 运维 部署 代码 DevOps 开发 测试

s

百度词条是这么解释的: 

“ DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

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

它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。”

优势:基于持续部署于持续交付,是部门之间协作的一组流程和方法,提升效率,提高员工参与感。

 《全球 DevSecOps 现状报告》在 4300 份样本中,开发人员占比 41.67%,SRE/DevOps 占比为 10.25%

 《中国 DevOps 报告》在 1862 份样本中,开发人员占比 35.18%,SRE/DevOps 占比为 6.87%

个人理解来说,Devops就是一种便捷,适合于公司的一套体系,这套体系包括开发到测试再到运维的一个流程,总之有了这个体系就能更加快速的实现客户的需求。这东西就是为了更好的服务客户!

 

 

 

 

上图意思就是代码需求设计到开发到提交构建到测试再到部署到运维到监控的流程。

 

 

 

 

上图来自网络比较形象表示应用实现的演变过程。

 发展到现在的DevOps,之前有哪些流程在被使用,第一种就是传统的单架构,集中部署式,这个怎么理解,就是一台机器,一个应用。想做个应用,找个服务器,上传打包好的demo-jar包,开启服务,监控就是看一下日志,没问题就OK。基本就是:设计-开发-测试-部署

第二种就是多个机器多个应用所谓的敏捷开发。这时候一个人就不够了,公司大了,机器多了,开发一个人管不过来了,就得找点专门管理机器,管部署的运维人员了。开发也多了,水平也是参差不一,全都要是能直接连机器,这上面领导估计都睡不好觉。然后运维就搞点脚本,减少重复的操作,然后还不太愿意开发变动太多。开发本能又不得不变动,导致开发运维还是有点矛盾的,开发想部署还得统一听指挥,这里开发运维其实还不是那么紧密。 

打个数学图形比喻,本来需求分析要个六边形,到设计变成长方形,到研发变现菱形,实际交付变成三角形。

 

 

 

 

再到第三种微服务架构的devops。到这里,公司体量变大了,框架也有了,应用很多东西就比较复杂了,再想改动就比较麻烦了,再推倒重来那不大可能了,只能小模块,小功能一点点实现了。所以得拆解,拆成一个个小小的服务来单独部署,各个直接也可以互相调用,这样的话,就不用每次改动个东西还得找运维求着他同意才能发布,运维还烦你呢。干脆找一些机器,专门放这些小服务的代码,再利用前面说的Gitlab之类的进行cicd流水线式操作,我改动一点,自己去发布部署。再搞一个日志监控的模块,开发自己看日志,这样开发也可以分担运维的一点工作,自己开发的东西日志还是自己最清楚,这样还能快速定位到应用的问题。这样确实是要好多了,能够快速部署快速实现某些功能。

我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:产品规划、开发编码、构建、QA测试、发布、部署和维护。

 

最初大家说到DEVOPS,都是指的‘开发运维一体化’,如下图:

 

 

 看了上面这个图,就知道了,devops就是不断开发测试部署重复这过程,就实现了快速开发快速部署快速实现,反正就是快速实现客户的需求,客户是上帝,这样快速开发,客户也能快速看到结果,省得像以前开发半天,开发出来客户说我去你这是啥,我是要这么个东西?

 现在好了,客户想看就看,不满意快速改动实现,客户想要啥就给开发啥,到时候客户满意了咱也能赚钱不是。

 再说说构建devops平台需要哪些工具,工具组件啥的其实很多,但关键在于适合自己的公司和团队才是最关键的。我下面列举一下。

 项目管理(PM):jira。运营可以上去提问题,可以看到各个问题的完整的工作流,待解决未解决等;

 代码管理:gitlab。jenkins或者K8S都可以集成gitlab,进行代码管理,上线,回滚等;

 持续集成CI(Continuous Integration):gitlab ci。开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

 持续交付CD(Continuous Delivery):gitlab cd。完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

 镜像仓库:Harbor

容器:Docker、containerd

编排:K8S

 镜像扫描:Clairctl

 配置:Nacos

 服务注册与发现:etcd

 服务治理:Consul

 脚本语言:Python

 日志管理:ELK

 显示面板:Grafana

 系统监控:Prometheus、zabbix

 负载均衡:Nginx

 网关:Kong,zuul

 链路追踪:Zipkin

 公司内部文档:Confluence、nextcloud

 Web服务器:Nginx、Tomcat

 数据库:Oracle、Mysql、redis

 报警:各种机器人api推送到工作群

 这个图来自网络,可以看到这过程中有哪些组件应用参与其中

 

个人理解,想实现DevOPs就得形成一套标准的持续集成部署流水线,没有一套好的流水线,实现DevOps是空中楼阁,至于典型的CICD流水线过程,略

end

标签:Web,运维,部署,代码,DevOps,开发,测试
From: https://www.cnblogs.com/lindows/p/17098023.html

相关文章

  • HGAME_2023_WEB_WP_WEEK3
    PingToTheHost很明显的rce,简单测试一下发现空格,cat,;被办,且执行无回显,空格用${IFS},%09,$IFS$9等等来绕过,我们利用dnslog将执行结果外带出来,这里使用的是http://ceye.io/......
  • [Web] 前端的一些快速启动
    VueQuickStartwithVue-CLIimportinhtmlpage:<scripttype="importmap">{"imports":{"vue":"https://unpkg.com/vue@3/dist/vue.esm-browser.js"......
  • C#.NET 4.8 WEBP 转 GIF
    C#.NET4.8WEBP转GIF项目是.NET4.8。nuget引用 Magick.NET-Q16-AnyCPU,版本:7.14.5。高版本,如:12.2已经不支持.NETFRAMEWORK了。usingImageMagick;usingSyste......
  • 基于SpringBoot的WebSocket开发(非完整代码)
    1、添加依赖<!--websocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starte......
  • Web端通用数据效验
    如有问题请指正,谢谢!/*//通用IE,获取时间,只允许输入8位-分割的日期functiongetMyDateTime(myDate){//带日期格式的,去掉日期。if(myDate.length>10){......
  • 第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
    第六十八章使用Web服务监控IRIS-监控网络客户端SYS.WSMon.Client类和相关类是一个IRIS网络服务客户端,可以在同一个IRIS实例或另一个IRIS实例中调用SYS.......
  • WebAssembly
    WebAssembly 播报编辑讨论上传视频面向Web的二进制格式WebAssembly(简称wasm)是一个虚拟指令集体系架构(virtualISA),整体架构包括核心的ISA定义、二进制编码、程序语义......
  • #yyds干货盘点#理解webpack自动刷新浏览器
    在我们日常的前端开发过程中,在编辑器里只需要保存代码,浏览器就会自动刷新当前页面。这个过程被称为热更新。其实实现这一功能需要两步:监听代码的变化自动刷新浏览器下面看一......
  • RuntimePlatform.WindowsWebPlayer 或者 RuntimePlatform.OSXWebPlayer 弃用的,已过时
    问题:RuntimePlatform.WindowsWebPlayer或者RuntimePlatform.OSXWebPlayer弃用的,已过时解决方法在Unity2017和Unity2018中已过时,解决方法:returnApplication.plat......
  • Spring在Filter中记录Web请求Request和返回Response的内容及时长
    1简介在SpringMVC中,我们有时需要记录一下请求和返回的内容,方便出现问题时排查。比较Header、RequestBody等。这些在Controller也可以记录,但在Filter中会更方便。而我们......