TENDENCIAS:

Aplicaciones en la nube: Una guía completa



Dirección copiada

Están por todas partes. Desde los sistemas de transporte hasta los servicios de entretenimiento y correo electrónico, las aplicaciones en la nube o Cloud apps conforman el mundo como lo conocemos, pero exactamente ¿en qué consisten?, ¿cuáles son sus ventajas y cómo funcionan? Eso lo responderemos a continuación.

Publicado el 18 de abr de 2024



Aplicaciones en la nube o cloup apps

Su popularidad impulsa un mercado gigantesco y creciente, que se proyecta superará los 947.300 millones de dólares para 2027 según proyecciones de la firma analista Industry Arc. Un escenario en el cual Estados Unidos capta el 41 % del mercado, seguido de Europa (26 %), Asia Pacífico (19 %) y América Latina (6 %).

Gráfico: Industry Arc.

Las razones para este crecimiento son múltiples y vienen apalancadas por motivos tecnológicos y económicos como el surgimiento de nuevas redes de comunicación móvil, un inventario cada vez más grande de equipos IoT y el auge de la Inteligencia Artificial, entre otros factores.

Pero para entender más sobre la naturaleza de las aplicaciones nativas en la nube debemos partir de lo básico: ¿Qué son y cómo funcionan?

¿Qué son las aplicaciones en la nube?

Las aplicaciones en la nube o Cloud Apps son software al que los usuarios acceden principalmente a través de Internet. Es decir, hablamos de programas en los cuales al menos una parte es gestionada por un servidor y no por equipos locales de los usuarios.

O si prefiere llamarlo de otra forma, se puede afirmar que una aplicación nativa de la nube es un programa creado para ejecutarse dentro de un entorno de cloud computing y por lo tanto aprovechar las diferentes fortalezas y beneficios de la nube.

Son diferentes de las aplicaciones tradicionales que son instaladas en los computadores de cada usuario y que se caracterizaban por ser rígidas, menos flexibles y no fueron diseñadas con el espíritu colaborativo, flexible y distribuido de las Cloud apps.

Historia, evolución y predicciones de futuro

Para hablar de las Cloud Apps es necesario remitirse a la nube, su historia y primeras concepciones que vienen desde la década de los sesenta (1963) cuando Joseph Carl Robnett Licklider describió una visión de un mundo interconectado por medio de las redes intergalácticas de computación.

Sin embargo, desde su concepción por limitaciones tanto en hardware, como en poder de cómputo, como en redes capaces de transmitir datos a alta velocidad, esta idea no pudo ser plasmada como la soñó Licklider.

La idea de este visionario implicaba una red de ordenadores conectados y se lanzó cuando pocos ordenadores soportaban más de un usuario y se trataba de equipos gigantescos y costosos.

Origen y desarrollo de las aplicaciones en la nube

Las aplicaciones en la nube como las conocemos llegaron cerca del cambio de milenio, en 1999 cuando la firma estadounidense Salesforce se convirtió en la primera en ofrecer aplicaciones a través de Internet, abriendo la puerta al modelo de software como servicio (Software as a Service o SaaS).

Gráfico: Net Solutions.

Para 2006 otro de los grandes hitos de la nube llegó con la Elastic Compute Cloud (EC2) de Amazon que abrió las puertas a la era de la Infraestructura como un servicio o IaaS al lanzar la primera gran nube comercial. Solo un año después surgirían otras empresas como Netflix y Dropbox (en 2007) famosas por ofrecer sus servicios desde la nube.

El despegue de las Plataforma como servicio (PaaS) llegó posteriormente, en 2008, con el Google App Engine aunque sus primeros pasos se remontan años atrás, en 2005 con la plataforma de desarrollo de aplicaciones web JavaScript, Zimk, propiedad de la firma Fotango.

Para 2010 entraría en juego otro de los grandes jugadores, Microsoft con Azure, una plataforma que facilitó el desarrollo de aplicaciones web y móviles. Esta última una industria que no paró de crecer desde el lanzamiento del iPhone en 2007.

Crecimiento y tendencias futuras

Por sus ventajas en la reducción de costos y flexibilidad, entre otras razones, las aplicaciones nativas de la nube no dejaron de crecer. Con un mercado global estimado en “apenas” 2.200 millones de dólares en 2018, según datos de KBV Research, este mercado se proyecta que superaría los 356.000 millones en 2025, según Maximize Market Research.

Gráfico: Maximize Market Research.

Este crecimiento se vio estimulado además por factores externos además de tecnológicos como sucedió con la pandemia del Covid-19 que obligó a las empresas a enviar a cientos de millones empleados a sus hogares y donde la mejor opción para garantizar la continuidad de los procesos fue la nube y las soluciones de colaboración basadas en software como servicio (SaaS).

En el mismo periodo y por las mismas razones se disparó la demanda por soluciones de entretenimiento en casa como fueron las plataformas de vídeo streaming Netflix, Hulu, Amazon, Disney+, Twitch, YouTube y Apple TV, entre otras.

Lejos de disminuir, las tendencias de las Cloud apps se mantienen constantes y se prevé una tasa de crecimiento anual compuesto (CAGR) del 19 % hasta 2029 impulsada por nuevos nichos como el cloud gaming y el aprovechamiento de otras tecnologías como la Inteligencia Artificial y el Internet de las Cosas (IoT).

¿Cuáles son las diferentes categorías de aplicaciones en la nube?

Al igual que el Cloud Computing donde se encuentran enmarcadas estas aplicaciones las grandes divisiones de las aplicaciones se dan en campos como:

Software como Servicio (SaaS): Este modelo permite acceder a aplicaciones completas que se entregan a través de la web y están listas para usar. Los usuarios acceden a ellas a través de un navegador web sin necesidad de instalar nada mientras estos programas y sus datos residen en el centro de datos del proveedor de servicios, quien se encarga de gestionar el mantenimiento del software y hardware.

Algunos ejemplos básicos son la suite de productividad Microsoft Office 365 o la plataforma de gestión empresarial de Salesforce, entre otros.

Gráfico: Stackscale.

Infraestructura como Servicio (IaaS): Se refiere a una infraestructura de computación que se puede obtener y administrar instantáneamente a través de Internet. Con este modelo, se eliminan los costos adicionales y la complejidad asociada con la gestión de servidores o centros de datos, ya que solo se requiere adquirir las herramientas necesarias para su uso.

El proveedor del servicio se encarga de administrar la infraestructura, mientras que la empresa es responsable de instalar, configurar y gestionar su propio software, sistema operativo y aplicaciones. Ejemplos incluyen Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform (GCP).

Plataforma como Servicio (PaaS): Este modelo ofrece un entorno de desarrollo en la nube que abarca desde aplicaciones simples hasta aplicaciones empresariales complejas. La Plataforma como Servicio proporciona una solución para todo el ciclo de vida de las aplicaciones web, incluyendo diseño, pruebas, implementación, gestión y actualización.

Además de las herramientas de desarrollo, PaaS también incluye servicios de administración de bases de datos, inteligencia empresarial y análisis. Ejemplos comunes de PaaS incluyen Google App Engine y AWS Elastic Beanstalk.

Otras categorías de aplicaciones conocidas se refieren al almacenamiento en la nube con ejemplos como Dropbox, Google Drive, Amazon S3 y Microsoft OneDrive. Seguridad en la nube que incluyen servicios de cifrado, identificación y gestión de acceso como Azure Active Directory y VeraCrypt. Y por supuesto, analítica de datos e información con jugadores como Google BigQuery, AWS Redshift y Microsoft Power BI, entre otros.

¿Cómo funcionan y para qué sirven las aplicaciones en la nube?

En esencia, el comportamiento de las Cloud apps no se diferencia del modelo de computación en la nube, que consiste en utilizar servidores remotos para conectar los equipos de los usuarios (móviles, computadoras de escritorio, tabletas, etc.) a unos recursos centralizados que se encargan de gestionar las peticiones.

De esta forma, la información se guarda y administra a través de una conexión a Internet, eliminando los riesgos asociados a tener la información en equipos más frágiles y vulnerables. Esta división entre usuarios y los servidores remotos se suele clasificar en dos grandes categorías: el front-end y el back-end.

Gráfico: Cloudflare.

Al hablar del Front-end nos referimos a la parte de un sistema informático o una aplicación que interactúa directamente con los usuarios, e incluye la interfaz que ven y con la que interactúan los usuarios finales; menús, botones, elementos visuales, entre otros.

En lo que respecta al back-end, es el motor detrás del escenario que impulsa todo. Invisible para el usuario, es el hardware, ubicado generalmente en granjas de servidores, que se encarga del procesamiento de datos, el almacenamiento de la información, la lógica de la aplicación y la interacción con las bases de datos, entre otros.

¿Cómo habilitar y configurar aplicaciones en la nube?

Aunque cada proveedor tiene particularidades que los diferencian, en esencia, el proceso para configurar las aplicaciones en la nube tiene algunos pasos básicos en común que van desde registrarse e iniciar sesiones en las plataformas hasta monitorear de forma periódica el desempeño de las apps.

Con esta salvedad, algunos pasos para habilitar y configurar las aplicaciones en la nube son:

Elegir la aplicación y habilitarla: Buscar en los catálogos del proveedor las apps disponibles que se desea usar. Por cierto, cada proveedor suele ayudar sugiriendo los pasos a seguir dependiendo de los alcances de cada app.

Configurar los alcances del app: Una vez habilitada la aplicación, suele ser necesario ajustar la configuración de la misma para adaptarla a las necesidades de cada usuario, incluyendo opciones como la creación de cuentas, opciones de almacenamiento y controles de acceso, entre otras variables.

Integración y pruebas: Usualmente, las aplicaciones necesitan integrarse con otros servicios o fuentes de datos. Esto puede implicar proporcionar claves API, configurar webhooks o establecer otros tipos de conexiones. Igual de importante, antes de lanzar la app, es importante probarla para verificar que se ajuste a lo deseado, sea compatible con otros servicios y no afecte el rendimiento del sistema.

Implementar y monitorear: Una vez realizadas las pruebas, podemos empezar a implementar las apps en servidores o instancias específicas y proporcionar vías de acceso a los usuarios. De igual forma, se debe monitorear la aplicación para asegurarse del funcionamiento a través de métricas de rendimiento y seguimiento de patrones de uso, así como la gestión de peticiones de los usuarios.

Ventajas de utilizar aplicaciones en la nube

Los beneficios asociados al uso de aplicaciones en la nube dependen del tamaño, estructura y procesos de cada organización. Sin embargo, existen algunos beneficios comunes asociados a todas las empresas, como son:

Reducción de costos: Sin la necesidad de adquirir sofisticados equipos ni de contratar un personal especializado para su mantenimiento, los costos suelen reducirse en las empresas al pasar del modelo Capex (Gastos de Capital) que se refiere a las inversiones en activos a largo plazo representados en la compra de equipos al OPEX (Gastos Operativos) que se refiere a los gastos operativos diarios.

Mejor tecnología y seguridad: Los grandes proveedores de servicios en la nube cuentan con tecnología de punta en software y equipos, lo que incluye sistemas de seguridad de última generación, muchos de los cuales resultarían muy costosos para pequeñas empresas. En otras palabras, la nube permite acceder a mejor tecnología a menor costo.

Escalabilidad: Una de las mayores ventajas de la nube es que permite crecer cuando se necesita. Imagine el promedio de ventas de una tienda de disfraces en Halloween versus en enero o mayo. Para estos picos de ventas, la nube permite operar y usar los recursos cuando se necesitan y reducirlos en periodos de baja demanda, porque solo se paga por lo que se consume (pay as you go).

Actualizaciones automáticas: Al desprenderse del mantenimiento de las herramientas de cómputo, se incluye el cuidado y mantenimiento, y dentro de ello las actualizaciones de software y equipos, una labor demandante de tiempo, talento especializado y recursos.

Respaldo de la información: Los proveedores de la nube suelen contar con varias opciones para garantizar la continuidad de sus operaciones y garantizar la seguridad de los datos que administran, esto incluye incluso el establecimiento de centros de datos espejos, que son copias realizadas en forma periódica para salvaguardar los datos, incluso en caso de desastres naturales o ataques cibernéticos.

Una mejor colaboración: Las herramientas en la nube, al centralizar la información y administrar el acceso a múltiples usuarios, están diseñadas para facilitar el trabajo colaborativo en múltiples proyectos, documentos y herramientas independientemente del lugar de acceso.

Cómo diseñar aplicaciones en la nube

Con diferencias relativas a la estructura y procesos de cada organización, el proceso de diseño de aplicaciones en la nube se puede resumir en grandes pasos, desde la idea misma y los estudios de viabilidad del app hasta las primeras fases de lanzamiento y pruebas. De la siguiente forma:

¿Se necesita la aplicación? La primera fase debe cuestionarlo todo: ¿se necesita la aplicación y qué necesidades resuelve? ¿Cuáles son los objetivos de desarrollo: seguridad, desempeño, mejoras en comunicación analítica, tiempos de respuesta? ¿Cuánto cuesta? ¿Qué opciones hay en el mercado? Se trata de una fase de estudio en la que suele contratarse asesores y comprarse ofertas.

Elija un equipo de desarrollo. En esta fase, suelen evaluarse opciones como contratar desarrolladores independientes, crear un equipo dentro de la organización o subcontratar a una empresa especializada. Cada opción tiene sus beneficios y retos, que van desde el costo hasta el futuro soporte de las aplicaciones. Un rol muy evaluado en este campo suele ser la experiencia en el desarrollo de software y los nichos de mercado trabajados previamente.

Gráfico: Synd/Code.

Planee las características y el desarrollo de la aplicación en la nube. ¿Cuántas personas van a usar la aplicación? ¿Cómo se va a gestionar la seguridad y el control de acceso? ¿Qué tan escalable es y cuántas personas pueden llegar a usarla? ¿Tiene elementos colaborativos, los necesita?

Diseño de interfaces. Aunque las preferencias en diseño de interfaces parecieran ser totalmente subjetivas, existen principios universales a los que debe responder, como ser intuitivas y adaptables, de forma que puedan ser usadas en varios equipos, independientemente del tamaño de sus pantallas (teléfonos, tabletas, computadoras, etc.).

Desarrollo y prueba de las aplicaciones. Como sucede con la mayoría del desarrollo de software se suelen usar metodologías ágiles, un conjunto de prácticas utilizadas en la gestión de proyectos con el objetivo de que el proceso de entrega de un proyecto sea más eficiente. Igual sucede con DevOps, un término que nació de la combinación de los términos development (desarrollo) y operations (operaciones), que mejora el trabajo de los equipos de desarrollo de software y de operaciones.

Lanzamiento de las aplicaciones. Pareciera ser el final de los esfuerzos, pero en realidad abre la puerta a una nueva fase, que es la de soporte y mantenimiento. La tecnología cambia, el software requiere actualizaciones, las empresas también cambian de mercados, para responder a estos desafíos las aplicaciones deben ajustarse también a los nuevos tiempos.

Integración de una aplicación en la nube externa a su arquitectura actual

“La naturaleza descentralizada de la nube se convierte en un reto cuando es necesario integrar aplicaciones, por ejemplo, para optimizar los procesos empresariales u obtener acceso en tiempo real a datos de varios sistemas y proveedores”, afirma Kevin Matheny, Analista Director Senior de Gartner.

Por ello, Gartner propone 5 enfoques para la integración de aplicaciones en la nube que van desde la elección del software de integración, hasta las plataformas de funciones como servicio (fPaaS). Más en detalle, estas son:

Software de plataformas de integración: Se refiere al conjunto de herramientas que conecta los sistemas, aplicaciones, servicios y bases de datos de una organización. El software de plataforma de integración funciona mejor cuando hay que gestionar una amplia cartera de integraciones y reduce la cantidad de codificación necesaria.

iPaaS: La plataforma de integración como servicio (iPaaS) conecta sistemas que de otro modo serían inconexos para ofrecer una solución unificada a los clientes y funciona igual que el software de plataformas de integración, pero opera como un servicio de la nube. Es una opción ideal para las organizaciones que buscan externalizar los aspectos operativos de su middleware de integración, pero tiene una funcionalidad más limitada para integrarse con aplicaciones locales.

Herramientas de proveedores de SaaS. Muchos proveedores de Software as a Service ofrecen integraciones ya listas para usar, con extensiones o complementos predeterminados. Esta forma de integrar Cloud apps funciona bien para usuarios sin tantos conocimientos especializados y son fáciles de actualizar. Sin embargo, también tiene un costo y es la menor flexibilidad en el uso de la infraestructura tecnológica.

Código a la medida: También existe la opción de crear una integración directa entre sistemas usando equipos propios, una opción hecha a la medida y generalmente muy eficiente en el uso de recursos, pero requiere de altos conocimientos técnicos no siempre disponibles para todas las organizaciones.

fPaaS: Las plataformas de funciones como servicio o fPaaS crean un conjunto de integraciones en lugar de una sola. El uso de este enfoque requiere una habilidad sustancial con el desarrollo de software orientado a funciones y arquitecturas nativas de la nube.

Ejemplos destacados de aplicaciones en la nube

Existen opciones de aplicaciones en la nube en toda clase de mercados, incluyendo nichos como la gestión de relaciones con los clientes (CRM), gestión de recursos empresariales (ERM), gestión del capital humano (HCM), gestión de la cadena de suministro (SCM), almacenamiento de datos y inteligencia empresarial (BI), entre otras opciones.

Además, estas también pueden operar bajo modelos SaaS, IaaS o PaaS. Algunos ejemplos en SaaS, entre muchos, son el CRM de Salesforce, la plataforma de videoconferencias de Zoom y los espacios de trabajo virtual de Slack. En la modalidad de infraestructura como servicio (IaaS), existen muchas opciones como los servidores Bare Metal IaaS de IBM o la oferta de VMWare para recuperación ante desastres como servicio (DRaaS).

En lo que se refiere a plataformas como servicio (PaaS), uno de los exponentes más conocidos es AWS Lambda, una opción de Amazon que permite a los desarrolladores ejecutar código para cualquier aplicación o servicio backend sin aprovisionar ni administrar servidores.

Esto sin contar con opciones abiertas al público masivo donde brillan los servicios de almacenamiento de datos como Google Drive, Dropbox y OneDrive, entre otros. Servicios de geoposicionamiento como Google Maps y Yahoo Maps. Suites de productividad como Zoho y Google Docs, de entretenimiento como Netflix o incluso de correo electrónico, entre muchas otras opciones.

Artículos relacionados

Artículo 1 de 4