快速交付

快速交付

为什么要进行快速交付

提升行业竞争力

得益于IT基础产业的升级和云的遍地开花,软件创建和发布比以往任何时候都更加轻松快捷。软件的迭代速度一定程度上说明了客户对于应用程序的需求和依赖程度,互联网等企业的软件迭代能力对抵御外界同行的干扰至关重要。初创企业可以在很少甚至没有资金的情况通过快速交付,融入客户的需求,对自己的产品进行快速迭代,提升行业竞争力,以便与同行展开更高效的竞争。

 

软件交付模式发生了巨大且细微变化

在这里我们可以清晰看到与过去相比,我们不必开车去商店寻找所需的软件,然后到收银员那里付款,最后以硬件方式被交付。在如今的软件交付模型下,用户打开不同终端进入应用程序商店或前往对应网页,通过下载内容,以内置的应用程序被交付给个人用户或企业用户使用。现如今,直接从生产方分发,非常容易得到交付。总而言之,把您的软件交到数百万用户手中仅仅是一个下载过程,软件的创建和发布比以往任何时候都更容易和更快。

怎样才能快速交付

需要哪些工具才能快速交付

在这个新的软件驱动世界中发布软件需要做很多事情:

首先我们需要用于管理软件开发发布流程的工具。

然后需要正确测试和检查您的代码是否存在缺陷和潜在问题的工具。

最后需要部署应用程序的工具。

除了AWS的Code系列、Elastic Beanstalk、Lambda等相关DevOps工具,以下是AWS平台可以集成的部分第三方工具。在DevOps 理念支撑下,我们光环有云对于快速交付有着丰富的实施经验。

应用程序交付流程

我们看到软件发布存在四个主要阶段,第一阶段是代码资源的托管与管理。第二阶段是代码的构建阶段,包括单元测试,代码样式检查,代码指标,创建容器镜像等等。第三阶段是测试阶段,包括与其他系统的集成测试,压力负载测试,UI测试,渗透测试等等。第四阶段是生产部署阶段,主要是快速、安全、无停机时间部署到生产环境,满足生产环境的弹性高可用。

具体来说,在第一阶段,您的源代码也许是java文件或任何您的其他应用程序代码,在某种程度上,您的团队可能拥有代码的各种评审机制,以某种方式检查以确保团队所有开发人员的代码是在下一个阶段是准确的。在第二阶段,也许您的代码需要编译,变成二进制文件,可能需要内置在容器里,也许您需要构建一个IOS或者Android或者其他容器。基于模型的包,这也是您可能会运行的单元测试,运行代码样式检查器,可能会围绕您的代码进行更改和其他性能测试,在这个阶段需要迭代多次不同时间、地点、人员提交的代码,尽快通过各种单元测试。在第三阶段,您将进入实际存在的生产环境,根据实际环境进行测试和更深入的集成测试,包括压力负载测试,UI测试,渗透安全性测试等等。在第四阶段的部署过程中,在服务器部署测试后的最终代码,将代码部署到应用商店,被客户下载消费。

 

传统与快速交付对比

当开发人员完成代码并提交之后,交接审核、测试与运营人员分别进行审核、构建测试、上线部署。对于需要运营上线的人来说,工作的一部分是由于必须等待代码审核人员审核、测试人员构建测试,质量保证之后部署上线,而实际工作时间只是花了了几分钟而已,等待可能需要花费好几天的时间。将所有这些结合在一起,我们从代码提交后、到构建,测试、上线部署的产品是我们花了几周的时间才拿出来的。不同的人员所做的实际工作时间分别只有几分钟到几十分钟而已。

运用Devops理念,通过快速交付手段可以将想做的事情减少到几个小时。省去等待时间和交互时间。

代码管道快速交付优势

持续交付服务,可快速,可靠地更新应用程序
对软件发布过程进行建模和可视化
每次代码更改时都构建,测试和部署代码

典型快速交付流程

大致过程如下:

通过CodePipeline轮询Github等代码仓库,检索代码的最新提交,选择合适的分支代码或者提交后,然后在S3中创建源文件。等待原始阶段和原始动作完整后,通过管道过渡到下一个Build阶段,可以通过Jenkins插件的管道机制获取并确认工作流,从S3自动获取源文件进行编译并进行相关的单元测试,测试完成后,将测试结果返回到构建日志中。当然,构建日志、阶段详细信息等数据可以在CodeBuild构建的项目中查看,也可以将日志输出到CloudWatch日志组或S3中。最后通过管道过渡到最后的Deploy阶段,部署可以通过CodeDeploy或者Elastic Beanstalk进行部署。

One thought on “快速交付”

Comments are closed.