10分钟了解常见的DevOps工具

Wesley13
• 阅读 868

10分钟了解常见的DevOps工具

10分钟了解常见的DevOps工具

DevOps工具越来越多,了解它们以及知道在什么时候使用他们越来越重要。因此,我尝试做一些研究,以便我们可以将DevOps产品分类为大家都熟悉的类别或用途。

在开始讨论DevOps工具和类别之前,让我们了解下DevOps常见术语及其含义。

  • 计算机/服务器 –具有中央处理器(CPU)、内存(RAM),本地存储(磁盘)并运行操作系统的物理设备。

  • 虚拟机 –在主机上运行的计算机系统的仿真;通常可以在CPU,内存和磁盘使用方面与其他操作系统隔离。

10分钟了解常见的DevOps工具

  • 容器 –软件及其所有依赖项的包装,以便它可以在任何基础架构上一致地运行。Docker容器是最受欢迎的。它使你可以打包一堆东西(你的软件,配置和其他软件),以便于部署和迁移。你可以将容器视为虚拟化的下一步发展(在虚拟机之后)。

10分钟了解常见的DevOps工具

  • 网络设备 –一种在设备之间路由网络流量的硬件。包括路由器,负载均衡器和防火墙。

  • 软件 –编写并在操作系统上运行的代码。

DevOps –传统上是由 development(开发) 和 operations(运维) 组成 。DevOps的目的是:“减少从系统更改到投入生产之间的时间,同时确保高质量”。

当你考虑构建和运行系统时,实际上会有很多事情要做。以下是要考虑的:

  1. 获取计算机/服务器硬件

  2. 配置计算机/服务器硬件(操作系统,网络等)

  3. 监视计算机/服务器硬件

  4. 获取网络设备(负载均衡器,防火墙,路由器等)

  5. 配置网络设备

  6. 监控网络设备

  7. 构造软件

  8. 编译软件

  9. 测试软件

  10. 打包软件

  11. 部署/发布软件

  12. 监控软件

在 DevOps之前,我们曾经有四个不同的团队来完成这项工作:

  • 开发人员 -他们将执行#7,#8,有时甚至是#10

  • QA团队 –他们将执行#9,有时甚至执行#11

  • 系统管理员 –他们将执行#1,#2,#3,#12

  • 网络管理员 –他们将执行#4,#5,#6

对于硬件,网络设备和软件的配置,每个团队可能会使用他们自己的脚本和工具集,并且在许多情况下,会手动进行操作。

对于我而言,随着DevOps的出现,关键是能够打破不同团队间障碍,使每个人成为一个团队的一部分,使所有系统的配置,部署和管理方式保持一致。

云 – 最初,当云服务启动时,它们实际上只是其他人的计算机(或在其计算机上运行的VM)或存储。随着时间的流逝,硬件大部分已经被抽象掉了,它们已经演变为一项服务以及许多增值服务。目前,你无法在大多数云服务中购买硬件设备,但可以购买由硬件设备提供的服务。

基础架构即代码(IAC- Infrastructure as Code) –一个新概念,可让我们通过配置文件来定义数据中心内所有项目的完整设置,包括VM,容器和网络设备。我的可以创建一些配置和一些脚本,然后使用CI/CD工具运行它们,它们自动在数据中心中提供我们的所有服务。CI/CD是IAC的前身,多年来一直致力于使构建/测试/集成/部署自动化,而使用云基础架构则是对它的自然扩展。这也降低了成本,加快了投产时间,减少了人为操作风险。

随着IAC的出现,许多传统的开发工具现在都可以用于管理基础结构。DevOps工程师现在可以使用以下工具,例如软件存储库,构建工具,CI/CD,代码分析器和测试工具,来构建和维护基础架构。

现在,我们已经掌握了常见术语,让我回到尝试对DevOps工具进行分类的任务,以使我们更容易确定可在什么时候使用什么工具。

  1. 软件存储库 –用于管理软件版本的工具– Git是当今使用最广泛的工具。

  2. 构建工具 –一些软件需要先进行编译,然后才能打包或使用,传统的构建工具包括Make,Ant,Maven和MSBuild。

  3. 持续集成工具 –每次你将代码提交存储库时,它都会构建,部署和测试软件。这通常可以提高代码质量和减少投产时间。这个市场上最受欢迎的工具是Jenkins,Travis,TeamCity和Bamboo。

  4. 代码分析器/查看工具 –这些工具可查找代码格式和质量以及测试覆盖范围中的错误。SonarQube是该领域的流行工具。

  5. 配置管理 –配置管理工具和数据库,通常会存储有关硬件和软件项目信息,并提供脚本或模板来自动化常见的任务。这个领域常见的工具有:Chef,Puppet,和 Salt。

  6. 部署工具 –这些工具有助于软件的部署。许多CI工具也是CD工具,可帮助部署软件。传统上,在Ruby中,Capistrano工具已被广泛使用。在Java中,Maven被许多人使用。所有编排工具也都支持这种部署。

  7. 编排工具 –这些工具可配置,协调和管理计算机系统和软件。它们通常将自动化”和“工作流”作为其服务的一部分。Kubernetes是一种非常流行的编排工具,专注于容器。Terraform也是一种非常流行的编排工具,它的应用范围更加广泛,包括云编排。此外,每个云提供商都拥有自己的一套工具(CloudFormation,GCP Deployment Manager和ARM)。

  8. 监视工具 –这些工具允许监视硬件和软件。通过监视程序和日志文件等,以确保系统的运行状况。Nagios和Prometheus是一种流行的监视工具。

  9. 测试工具 –测试工具用于管理测试以及测试自动化,包括性能和负载测试。

许多工具跨类别,并提供两个或多个类别的功能。

如你所见,Ansible,Terraform和云工具(AWS,GCP和Azure)等正尝试将部署,配置管理和服务编排结合在一起。

较旧的工具集:如Puppet,Chef和SaltStack专注于配置管理和自动化,但已扩展到编排和部署。

还有一些工具,例如GitLab和Azure DevOps,它们试图涵盖几乎所有类别的DevOps。

通过本文,希望可以帮助你了解DevOps的基础知识,工具的类别,以及当今市场上的流行的工具。

译者:王延飞

原文链接:https://dzone.com/articles/the-10-minute-read-to-understanding-devops-tools

END


Kubernetes  CKA线下班

10分钟了解常见的DevOps工具

10分钟了解常见的DevOps工具

10分钟了解常见的DevOps工具

本文分享自微信公众号 - K8S中文社区(k8schina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这