BLOG

Por jarboleya el | Añadir comentario

Programación en la nube

Antes de entrar en materia es importante matizar que el objetivo de este artículo es ayudarte con recomendaciones que debes tener en cuenta si vas a desarrollar aplicaciones para que sean ejecutadas por tus clientes en la nube, SaaS (Software as a Service).

1. Desarrolla en la nube

Puede que siempre hayas desarrollado aplicaciones en tu ordenador o en red local, también es posible que hayas realizado cambios en aplicaciones de tus clientes de forma remota, sin embargo, es menos probable que hayas desarrollado aplicaciones completas en la nube utilizando algún servicio PaaS (Platform as a Service).

Puede resultarnos extraño conectarnos a un servidor de edición en Cloud para programar, y aún nos costará más sabiendo que programar en local tiene ventajas en el rendimiento a la hora de guardar los cambios y ejecutar nuestra aplicación. Sin embargo, programar en la nube ofrece numerosas ventajas:

Ubicuidad

El código siempre está disponible aunque no dispongas de tu ordenador. Programa donde quieras y cuando quieras. Deja de programar en cualquier momento y lugar y continua trabajando desde otra ubicación y horario. La nube siempre está disponible para que puedas seguir donde lo dejaste.

Trabajo en equipo

Cada día está más extendido el teletrabajo y el trabajo en equipo. Es muy importante que la infraestructura donde se desarrolla esté disponible para todos los programadores del equipo en todo momento. Los servicios PaaS ponen a disposición de los programadores todo lo necesario para programar sin preocuparte por las infraestructuras, el software de sistemas operativos, copias de seguridad, etc.

Seguridad

Los servicios de PaaS entre otras muchas virtudes ofrecen la ventaja de la realización automática de copias de seguridad, incluso varias al día, evitando que la responsabilidad recaiga sobre los programadores.

Evitar pérdida de código

Algo básico cuando se trabaja en equipo es garantizar que los programadores no se pisarán el código mientras desarrollan. La mejor forma de conseguirlo es que todos los miembros del equipo programen contra el mismo servidor y evitar el uso de técnicas de copy/paste de código. Cada desarrollador debe trabajar sobre proyectos que estén protegidos evitando que otro programador pueda poner en peligro su código. Lo seguro no siempre es lo más cómodo pero debemos ponerla siempre en el primer lugar de la lista.

Excepciones

Como ocurre con cualquier regla, también se producen excepciones. Es cierto que la nube tiene grandes ventajas, pero también debemos tener en cuenta que existen casos en los que conviene trabajar en local, como por ejemplo, en procesos con grandes volúmenes de información a importar, exportar o procesar.  Por lo tanto programar en la nube debe ser una norma siendo flexibles a la hora de permitir contadas excepciones.

2. Ejecuta en la nube

Si programar en la nube es importarte, ejecutar en la nube es la clave del éxito

Testar en la nube

La mejor forma de garantizar que probamos nuestra aplicación en la nube es programar en la nube ya que eso nos obligará a testar nuestro código en las mismas condiciones que tendrán los usuarios finales de nuestra aplicación.

Sin sorpresas

Si programas en local te llevarás ingratas sorpresas cuando pruebes tu aplicación en la nube ya que es muy probable que te encuentren con un rendimiento no deseado, una funcionalidad o usabilidad reducida por las características del entorno de ejecución dependiente de factores que no son críticos cuando se ejecuta la aplicación en una red local.

Latencia

Nuestro mayor enemigo es la latencia que existe en las conexiones entre el cliente y el servidor. Esta latencia puede ser realmente notable en función de las infraestructura de nuestros proveedores de PaaS, SaaS, IaaS y de nuestros clientes con sus líneas ADSL, 3G, etc. Incluso es notable la diferencia de latencia entre conectarse a servidores que se encuentran ubicados en CPD’s de Europa y América.

Múltiples enemigos

La latencia no es nuestro único enemigo, también existen otras funcionalidades que pueden requerir de optimizaciones o cambios en la programación si deseamos obtener el mejor rendimiento. Se deben tomar decisiones sobre si debes ejecutar procesos o funciones de tu código en la parte cliente o en el servidor, también debes tener en cuenta la cantidad de información que debe viajar entre el cliente y el servidor. La ventaja de ejecutar en la nube es que serás consciente de los problemas desde el primer momento.

3. Prueba con datos reales en la nube

Optimizar es una tarea que debe realizarse desde el principio del desarrollo de una aplicación.

Mimar los tamaños

Debes ser meticuloso a la hora de definir los tamaños de la información que almacenarás en la base de datos. Siempre debemos tener presente que nuestros viajarán entre el servidor y el navegador cliente por lo que reducir su tamaño mejorará el rendimiento de las aplicaciones.

Muchos datos

Otro aspecto importante es testar con mucha información, cuanto más próximo a la BBDD real esté el modelo de pruebas más garantías existirán de que los usuarios sentirán la misma sensación de rendimiento que obtienen el desarrollador y el tester.

Prueba en las peores condiciones

Si trabajar con una BBDD de tamaño real es importante no lo es menos testar tus aplicaciones en las peores condiciones posibles. Te costará más optimizar y a cambio, evitarás sorpresas relacionadas con las diferencias de recursos hardware y de las diferentes características y velocidades que pueden darse entre en el entorno de desarrollo y el de ejecución.

No estás en local

De la misma forma que Google no te muestra todos los resultados cuando entras al buscador, si diseñas tu aplicación para la nube debes tener en cuenta la cantidad de información que manejas y  gestionar las búsquedas para que devuelvan un número razonable de registros. Debes ser prudente con la información que gestionas y dónde la gestionas, habrá casos en los que podrás optimizar la gestión en el servidor y otros en los que la información debe estar en el cliente.

Conclusiones

  1. Si desarrollas aplicaciones que hoy o en el futuro deban ejecutarse en la nube, no lo dudes, programa en la nube, testa en la nube, optimiza y ejecuta en la nube  tus aplicaciones para que finalmente los usuarios consigan una gran experiencia de uso en la nube.
  2. Si tu aplicación se ejecuta bien en la nube, en red local volará. Ocúpate  de probarla bajo las peores condiciones posibles, esto te ayudará a llevar al límite muchas de tus optimizaciones lo que terminará convirtiéndose en una ventaja.
  3. Ejecutar en la nube te permitirá detectar y prevenir muchos problemas desde el primer momento evitando sorpresas derivadas de un mal testeo, o de realizar las pruebas en entornos de gran rendimiento.

El Cloud ha llegado para quedarse, no esperes más y comienza a programar en y para la nube.

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies