共计 3594 个字符,预计需要花费 9 分钟才能阅读完成。
提到 DevOps 这个词,我置信很多人肯定不会生疏。
DevOps 的历史
在开发人员关注之前,咱们传统的 IT 部门在组织中有两个独立的团队 - 开发团队和经营团队。
开发团队负责软件开发,开发并确保代码完满运行。通过数小时的致力和大量的重复试验,团队公布了必须由经营团队执行的代码,该团队负责代码的公布和操作。
经营团队将查看应用程序及其性能,并报告所有谬误(如果存在)。
只管听起来很简略和打算周详,但两个次要团队在执行时总是会发生冲突。
例如,让咱们说,开发团队应用 i7 处理器,8GB RAM,操作系统(如 Ubuntu)和 php 5.6 脚本语言开发了代码,而经营团队则应用 i5 处理器,16GB RAM,与 Centos 的操作系统运行了雷同的代码。和 php 7.0 编程语言。
当经营团队运行雷同的代码时,它将无奈失常工作。
起因可能是零碎环境不同或短少任何软件库。
即便该问题可能存在于他们本人的零碎中,操作团队仍将此代码标记为错误代码。这导致了开发人员和经营团队之间的来回交换。
为了弥合这种差距,Development(’Dev’)团队和 Operations(’Ops’)团队合作开发了 DevOps。
例如,为了解决上述问题,开发团队将其代码封装在一个轻量级软件环境的容器中。
该软件环境中封装了所有必须的软件,这些代码或应用程序将须要按预期运行。
开发人员实现工作后,只需将这个容器连同代码一起传递给经营团队。Ops 将与代码一起运行此容器,并且按预期运行!
这正是 Devops!
DevOps 的生命周期
很多阶段有助于使 DevOps 达到明天的程度。
这是一个继续的过程–继续的开发,测试,集成,部署和监督。让我用一个例子解释一下。
Instagram 是全世界宽泛应用的应用程序。为了使它按其形式工作,幕后有宏大的团队一直开发,测试和公布性能。
开发人员为应用测试套件进行测试的应用程序打算并构建代码,如果测试套件胜利,则将代码发送到生产环境。
在生产环境中,监督工具保留用户的谬误和性能申请日志。例如,instagram 已增加了 Instagram Stories 和 IGTV 等新性能,这些性能以前都不是 Instagram 应用程序的一部分。
还有一个破绽爬到了应用程序上,该程序将提要切换到程度视图,并且每个人都疯狂。当初,此问题已解决,然而您认为开发人员如何理解这些谬误?
间断监督能够查看这些谬误和性能申请。而后将这些反馈发送给进行更改的开发人员,而后再次将代码推送到 Devops 生命周期中。
因而,从下面的示例中,您能够看到应用程序上的工作是间断进行的,并且开发永远不会进行!
在尽可能短的工夫内一直增加新性能并修复谬误以改良应用程序的过程称为 Devops Lifecycle。
继续倒退
开发人员打算并构建代码,而后将其上传到蕴含源代码的版本控制系统(如 Git)上。即便在最终版本之后,开发人员也须要将反馈纳入应用程序中。因而,开发人员改善应用程序的这种间断过程称为继续开发。
间断测试
将代码上传到源代码平台后,将在测试代码的帮忙下进行测试。每次对源代码进行更改时,代码也将以间断的形式进行测试,而后再进行生产。
继续集成
DevOps 生命周期中的一个阶段实现后,利用程序代码必须持续进行下一个阶段。这是在集成工具的帮忙下产生的。在工具的帮忙下,从一个阶段到下一个阶段一直协调代码的开发实际称为继续集成。
继续部署
应用程序中每减少一个性能,都可能须要在应用程序环境中进行一些批改。这称为配置管理。为此,咱们应用了几种部署工具。基于性能的增加一直更改应用程序环境的过程称为“间断部署”。
继续监控
即便通过打算和测试,谬误仍可能找到生产方式。为了跟踪这些谬误或任何其余不适当的零碎行为,甚至跟踪性能申请,监督工具会在应用程序进行更新的工夫以及何时进行继续查看。
您能够跟踪和保护某些工作的状态,包含应用工作管理软件(如 ClickUp)开发事物的形式。这是 2019 年十大最佳项目管理软件,它们必定会进步您团队的生产力
每个胜利阶段的背地,都有许多工具能够帮忙 DevOps 顺利运行。以下是一些重要的方面:
Git
它是设计用于解决各种规模我的项目的最受欢迎的收费凋谢源代码版本控制系统之一,因而,它是整个软件行业宽泛应用的 DevOps 工具。Git 使咱们可能跟踪工作进度。咱们能够保留源代码的所有版本,并在必要时返回以前的版本。Git 在 DevOps 生命周期的继续倒退中扮演着重要角色。
Docker
另一个重要工具是 docker。Docker 通过“容器”使发行版开发成为可能,并使应用程序的部署自动化。为了使应用程序可移植且更平安,docker 将应用程序隔离到独自的容器中。泊坞窗应用程序独立于操作系统和平台。
Selenium
这是用于 Web 应用程序的便携式软件测试框架。它是一个开源工具,可在 JAVA,Python,Ruby,Perl,Php,Javascript 等大多数平台上运行。Selenium 用于间断测试。
Maven
从我的项目构造到构建步骤,Maven 是为咱们提供指南的工具,该指南在遵循时能够帮忙咱们以起码的配置更快地实现工作。它编译源代码,运行测试,将后果打包到 JAR,WAR 等中,而后将软件包上传到近程存储库中。
Jenkins
它是可用于测试的间断集成服务器。作为开发人员,它有助于查找和打消代码中的谬误。Jenkins 提供了约 1000 个插件的宏大插件生态系统,这意味着它能够与简直所有 DevOps 工具集成。
Nagios
这是另一个具备丰盛插件零碎的工具,具备收费和凋谢源代码监督工具,可帮忙您发现和修复 IT 根底构造中的问题,而后再影响敏感的业务我的项目。
Ansible
它是另一个开源 IT 配置管理和部署工具。它应用 YAML 编写的简略语法。ansible 不须要在要进行自动化的主机零碎上装置任何其余端口。这样能够为应用程序节俭大量资源。这些模块可与 JSON 一起应用,并且能够应用任何编程语言进行扩大。总的来说,这是一个简略的工具,能够大大提高生产率。
Puppet
它是一个配置管理平台,使咱们能够将根底构造作为代码进行治理。因为代码能够自动化基础架构治理,因而交付速度更快,更平安。Puppet 还为小型我的项目提供开源工具。
如何成为一名 DevOps 工程师?
这还要从它的定义讲起。DevOps 是 Development 和 Operations 的组合,也就是开发和运维的简写。
DevOps 是针对企业中的研发人员、运维人员和测试人员的工作理念,是他们在利用开发、代码部署和品质测试等整条生命周期中合作和沟通的最佳实际,DevOps 强调整个组织的单干以及交付和基础设施变更的自动化、从而实现继续集成、继续部署和继续交付。
何为继续集成、继续部署、继续交付呢?
继续集成(CI-Continuous integration)
是指多名开发者在开发不同性能代码的过程当中,能够频繁的将代码行合并到一起并切互相不影响工作。
继续部署(CD)
继续部署 (CD-continuous deployment) 是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品, 继续部署在某种程度上代表了一个开发团队的更新迭代速率。
继续交付
继续交付是在 (Continuous Delivery) 继续部署的根底之上,将产品交付到线上环境,因而继续交付是产品价值的一种交付,是产品价值的一种盈利的实现。
此外,理解了概念之后,还须要学习一些基础知识。
1、首先必须具备 coding 能力,诸如 Pythong, Go 或 C /C++ 等;
2、必须能动操作系统 /Linux+Windows 的根本,过程治理,网络管理,存储管理,虚拟化 +Docker 等;
3、晓得一些治理服务器的开源组件和系统命令等,包含 DNS,OSI 网络和平安,监控,日志,性能方面等;
4、懂企业架构,诸如 WebServer, 数据库等;
5、最要害得了解 Infrastructure,自动化工具引擎、治理虚拟化的工具平台、Docker 治理平台及其相干架构、Orchestrate 工具和罕用一些云的应用技巧,当然包含 Infrastructure 的经营和运维操作能力,什么监控(也要懂利用监控等)工具等等。
DevOps 国内利用现状如何?
DevOps 在近几年的发展势头堪称是迅猛无比,曾经有越来越多的企业机构开始尝试落地,从国外的微软谷歌到国内的阿里腾讯,DevOps 曾经从时尚概念落地最佳实际,进而扭转着整个软件行业,成为推动软件行业后退的外围能源。
国外 DevOps 呈现的一些新工作角色是
1、DevOps 架构师
2、DevOps 开发人员
3、DevOps 参谋
4、DevOps 测试分析师
5、DevOps 管理器
更多文章和材料 ↓↓↓
阿里云 K8s 实战手册 K8s
阿里云 CDN 排坑指南 CDN
ECS 运维指南 ECS
DevOps 实际手册 DevOps
Hadoop 大数据实战手册 Hadoop