¿Hay alguna forma de identificar aplicaciones basadas en la nube?

1) Diseñe la aplicación como una colección de servicios.

Las aplicaciones en la nube se implementan mejor como una colección de servicios en la nube o API. Se acumula a partir de los datos en los servicios y luego se combinan en servicios compuestos o en aplicaciones compuestas completas.

Esta es una arquitectura basada en servicios u orientada a servicios, en esencia. Si bien muchos entienden los conceptos, los desarrolladores aún tienden a crear aplicaciones estrechamente acopladas que se centran en la interfaz de usuario, en lugar de exponer las funciones subyacentes como servicios que pueden aprovechar de forma independiente.

Cuando se desarrolla una arquitectura de aplicación para la nube, se trata de sistemas distribuidos complejos que pueden aprovechar aplicaciones acopladas libremente creadas en muchos servicios que también se pueden desacoplar de los datos (consulte “Desacoplar los datos” a continuación). Puede separar físicamente los servicios de la aplicación, ejecutar en las instancias de máquina adecuadas, y los administradores de servicios / API y la tecnología de gobierno que proporcionan directorios de servicios pueden ayudar a rastrear los muchos servicios que componen su aplicación.

Los beneficios adicionales pueden incluir la reutilización de servicios de otras aplicaciones o servicios más generales. Puede dividir las aplicaciones en cientos de servicios subyacentes que tienen valor cuando son utilizadas por otras aplicaciones. De esta manera, no reinventa la rueda cada vez que crea una aplicación. Considere el ejemplo de un servicio de verificación de crédito que utilizan muchas aplicaciones. Combine estos en un solo servicio y la aplicación se vuelve mucho más eficiente.

2) Desacoplar los datos

Si acopla estrechamente los datos a la aplicación, no encontrará un buen hogar en la nube. Las nubes privadas y públicas son sistemas distribuidos complejos que funcionan mejor con arquitecturas de aplicaciones que dividen el procesamiento y los datos en componentes separados.

Desacopla los datos por el mismo motivo por el que desea compilar la aplicación a partir de los servicios. Una vez desacoplado, tiene la opción de almacenar y procesar los datos en cualquier instancia de nube pública o privada. Por ejemplo, muchas empresas insisten en que sus datos permanezcan en los servidores locales, pero desean aprovechar las instancias de máquinas virtuales básicas dentro de una nube pública.

Debes considerar el rendimiento. Las lecturas y escrituras de bases de datos a través de Internet abierto pueden causar latencia, y las comunicaciones de la base de datos pueden determinar qué tan cerca están sus datos de los servicios y aplicaciones que necesitan aprovecharlos.

Considere el uso de sistemas de almacenamiento en caché. Estos proporcionan un rendimiento adicional de la base de datos al almacenar localmente los datos a los que se accede comúnmente, reduciendo así todas las solicitudes de lectura de la base de datos a la base de datos física. Sin embargo, estos se integran mejor en la aplicación y deben probarse con los datos de la aplicación para determinar qué tan eficiente será el caché. Los sistemas que constantemente leen datos nuevos no se benefician tanto de los cachés de bases de datos.

3) Considerar las comunicaciones entre los componentes de la aplicación.

El desacoplamiento de aplicaciones, tanto de datos como de servicios, no significa que su aplicación esté diseñada correctamente para la nube. Los componentes de la aplicación Chatty que se comunican constantemente entre sí disminuirán el rendimiento de la aplicación en general, dado que generalmente se distribuyen a través de una red o Internet abierto, donde es deseable la tolerancia a una alta latencia.

Concéntrese en diseñar aplicaciones que optimicen las comunicaciones entre los componentes de la aplicación. Por ejemplo, combine las comunicaciones en una sola secuencia de datos o un grupo de mensajes, en lugar de comunicarse constantemente como si los componentes de la aplicación residen en una sola plataforma.

4) Modelo y diseño para rendimiento y escala

Extienda las consideraciones sobre cómo se comunican los componentes de la aplicación para incluir también el rendimiento general. Esto incluye comprender cómo la aplicación escalará bajo una carga creciente.

Diseñar para el rendimiento significa primero construir un modelo que represente cómo se comporta la aplicación bajo una carga creciente. Si 1000 o más usuarios inician sesión al mismo tiempo, ¿cómo manejará la aplicación el aumento del tráfico en la red, la mayor carga en los servidores de aplicaciones y la carga colocada en las bases de datos de fondo? Debe comprender cómo los componentes de la aplicación manejan la carga a medida que el número de usuarios aumenta a 1,000 o más usuarios.

Este ejemplo podría aumentar la carga en los servidores de aplicaciones en un 80 por ciento, la carga en la red en un 10 por ciento y la carga en la base de datos en un 40 por ciento. Dado eso, agregar 1,000 usuarios más probablemente saturará los servidores de aplicaciones que ha aprovisionado, y necesitará activar más instancias de servidores de aplicaciones. La capacidad de la red puede permanecer igual, pero el número de instancias de la base de datos puede tener que aumentar para manejar cualquier carga adicional.

Armado con este modelo, puede descubrir la mejor manera de escalar la aplicación al girar automáticamente las instancias de recursos que se necesitan. En algunos casos, los proveedores de servicios en la nube ofrecen capacidades de escalado automático, donde el aprovisionamiento se produce automáticamente. Sin embargo, la ruta más eficiente radica en comprender el perfil de carga de trabajo de la aplicación y definir la ruta para escalar la aplicación, así como establecer mecanismos para garantizar que, de hecho, se escalará.

Finalmente, supervise el rendimiento general de la aplicación utilizando herramientas de supervisión del rendimiento compatibles con la aplicación y cree interfaces dentro de la aplicación para permitir una mejor supervisión del rendimiento. Cómo los recursos de provisiones y des-provisiones de la aplicación también deben ser innatos a la aplicación.

No hay forma de identificar aplicaciones basadas en la nube.

Cualquier aplicación necesita moverse en la nube en función de algunos objetivos específicos o cortar algunos costos y mantenimiento.

Entonces, primero debe centrarse en los beneficios que está obteniendo para moverlo en la nube.

¿Cuáles son los costos que soporta como entorno no en la nube? Es posible que la operación en la nube sea más costosa en caso de que su aplicación no requiera la mayoría de la infraestructura, los usuarios y el soporte.

Para cualquier consulta, puede escribirme en [correo electrónico protegido] .

Feliz de ayudar.

More Interesting

La mayoría de los proveedores de "Big Data" ofrecen soluciones de dispositivos o locales (a diferencia de las basadas en la nube). ¿La falta de nube ofrece un problema de factibilidad tecnológica o de demanda?

¿Cuál es el mejor proveedor de servicios de infraestructura en la nube y por qué?

¿Cuál es el mejor servicio en la nube para hacer capacitación en aprendizaje automático?

¿Qué servicio de almacenamiento en la nube ofrece espacio GRATIS para TODA LA VIDA?

¿Cómo comenzar a aprender computación en la nube como principiante y aprender correctamente? Además, ¿cuáles son los requisitos previos que debo saber para comprender la computación en la nube correctamente?

¿Qué solución se vuelve más barata en sitios web grandes, Google App Engine o Amazon EC2?

¿Cuáles son los factores a considerar al elegir los servicios de soporte en la nube?

¿Cuál es el fundamento de alquiler o compra de un IDC (centro de datos de Internet) para un operador de servicios en la nube?

¿Qué tan grande es el mercado global de almacenamiento empresarial y qué porcentaje de él es hoy en día el almacenamiento en la nube?

¿Hay compañías buenas y confiables que administran servidores por usted?

¿Tendrá Microsoft un impacto significativo en Big Data?

¿Cómo debemos adaptar nuestro negocio utilizando el software de contabilidad en la nube?

¿Cómo se desarrollarán los eventos para Dropbox cuando Apple y Google ingresen a su espacio (es decir, el paquete de aplicaciones de iOS y Google)?

¿Cuánto tiempo lleva mover un centro de datos a la nube?

¿Amazon Cloud Drive es una buena opción de almacenamiento en la nube?