当前位置 : 首页 > 徐州软件开发技术论坛 > 微服务时代下崛起的 TestOps 工程师

微服务时代下崛起的 TestOps 工程师

作者:徐州软件公司  文章来源:徐州软件公司   阅读次数:370 次
2017-11-13

此文章是徐州软件公司整理的技术资料,由徐州软件公司总务部发布,邮箱:zongwu@xuzhousoft.com

江苏徐软信息科技有限公司江苏徐软信息科技有限公司

微信中有些上次参加源创会微服务专场的很多朋友,希望整理下关于 PPT 的演讲内容,然后发表一篇文章:关于微服务下 TestOps 的工作和未来。

然后我也正有这样的想法,但是可能单方面的自我总结比较片面,希望帮助很多还在迷茫的探索的QA工程师寻找未来之路。

文章的大纲:

  1. 微服务和 DevOps
  2. DevOps 孵化下的 TestOps
  3. TestOps 在未来

9月24日源创会微服务专场重庆站(https://www.oschina.net/question/2686220_2267084)

TestOps 很新鲜(内心认为你们是这样想的),也可以说是衍生的新型职位,维基百科甚至没有收录关于 TestOps 的词条。

谷歌(Google)上的关于 TestOps 只有寥寥无几的文章,国内的 TestOps 更是一片空白,很多人停在理论上,没机会去实践。

因为机缘我在一家新型互联网创业公司,公司没有运维的同时,又是在微服务的架构下,我们又在做敏捷… 所以有幸改变了之前的工作方式和内容。

开始前,有个段子。刚进入公司的时候内心还在想:xx(自动幻想屏蔽词),现在测试要求会 coding 就算了,怎么还要会运维,而且不是简单的 linux 命令,搭建服务器、管理服务器、Docker、微服务…有些名词闻所未闻,当时还觉得年代变了吗?

要求这么高了,基于想提高自己、不被互联网淘汰的态度接受了这份看起来难度很大的工作。

CTO 是微服务架构方面的专家,他引领我走向了TestOps,然后我发现我已经无法自拔的爱上了这个职位(由衷的感叹)。

开始文章前,给大家讲一个故事,为什么叫容易消失的测试工程师。产品研发前每次会开一个需求评审会,产品经理会叫上研发经理、前端、后端坐下来翻云覆雨一波。

讨论片刻,遇到问题想到测试曾经发现一个诡异的问题,这时候拍了拍脑袋,忘了叫上测试人员讨论呢,连忙去喊测试过来一起讨论。次日,又是一番舌战群儒。

又发现一个另外的测试同志发现的诡异问题,却又忘了喊测试…而且这样的频率也很频繁。测试还要每次不厌其烦的补位需求评审会。

反而每次产品有关业务的一些问题又会去询问测试具体细节,这明明是很矛盾的消失啊?(黑人问号脸)

为什么会出现测试容易消失掉?因为测试攻城狮的职业定位缘故,很多人看来测试的工作轻松,技术含量没有那么高,所以导致存在感降低。

如何做一个有存在感的设计师工程师呢,咱们开始前规避这个话题,文章最后来回答这个问题。

我们先看看微服务和 DevOps。微服务这两年火的一塌糊涂,跟敏捷离不开。互联网日新月异,产品迭代供不应求,那么敏捷作为这个阶段的主题。微服务跟随着浮出海面并且波涛汹涌。

咱们先看看传统的几个工作流,询问过一些朋友网友和同事(第一种比较主流,第二种我曾经的一家公司):

徐州软件开发公司徐州徐软信息科技有限公司比较下前面两种的优劣吧:

第一种情况:测试会花费大量的时间在沟通,但是有多领域技能的提升。开发人员专注力提升。缺点是:测试人员无法专注于质量掌控,开发局限于coding。

第二种情况:开发会花费大量的时间在沟通,但是有多角度的视野。测试人员专注力提升。缺点是:开发人员无法专注于业务开发和技术专研,测试局限于测试。

他们有一个共同的缺点:

无论是开发和运维还是测试和运维,他们之间总有无尽的黑暗的墙阻隔。运维像个黑盒被吞没。

那么微服务如何解决这些场景呢?

这是个微服务较为主流的工作流程:

开发人员提交代码到代码仓库,微服务所独有的持续集成CI(Continuous Integration)和持续交付工具CD(Continuous Delivery)自助拉取代码调取一个配置中心,ssh连接对应远程服务器将代码部署到服务器上启动服务。通过工具通知或者开发测试沟通通知测试人员进行测试。测试通过后,部署到预生产环境和生产环境。

红色框内的工作流我们称之为 DevOps。这个名词最近越来越火。简单解释下DevOps(来自可爱的wiki百科):

DevOps 是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。

它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。

大家知道了DevOps是种工作流,甚至可以叫做工作文化。这些工作流的设施由哪些东西支撑呢?我们可以进行技术选型:

这些都是比较主流的微服务设施,当时现场有人提问:像京东有一整套的设施为何不去使用?

我们需要的设施是服务于最适合当前的业务和架构场景的,所以我们的设施都是经过调研斟酌的。

筛选组合成了一套最适宜于自己架构的设施,经历过很多次失败。并且我们不断完善我们的架构,最近在做高可用服务,欢迎志同道合的伙伴加入我们一起玩微服务。

我们比较一下传统行业下和微服务下的变化吧:

  1. 运维人员通过之前人为部署变为机器部署,我们称之为去OPS化。
  2. 测试由代码测试变成镜像测试
  3. 处理线上故障和上线宕机机制改变

说到镜像这里有一个单词不得不提了:Docker,Docker 和微服务相辅相成。如果说微服务没使用 docker 甚至都是个伪命题。

Docker 有三个大要素:镜像仓库、镜像、容器

下面总结了 Docker 的简易工作流:

Jenkins 和 Ansible 设施把开发人员的代码通过读取dockerfile文件的方式生成一个镜像。

这个镜像扔进镜像仓库中,可以是个可视化的页面进行管理。当容器启动时从对应的镜像仓库拉取分发到被 docker swarm 集群下的一个 worker 服务中就被运行起来了。

Docker 不是虚拟机,它类似于虚拟机。但是它更轻量,容器只用启动开发者软件所需要的依赖,不像虚拟机启动需要的依赖系统和软硬件。

那么 Docker 的 images 是怎么回事呢?我尝试举个栗子:images像安装包,它里面是个包。就像苹果手机,APP 就是镜像,APPstore 是镜像仓库,手机是启动 APP 的载体也就是容器。

我们之前对镜像有个误区:

之前我们一直以为一个镜像对应一个容器,所以不同环境启动不同的容器。我们发现其实镜像中依赖和代码都是一样,除了数据库的地址也就是数据源不同。

如果一个镜像对应一个容器我完全可以按照传统的做法将代码部署到不同的服务器上就可以了。所以我们认为真正的镜像应该只有一个,所有不同的服务器上的容器启动的镜像也应该是一个。

我们如何解决呢?

需要解决这个问题很简单,将image中的APP和数据源分离。镜像只存在代码和开发者依赖的软件,不存在任何的环境变量。通过数据卷挂载的方式,调用外部配置中心映射。镜像永远是那个镜像。

基本到这第一节的内容就结束,这次主题是Testops。很多人肯定会奇怪为什么要将微服务和DevOps,TestOps是被孵化出的衍生职位,让微服务飞一会儿。我们好登机!让我们进入正题吧:

大家知道过前端和后端是没有分离的,后来前后端分离后,前端逐渐发展成了大前端,那么未来是不是DevOps也会进行革命性的变革:

之前讲过DevOps是个工作流也可以说是个团队,将来它会划分为3个工种测试开发已经有了,那么DevOps会分裂为一个DevOps工程师和TestOps工程师。

之前那副图有讲过DevOps工作流。以我为例,公司Testops主要涉及的工作内容,如图所示的所有的范围:

包括持续集成工具的搭建和维护,配置中心的代码编写和维护。服务相关的处理和维护。测试的本职工作。

如何定义 TestOps 呢?

顾名思义:测试运维。Testops 还要站在测试角度推动研发和运维,将持续测试运用到持续集成中的我们都可以称之为 TestOps。

TestOps 应该掌握哪些技能呢:

  1. Dev 能力用于测试工具开发和运维工具开发,并不是业务代码开发。
  2. Ops 能力用于微服务设施和基础设施搭建和维护,区别于运维人员的服务性能和安全性监控
  3. QA 基本具备的能力和整个测试体系的运用。

TestOps 应该有怎么样的未来?

曾经看到一篇文章,这位赛斯-埃利奥特是位微软的测试专家,他很多文章开始关注 TestOps,他提及脸书和微软开始改变他们的流程,开发者不再是部署代码到服务器上,他们会有一部分 TestOps 任务。

也就是说未来成为 TestOps 的不单单是测试也有可能是开发或者运维。

未来价值:

DevOps 能推动整个测试和运维团队统一整个研发流程,帮助团队更敏捷的提交产品。

他能解决流程问题,但是无法发现开发过程中测试的缺陷。只有专业的 TestOps 站在专业的测试角度推动开发和运维一起进行。

TestOps 和 DevOps 形成一个完整的持续集成和持续交付体系,才是完善了整个微服务下的工程师架构了。

设想下未来的工作场景:

开发人员提交代码到代码仓库,C I工具会有持续测试平台和持续部署平台。持续测试平台包含:代码质检工具类似 sonar,接口测试工具,UI测试工具…测试人员只用编辑测试场景和用例来帮助工具执行用例。

如果有了人工智能AI那么很有没有可能功能测试人员将会失业哦。

江苏徐软信息科技有限公司(简称徐州软件公司)是徐州软件公司中成立时间最长、技术能力最强、经济实力最雄厚的徐州软件开发公司之一,专业的徐州软件开发团队,从事徐州软件开发10年,一直保持着徐州软件开发行业排头兵的地位。徐州软件公司徐州软件开发行业内的众多徐州软件开发公司保持着良好的合作关系,是徐州软件开发行业的领航者之一。徐州软件公司立足徐州软件开发市场,主攻徐州软件开发徐州APP开发徐州软件公司徐州ERP软件开发徐州OA软件开发徐州CRM软件开发等领域拥有大量经典案例。更多信息请访问徐州软件公司官方网站:

徐软com:http://www.xuzhousoft.com  徐软cn:http://www.xuzhousoft.com.cn
徐软app:http://app.xuzhousoft.com  淮北徐软:http://huaibei.xuzhousoft.com.cn
济宁徐软:http://jining.xuzhousoft.com.cn  亳州徐软:http://bozhou.xuzhousoft.com.cn
菏泽徐软:http://heze.xuzhousoft.com.cn  宿州徐软:http://suzhou.xuzhousoft.com.cn
枣庄徐软:http://zaozhuang.xuzhousoft.com.cn  宿迁徐软:http://suqian.xuzhousoft.com.cn
商丘徐软:http://shangqiu.xuzhousoft.com.cn  连云港徐软:http://lianyungang.xuzhousoft.com.cn
莱芜徐软:http://laiwu.xuzhousoft.com.cn  泰安徐软:http://taian.xuzhousoft.com.cn
日照徐软:http://rizhao.xuzhousoft.com.cn  开封徐软:http://kaifeng.xuzhousoft.com.cn
周口徐软:http://zhoukou.xuzhousoft.com.cn  盐城徐软:http://yancheng.xuzhousoft.com.cn
淮安徐软:http://huaian.xuzhousoft.com.cn  阜阳徐软:http://fuyang.xuzhousoft.com.cn
蚌埠徐软:http://bengbu.xuzhousoft.com.cn  临沂徐软:http://linyi.xuzhousoft.com.cn
邳州徐软:http://pizhou.xuzhousoft.com.cn  新沂徐软:http://xinyi.xuzhousoft.com.cn
沛县徐软:http://peixian.xuzhousoft.com.cn  睢宁徐软:http://suining.xuzhousoft.com.cn
丰县徐软:http://fengxian.xuzhousoft.com.cn  萧县徐软:http://xiaoxian.xuzhousoft.com.cn
砀山徐软:http://dangshan.xuzhousoft.com.cn  微山徐软:http://weishan.xuzhousoft.com.cn
永城徐软:http://yongcheng.xuzhousoft.com.cn  网络营销:http://www.f168yingxiao.com
徐州系统集成公司:http://www.0516app.com

关键字标签:徐州软件公司 徐州软件开发公司 徐州APP软件开发公司 徐州ERP软件开发公司 徐州CRM软件开发公司 徐州OA软件开发公司

下载DOC版 下载PDF版

* 以上内容由 徐州软件公司 整理


关于我们

    江苏徐软信息科技有限公司(简称徐州软件)位于国家大学科技园内,成立于2005年,注册资金1000万元,是徐州地区最具实力的集软件开发、电子商务技术服务、门户网站建设、系统集成、网络工程为一体的高科技IT技术公司之一。

技术支持

  • 售后服务电话:0516-83003411
  • 售后服务QQ:412110939
  • 售后服务邮箱:
    service@xuzhousoft.com
  • 售后投诉电话:18795428064
徐州软件公司
    扫描微信二维码即可获得
    免费信息化咨询服务

Copyright© 2005 江苏徐软信息科技有限公司 All Rights Reserved.
苏公网安备 32030302000144号  苏ICP备11059116号-5

地址:江苏省徐州市云龙区和平路57号江苏师范大学科技园4F  徐州软件公司
电话:0516-83737996 邮箱:sales@xuzhousoft.com

江苏徐软信息科技有限公司地图
江苏徐软信息科技有限公司地图
点这里关闭本窗口
×