第 0 天/第 1 天/第 2 天:云时代的软件生命周期
在当今的专业 IT 媒体中有一个非常突出的话题,那就是在软件生命周期中的“第 0 天/第 1 天/第 2 天”。在演讲和会议讲话当中,通常着重于使软件开发过程有效且易于管理,为此,有必要明确定义所使用的概念。通常,如果直观地理解基本术语“ 第 0 天 / 第 1 天
“天”究竟是什么?
在 IT 中,术语“第 0 天/第 1 天/第 2 天”指的是软件生命周期的不同阶段。用军事术语来说,“第 0 天”是训练的第一天,新兵进入训练阶段。在软件开发中,它代表设计阶段,在此阶段中指定项目需求并确定解决方案的体系结构。
“第 1 天”涉及开发和部署在“第 0 天”阶段设计的软件。在此阶段,我们不仅创建应用程序本身,还创建应用程序的基础设施、网络、外部服务,并实现所有部分的初始配置。
“第 2 天”是产品出厂或交付给客户的时间。在这里,大部分工作都集中在维护、监控和优化系统上。分析系统的行为并做出正确的反应至关重要,因为所产生的反馈循环将一直持续到应用程序生命周期结束为止。
在云时代之前的日子里,这些阶段是分别处理的,彼此之间没有重叠。今天,情况已不再如此。让我们看一下所有这些如何应用于现代应用程序的生命周期。
第 0 天:无聊但必不可少
第 0 天经常被忽略,因为它可能很无聊,但这并不会降低其重要性。成功的软件产品是经过全面规划和设计过程的结果。必须仔细计划系统或应用程序的体系结构以及启动和运行所需的资源(CPU、存储空间、RAM)。其次,你应该定义可衡量的里程碑,以实现项目目标。每个里程碑应有一个准确的日期。这有助于衡量项目的进度,并确定你是否延迟了计划运行。所有项目时间估算都应基于概率,而不仅仅是按最佳情况预估。进行计划时,最好添加缓冲余量,因为意外事件甚至可能使精心策划的计划陷入困境。测试阶段也起着重要的作用,也应该包括在初始项目计划中。这些是基本要求,它们在“云时代”中同以往一样重要。
尽管如此,在计算资源的第 0 天计划中,云还是改变了两件事。由于云可以在项目的任何地方获得不同的资源或新资源(CPU、存储空间、RAM),因此比本地基础设施要容易得多。因此,可以避免在计划阶段犯下的一些错误。另一方面,在计划阶段对特定云供应商的承诺可能会在以后导致供应商锁定。这可能会花费你的金钱,并且需要时间来进行更改,因此选择云供应商时要明智一些。
其次,正如我们当前在向云的迁移中观察到的那样,与运维相关的工作依旧保持不变,但不再专注于基础设施。现在,正是软件在推动着自动化和价值。
第 1 天:实现创意的阶段
对于开发人员和项目负责人而言,第 1 天绝对是最有趣的阶段。最初的设计得以实现,并根据项目的规范创建了基础设施。为了成为真正的云原生,必须遵守最佳实践。可以遵循诸如 十二要素应用程序方法
云为我们带来了从传统方法到软件开发的重要变化:将第一行代码拼凑在一起以进行概念验证后,应用程序即开始运行。你可以从持续集成实践开始,以测试你的应用程序的健全性,但是你很快会让企业迈入到持续交付。在开发应用程序时,我们开始引入一些运维元素,尤其是在使用多个环境的情况下。注意这些运维要素将使维护团队在维护阶段(第 2 天)的工作更加轻松。
在第 1 天期间可以使用几种工具。可以将它们按解决的问题分组。这个列表的顶部应提及“ 基础设施即代码
第 2 天:日常运维环节
一旦软件准备就绪,它就会上线,客户开始使用它。第 2 天始于此,并引入了包括软件维护和客户支持在内的各个元素。该软件本身将不断发展,以适应不断变化的需求和客户需求。在第 2 天期间,主要重点是建立反馈循环。我们监控该应用程序的工作方式,收集用户反馈并将其发送给开发团队,该团队将在产品中实施该应用程序并发布新版本。军事术语“ 观察-导向-决定-行动
- 观察:从监视系统获取信息(资源使用情况和指标,应用程序性能监控)。
- 导向:执行问题的根本原因分析。
- 决定:找到解决问题的方法。
- 行动:实施解决方案。
与战斗中一样,该循环不断重复。
监控程序基于 服务水平协议
有几种工具可帮助完成第 2 天的工作。 应用程序性能监控
云将改变游戏规则
在前云时代,这些阶段之间的分隔清晰可见,但是今天,随着云的日常运行,事物在不断变化。使用云和现代软件开发实践,可以更轻松地处理软件生命周期中不断变化的要求。持续集成/持续开发方法使我们能够动态响应客户反馈并实时改进应用程序,而无需等待主要版本进行改进。
基于云和原生云的软件中的 DevOps 实践有助于实现 向左移动