devops简介

什么是DevOps?

DevOps是一种文化,它促进开发和运营团队之间的协作,以自动化和可重复的方式更快地将代码部署到生产环境。 “DevOps”这个词是两个词“development ”和“ operations ”的组合。

DevOps有助于提高组织交付应用程序和服务的速度。 它使组织能够更好地为客户服务,并在市场中更有竞争力。

简而言之,DevOps可以定义为开发和IT操作的融合。

devops简介_第1张图片

在本教程中,我们将学习

什么是DevOps?

为什么需要DevOps?

DevOps与传统IT有何不同?

为什么使用DevOps?

DevOps生命周期

DevOps工作流程

DevOps与敏捷有何不同? DevOps与敏捷

DevOps原则

DevOps工程师?

DevOps工程师的角色,职责和技能

DevOps自动化工具

DevOps的未来是什么?

为什么需要DevOps?

在DevOps之前,开发和运营团队互相独立。

测试和部署大多是在设计开发之后完成的独立活动。 它们时常比开发周期消耗更多时间。

在不使用DevOps的情况下,团队成员将大量时间花在测试,部署和设计上。

手动代码部署偶有人为错误

编码和运营团队互相扯皮。

根据Forrester Consulting Study,只有17%的团队可以足够交付软件。

DevOps与传统IT有何不同?

让我们将传统软件瀑布模型与DevOps进行比较,以了解DevOps带来的变化。

我们假设该应用程序计划在2周内上线,编码完成80%。 我们假设该应用程序是全新发布,购买服务器以运送代码的过程刚刚开始 -

旧流程

DevOps的

订购新服务器后,开发团队将进行测试。 运营团队根据企业的需要开展大量文书工作,以部署基础架构。

下订单后,开发和运营团队在文书工作上共同设置新服务器。 这样可以更好地了解基础架构需求。

关于failover,冗余,数据中心位置和存储要求的预测存在偏差,因为对应用程序有深入了解的开发人员无法提供任何输入。 由于开发人员的输入,有关

failover,冗余,灾难恢复,数据中心位置和存储要求的预测非常准确。 运营团队对开发团队的进展一无所知。

运营团队根据他们的理解制定监控计划。 在DevOps中,运营团队完全了解开发人员正在取得的进展。

运营团队与开发人员互动,共同制定满足IT和业务需求的监控计划。 他们还使用高级应用程序性能监视(APM)工具

上线之前,负载测试测得应用程序崩溃。 发布延迟了。 在上线之前,负载测试使应用程序有点慢。 开发团队迅速解决了瓶颈并按时发布。

为什么使用DevOps?

DevOps允许敏捷开发团队实施持续集成和持续交付。 这有助于他们更快地将产品推向市场。

其他重要原因是:

1.可预测性:DevOps可以显着降低新版本的故障率

2.再现性:任何改变都是版本,可以随时恢复早期版本。

3.可维护性

4.上市时间:DevOps通过简化的软件交付将上市时间缩短50%。尤其 对于数字和移动应用。

5.更高的质量:DevOps帮助团队提供更高质量的应用程序开发,因为它在基础架构方面的合作。

6.降低风险:有安全专家的参与。

7.弹性:软件系统的运行状态更稳定,更安全,更改是可审计的。

8.成本

9.将更大的代码库分成小块

什么时候采用DevOps?

DevOps应该用于大型分布式应用程序,例如电子商务站点或托管在云平台上的应用程序。

什么时候不采用DevOps?

它不应该用于关键任务应用程序,如银行,电源和其他敏感数据站点。 此类应用程序需要对生产环境进行严格的访问控制,详细的变更管理策略,数据中心的访问控制策略。

DevOps生命周期

devops简介_第2张图片

DevOps是开发和运营之间的深度集成。 如果不了解DevOps生命周期,就无法理解DevOps。

以下是有关 DevOps生命周期的简要信息:

1.开发

2.测试

3.集成

4.部署

5.监测

DevOps工作流程

devops简介_第3张图片

工作流允许分离和排列用户最需要的作业。 它还能够在配置作业中镜像其理想过程。

DevOps与敏捷有何不同?

devops简介_第4张图片

敏捷解决了客户和开发的裂痕。

devops简介_第5张图片

DevOps解决了开发和运维的的裂痕。

devops简介_第6张图片

敏捷

DevOps

强调打破开发人员和管理层之间的障碍。 D软件部署和运营 解决客户需求与开发团队之间的差距。 解决开发和运营团队之间的差距 重点关注功能和非功能

它侧重于运营和业务。 开发的方式。 以最可靠和最安全的方式部署软件,而这些方式并不总是最快的。

敏捷开发非常注重培训所有团队成员,使他们拥有全栈技能。 在开发和运营团队之间传播技能 迭代快

DevOps努力为主要版本提供合并的最后期限和基准,而不是更小,更频繁的版本。


### 参考资料

-  讨论qq群630011153 144081101

-  [本文涉及的python测试开发库](https://github.com/china-testing/python-api-tesing) 谢谢点赞!

-  [本文相关海量书籍下载](https://github.com/china-testing/python-api-tesing/blob/master/books.md)

-  [本文最新版本](https://china-testing.github.io/docker_books.html)

-  https://whatpixel.com/best-docker-books/

-  https://reactdom.com/docker


DevOps原则

在这里,采用DevOps时必须遵循六个原则:

1.以客户导向

2.端到端

3.持续改进

4.自动化一切

5.团队写作

6.监控和测试

DevOps工程师

DevOps工程师是IT专业人员,他与软件开发人员,系统操作员和其他生产IT人员一起管理代码发布。 DevOps应具备与开发,测试和运营团队进行沟通和协作的硬技能和软技能。

DevOps方法需要对代码版本进行频繁的增量更改,这意味着频繁的部署和测试方案。 虽然DevOps工程师较少编码,应该具备编程基础。

DevOps工程师将与开发一起解决连接代码元素(如库或软件开发工具包)所需的编码和脚本。

DevOps工程师的角色,职责和技能

DevOps工程师全职工作。 他们负责软件应用程序平台的生产和持续维护。

以下是DevOps工程师预期的要求:

能够跨平台和应用程序域执行系统故障排除和问题解决。

通过开放的,基于标准的平台有效管理项目

提高项目可视性和追溯性

通过协作提高质量并降低开发成本

分析,设计和评估自动化脚本和系统

通过使用最佳的云安全解决方案服务确保系统问题的关键解决方案

DevOps工程师应具备问题解决者和快速学习者的软技能

DevOps自动化工具

自动化所有测试流程并对其进行配置以实现速度和灵活性至关重要。 此过程称为DevOps自动化。

维护庞大的IT基础架构的大型DevOps团队面临的困难可以简要分为六个不同的类别。

基础架构自动化,比如亚马逊网络服务(AWS)

配置管理,比如ansible、Chef

部署自动化, 比如buildbot,Jenkins

性能管理,比如App Dynamic。

日志管理,比如Splunk

监控,比如Nagios

DevOps的未来是什么?

他们有很多可能发生在DevOps世界中的变化,其中一些最突出的是:

组织正在将他们的需求转移到数周和数月而不是数年。

我们很快就会看到,DevOps工程师比企业中的任何其他人拥有更多的最终用户访问权和控制权。

DevOps正在成为IT人员的重要技能。 例如,Linux招聘进行的一项调查发现,25%的受访者认为求职者要具备DevOps的专业知识。

DevOps和持续交付将继续存在。 DevOps概念的主流化将需要5到10年。

你可能感兴趣的:(devops简介)