DevOps认证是什么?DevOps工具介绍

DevOps 这个词是由Development(开发) 和 Operations(运维)组合起来的,你可以把它理解成为一种让开发团队和运维团队紧密合作的方法。

DevOps从2009年诞生到现在已经14年多了,一开始大家还在摸索,慢慢地就变成了现在的一种主流开发交付模式。你肯定也发现了,DevOps 在我们身边出现的频率还蛮高的!各种行业峰会上都有它的专场,行业里的公司在招DevOps 工程师,企业在做 DevOps 转型,在设计和开发 DevOps 平台等等...

现在已经很少还有人在问"DevOps 有啥用"、"DevOps适不适合我"这种问题了,大家都更关心怎么落地实践 DevOps,怎么让它充分发挥价值。而且 DevOps 专家的岗位薪资也很高,仅次于一些高级管理层,都已经到了 IT 行业的金字塔顶部区域。

所以说,DevOps 基本上成了所有 IT 从业人员都必备的技能。不过呢,因为市场上资料太多太杂,个人的精力又有限,好多人都挺困惑的。

下面小艾老师就帮大家来科普一下。

01、对DevOps的理解

任何牛逼的项目,都是从一个单体项目慢慢发展而来。我们IT开发里边第一个要面对的就是单体架构,然后一步一步到集群、分布式、微服务、容器化,开发模式从瀑布开发,到敏捷开发,再到DevOps。

**单体架构+瀑布开发:**如果服务器少,部署又简单(基本就是LNMP),那就不需要运维,开发直接按照瀑布流方式进行就好了。写好代码,找台服务器安装好环境,把 jar 包上到远程服务器,开启服务就好了。

分布式架构 + **敏捷开发:**后面业务体量大了,一台服务器扛不住,就要加机器,再加入 nginx、cdn、缓存等通用基础服务,这个时候需要专门的运维人员(Ops)介入,需要多人协同开发。然后因为业务可能也变复杂了,开发就会分工,每个人负责一小部分,再通过不断迭代,小步快跑的方式持续开发,这个就是敏捷开发

**微服务架构+DevOps:**如果发展到阿里、腾讯这种体量,或者系统复杂到一定程度,协同开发会涉及到很多人,JAVA,PHP,GO 各种技术栈都会有,一般的做法就是将项目拆成一个个小的服务单独部署,不然一个Bug就能导致业务线全线崩溃了。

拆分部署,就催生出了 DevOps **。**所谓DevOps开发模式,实际上就是运维事先把上线的规则都给定义好了,开发只要按照规则自己就可以完成上线,如果出问题了也可以快速定位去调整。

运维要做的就是制定规则和自动化的代码及工具,比如监控,有专门的监控组件和可视化,基础服务有CDN、负载均衡,日志也有专门的日志工具等等......只要配置好这些工具,开发即运维,就能做一部分运维的事情了。

DevOps 的三大支柱:即人( People )、流程( Process )和平台( Platform

人 + 流程 = 文化

流程 + 平台 = 工具

平台 + 人 = 赋能

02、DevOps平台搭建工具

↑DevOps 工具全景图

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

产品和UI图:蓝湖

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成CI(Continuous Integration):Gitlab CI

持续交付CD(Continuous Delivery):Gitlab CD

配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

容器:Docker、LXC、第三方厂商如AWS

编排:K8S、Kubernetes、Core、Apache Mesos、DC/OS

服务注册与发现:Zookeeper、etcd、Consul

脚本语言:python、ruby、shell

日志管理:ELK、Logentries

系统监控:Datadog、Graphite、Icinga、Nagios

性能监控:AppDynamics、New Relic、Splunk

压力测试:JMeter、Blaze Meter

预警:PagerDuty、pingdom、厂商自带如AWS SNS

网关:Kong,zuul

链路追踪:Zipkin

HTTP加速器:Varnish

消息总线:ActiveMQ、SQS

应用服务器:Tomcat、JBoss

Web服务器:Apache、Nginx、IIS

数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

03、要实践 DevOps ,需要知道些什么?

不同公司的"DevOps 工程师"含义不同。小型公司可能找有系统管理经验的,大型公司或老牌公司,已经有一个稳固的系统管理团队了,他们要找的可能在 "设计运维功能的软件工程师"......这取决于不同公司的招聘经理。

一般来说,招聘的"DevOps 工程师"需要对以下这些内容有深入学习:

  • 管理和设计安全、可扩展的云平台,像 AWS 等。

  • 用流行的 CI/CD 工具构建发布部署流水线和策略,如 Jenkins 等。

  • 用基于时间序列的工具监控、记录和报警,像 Kibana 等。

  • 用配置管理工具做到"基础设施即代码",像 Chef 等,还有发布工具如 Terraform 等

  • 容器越来越受欢迎,掌握 Docker 等及编排工具知识有帮助。

如果你希望做 DevOps 实践的系统管理员,还得会写代码,Python 和 Ruby 是DevOps的流行语言。

如果你是开发人员,想做 DevOps ,建议再学学 Unix、Windows 及网络知识。

如果你觉得这些内容多,也别担心。建议参加艾威的DevOps Foundation认证培训,此认证由 DevOps 学院与 PeopleCert 联合推出,提供了一套"成体系"的 DevOps 实践知识、工具和方法,非常值得我们学习。

相关推荐
萨格拉斯救世主几秒前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试11 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
一坨阿亮7 小时前
Linux 使用中的问题
linux·运维
wclass-zhengge9 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱9 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
力姆泰克11 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
BPM_宏天低代码11 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化