La mayoría de la gente ha oído o visto la jerarquía de necesidades de Maslow . Si no está familiarizado con el concepto (o necesita refrescar la memoria), aquí le damos un resumen: Maslow creía que las personas están motivadas para lograr ciertas necesidades. Definió una jerarquía de cinco niveles que comienza con las necesidades básicas relacionadas con la supervivencia, como la alimentación, el sueño y la seguridad, y avanza hacia necesidades más personales relacionadas con el crecimiento, como la autorrealización.
Basta decir que la jerarquía se utiliza a menudo como modelo para describir un conjunto de necesidades para una variedad de preocupaciones, incluida la tecnología. Así es como llegamos aquí hoy.
Existe un conjunto muy específico de necesidades que tienen las aplicações hoy en día que pueden organizarse jerárquicamente para imitar la jerarquía de Maslow. Al igual que en la jerarquía de Maslow, las necesidades de nivel inferior son las más críticas para la supervivencia y el éxito, mientras que las necesidades de orden superior permiten el crecimiento. Qué lindo cómo funciona eso, ¿verdad?
La razón por la que esto es importante es que algunas de estas necesidades no pueden satisfacerse de manera realista (dado el entorno actual y las expectativas de los usuarios y, en algunos casos, por razones puramente técnicas) sin servicios de aplicaciones. Se trata de cosas como el equilibrio de carga, la conmutación por error, la seguridad de las aplicaciones web, el SSO, la aceleración y la optimización, etc.
Claro, puedes escribir una aplicación que se reinicie en caso de un bloqueo o falla, pero no puedes solucionar un error a nivel de red que provoque una interrupción. Sólo un sistema ascendente (externo), como un servicio de equilibrio de carga o de conmutación por error, puede hacer eso. Lo que significa que, en última instancia, no puedes garantizar la confiabilidad de la aplicação a menos que uses un servicio de aplicaciones como el equilibrio de carga. De manera similar, la mayoría de las aplicações no pueden modificar la pila de red que controla el comportamiento de TCP. Pero un proxy ascendente (servicio de equilibrio de carga) puede hacerlo, y es allí donde se implementan muchas de las optimizaciones que hacen que las aplicaciones móviles sean utilizables. Sin ellos, las aplicaciones son lentas y no responden y tienden a abandonarse con mayor frecuencia que sus contrapartes optimizadas. Por eso el rendimiento es una necesidad de jerarquía media: porque es importante, pero no es la necesidad más importante que tiene una aplicação . Si no está disponible, después de todo, ninguna cantidad de optimización va a ayudar.
Así que, sin más preámbulos, profundicemos en la jerarquía de las necesidades de las aplicaciones, ¿de acuerdo?
1.Fiabilidad
La confiabilidad significa que los usuarios (corporativos y consumidores) pueden confiar en que la aplicación estará allí. Esto significa que debemos asegurarnos de que la aplicación siga estando disponible durante períodos de alta demanda (escalabilidad), fallas (conmutación por error) o desastres (recuperación ante desastres). En su forma más básica, significa servicios de equilibrio de carga y conmutación por error, pero también incluye servicios de aplicaciones de soporte como DNS, que son responsables de redirigir a los usuarios en caso de desastre. No sorprende que la disponibilidad se haya mantenido en lo más alto de la lista de “servicios de aplicaciones sin los cuales las organizaciones no implementarían una aplicação ” en nuestras encuestas sobre el estado de la entrega de aplicação . Hoy en día, no se trata sólo de una necesidad básica de supervivencia de una aplicación: también es una necesidad de supervivencia empresarial.
2.Seguridad
Ah, la seguridad. Sin ella, las aplicaciones son vulnerables a una amplia variedad de ataques, no todos relacionados con la calidad de su código. La seguridad de la aplicação es una pila que abarca no solo la aplicación sino también su plataforma subyacente. Y los informes siguen indicando que los atacantes siguen avanzando por esa pila, hacia la capa de aplicação , tanto para la exfiltración (para robar sus datos) como para la explotación (para detener su negocio). Esto significa que se necesitan una variedad de servicios de aplicaciones de seguridad para ayudar a que la aplicação se mantenga disponible y en buen estado, como protección DDoS, seguridad de aplicaciones web, prevención de fraude y servicios de cifrado. La frecuencia cada vez mayor con la que las organizaciones experimentan ataques y se informan nuevas vulnerabilidades continúa impulsando las necesidades de seguridad como uno de los servicios de aplicaciones principales necesarios para garantizar la supervivencia de las aplicaciones y los negocios en la actualidad.
3.Rendimiento
Actuación. Todos sabemos lo importante que es esto, especialmente para las aplicaciones que se utilizan comúnmente a través de dispositivos móviles (a través de una red móvil). Los servicios de aplicaciones de rendimiento son el nivel en la jerarquía que va desde los servicios de aplicaciones que abordan las necesidades básicas hasta los que abordan el crecimiento. Las preocupaciones relacionadas con el rendimiento en realidad tienen que ver con ambas cosas. Si una aplicación es demasiado lenta o no responde, puede afectar negativamente la productividad de los usuarios corporativos y reducir los ingresos de los consumidores. No tiene el mismo impacto en el negocio que si la aplicación no está disponible o sufre una falla, pero sigue siendo importante. Es por eso que vemos tantas organizaciones empleando técnicas como optimización de imágenes, compresión, descarga de SSL y multiplexación TCP para mejorar el rendimiento de las aplicações. Porque a veces no se trata del código; se trata de abordar desafíos en la red, en el dispositivo del usuario y con los protocolos mediante los cuales se comunican las aplicações .
4.Programabilidad
Las aplicaciones son el negocio hoy en día y no solo deben entregarse rápidamente, sino también implementarse rápidamente. Para crecer y escalar, los servicios de aplicaciones que respaldan las necesidades de nivel inferior (confiabilidad, seguridad y rendimiento) también deben poder implementarse rápidamente. Eso significa programabilidad. Significa API y plantillas, y estar integrado y accesible a la otra economía de API que impulsa el flujo de trabajo de CI/CD desde el desarrollo hacia las operaciones y a través del espectro de TI más amplio. La programabilidad permite que los servicios de aplicaciones participen en el ecosistema DevOps ya sea que se centre en la red (SDN), la nube ( OpenStack ) o todo el centro de datos (SDDC). Las plantillas proporcionan la estandarización (consistencia) y la repetibilidad necesarias para mejorar los procesos que impulsan las implementaciones en los centros de datos modernos. Las API garantizan flexibilidad y soporte para el creciente número de marcos y conjuntos de herramientas que se utilizan para automatizar la configuración y la administración, y garantizan que ninguna aplicación quede atrás porque la red estaba en el camino.
5.Agilidad arquitectónica
Por último, para respaldar el crecimiento de las aplicaciones (y, por lo tanto, del negocio) hoy en día, las aplicações necesitan agilidad arquitectónica. Esto significa que los servicios de aplicaciones que los respaldan, habilitan y protegen deben ser compatibles con las arquitecturas que utilizan las aplicaciones (como microservicios, contenedores, virtualización y nube). Los servicios de aplicaciones que respaldan las necesidades de nivel inferior de la jerarquía deben estar disponibles para su implementación junto con la aplicação , dondequiera que vaya. Esto significa soporte para servicios de aplicaciones virtuales, físicos y basados en la nube.