如何实现持续集成和持续交付
使用持续集成和持续交付流程的理想方法是提高软件质量、缩短上市时间并减少基础设施的使用。
持续集成是指定期开发和更新应用程序源代码,使用一组既定的流程和工具,并定期发布每个版本的过程。
虽然相似,但持续交付用于在开发新系统功能以及响应客户输入时推出软件。
无论采用何种应用程序部署决策,CI 和 CD 都应成为 IT 战略的核心组成部分。如果为软件生产提供了错误的工具,则很可能面临损失,扰乱组织内的工作流程,从而导致许多问题。
所有规模的企业都严重依赖持续集成和交付。它们使企业能够以及时、经济高效和可靠的方式生产软件。
绝大多数基于 Web 的应用程序、Android 应用程序和基于云的服务都是使用 CI 和 CD 技术的组合创建的。
持续集成
持续集成的目标是为开发人员提供他们快速有效地构建软件所需的工具和灵活性。开发人员可以在每次提交代码时更新和测试其代码,以生成更完善的应用程序版本。
团队会将每次提交作为持续集成 (CI) 的一部分进行评估。当更新的版本准备好后,开发人员可以将其上传到服务器进行持续集成,这将执行自动化测试并向团队报告软件的功能。团队将立即知道任何软件问题,以便可以修复它们。
持续交付
持续交付的目标是始终如一地可靠地向客户提供软件。每次将更改发送到持续集成服务器时,服务器都会执行自动化测试并将代码以增强的状态发送给客户。
但是,团队手动执行此过程。持续集成过程由开发人员处理。当准备推送新版本时,团队将执行上面列出的手动持续交付操作。将新软件版本添加到持续集成服务器,并开始向客户交付软件。
为了从 CD 中获益,团队首先必须掌握监控用于持续集成和持续交付的持续集成服务器的技能。我们应该了解以下重要细节。
监控持续集成服务器
在实施持续交付之前,监控持续集成服务器应该是我们的首要任务之一。AWS、CloudWatch 和 Jenkins 是我们可以使用的几个选项。
Jenkins
Jenkins 是一款免费的持续集成解决方案,可以使用 Web 服务安装在 Windows Server 2016 和 Amazon Web Services 上。
Jenkins 以 Jenkins 代理的形式提供云服务,我们可以使用它来测试需求。要使用 Jenkins,我们必须拥有一个本地 Jenkins 服务器,我们可以通过 API 连接到该服务器。Jenkins 可用于生成构建作业,该作业执行持续交付的测试过程。每个作业都遵循预定的时间表。
CloudWatch
CloudWatch 是一款开源服务,用于监控 EC2 云服务。Amazon EC2(公共云)、Amazon RDS(机器人流程自动化)和 Amazon Simple Queue Service 都支持 CloudWatch 的部署(Amazon SQS)。
我们可以使用 CloudWatch 设置触发器,以便在云服务发生更改时发出警报。此外,它还允许开发警报、电子邮件和 API 端点,以与 CloudWatch API 交互并接收通知。
GitHub
通过 GitHub Pages,我们可以管理存储库和源代码。它还包含一个 Git 插件,可以轻松跟踪源代码更新并快速保持存储库最新。
持续集成流程设置
了解有效的持续集成构建的组件至关重要。为确保我们的开发和构建流程顺利进行,请执行以下步骤:
让开发人员参与
我们需要让每个开发人员了解我们项目的规范。根据工程师的需求,我们可以同时使用电子邮件和书面信函。配置自动化构建
如前所述,对于源代码的每次更新,都必须自动化构建过程。例如,我们可以在 Amazon Web Services 环境中设置自动化构建过程,以在将新功能部署到特定用户组之前测试应用程序。
可以使用多种软件程序自动化构建过程,包括 Gradle、Maven、Jenkins 和 TeamCity。
持续集成促进了程序频繁开发、测试和部署到所有环境,包括生产和开发环境。
管道——必须采取的一系列操作才能构建应用程序并将软件与基础设施连接——至关重要。
应用程序开发和分发
在设置管道以测试构建过程后,下一步是创建分发到各种环境的应用程序。
可以使用瀑布方法,这需要创建详细的设计、文档和全面的项目计划;或者使用敏捷开发构建应用程序,这使我们能够在一个冲刺内修改源代码。
另一种方法是创建按需环境,这是一个可以用来在各种环境(例如 Amazon Web Services)中执行程序的存储库。
在云中设置测试环境,然后在按需环境中创建应用程序以在与生产环境完全不同的环境中对其进行测试,这是一个标准程序。
结论
按照上述步骤,您的云优先软件开发业务模式可以成为现实。即使您是云市场的新手并且正在考虑启动您自己的第一家云优先公司,学习创建云应用程序的过程以及如何创建可扩展、透明且可重复的业务模型也符合我们的最佳利益。