瀑布开发、敏捷开发、Devops概述
无论是瀑布式开发、敏捷开发还是DevOps,整个流程都分为设计、开发、测试和部署四个部分,只不过各个部分的开始和结束时间节点不同而已!下图很好地解释了这一点。
上图中可以清晰地看到,从瀑布式开发到敏捷开发再到DevOps,各个阶段的切换速度越来越快,瀑布式开发和敏捷开发的运维部署工作都是放到最后,而 DevOps 结合敏捷开发思想,将部署工作也敏捷起来。
瀑布开发
瀑布式开发是早期被广泛采用的软件开发模型,要求有明确的需求,大家按照需求一步步做好规划,每一阶段工作的完成是下一阶段工作开始的前提,每一阶段都要进行严格的评审,保证各阶段的工作做得足够好时才允许进入下一阶段,它适用于需求明确的项目。其最大的风险是,当产品研发完成后, 到了产品测试阶段如果发现了问题 ,或者发现其无法满足市场需求, 那么就需要重新开发,甚至需要重新规划产品。
敏捷开发
敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。首先把用户最关注的软件原型做出来并交付给用户,用户在实际场景中发现问题并给予反馈,研发人员快速修改弥补需求中的不足。上述过程不断迭代,直到用户满意。敏捷适用于需求不明确、创新性或者需要抢占市场的项目,特别适合互联网项目。
DevOps
DevOps是一种软件开发实践,它将人员、流程和技术结合在一起,以交付持续的价值。该方法分为计划和跟踪、开发、生成和测试、交付以及监视和操作。DevOps 的独特之处在于开发、IT 运营、质量工程和安全团队协同工作,在发布新产品、版本或更新所涉及的所有任务中创造效率。
DevOps和敏捷
关于 DevOps 和敏捷,最重要的一点是它们不是互斥的。DevOps 是一种文化,促进所有参与软件开发和维护的参与者之间的协作。敏捷可以被描述为一种开发方法,旨在需求不断变化的现实中维护工作效率和驱动发布。尽管 DevOps 和敏捷是不同的,但是如果将这两种方法结合使用,将会带来更高的效率和更可靠的结果。DevOps是敏捷的有效补充,是将运维纳入产品开发过程的思维方式,是敏捷开发方法论的升级,更强调自动化工具的实现与应用,以帮助实现软件的快速迭代。