Share via


Computación en la nube: Desafíos de la configuración en nube

La selección, la configuración y el rendimiento de sus aplicaciones basadas en la nube tendrán un impacto considerable en el rendimiento.

Dan Marinescu

Adaptado de "Cloud Computing: Teoría y práctica"(Elsevier Science & Libros de tecnología)

Desarrollo de aplicaciones cloud eficiente viene con muchos de los mismos desafíos planteados por los desequilibrios naturales encontrados en computación, anchos de banda de E/S y de comunicación de sistemas físicos. Estos desafíos son enormemente amplificados por la escala del sistema, su naturaleza distribuida y el hecho de que prácticamente todas las aplicaciones de uso intensivo de datos.

Aunque cualquier infraestructura cloud computing idealmente intentará automáticamente distribuir y equilibrar cargas de procesamiento, aún te queda la responsabilidad de colocar los datos cerca del sitio de procesamiento e identificar su estrategia óptima de almacenamiento. Una de las principales ventajas de cloud computing — la infraestructura compartida — también puede ser un inconveniente.

Aislamiento de rendimiento es casi imposible de alcanzar en un sistema real, especialmente cuando el sistema está cargado. Esto es aún más difícil con cloud computing. El rendimiento de las máquinas virtuales (VMs) fluctúa en base a la carga, servicios de infraestructura, medio ambiente y número de usuarios. Aislamiento de seguridad es otro factor difícil identificar en sistemas multi-tenant.

Fiabilidad es también un motivo de preocupación. Usted puede esperar fallas de nodos cada vez que un gran número de nodos de competir para computan los recursos. Elegir una instancia óptima (en términos de aislamiento de rendimiento, fiabilidad y seguridad) de los ofrecidos por la infraestructura en la nube es un factor crítico. Los costes también desempeñan un papel en la elección del tipo de instancia.

La experiencia de la aplicación

Muchas aplicaciones consisten en varias etapas. Cada etapa puede implicar varias instancias en paralelo en los sistemas de nubes y las comunicaciones entre ellos. Así, eficiencia, coherencia y comunicación escalabilidad son preocupaciones importantes para un desarrollador de aplicaciones. Debido a redes compartidas y topología desconocido, infraestructuras cloud exhiben entrenudo latencia y fluctuaciones de ancho de banda que a menudo afectan el rendimiento de la aplicación.

Almacenamiento de datos juega un papel fundamental en el desempeño de las aplicaciones de uso intensivo de datos. Organizar el almacenamiento, eligiendo la ubicación de almacenamiento y administración de ancho de banda de almacenamiento deben todos ser cuidadosamente analizados para un rendimiento óptimo de la aplicación. Nubes apoyan muchas opciones de almacenamiento, incluyendo almacenamiento en la nube de instancia, bloque de instancia montable en almacenamiento y persistente durante toda la vida de instancia.

Muchas aplicaciones de uso intensivo de datos utilizan metadatos asociados a los registros de datos individuales. Por ejemplo, los metadatos de un archivo de audio MPEG pueden incluir el nombre de la canción, el cantante, grabando información y así sucesivamente. Metadatos deben almacenarse para facilitar el acceso y almacenamiento de información debe ser escalable y confiable.

Otra consideración importante para el rendimiento de la aplicación está registrando. Es un equilibrio delicado. Consideraciones de rendimiento limitan la cantidad de registro de datos, mientras que la capacidad de identificar la fuente de errores y resultados inesperados es ayudada por el frecuente registro. La tala se realiza típicamente mediante almacenamiento de instancia conservada sólo durante la vida útil de la instancia. Por lo tanto, debe tomar siempre medidas para preservar los registros para un análisis post-mortem.

Oportunidades de aplicación

Se pueden dividir las aplicaciones nube existentes en varias categorías amplias: procesamiento de tuberías, sistemas de procesamiento por lotes y aplicaciones Web. Procesamiento de tuberías son aplicaciones de uso intensivo de datos y a menudo informáticas. Estos representan un segmento bastante grande de aplicaciones que se ejecutan actualmente en la nube. Existen varios tipos de aplicaciones de procesamiento de datos:

  • **Indexación:**La canalización de procesamiento soporta la indexación grandes conjuntos de datos creados por motores de Web crawler.
  • **Minería de datos:**La canalización de procesamiento apoya búsqueda de grandes colecciones de archivos para localizar artículos de interés.
  • Tratamiento de la imagen: Un número de empresas dejarte almacenar imágenes en la nube, tales como Flickr y Google. Las tuberías de procesamiento de imágenes soporte encriptación, compresión y conversión de la imagen.
  • **Transcodificación de vídeo:**El procesamiento de tubería transcodifica de un formato de video a otro (por ejemplo, de AVI a MPEG).
  • **Procesamiento de documentos:**La canalización de procesamiento convierte grandes colecciones de documentos de un formato a otro (como Word a PDF) o encripta los documentos. También podía utilizar reconocimiento óptico de caracteres (OCR) para producir imágenes digitales de documentos.

Sistemas de procesamiento por lotes también abarcan un amplio espectro de aplicaciones de uso intensivo de datos en Computación empresarial. Dichas aplicaciones suelen tienen plazos. Incumplimiento de estos plazos podría tener graves consecuencias económicas. La seguridad también es un aspecto crítico para muchas aplicaciones de procesamiento por lotes. Incluye una lista no exhaustiva de las aplicaciones de procesamiento por lotes:

  • Generando diariamente, informes de actividad semanal, mensual y anual para organizaciones de otros sectores económicos, la fabricación y venta por menor.
  • Procesamiento, agregación y resumir transacciones diarias para las instituciones financieras, compañías de seguros y organizaciones de salud.
  • Gestión de inventario para las grandes corporaciones.
  • Facturación-nómina-registro y procesamiento
  • Gestión de desarrollo de software (como todas las noches actualizaciones de repositorios de software).
  • Pruebas automáticas y verificación de sistemas software y hardware.

Por último, y de creciente importancia, son aplicaciones cloud para acceso a Internet. Varias categorías de sitios Web tienen un periódico o una presencia temporal, tales como los sitios Web para conferencias u otros eventos. También hay sitios Web que están activos durante una temporada particular como las vacaciones. También podría apoyan un tipo particular de actividad, como el impuesto sobre la renta informes con la fecha límite del 15 de abril de cada año. Otros sitios de Web de tiempo limitado usados para actividades de promoción de "dormir" durante la noche y auto escala durante el día.

Tiene sentido económico para almacenar los datos en la nube cerca de donde se ejecuta la aplicación. El costo por GB es bajo y el proceso es más eficiente cuando los datos se almacenan cerca de los servidores. Esto podría llevar a varias nuevas clases de aplicaciones cloud computing en los años venideros. Por ejemplo, podría haber procesamiento por lotes para sistemas de soporte de decisión y otros aspectos de la analítica de negocios.

Otra clase de nuevas aplicaciones podría ser el procesamiento por lote paralelo basado en la programación de las abstracciones. Aplicaciones interactivas móviles que procesan grandes volúmenes de datos de diferentes tipos de servicios que combinan más de un origen de datos y sensores son candidatos obvios para cloud computing.

Ciencia e ingeniería podrían beneficiarse enormemente de porque muchas aplicaciones en estas áreas son y datos informáticas de computación en nube. Del mismo modo, una nube dedicada a la educación sería extremadamente útil. Software matemático como MATLAB y Mathematica también podría correr en la nube.

Desarrollo de aplicaciones, selección, configuración y performance tuning todo convertido en actividades esenciales cuando balanceo de un entorno de cloud computing. Tendrás muchas aplicaciones que se ejecutan en muchas maneras diferentes, y esa pila de aplicación será necesario un seguimiento y mantenimiento.

Dan C. Marinescu

Dan C. Marinescu fue profesor de Ciencias de la computación en la Universidad de Purdue de 1984 al 2001. Luego ingresó en el Departamento de informática en la Universidad de Florida Central. Ha ocupado cargos visita Facultad en la IBM T. J. Centro de investigación Watson, el Instituto de Ciencias de la información en Beijing, la división de sistemas escalables de Intel Corp., Deutsche Telecom AG y Rocquencourt INRIA en Francia. Sus intereses de investigación paralela de cubierta y sistemas distribuidos, cloud computing, científicos informáticos, computación y cuántica teoría de información cuántica.

Para más información sobre este u otros títulos de Elsevier, echa un vistazo Elsevier Science & Libros de tecnología.

Contenido relacionado