大多数人都听过或了解过马斯洛的需求层次理论。 如果您不熟悉这个概念(或需要复习一下),这里是 TL;DR – 马斯洛认为人们受到激励去满足某些需求。 他定义了一个五级层次结构,从食物、睡眠和安全等基本生存相关需求开始,然后向上发展到自我实现等更个人化、成长相关的需求。
可以说,层次结构通常用作模型来描述包括技术在内的多种关注点的一系列需求。 这就是我们今天来到这里的原因。
当今的应用具有一组非常具体的需求,这些需求可以按层次排列,以模仿马斯洛的需求层次结构。 根据马斯洛的需求层次理论,较低层次的需求对于生存和成功最为关键,而较高层次的需求则能够促进成长。 工作原理真是巧妙,不是吗?
这很重要,因为考虑到当今的环境和用户期望,以及在某些情况下纯粹的技术原因,如果没有应用服务,其中一些需求就无法现实地得到满足。 这些包括负载均衡、故障转移、Web 应用程序安全、SSO、加速和优化等……
当然,您可以编写一个在发生崩溃/故障时自行重新启动的应用程序,但您无法解决导致中断的网络级故障。 只有上游(外部)系统(如负载均衡或故障转移服务)才能做到这一点。 这意味着,除非您使用负载均衡之类的应用服务,否则最终您无法确保应用的可靠性。 同样地,大多数应用不能干扰控制 TCP 行为的网络堆栈。 但是上游代理(负载均衡服务)可以,并且在那里实现了许多使移动应用程序可用的优化。 如果没有它们,应用程序就会变得缓慢、无响应,并且被放弃的比例比优化后的应用程序要高。 这就是为什么性能是一个中层需求;因为它很重要,但它并不是应用最重要的需求。 毕竟,如果它不可用,那么再多的优化也无济于事。
那么,事不宜迟,让我们深入了解应用程序需求的层次结构,好吗?
1. 可靠性
可靠性意味着用户(企业和消费者)可以依赖该应用程序。 这意味着我们需要确保应用程序在高需求(可扩展性)、故障(故障转移)或灾难(灾难恢复)期间继续可用。 最基本的是负载均衡和故障转移服务,但也包括在发生灾难时负责重定向用户的 DNS 等支持应用服务。 毫不奇怪,在我们的应用交付状况调查中,可用性一直位居“应用服务组织不会在没有它的情况下部署应用”的首位。 这不仅仅是基本应用程序的生存需求;如今,它也是企业生存的需要。
2. 安全
啊,安全。 如果没有它,应用程序就容易受到各种各样的攻击,而这些攻击并非都与代码质量有关。 应用安全是一个堆栈,不仅包括应用程序,还包括其底层平台。 并且报告继续表明,攻击者正在继续向上移动该堆栈,朝向应用层,以进行渗透(窃取您的数据)和利用(阻止您的业务)。 这意味着需要各种安全应用服务来帮助应用保持可用和健康,例如 DDoS 保护、Web 应用安全、欺诈预防和加密服务。 组织遭受攻击和报告新漏洞的频率越来越高,这继续推动安全需求成为确保当今应用程序和业务生存所必需的核心应用服务之一。
3. 表现
表现。 我们都知道这有多重要,特别是对于通过移动设备(通过移动网络)常使用的应用程序而言。 性能应用服务是层次结构中的一个级别,从满足基本需求的应用服务到满足增长的应用服务。 与性能相关的担忧实际上与两者有关。 如果应用程序太慢或响应迟钝,则会对企业用户的工作效率产生负面影响,并减少来自消费者的收入。 它对业务的影响不像应用程序不可用或出现漏洞那样大,但它仍然很重要。 这就是为什么我们看到这么多组织采用图像优化、压缩、SSL 卸载和 TCP 多路复用等技术来提高应用的性能。 因为有时这与代码无关;而是与解决网络、用户设备以及应用通信协议中的挑战有关。
4. 可编程性
应用程序是当今的业务,它们不仅必须快速交付,还必须快速部署。 增长和扩展意味着支持较低级别需求(可靠性、安全性和性能)的应用服务也必须能够快速部署。 这意味着可编程性。 它意味着 API 和模板,并且可以集成并访问其他 API 经济,从而推动 CI/CD 管道从开发进入运营,并跨越更广泛的 IT 领域。 可编程性使应用服务能够参与 DevOps 生态系统,无论它专注于网络(SDN)还是云( OpenStack )还是整个数据中心(SDDC)。 模板提供了标准化(一致性)和可重复性,这是改进现代数据中心部署流程所必需的。 API 确保灵活性并支持用于自动化配置和管理的越来越多的框架和工具集,并确保不会因为网络阻碍而掉队。
5. 架构敏捷性
最后,为了支持当今应用程序(以及业务)的增长,应用需要架构敏捷性。 这意味着支持、启用和保护它们的应用服务必须与应用程序所使用的架构兼容(如微服务、容器、虚拟化和云)。 支持层次结构较低级别需求的应用服务必须可与应用部署在何处。 这意味着支持虚拟、物理和基于云的应用服务。