1.5 高度可靠的IT基础架构
到目前为止,本章主要关注的是从应用程序方面来确保IT的可靠性。但是,底层IT基础架构可以发挥至关重要的作用。我们拥有集群、网格和云,以实现基础架构级别的高可用性和可扩展性。云被认为是实现数字创新、颠覆和转型的最佳IT基础设施。为了简化、优化和加速云的设置与维护,当前出现了许多可用于重复和例行的云调度、软件部署、云执行和管理化的工具。自动化和编排正被认为云时代的前进方向。运行云中心的大多数手工操作都是通过脚本和其他方法精确定义和自动化的。随着系统、数据库和中间件的数量增多,管理云环境的网络和存储专业人员已大幅减少。云IT的总体拥有成本(TCO)正在下降,而投资回报率(RoI)正在增加。传统IT环境使用云的成本优势非常明显。云计算通常被称为大型机和现代计算之间的结合,并以获得高性能和成本优势而闻名。面向客户的应用程序具有不同的负载,非常适合公有云环境。全球企业正在制定多云战略,以便在不依赖于任何供应商的情况下采用这种独特的技术。
然而,为了获得急需的可靠性,我们还有很长一段路需要走。自动化工具、策略和其他知识库、由人工智能启发的日志和操作分析、通过机器和深度学习算法和模型获得预防性、预测性和规定性维护的能力、大量可重复使用的弹性模式以及先发制人的监控,是前进的方向。
弹性应用程序通常具有高度可用性,即使在出现故障时也是如此。如果单个应用程序组件/微服务存在任何内部或外部攻击,则应用程序仍可运行并提供其分配的功能,而不会出现任何延迟或停止。高度可靠的IT基础架构可以识别故障并将其遏制在组件中,以便应用程序的其他组件不受影响。通常,应用程序组件的多个实例在不同的分布式容器或VM中运行,因此一个组件发生故障对应用程序来说无关紧要。此外,应用程序的状态和行为信息存储在不同的系统中。任何弹性应用程序都必须有相应的设计和开发,以便在任何情况下都能运行。不仅是应用程序,还需要智能地选择和配置底层IT或云基础架构模块,以支持软件应用程序独特的弹性目标。首要的是充分利用分布式计算模型。部署拓扑和架构必须有目的地使用各种弹性设计、集成、部署和模式。此外,根据基础设施科学家、专家、架构师和专业人员的建议,应采用以下提示和技巧。
- 使用各种网络和安全解决方案,例如防火墙、负载均衡和应用交付控制器(ADC)。网络访问控制系统(NACL)也有助于提高安全性。这些方案可以智能地分析每个请求消息,以从源头过滤任何模糊和恶意的消息。此外,负载均衡不断探测和监视服务器并将流量分配给未完全加载的服务器。它们可以选择最好的服务器来处理某些请求。
- 在不同的分布式云中心使用多台服务器。也就是说,灾难恢复功能需要成为任何IT解决方案的一部分。
- 为数据恢复和有状态应用程序附加强大而灵活的存储解决方案。
- 利用软件基础设施解决方案,如API网关和管理套件、服务网格解决方案、其他抽象层,以确保系统的弹性。
- 必须结合利用区域化(虚拟化和容器化)的各个方面来实现虚拟化和容器化的云环境。云环境本质上支持灵活性、可扩展性、弹性、基础架构操作自动化、独特的可操作性和多功能性。软件定义的环境对于应用程序和基础架构的弹性更有利,更具建设性。
- 专注于日志、运营、性能和可扩展性分析,以主动和抢先监控、测量和管理各种基础架构组件(软件以及硬件)。
因此,可靠的软件应用程序和基础设施在推出可靠的系统方面相得益彰,从而保证了可靠的业务运营。
总之,可以总结为以下内容。
- 可靠性=易伸缩+可恢复。
- 自动化和编排是可靠IT基础设施的关键要求。
- IT可靠性的实现:易伸缩是在攻击、失败和故障下生存,而可恢复是在负载下自动扩展(垂直和水平扩展)。
- 通过AI启发的分析平台进行IT基础设施的运行、日志和性能/可扩展性分析。
- 拥有可靠IT基础设施的模式、流程、平台和实践。
- 系统和应用程序的监控也很重要。
1.5.1 无服务器计算的出现
无服务器计算允许构建和运行应用程序和服务,而无须考虑服务器计算、存储设备以及阵列和网络解决方案。无服务器应用程序不需要开发人员调配、扩展和管理任何IT资源,可以为几乎任何类型的应用程序或后端服务构建无服务器应用程序。云服务和资源提供商正在关注无服务器应用程序的可扩展性,它们密切监控任何负载峰值并迅速采取行动。开发人员无须担心其基础架构部分。也就是说,开发人员只关注业务逻辑和委派给云团队的IT功能即可。这种极大降低开销的方式使设计人员和开发人员能够减少浪费在IT基础设施上的时间和精力。开发人员通常可以专注于其他重要要求,例如弹性和可靠性等。
当通过自动化来获得大量无服务器应用程序时,容器的迅速普及就有用了。也就是说,我们可以快速开发和部署功能,而无须担心资源的调配、调度、配置、监控和管理。因此,FaaS近来获得了很大的发展。我们正朝着NoOps迈进。也就是说,大多数云操作通过大量技术解决方案和工具实现自动化,这种转变对于机构、个人和创新者来说非常便利,可以快速部署和交付他们的软件应用程序。
在成本方面,用户必须为使用的容量付费。通过自动和动态资源调配,资源利用率显著提高。同时,成本效率得到充分实现,并传递给云用户和订购者。
准确地说,无服务器计算是自动化计算和分析的另一个附加抽象。