打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DevOps 做好自动化,远离'肝硬化'


DevOps的定义


在还没有DevOps这个字出现之前,这样的概念早就成形,当时 人们使用这些名词:Agile Operations and Infrastructure、Agile System Administration、Dev and Ops Cooperation。 在2009年的Velocity研讨会上, Flickr的两位工程师John Allspaw和Paul Hammond发表了一个演说《10+ Deploys Per Day: Dev and Ops Cooperation at Flickr》,分享Flickr内部开发人员和维运人员合作的实例,让他们可以在一天内做完十次的部署。这也是DevOps第一次向世人展示出它的威力。维基百科引用了2009年Rajiv的解释和一张经典图例来定义DevOps: 『DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程式/软体工程) 、技术运营和质量保障(QA)部门之间的沟通、协作与整合。』



这个定义翻成白话来解释,就是「不同的团队一起合作」。相信这个神逻辑大家早就知道了,但DevOps不只是这样而已。它真正的重点在于,必须让沟通、协作、整合的「文化」根植在组织内部,并落实到每个人的日常工作上。 从系统开发到维 运上线都是DevOps可施力之处,通常可以包括以下范畴:

  • 程式部署

  • 效能监控

  • 日志管理

  • 版本控管

  • 备份管理

  • 各种环境的建置

  • 各种测试

  • 问题追踪


没有自动化,迟早肝硬化


尽管有这么多的工作要执行,老板并不会因此加派人手,所以落实DevOps,必须尽一切可能做到:自动化,自动化,自动化,因为很重要所以要说三次。如果没有自动化,迟早会得肝硬化。 DevOps的目标是「借由工作自动化,来提升团队工作效能,减少错误,进而缩短产品交付周期」。必须尽量把重复性高的工作自动化,因为重复性的工作交给人工去做,不但没有效率,而且容易出错,以下举两个例子来说明自动化的优点。

  • 程式的部署常常需要重复执行,而且环境配置可能很复杂,如果交由人工执行,若某人前晚打电动太晚睡,部署时突然晃神,少执行一个步骤,程式部署可能就失败了,如果交由程式自动执行,比人工有效率且可靠得多。

  • 使用者回报正式环境发生严重错误,团队收到问题之后,通常要花大半天的时间追查问题,再花更多的时间修正问题。如果可以在系统发生错误当下,自动把错误日志以简讯方式发送给工程师,工程师收到错误日志后,可以很快知道问题的根本原因,进而修正问题,然后新版程式再依循持续交付和自动化测试的程序,很快就可以部署到正式环境。


    自动化的迷思


    然而自动化不是万灵丹,并非没有缺点或限制,以下是工作自动化的过程中,需要考量的部份:


    自动化的工作通常没有弹性

    一般的自动化程式是以脚本方式人工编写完成,然后由机器按步骤依序执行,通常只会有最基本的例外处理。自动化程式的设计通常不会有多大的弹性,如果临时因为某个特殊需求,需要增加额外步骤,只能修改程式。然而,根据成本效益原则,自动化程式用于处理80%足够多的工作,不必为了20%的例外状况去做特殊设计,如果要做到100%有弹性的自动化程式,不如去研发自动化产品。


    不是所有工作都要自动化

    也是因为成本效益原则,不是全部的工作都要自动化,某些稀少或久久执行一次的工作,人工执行就好,不需要全部的工作都做到自动化。例如某些只有1%发生机率的测试案例,人工测试可能还比较有效率。


    不能太依赖自动化程序

    如果太过于依赖自动化,万一自动化程序出问题,工作就会停摆,因为工作已经习惯交给自动化程序去做了,大家都不去学习如何用人工完成工作,所以没有人有足够的知识和经验来完成这份工作。这就像你坐在Google电动车里,在高速公路上Google电动车的自动驾驶功能坏了,会开车的人可以切换成手动驾驶模式继续行驶,而你不会开车,只好在高速公路上等待救援。


    工作不会因为自动化而被机器取代

    不要害怕自动化后工作被取代,机器不会取代工作者的工作,反而可以减轻工作者的负荷,让他们有机会可以从更高的层次去管理工作。例如QA测试人员不会因为测试自动化后就被裁员,他们可以把平日繁琐的测试工作交由机器去执行,而有更充裕的时间撰写测试案例,及思考与学习如何运用有效的测试策略来测试系统。

    (blog.ccjeng.com)

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    2020全球Python开发者调查报告速览:5分钟了解最新Python语言生态
    目前最流行的开发模式DevOps究竟是什么鬼?
    2018测试展望
    DevOps 岗位的工作内容和技能需求介绍
    译文 | 自动化一切--DevOps是什么?DevOps相关工具整理
    什么是持续集成(CI)/持续部署(CD)?
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服