¿Las aplicaciones nacen en cloud o se transforman?

Cuando hablamos de Cloud Computing surgen muchas dudas sobre cómo podemos utilizar esta herramienta para que nuestras aplicaciones utilicen sus características de manera más eficiente, siempre la duda de si lo que ya tengo es utilizable en dicho ambiente o debo cambiar a otra modalidad.

Al hablar de aplicaciones en la nube, esta soporta de manera nativa nuestra actual infraestructura, para la mayoría de los ambientes tradicionales en donde tendremos una base de datos y una interface de usuarios, la cual puede ser web o con cliente instalado. Pero si lo que se busca no es solo replicar la actual solución en un plano de cloud, si no potenciar nuestra aplicación con las ventajas del modelo de servicios, entonces debemos tener una seria en consideraciones adicionales para que nuestra aplicación sea una verdadera aplicación de cloud.

Para entenderlo mejor vamos a describir los puntos que se deben tener en cuenta para potenciar nuestra aplicación a este modelo.

  • Como acceder a la aplicación: En un orden de diseño e implementación es importante tener en cuenta que si nos movemos a una plataforma de nube, todo el acceso será por medio de internet, esto quiere decir que deberemos, en primer lugar, validar que nuestra aplicación este optimizada para este tipo de canales. En segundo lugar garantizar la seguridad de las comunicaciones ya sea por medio de protocolos de comunicaciones o por medio de servicios intermedios como lo son escritorios virtuales o accesos remotos.
  • Interface de usuario: Cuando hablamos de la interface de usuario, es el medio por el que el usuario final tendrá acceso a nuestra aplicación. En una solución de nube, se recomienda que todos los usuarios utilicen una interface web, dado que de esta manera se mitiga el soporte que se le tiene que dar a dicho usuario (si algo no funciona es que el usuario tiene un problema en su navegador) y nuestro soporte seria sobre la funcionalidad del aplicativo.
  • Escalabilidad por demanda: Si lo que buscamos es poder hacer que nuestra aplicación sea totalmente flexible ante el uso que le den nuestros usuarios (Es decir que yo solo pague una línea base por la infraestructura para funcionar y ante la demanda pueda ampliar los servicios y luego bajar cuando esta demanda se retire) entonces debo recrear mi aplicación, para esto existen 2 formas de hacer esto escalamiento Horizontal y Vertical.
  • Crecimiento Vertical: El crecimiento vertical se refiere a que teniendo una infraestructura fija de servidores, estos los hacemos crecer en capacidades de cómputos, para que ante mayores requerimientos de procesamiento este cuente con el mismo disponible para su ejecución.
  • Crecimiento Horizontal: Al hablar de crecimiento horizontal, establecemos que tenemos una infraestructura base de servidores y ante la necesidad pondremos más servidores en paralelo, por ejemplo, si contamos con una página web el crecimiento paralelo no ofrecerá mas servidores para distribuir la carga de los usuarios sin tener que perder con ello calidad de servicio en el usuario final.
  • Cuantificación de mi aplicación: Como parte de poner una aplicación en la nube, también debo tener en consideración los costos de esta solución. Para ello, debemos establecer una unidad en la cual podamos consolidar todos los costos asociados, en la mayoría de las aplicaciones es por usuario. Adicional, y lo que hace más difícil este modelo, es que ciertos parámetros deberán ser supuestos en un principio, como por ejemplo, concurrencia de usuarios, pero luego con el uso podremos ir ajustando este valor para que nuestro costo asociado sea mucho más exacto.
  • Habientes privados, públicos o híbridos: Todas las consideraciones se pueden aplicar en los 3 modelos, dado que se puede realizar en nubes privadas como públicas, o en caso de que sea necesario podremos contar con un eventual desborde de las capacidades en nubes públicas, ya sea desde nuestra nube privada o desde otra nube publica como una manera de mejorar nuestra disponibilidad.

Como podrán ver, la definición de si una aplicación en la nube debe nacer en la nube o no, va a depender de cuál es nuestro objetivo final, dado que muchos casos pueden que no requieran ciertas ventajas de manera tan automática o dinámica. Esta construcción debe tener sus bases muy clara sobre cuál es el objetivo al cual se desea llegar para validar su configuración.

Imagen por @Joel  Olives, distribuida con licencia Creative Commons CC BY-NC-SA 2.0

Déjanos un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

SUSCRÍBASE A NUESTRO NEWSLETTER