Sustainability可持续性对软件开发的启示

May 26, 2022

AWS亚马逊云在2021年12月,新加入了第六架构支柱“Sustainability”,即可持续性。

目前AWS云架构指引共有6个支柱(Pillars),分别是:

  • Operational excellence卓越运营
  • Security安全
  • Reliability可靠性
  • Performance efficiency性能效率
  • Cost optimization成本优化
  • Sustainability可持续性

目前软件开发处在逐渐适应云原生开发阶段,如何能够更好的利用云计算资源,在混合云环境间无缝切换,成为数字化变革的一个重要因素。对于现代数字化企业,公司运营就是数字化网络运营,每位管理者和员工都是卓越运营的参与者。 需要利用技术手段保障数据和网络的安全,零信任的技术防御,又足够开放业务。通过良好的业务设计,保证业务在受到外部因素影响下不会中断,还能够顺利的经营,服务质量也不会大幅度降低,即有足够的业务可靠性。对于企业来说,性能效率和成本优化都是非常重要的,决定在市场竞争中的能力和行业地位,管理者需要不断提升效率和优化来提高企业竞争力。

我们可以看到,当软件开发从单机/企业逐步延展到云计算时,业务系统应用软件就不仅仅只是一个可有可无的工具了,会被赋予越来越多的内容,网络和软硬件会变成对于企业,乃至对于社会和国家举足轻重的要素。数字经济,企业数字化转型关键都在于此,所谓“Software is eating the world软件吞噬世界”。

之前撰文描述过其他五个支柱,本文重点分享“可持续性”的一些心得。

可持续性学科解决了业务活动对环境、经济和社会的长期影响。 联合国世界环境与发展委员会将可持续发展定义为“既满足当代人的需要又不损害后代满足其自身需要的能力的发展”。 在构建云计算工作负载时,我们需是了解所使用服务的影响,量化整个工作负载的生命周期,通过应用设计并使用最佳实践来减少这些影响。

AWS定义了可持续性对于客户和 AWS 之间的共同责任:

  • AWS 负责优化云的可持续性——提供高效的共享基础设施、水资源管理和采购可再生能源。
  • 客户负责云中的可持续性——优化工作负载和资源利用率,并最大限度地减少工作负载部署所需的总资源。

为此可以运用一些设计原则,以最大限度地提高可持续性。

  • 了解对业务的影响:衡量云工作负载的影响。查看每个工作单元所需的资源和排放量,使用数据来建立指标项。
  • 建立可持续性目标:例如减少每个事务所需的计算和存储资源。
  • 最大化利用率:适当规模的工作负载并实施高效设计。
  • 采用新的/更高效的软硬件产品:持续监控和评估新的、更高效的硬件和软件产品
  • 使用托管服务:在广泛的客户群中共享服务有助于最大限度地利用资源。
  • 减少云工作负载的下游影响:减少使用服务所需的能源或资源量。

对于“可持续性”的软件和架构模式来说,企业架构师可以设计能够保证资源负载高利用率的模式,最大限度减少资源消耗。用户使用时间变化,如在晚间业务不繁忙时,组件利用率降低,系统资源空闲。修改架构充分利用闲置资源,从而提高整体利用率。

AWS给出以下架构优化建议:

  • 使用异步响应式和计划作业来优化软件和架构,减少任务之间的空闲资源并最大限度地减少负载峰值的影响。关于异步响应式编程也是个大话题,后续撰文说明。
  • 删除或重构使用率低或无用的工作负载组件
  • 优化消耗最多时间或资源的代码:监控性能;使用代码分析器;更高效版本替换算法;硬件加速;最高效的操作系统和编程语言;删除不必要的排序等算法;* 优化数据传输模式
  • 优化客户设备的影响
  • 使用最能支持数据访问和存储模式的软件模式和架构

在数据处理模式、硬件使用、开发和部署流程方面也都给出了具体建议。

通过使用 AWS 服务支持的这些设计原则和最佳实践,做出决策在安全性、成本、性能、可靠性和卓越运营与 AWS 云工作负载的可持续性成果之间取得平衡。为减少资源使用和提高工作负载效率而采取的每一项行动都有助于减少对环境的影响,并有助于实现组织更广泛的可持续发展目标。