什么是DevOps?
DevOps是一种文化,它促进开发和运营团队之间的协作,以自动化和可重复的方式更快地将代码部署到生产环境。 “DevOps”这个词是两个词“development ”和“ operations ”的组合。
DevOps有助于提高组织交付应用程序和服务的速度。 它使组织能够更好地为客户服务,并在市场中更有竞争力。
简而言之,DevOps可以定义为开发和IT操作的融合。
在本教程中,我们将学习
什么是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是开发和运营之间的深度集成。 如果不了解DevOps生命周期,就无法理解DevOps。
以下是有关 DevOps生命周期的简要信息:
1.开发
2.测试
3.集成
4.部署
5.监测
DevOps工作流程
工作流允许分离和排列用户最需要的作业。 它还能够在配置作业中镜像其理想过程。
DevOps与敏捷有何不同?
敏捷解决了客户和开发的裂痕。
DevOps解决了开发和运维的的裂痕。
敏捷
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年。