瀑布式开发以文档为中心的软件开发模式,制定计划——>需求分析——>软件设计——>程序编码——>软件测试——>运维,各阶段以输入、输出、反馈、确认的形式联系衔接形如流水。瀑布式开发的典型特征是团队在100%完成上一道工序之前不会进展到下一步,也被称为庞大的预先设计方法「Big Design up Front,BDUF」。瀑布式相对来讲适用于toB项目,特别是面对失败风险太大或者变更成本过高的项目,花更多时间确保更高层次的置信度是最好的选择。
敏捷式开发以为客户创造价值的思维为前提,鼓励尽早并持续地交付可以工作的软件。以用户需求为核心,将大项目分成多个可独立运行、可集成的小项目,以需求优先顺序小步快跑进行快速增量式迭代,项目在迭代的过程中持续运行。敏捷式开发通过有效的沟通精准定位达成用户需求,同时能够以最小成本快速响应需求变更,非常适用于竞争激烈,快速变化的市场。
DevOps//de’vɒps/,
维基百科定义DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
相较于敏捷开发是一个过程的开发框架,DevOps是一组过程、方法和系统的统称,从最初的“开发运维一体化”思维发展到贯穿于整个软件生命周期的理念,运用自动化流程实现软件可靠的快速迭代。DevOps理念有力帮助企业迅速抓住商业机会,以最小成本试错,持续快速迭代出稳定产品。
【“过程”侧重点:内部因素】
【“系统”侧重点:同时考虑内外部因素】
DevOps是云原生实现的关键Experience。引入DevOps在软件交付生命周期中,打通了软件开发、测试和运营的壁垒,使各方更好的沟通和协调,有效促进业务创新、快速适应业务变更,提升交付的效率和质量。
相关热词解锁
云原生应用——面向云设计的应用,从字面意思理解就是面向云设计的应用,充分利用和发挥云平台的资源弹性和分布式优势,实现弹性伸缩、动态调度、优化资源利用率。Pivotal公司概括的4要素:DevOps+持续交付+微服务+容器。
微服务,将大型复杂的应用解耦,拆分成多个微服务式的独立小型服务集合进行开发,是一种松耦合的能够被独立开发和部署的无状态化服务(独立扩展、升级和可替换)。
虚拟化,是资源的一种逻辑表示,并不会受限于物理资源。将硬件之上的一个系统“劈成”多个相互隔离的系统,为微服务提供便利。
容器(Container),在虚拟化的基础上,将操作系统上构建出为多个不同的“运行环境”,充分利用物力资源,是部署微服务的完美工具。
持续交付,大型复杂应用各部分不停机的迭代更新,小步快跑,开发版本和稳定版本并存,悄无声息见就完成。
文章来源于互联网:DevOps