开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 81|回复: 0

软件测试 | 带你了解DevOps开发模型

[复制链接]

1

主题

3

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-3-12 04:51:32 | 显示全部楼层 |阅读模式
DevOps(Dev和Ops的组合词)设计软件整个开发声明周期的各个阶段。
DevOps是一个非常关注开发(Dev)人员、运维(Ops)人员,以及测试人员之间沟通合作的开发模型。DevOps是通过自动化方式完成测试交付流程的,以便让构建、测试、发布软件能够更加可靠地进行。
它的出现满足了现在的项目需求更加快速地上线并且每天都能上线新功能的需求。若在项目中用敏捷开发模型,项目上线新功能最快也需要一周的时间,满足不了每天都可以上线新功能的需求。所以,为了能够更加快捷地上线新功能,开发、测试和运维工作必须紧密合作。DevOps更适合用在项目中需求频繁变化,开发、测试、运维都需要敏捷的场景。
DevOps是有生命周期的,下面介绍一下DevOps生命周期中包含了哪些阶段。
(1)持续开发

这是DevOps生命周期中软件不断被开发的阶段。与瀑布流模型不同的是,软件可交付成果被分配在多个任务点,目的是在较短的时间内开发并交付系统功能。
DevOps生命周期中软件不断被开发的阶段包括计划阶段、编码阶段和构建阶段。
1)计划阶段:可以使用一些项目管理工具,如JIRA来管理整个项目。
2)编码阶段:可以使用Git或者SVN来维护不同版本的代码
3)构建阶段:使用打包工具,如Maven,把代码打包到可执行文件中
(2)持续测试

在这个阶段,程序员开发出来的软件会被持续地测试。
对于持续测试,可以使用一些自动化测试工具实施,如Selenium、Appium。Selenium是做web自动化测试的工具,Appium是做App自动化测试的工具。自动化测试的工具还需要配合测试框架一起使用,如Java中的TestNG、JUnit,Python中的unittest、pytest。有了这些自动化测试的工具,就可以持续地对开发出来的软件进行测试了。
(3)持续集成(CI)

一旦新提交的代码测试通过,这些代码就会不断地与已有代码进行集成,这就是持续集成。
这个时候可以使用Jenkins,它是现在流程的持续集成工具。使用Jenkins,可以从Git库中提取最新的代码,并生成一个构建任务,最终可以把程序部署到测试环境或生产服务器中。
还可以把Jenkins设置成:发现Git库里有新提交的代码,就自动触发新构建任务;我们也可以单击Jenkins的 “构建” 按钮手动触发一个新的构建任务。有了Jenkins这款利器,开发人员就可以非常方便地完成代码的持续集成工作。
(4)持续部署

持续集成完了之后,就可以直接把代码部署到实际环境中。在这个阶段,需要保证只有通过了持续测试的正确代码才能被部署到服务器上。
因为,如果系统上线了新功能,就会有更多用户使用新功能。这样的话,为了不让系统宕机,运维人员可能把还需要苦战服务器来容纳更多的用户。持续部署是通过配置管理工具快速、频繁地执行部署任务实现的,这让产品的新功能可以更快地和用户见面,打通了开发、测试到上线的一个快速通道。
在这个阶段,容器化工具Dorker也发挥着重要作用。它可以帮助保持各种运行环境是一致的,如测试环境、生产环境等,因为运行环境的不同也可能会导致一些系统Bug的出现
(5)持续监控

系统上线之后,就得到了持续监控的阶段。这是DevOps声明周期中非常关键的阶段。通过线上的监控可以帮助我们提供软件的质量,监控软件的性能。
这里也需要运营团队的参与,他们也会监控用户在使用产品过程中出现一些 ” 错误行为“ ,用以系统的进一步优化。
在这个阶段,可以使用ELK Stack,这是一个收集线上数据,并分析、展示数据的平台,通过这个工具可以自动地收集用户使用系统的动作和产品的一些线上的badcase(坏案例)数据,通过分析这些数据,可以为产品将来的发展方向做出知道。
(6)常用工具


  • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
  • 构建工具:Ant、Gradle、maven
  • 自动部署:Capistrano、CodeDeploy
  • 持续集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  • 容器:Docker、LXC、第三方厂商如AWS
  • 编排: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、loader.io
  • 预警:PagerDuty、pingdom、厂商自带如AWS SNS
  • HTTP加速器:Varnish
  • 消息总线:ActiveMQ、SQS
  • 应用服务器:Tomcat、JBoss
  • Web服务器:Apache、Nginx、IIS
  • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-9 17:35 , Processed in 0.080836 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表