本周咱们的讨论话题有关于容器化:html
讨论话题
- 话题:容器技术能为测试工做带来哪些好处?你们工做中有哪些实践经验?
- 话题描述: Devops容器化已经成为当前测试工程师的标配技能,你目前的工做中有没有哪些实践经验?你以为为你的测试工做带来了哪些好处?欢迎你们来沟通交流,发表你的见解。
本周的讨论话题平台上的小伙伴们都反应有点偏难了,可是我仍是“抓”了郑州两家在容器化方面作的不错的公司分享他们的经验。前端
你们讨论分享的内容
郑州某在线公司—韩毅
其实容器技术其最大的威力就是结合流水线来去使用效果比较显著,那么结合测试人员的具体工做来讲,经过我的经验+对公司的相关同事进行定向调研后,结合使用经验总结出产生的价值主要以下:node
- 从技术前瞻性来讲 容器化技术做为云原生四大致系之一已成为国际标准化技术标准,作为一名合格的测试人员显然对docker原理及其经常使用的命令掌握显得格外重要,同时也是其我的能力的体现;
- 从DevOps交付流水线来讲 我司DevOps流水线CI/CD能力由原有的依赖虚拟机切换至k8s+docker的容器云平台做为依托,在这一转变过程当中:
- 测试环境的平常搭建与维护效率提高比较明显,如可使用集群的公共镜像仓库来一键搭建测试环境、遇到测试资源不足的状况能够直接一键扩缩容,不只提高资源利用率 在项目须要压测时,也能够根据不一样的场景,快速扩容。
- 滚动发布的优点:传统的虚机环境发布模式在测试环境须要发布升级时可能须要进行强制杀掉进程、中止服务后再进行测试,除非是有多个节点并行测试,容器化下能够实现服务滚动升级,在不停服下一遍发布一遍测试,避免尴尬的 hard wait;
- 最主要一点就是可以经过流水线的容器化发布可以实现一次构建、屡次部署,既解决了因环境不一直致使问题的出现,更主要是能够解决了不一样环境的流水线都须要重复进行CI形成的时间和资源消耗,提高总体项目的交付效率;
~以上为我的的拙见,但愿可以抛砖引玉!谢谢!docker
郑州某银行—王伟亮
容器技术对测试的好处,我的总结以下:服务器
- 提高测试环境的稳定性。未使用容器,测试人员常常遇到的一个问题是,XX系统又访问不了了。须要测试人员将问题反馈给开发或者环境管理人员进行问题定位和环境维护,环境稳定性得不到保障。使用容器后,容器的健康检查机制,实时监控系统服务状态,发现异常服务,容器平台会按照规划好的处理机制进行自维护,前端测试人员是无感知的,提高了测试环境的稳定性。除了健康检查机制之外,容器的弹性扩容,解决了因服务器资源不足引发的测试卡顿问题,在性能方面保障了测试环境的稳定性。
- 提供隔离测试环境。测试人员应该遇到过这样的问题,举例:在A环境的前台系统测试了一段时间,发现作的交易都发往了B环境的后台系统,致使测试无效。缘由多是前台系统的配置文件错误致使。容器的租户使用了namespace(命名空间),即同一租户下网络相通,不一样租户间网络是隔离的。若是按环境维度划分租户,便可杜绝上面的问题发生。即便配置文件配置错误,在服务启动或者作第一笔交易的时候就会报错,由于A、B环境的网络是不通的,而不会在测试一段时间后,才发现环境配置错误,容器能够保障各个测试环境的独立性。
- 消除环境差别。测试人员常常遇到的一个问题,测试发现一个bug提给开发,开发拒绝,缘由多是环境问题,一样的代码版本,该bug在A环境下能够复现,在B环境不能复现。由于部署版本中不包含基础环境,有多是2套环境的软件版本或者环境变量不一致致使。容器解决了环境差别,由于容器部署的对象不是代码版本而是镜像,镜像中不只包含代码版本,还包含了系统运行所需的基础环境,使用一样的镜像版本进行测试,不会存在环境不一致的状况。容器消除了环境差别,下降了环境类bug。
- 提高测试环境交付速率。在测试环境搭建方面,容器比传统物理机或者虚拟机上搭建环境速率更快。1个系统手工搭建测试环境可能须要1-2天,容器搭建1h左右便可完成;在版本同步方面,由于容器采用“一次构建屡次部署”,因此节省了应用构建时间。大大提高了测试环境交付速率,节省了测试人员的等待时间。
江苏某公司自动化测试工程师—武韬
在以前搞cicd的时候,基本全部的工程都用到了docker,好处主要有如下几点:微信
- 环境隔离,不一样的任务运行在不一样的容器中,互不干扰。
- 多样化,docker能提供不一样的操做系统镜像,无需使用多台不一样系统的机器,下降了使用成本。
- 方便移植,直接把容器打包带走,或者放到镜像仓库,后面从新部署的时候就能够开箱即用。
- 便于管理,使用k8s或者docker swarm可以很轻松的编排容器,快速搭建环境或者执行任务。
某公司测试工程师— 吕俊杰
好处是能够接近完美的作到环境隔离和方便部署,弊端是维护成本和硬件成本以及外部依赖处理起来比较麻烦。网络
个人观点
我对容器化的理解还停留在对docker的简单实用上,因此上面你们提到的:环境隔离等我没有实际的经验能够分享,不过最近我正好在搞selenium grid,我以为用docker去搭建hub和node真是至关方便,直接拉取镜像,而后运行镜像就能将selenium grid搭建起来,因此从这个角度看,容器化可以提高咱们的工做效率。性能
另外是结合咱们公司目前的服务端上线方式,一般将跟环境有关的配置和镜像分离开,这样的好处是上面你们提到的:一次编译,屡次部署。好比:而后咱们在验证rc环境功能时,构建一次,验证经过,真正上线时就直接用以前构建好的镜像就能够了。测试
总结
容器化应该变成每一个工程师必备技能,只有熟悉起来,才能在平时的工做中寻找更多的场景。我后面为你们整理容器化相关知识点,好比:docker的使用/原理、如何环境隔离等。spa
作个小小的宣传:每周一个测试行业话题,在微信圈子(测试开发进阶训练营)、知识星球(测试开发技术圈)欢迎你们加入进来进行讨论。一块儿成长,一块儿进步!
原文出处:https://www.cnblogs.com/zhouliweiblog/p/12450437.html