Close

软件开发

了解软件开发的基本要素


软件已经渗透到人类生活的方方面面。在 2011 年 Marc Andreessen 说出“软件正在吞噬世界”的名言后不久,预言就成为了现实。在当今的数字经济中,每家公司都是软件密集型企业。亚马逊前首席执行官 Jeff Bezos 宣称,亚马逊可能是世界上最大的零售商,但它不是零售公司,而是一家软件公司。他说:“我们的业务不是棕色盒子里的东西。我们的业务是能将棕色盒子寄出的软件。”

DevSecOps 无限循环

什么是软件开发?

软件开发是指可交付软件的设计、记录、编程、测试和持续的日常维护。这些步骤经过组合即形成工作流程管道。管道包含一系列的步骤,遵循这些步骤可实现高质量的可交付软件。该管道称为软件开发生命周期。

尽管有许多细微差别,但软件开发生命周期通常包括一些通用要素,如下所述。


软件开发生命周期的步骤


灯泡轨道

概念

设想、设计项目并确定项目优先级。诸如敏捷之类的方法有助于指导项目的工作流程。诸如 DevOps 之类的实践将在开发和操作中指导实践。在此阶段,Confluence 是开发产品研究文档和共享设计文件的理想工具。

简易工作流

计划 + 路线图

确定利益相关者,制定预算,并申请基础设施。概念阶段的设计文档被分解为可行的任务。Jira SoftwareTrello 会用于管理、跟踪和整理这些任务列表。

保存代码

编码、审查和测试

开发团队致力于构建符合要求和反馈的生产可用软件。CI/CD 管道可用于确保高效的开发人员体验。Bitbucket 提供协作式代码审查工具和插入代码审查流程的 CI/CD 管道

代码发布

部署、发布和托管

当代码已获批准并已合并时,即会进入交付阶段。借助 Bitbuckets CI/CD 管道,点击几下即可完成部署。实时生产代码需要一个托管位置。考虑使用 Amazon AWS、Google Cloud Platform 或 Microsoft Azure 提供的云托管服务。

齿轮

支持、运营和维护

活跃的软件项目离不开支持和维护。Jira Service Management 提供强大的工具来捕获客户 支持请求,对其进行分类并予以解决。

错误

事件管理

事件管理是指 DevOps 和 IT 运营团队用来响应计划外事件或服务中断并将服务恢复到运行状态的流程。团队需要一种可靠的方法来确定事件的优先级,更快地解决问题,并为用户提供更好的服务。

贯穿整个软件开发生命周期的实践

CI/CD

持续反馈

团队应评估每个版本并生成报告以改进未来的版本,请客户就产品功能的价值和影响提供意见,并与利益相关者分享与业务相关的成果。通过不断收集反馈,团队可以改进流程,为客户增加价值。

安全性

安全性

随着软件应用程序的复杂性和规模不断增长,在版本周期结束时“强化”的传统安全性已不足以保证软件的安全。相反,应将安全性纳入整个软件开发生命周期,以最大程度地减少软件代码中的漏洞。

高效软件开发的主要特点


敏捷

敏捷开发是一种项目管理和软件开发的迭代方法,可帮助团队更快地为客户创造价值,同时减少问题。敏捷开发方法在软件行业中非常受欢迎,因为它们赋予了团队内在的灵活性、出色的有序性以及响应变化的能力。

DevOps

DevOps 是一套实践工具文化理念,可以实现软件开发团队和 IT 团队之间的流程自动化和集成。它强调团队赋能、跨团队沟通和协作以及技术自动化。

持续集成和交付 (CI/CD)

持续集成是将代码更改自动集成到软件项目中的实践。它允许开发人员频繁地将代码更改合并到执行构建和测试的中央存储库中。

持续交付通过自动将代码更改部署到测试/生产环境中来扩展持续集成。它会沿着持续交付管道推进。而在此管道内,自动化构建、测试和部署会被编排为一个发布工作流。

微服务

微服务架构也可简称为“微服务”。作为一种应用构建方法,它可将应用构建为一系列可独立部署、去中心化且能自主开发的服务。这些服务采用松散耦合,可独立部署且易于维护。

借助微服务架构,开发人员可以组建小规模团队,使用不同的堆栈和解耦部署来专门开发不同的服务。

敏捷

敏捷开发是一种项目管理和软件开发的迭代方法,可帮助团队更快地为客户创造价值,同时减少问题。敏捷开发方法在软件行业中非常受欢迎,因为它们赋予了团队内在的灵活性、出色的有序性以及响应变化的能力。

DevOps

DevOps 是一套实践工具文化理念,可以实现软件开发团队和 IT 团队之间的流程自动化和集成。它强调团队赋能、跨团队沟通和协作以及技术自动化。

持续集成和交付 (CI/CD)

持续集成是将代码更改自动集成到软件项目中的实践。它允许开发人员频繁地将代码更改合并到执行构建和测试的中央存储库中。

持续交付通过自动将代码更改部署到测试/生产环境中来扩展持续集成。它会沿着持续交付管道推进。而在此管道内,自动化构建、测试和部署会被编排为一个发布工作流。

微服务

微服务架构也可简称为“微服务”。作为一种应用构建方法,它可将应用构建为一系列可独立部署、去中心化且能自主开发的服务。这些服务采用松散耦合,可独立部署且易于维护。

借助微服务架构,开发人员可以组建小规模团队,使用不同的堆栈和解耦部署来专门开发不同的服务。

软件开发工具


软件开发工具对于软件开发生命周期的每一步都有帮助,包括指导敏捷和 DevOps 实践、代码管理、通过 CI/CD 实现自动化、事件响应、测试等。

Jira Software 标志

Jira Software

Jira 是敏捷团队最常使用的软件开发工具。Jira Software 是一款项目管理工具,可让敏捷团队充满信心地规划、跟踪和交付世界一流的软件。

Bitbucket 徽标

Bitbucket

Bitbucket 不仅仅是 Git 代码管理。借助 Bitbucket,团队可以集中规划项目、开展代码协作以及进行测试和部署。

Compass 徽标

指南针

Compass 是一个开发人员体验平台,可帮助您驾驭分布式架构,将有关工程产出及工程合作团队的分散信息整合到一个集中且可搜索的位置。

Atlassian Open DevOps

开箱即用,团队拥有在 Open DevOps 中开发和操作软件所需的一切。Open DevOps 从 Jira Software、Confluence、Bitbucket 和 Opsgenie 开始。团队只需单击一下即可轻松添加他们想要的工具,例如 GitHub 或 GitLab。

Atlassian Open DevOps

开箱即用,团队拥有在 Open DevOps 中开发和操作软件所需的一切。Open DevOps 从 Jira Software、Confluence、Bitbucket 和 Opsgenie 开始。团队只需单击一下即可轻松添加他们想要的工具,例如 GitHub 或 GitLab。