Caso práctico de las misiones MER y CARVE del JLP de la NASA
2014
¿“Burns Cliff”, “Columbia Hills”, “Endeavour” y “Bonneville Crater” son conocidos en este mundo? ¡Pues sí! Se trata de algunas de las estructuras geográficas que han visitado los rovers de exploración de Marte (Mars Exploration Rovers, MER)de la NASA. Con los años, los rovers transmiten tesoros escondidos de datos interesantes que comprenden imágenes de alta resolución del planeta rojo. Ahora, Amazon Simple Workflow Service (Amazon SWF) se suma a algunas de las tecnologías informáticas clave de estas misiones en la tarea de permitir a los científicos de la NASA administrar las operaciones críticas con fiabilidad y procesar con eficacia los conocimientos cada vez más amplios que recopilamos sobre nuestro universo.
Amazon SWF brinda a la NASA/JPL la posibilidad de aprovechar los recursos dentro y fuera de su entorno, así como de distribuir perfectamente la ejecución de la aplicación en la nube pública, lo cual permite a sus aplicaciones escalar dinámicamente y ejecutarse de forma realmente distribuida.
El desafío
El Laboratorio de Propulsión a Chorro (JPL) de la NASA utiliza Amazon SWF como parte integrante de varias misiones, como Mars Exploration Rover (MER) y Carbon in the Arctic Reservoir Vulnerability Experiment (CARVE). Estas misiones generan constantemente grandes volúmenes de datos que han de procesarse, analizarse y almacenarse de manera eficaz y con confianza. Las canalizaciones de procesamiento de datos para operaciones tácticas y análisis científicos implican una ejecución de pasos ordenados a gran escala con amplias oportunidades de comparación entre varias máquinas. Como ejemplos destacan la generación de datos estereoscópicos a partir de pares de imágenes, la unión de panoramas de varios gigapíxeles para sumergir al científico en el terreno de Marte y la división en cuadrículas de estas imágenes de gigapíxeles para que los datos se puedan cargar bajo demanda. Existe una comunidad global de operadores y científicos que utilizan tales datos. Esta comunidad está sometida a plazos ajustados para las operaciones tácticas, incluso plazos de tan solo unas horas. Para satisfacer estas necesidades, los ingenieros de la NASA/JPL se marcan el objetivo de procesar y difundir las imágenes de Marte en cuestión de minutos.
Por qué Amazon Web Services
La NASA/JPL lleva mucho tiempo almacenando y procesando datos en AWS. La mayor parte de este trabajo se realiza con el marco de Polyphony, que es la implementación de referencia de la arquitectura orientada a la nube de la NASA/JPL. Ofrece soporte para el aprovisionamiento, el almacenamiento, el monitoreo y la orquestación de los trabajos de procesamiento de datos en la nube. El conjunto de herramientas existente de Polyphony para el análisis y el procesamiento de los datos incluía en sí Amazon Elastic Compute Cloud (Amazon EC2) para la capacidad informática, Amazon Simple Storage Service (Amazon S3) para la distribución de los datos y el almacenamiento, así como implementaciones de Amazon Simple Queue Service (Amazon SQS) y Amazon Elastic MapReduce (Amazon EMR) como Hadoop para la ejecución y la distribución de las tareas. No obstante, faltaba una pieza clave: un servicio de orquestación para administrar con fiabilidad las tareas de grandes y complejos flujos de trabajo.
Si bien las colas ofrecen un enfoque eficaz para distribuir trabajos paralelos de manera masiva, los ingenieros no tardaron en notar deficiencias. La incapacidad de expresar el orden y las dependencias en las colas no les permitía afrontar flujos de trabajo complejos. Los ingenieros de la NASA/JPL también tuvieron que abordar la duplicación de mensajes al utilizar las colas. Por ejemplo, al unir las imágenes, la duplicación de una tarea de unión de una imagen daría lugar a un procesamiento caro y redundante, por lo que resultaría inútil la costosa capacidad informática adicional utilizada a medida que la canalización avanza hasta su finalización. La NASA/JPL también tiene numerosos casos de uso que van más allá del procesamiento de datos brutos y que requieren mecanismos para administrar el flujo de control. A pesar de que los ingenieros lograron implementar los flujos controlados por datos con facilidad gracias a Amazon Elastic MapReduce, les resultó difícil expresar cada paso de la canalización dentro de la semántica del marco. En particular, a medida que aumentaba la complejidad del procesamiento de datos, se enfrentaban a dificultades para representar las dependencias entre los pasos de procesamiento y la administración de los errores de la informática distribuida.
Los ingenieros de la NASA/JPL identificaron la necesidad de disponer de un servicio de orquestación con las siguientes características:
- Alta disponibilidad: para soportar las operaciones críticas
- Escalabilidad: para facilitar la ejecución paralela y simultánea desde cientos de instancias de Amazon EC2
- Consistencia: una tarea programada debe ejecutarse una vez con una probabilidad muy alta
- Expresión: expresión sencilla de flujos de trabajo complejos para agilizar el desarrollo
- Flexibilidad: la ejecución de los flujos de trabajo no debe limitarse a Amazon EC2 y las tareas deben ser enrutables
- Alto desempeño: las tareas deben programarse con la mínima latencia
Los ingenieros de la NASA/JPL utilizaron Amazon SWF e integraron el servicio en las canalizaciones de Polyphony responsables del procesamiento de datos de las imágenes de Marte para las operaciones tácticas. Han conseguido un control y una visibilidad sin precedentes de la ejecución distribuida de sus canalizaciones. Y lo que es más importante aún, han logrado expresar flujos de trabajo complejos de manera sucinta sin verse obligados a expresar el problema en ningún paradigma específico.
Amazon SWF para MER y MSL
Para prestar soporte en la prueba de campo de rápido movimiento del rover Curiosity, también conocido como Laboratorio científico de Marte, los ingenieros de la NASA/JPL tuvieron que procesar imágenes, generar imágenes tridimensionales y crear panoramas. Las imágenes tridimensionales requieren un par de imágenes tomadas al mismo tiempo, y generan datos de intervalos que informan al operador táctico sobre la distancia y la dirección desde el receptor móvil hasta los píxeles de las imágenes. Las imágenes izquierda y derecha se pueden procesar en paralelo. No obstante, el procesamiento tridimensional no puede comenzar hasta que no se hayan procesado ambas imágenes. Este flujo de trabajo clásico de separación-unión resulta difícil de expresar con un sistema basado en colas, mientras que para expresarlo con SWF solo se requieren algunas líneas sencillas de código Java junto con anotaciones de AWS Flow Framework.
La generación de panoramas también se implementa como un flujo de trabajo. A efectos tácticos, los panoramas se generan en cada ubicación en que se detiene el rover para hacer fotografías. Por tanto, cada vez que lleva una imagen nueva de una ubicación concreta, la panorámica se aumenta con la información nueva disponible. Habida cuenta de la amplia escala de los panoramas y de la necesidad de generarlos lo más rápido posible, el problema debe dividirse y coordinarse entre varias máquinas. El algoritmo empleado por los ingenieros divide el panorama en varias filas de gran tamaño. La primera tarea del flujo de trabajo consiste en generar cada una de las filas en función de las imágenes disponibles en la ubicación. Tras generar las filas, se reduce su escala a varias resoluciones y se dividen para que puedan utilizarlas los clientes remotos. Gracias al conjunto enriquecido de características de Amazon SWF, los ingenieros de la NASA/JPL han podido expresar el flujo de esta aplicación como un flujo de trabajo de Amazon SWF.
Un mosaico de Opportunity Pancam con un tamaño total de 11 280 × 4 280 píxeles que contiene 77 imágenes en color. Las cuadrículas con seis niveles de detalle resultan necesarias para entregar esta imagen a un visualizador de cualquier tamaño arbitrario. Las líneas de cuadrícula amarillas indican las cuadrículas necesarias para cada imagen. Los panoramas del instrumento Mastcam del laboratorio científico de Marte se componen de hasta 1 296 imágenes con una resolución de casi 2 gigapíxeles. A continuación se muestra la imagen panorámica correspondiente.
Al permitir la orquestación en la nube, Amazon SWF brinda a la NASA/JPL la capacidad de aprovechar los recursos dentro y fuera de su entorno, así como de distribuir perfectamente la ejecución de la aplicación en la nube pública, lo cual permite a sus aplicaciones escalar dinámicamente y ejecutarse de forma realmente distribuida.
Muchas canalizaciones de procesamiento de datos de la NASA/JPL están estructuradas como nodos de trabajo automatizados para cargar datos con firewall, nodos de trabajo para procesar los datos en paralelo y nodos de trabajo para descargar los resultados. Los nodos de trabajo de carga y descarga se ejecutan en servidores locales, mientras que los nodos de trabajo de procesamiento de datos se pueden ejecutar en servidores locales y en nodos de Amazon EC2. Mediante el uso de las capacidades de direccionamiento de Amazon SWF, los desarrolladores de la NASA/JPL han incorporado los nodos de trabajo de forma dinámica en la canalización, a la vez que han podido beneficiarse de las características del nodo de trabajo, como la localización de los datos. Esta aplicación de procesamiento también ofrece una alta disponibilidad porque, incluso cuando los nodos de trabajo locales fallan, los nodos de trabajo basados en la nube continúan avanzando con el procesamiento. Dado que Amazon SWF no restringe la ubicación de los nodos de trabajo, la NASA/JPL ejecuta los trabajos en varias regiones y también en sus centros de datos locales, a fin de ofrecer la máxima disponibilidad para sistemas críticos. A medida que Amazon SWF se encuentra disponible en varias regiones, la NASA/JPL pretende integrar la conmutación por error automática a Amazon SWF en todas las regiones.
Los beneficios
La NASA/JPL no solo utiliza Amazon SWF para aplicaciones de procesamiento de datos. De hecho, con la utilización de las capacidades de programación de Amazon SWF, los ingenieros de JPL crearon un sistema distribuido de trabajo Cron que realizaba de manera fiable y puntual las operaciones críticas para la misión. Además de fiabilidad, la NASA/JPL adquirió una visibilidad centralizada y sin precedentes de estos trabajos distribuidos a través de las capacidades de visibilidad de Amazon SWF disponibles en la consola de administración de AWS. Incluso ha creado una aplicación para realizar backups en Amazon S3 de los datos fundamentales de MER. Con los trabajos Cron distribuidos, la NASA/JPL actualiza los backups y audita la integridad de los datos con la frecuencia que requiere el proyecto. Todos los pasos de esta aplicación, incluidos el cifrado, la carga en Amazon S3, la selección aleatoria de los datos de la auditoría y la auditoría real mediante la comparación de datos locales con Amazon S3, se coordinan de forma fiable mediante Amazon SWF. Además, varios equipos de la NASA/JPL han migrado rápidamente las aplicaciones existentes a fin de utilizar la orquestación en la nube, para lo que se han beneficiado del soporte de programación que se ofrece a través de AWS Flow Framework.
La NASA/JPL continúa utilizando Hadoop para canalizaciones de procesamiento de datos sencillos y Amazon SWF es ahora una opción natural para implementar aplicaciones con dependencias complejas entre los pasos de procesamiento. Los desarrolladores también usan con frecuencia la capacidad de diagnóstico y análisis disponible a través de la consola de administración de AWS para depurar aplicaciones durante el desarrollo y el seguimiento de ejecuciones distribuidas. Con la utilización de AWS, el desarrollo, las pruebas y la implementación de las aplicaciones críticas para la misión que anteriormente suponían meses, ahora se hacen en cuestión de días.
Para obtener más información acerca de cómo la NASA/JPL utiliza la nube de AWS para otras misiones y estudios, consulte las historias de éxito de la investigación del desierto de JPL/NASA y estudios de capacitación y la misión Mars Curiosity de la NASA/JPL.
Acerca de las misiones MER y CARVE del JLP de la NASA
Las misiones del Mars Exploration Rover de la NASA tenían como objetivo la búsqueda y la caracterización de un amplio rango de rocas y suelos para encontrar pistas sobre actividades posteriores al agua en Marte.
Beneficios de AWS
- Depuración de aplicaciones en días en lugar de meses
- Capacidad potente de diagnóstico y análisis
- Creación de copias de seguridad y auditorías de la integridad de los datos con frecuencia
Servicios de AWS utilizados
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona capacidad informática en la nube segura y de tamaño modificable. Está diseñado para simplificar el uso de la informática en la nube a escala web para los desarrolladores.
Amazon S3
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en el sector.
Amazon SQS
Amazon Simple Queue Service (SQS) es un servicio de colas de mensajes completamente administrado que permite desacoplar y ajustar la escala de microservicios, sistemas distribuidos y aplicaciones sin servidor.
Amazon EMR
Amazon EMR es la plataforma de big data nativa en la nube líder del sector que permite que los equipos procesen grandes cantidades de datos de forma rápida y rentable a escala.
Comenzar
Cada día crece el número de empresas de todos los tamaños y sectores que consiguen transformar sus negocios gracias a AWS. Contacte con nuestros expertos e inicie hoy mismo su proceso de traspaso a la nube de AWS.