首页 > 其他分享 >DevOps基础

DevOps基础

时间:2023-06-16 15:47:55浏览次数:43  
标签:运维 可以 基础 DevOps 工具 团队 我们

实验介绍

DevOps,作为一个文化概念、实践和技术的组合体,可以帮助组织和企业快速生产应用程序和搭建服务框架。DevOps 模式可以使组织和企业更快地创新和增强产品。 这种速度使企业能够为其客户提供更好的服务,并在市场上更有效地竞争。

简单来说,在 DevOps 的框架下,开发团队和运营团队存在着有机的联系,彼此结合,有时候甚至会合并为一个团队来进行综合管理。与以往使用实践经验手动执行缓慢流程的方式不同,在 DevOps 的模式下,企业或者组织会采用一系列自动化工具提高团队的工作速度。

采用 DevOps 有以下好处:

  • 快速交付

    DevOps 特有的自动化部署能够帮助我们提高发布的频率和速度来更快的创新完善产品。这项特性能够帮助我们快速修复错误,响应客户需求。

  • 可靠性

    当我们选择采用 CI/CD 的方式来测试每次变更能否安全正确的运行的时候,监控和日志记录会远比人工检测有效的多。

  • 规模

    毫无疑问,无论是服务器还是运营人员,当规模大到一定程序的时候,使用人力会不可避免的出现人工错误,而使用自动化工具不仅可以快速部署,还可以提高设施及服务的一致性。

  • 安全性

    自动化工具允许我们采用多种 Access Control 的方式,例如 Role Based Access Control。这些访问策略可以使得我们在不牺牲安全性的情况下提高访问速度。

知识点

  • DevOps 的发展历程
  • 为什么要用 DevOps
  • DevOps 常用组件基础

DevOps 的发展历程

DevOps 是一个基于 Agile Method (敏捷开发) 的派生概念,但是和敏捷开发又在根本上有所区分。下面,我们将分阶段来讨论 DevOps 的不同时期。

第一阶段:Dev 2009 以前

互联网早期阶段,在这个阶段,大部分互联网公司尚未形成规模, 业务复杂度不高,访问量不大,Dev 被过分强调,而 Ops 则被忽略。但是随着网络的访问峰值逐渐升高,服务器承受的压力逐渐变大,传统的 LNMP 或者 LAMP 架构已经难以满足需要。

第二阶段:早期 Dev + Ops 2009-2014

一个业务发展良好甚至是高速发展的公司会很快摆脱第一阶段。伴随着企业蒸蒸日上,业务的复杂度也肉眼可见的提高。运营维护人员的工作量逐渐增加,不仅是管理维护设备,同时像 CDN,缓存,Web 服务器等内容也要有所了解。

第三阶段:中期 Dev + Ops 2014-2017

在这个阶段,除了头部玩家以外,其他互联网企业规模也逐渐变得庞大,DevOps 成为一个势在必行的企业网络架构搭建方法。和上一段阶段有所不同,上一阶段更倾向于把代码和逻辑都放到一个工程中,甚至最好能由几个小团队来做。

但是当企业规模再度提高以后,代码耦合严重带来的问题是致命的,牵一发而动全身,也就是我们经常说的祖传屎山不能动。在这个阶段,我们需要做的是代码架构拆分,一个团队专注做一件事情。随着大量更小的应用需求被拆分出来,我们对持续发布,持续集成的需求也随之而来。

第四阶段:后期 DevOps 2017 以后

在这个阶段,开发和运维虽然还是两个不同的部分,但是已经一体化协调联动了。开发的主要需求是持续集成,持续交付,而运维则是资源分配,缓存管理,数据库备份监控等管理需求。

随着产品的逐渐完善,Ops 的需求会逐渐被众多的运维工具所取代,运维人员依然重要,但是对于开发人员来说,可以自助依赖运维平台来实现大部分日常运维需求。

为什么要用 DevOps

那为什么我们要使用 DevOps 呢,首先,大型的互联网公司往往会招很多技术栈和运维。而我们知道,沟通往往是复杂的,人越多的团队,往往管理协调起来会越困难。使用 DevOps 的开发方法,能够减少人员的规模,精简团队。

其次,大型项目往往体量庞大,耦合严重,从开发交付经过层层审批到运维部署往往需要几天的时间,一个 Bug 有可能导致整个体系崩坏。使用 DevOps 能够提高项目稳定性,自动化部署。

DevOps 常用组件基础

DevOps 有很多可用的工具,我们几乎不可能在一篇文章中就说完所有可能用到的工具。在这篇文章中,我们将讨论几种比较流行的 DevOps 工具,这也是我们接下来即将学习到的工具。

  • Jenkins

    Jenkins 是一个采用 JAVA 编程语言构建的持续集成工具,能够自动化执行 Shell 或者 Windows 批处理命令,可以与 Ant 或者 Maven 结合使用。

  • GitLab

    相信作为程序员的你对 GitHub 一定不陌生,GitLab 则是一个利用 Ruby on Rails 开发的 Git 仓库框架。可以通过 Web 界面进行访问。此外,GitLab 还提供一些额外的功能例如浏览源代码,代码片段收集。

  • Nexus

    Nexus 则是 Maven 的 仓库管理器,利用这个工具,我们可以只在一个地方就控制访问和维护仓库中的所有构件。一些无法从外部仓库下载的构件也可以部署到我们的 Nexus 私服上。

  • Docker

    Docker 是一种特殊的容器技术,与虚拟机相似但又不完全相同,可以让我们在特殊环境中隔离运行应用程序。在 Docker 容器中,我们可以将运行环境,依赖等等都直接打包,对于集成化部署非常方便。

  • Sonar

    作为一个出色的开源代码质量管理平台,Sonar 可以通过插件的方式检查包括 C++,Java,PL/SQL,Python 在内的几十种编程语言书写的代码的漏洞以及提供相应的质量分析。

  • Prometheus

    Prometheus 是一个开源的系统监控和报警系统。通常情况下,我们会在 Kubernetes 集群环境中搭配 Prometheus 来实现更好的集群管理。除了基本的监控和报警功能,Prometheus 最值得称赞的是它足以支撑万台级别的集群的性能与稳定性

  • Grafana

    Grafana 是一个免费的开源指标分析和可视化平台,可以用于对来自各种来源的数据进行查询、分析、可视化和配置警报。同时,其功能强大支持多种数据源。

  • Skywalkin

    与 Grafana 相似, Skywalkin 则是另一款专为微服务、云原生和基于容器的架构而设计的应用程序性能监控系统。

实验总结

我们在这节课中介绍了 DevOps 的四个发展阶段,以及为什么要使用 DevOps,接着,简单论述了 DevOps 中常用的几种工具,例如 Nexus,Docker。

标签:运维,可以,基础,DevOps,工具,团队,我们
From: https://www.cnblogs.com/zyybky9493/p/17485702.html

相关文章

  • 人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计
    人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)人工智能领域:面试常见问题1.深度学习基础为什么归一化能够提高求解最优解的速度?为什么要归一化?归一化与标准化有什么联系......
  • python基础语法练习题
    """一、必做题1、下面变量名正确的是(ABD)A.nameB.num1C.1_numD.name_A_12、Python不支持的数据类型有(A)A、charB、intC、floatD、list3、python源程序执行的方式(B)A编译执行B解析执行C直接执行D边编译边执行4、Python语言语句块的标记是(C)A分号B......
  • python基础-字符串
    基础必做题:题目1:现在有字符串:str1='pythoncainiao666'请使用代码找出第5个字符请复制一份字符串,保存在变量str_two当中(赋值运算符)"""str1='pythoncainiao666'str_two=str1[4]print(str_two)#输出o"""题目2:卖橘子的计算器(字符串转化)写一段代码,用户输入橘子的价格......
  • Linux系统基础知识与自学方法
    大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统。关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒、弹窗)多多,总之对Windows系统系统的评价参差不齐,上限高,下限也低。所以我们可以看出,这个系统在使用过程中每个人的感受都不一样。同时小......
  • Spring事务基础介绍
    事务本文只介绍声明式事务管理,即使用AOP实现,使用@Transactional开始事务事务角色事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法事务协调员:加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法接口介绍PlatformTransactionManager:Spring事务......
  • SpringMVC基础详解(包含示例)
    SpringMVC简介SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,跟Spring,Mybatis框架并称为SSM。是由Spring官方提供的基于MVC设计理念的web框架也是基于Servlet封装的用于实现MVC控制的框架,实现前端和服务端的交互与Servlet技术功能相同,均是......
  • HTTP请求:requests模块基础使用必知必会
    1背景http请求是常见的一种网页协议,我们看到的各种网页,其实都是发送了http请求得到了服务器的响应,从而将数据库中复杂的数据以简单、直观的方式呈现出来,方便大众阅读、使用。而如何发送http请求呢?今天来探讨一下使用requests模块,达到高效、简单的http请求操作。2什么是request......
  • Servlet安装以及基础操作
    Servlet创建新建一个类,继承Servlet接口publicclassTestServlet2implementsServlet{publicvoidinit(ServletConfigservletConfig)throwsServletException{}publicServletConfiggetServletConfig(){returnnull;}publicvoid......
  • shell基础1
    shell基础1什么是shellcentosubuntususe具体实现了shell的软件bashshell是一个壳(解释器,翻译官),通过c语言写的一个命令解释执行用户输入的命令或程序等用户输入一条命令,shell就解释一条键盘输入命令,linux给与响应的方式,称为交互式shell是一个包裹着操作系统核心......
  • Linux系统基础知识与自学方法
    大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统。关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒、弹窗)多多,总之对Windows系统系统的评价参差不齐,上限高,下限也低。所以我们可以看出,这个系统在使用过程中每个人的感受都不一样。同时小......