¿Cuándo está lista una aplicación en la nube?

Por aplicación, supongo que está mencionando la aplicación local y no la aplicación móvil.

Las aplicaciones en las instalaciones generalmente se han creado sin tener en cuenta que se trasladarán a la nube en el futuro y, por lo tanto, tienen muchas dependencias de otras aplicaciones en forma de interfaces. Esto generalmente hace que no sean adecuados para moverse a la nube sin entregar esas interfaces.

La aplicación local, aunque es consumida principalmente por usuarios internos dentro de la red segura de la organización, a veces ignora una gran cantidad de necesidades de seguridad, suponiendo que los datos siempre se mueven dentro, sin embargo, cuando una aplicación tiene que moverse a la nube, ahora debe tener en cuenta el hecho de que estaría abierto y se podrían requerir protocolos de comunicación seguros.

Además, esa nube ofrece muchas cosas de forma nativa, como el escalado automático, la elasticidad, la redundancia, etc., que solo se pueden realizar si su aplicación está diseñada para admitirla.

Para considerar que una aplicación lista para la nube, pasar de las instalaciones a la nube debería ser tan fácil como implementarla en la infraestructura de la nube sin necesidad de cambios, lo que sea.

Si bien hay varios puntos finos arquitectónicos, creo que las diferencias clave entre las aplicaciones en la nube y las heredadas son la forma en que están construidas para hacer frente a las fallas de la infraestructura. Las aplicaciones “heredadas” fueron diseñadas para ejecutarse con la expectativa de que el hardware siempre estaría disponible y manejaría las fallas. Los sistemas RAID son un ejemplo de hardware que fue diseñado para lidiar con fallas (si una de las unidades falla, el sistema de hardware puede continuar proporcionando la función deseada). Fuentes de alimentación redundantes es otra.

Compare eso con las aplicaciones “nativas de la nube” creadas con software que maneja el proceso de resiliencia. Los sistemas en la nube se construyen típicamente / en su mayoría en hardware barato “básico”. Existe la expectativa de que cualquier disco duro eventualmente fallará y cualquier máquina virtual (VM) que se ejecute en esa unidad se vaporizará junto con ella. El software está diseñado para poder manejar esta falla y reasignar los procesos a otras máquinas virtuales (o contenedores) para completar.

Si está creando una nueva aplicación o reconstruyendo una aplicación heredada para aprovechar ‘la nube’, su aplicación está lista para la nube cuando, como mínimo, implementa el modelo de resiliencia basado en software en lugar de hardware.

Una aplicación está “lista para la nube” cuando la organización que quiere mover la aplicación a la nube tiene un presupuesto lo suficientemente grande y considera que es una prioridad lo suficientemente alta como para mover la aplicación a la nube.

Podría darle algún tipo de respuesta técnica basada en arquitectura, componentes, escalabilidad, tolerancia a fallas, disponibilidad, etc., pero cuando se trata de eso, mi oración inicial es la respuesta. He visto aplicaciones “heredadas” “bifurcadas” en la nube innumerables veces solo porque la empresa / organización quería esa aplicación en “la nube”.