Estudo de caso das missões MER e CARVE da NASA/JPL

2014

“Burns Cliff”, “Colinas Columbia”, ”Endeavour” e “Cratera Bonneville” soam como coisa de outro mundo? Você está certo! Essas são algumas das estruturas geográficas que os Mars Exploration Rovers (MER) da NASA visitaram. Com o decorrer dos anos, as sondas têm enviado coleções de dados excitantes incluindo imagens de alta resolução sobre o planeta vermelho. Agora, o Amazon Simple Workflow Service (Amazon SWF) reúne algumas das principais tecnologias de computação por trás dessas missões, possibilitando aos cientistas da NASA conduzir com confiança operações de missão crítica e processar de maneira eficiente o conhecimento cada vez maior que adquirimos sobre nosso universo.

inicie um tutorial de python

O Amazon SWF oferece à NASA/JPL a capacidade de aproveitar recursos dentro e fora de seu ambiente e distribuir sem dificuldades a execução do aplicativo na nuvem pública, permitindo que seus aplicativos sejam dimensionados de maneira dinâmica e executados de forma realmente distribuída.

O desafio

O Jet Propulsion Laboratory (JPL) da NASA usa o Amazon SWF como parte integral de várias missões, incluindo a MER e a Carbon in the Arctic Reservoir Vulnerability Experiment (CARVE). Essas missões geram continuamente grandes volumes de dados que devem ser processados, analisados e armazenados de modo eficiente e confiável. As pipelines de processamento de dados de operações táticas e análise científica envolvem execução de etapas ordenadas em grande escala com ampla oportunidade de paralelização entre várias máquinas. Os exemplos incluem a geração de dados estereoscópicos de pares de imagens, a emenda de vários panoramas gigapixel para mergulhar o cientista em terreno marciano, e a disposição lado a lado dessas imagens gigapixel de modo que os dados possam ser carregados on demand. Há uma comunidade global de operadores e cientistas que confiam em tais dados. Essa comunidade tem frequentemente um cronograma apertado para operações táticas, tão apertado quanto apenas algumas horas. Para atender a essas necessidades, os engenheiros da NASA/JPL estabeleceram um objetivo de processamento e divulgação das imagens de Marte em questão de minutos.

Por que a Amazon Web Services?

A NASA/JPL tem processado e armazenado dados na AWS há muito tempo. Boa parte desse trabalho é realizado pela estrutura Polyphony, que é a implementação de referência da arquitetura voltada para a nuvem da NASA/JPL. Ela fornece suporte para provisionamento, armazenamento, monitoramento e orquestração de tarefa dos trabalhos de processamento de dados na nuvem. O conjunto de ferramentas da Polyphony para processamento e análise de dados era formado pelo Amazon Elastic Compute Cloud (Amazon EC2) para capacidade computacional e o Amazon Simple Storage Service (Amazon S3) para armazenamento e distribuição de dados, bem como implantações do Amazon Simple Queue Service (Amazon SQS) e do Amazon Elastic MapReduce (Amazon EMR), como Hadoop, para execução e distribuição de tarefas. No entanto, faltava uma parte importante: um serviço de orquestração para gerenciar tarefas de modo confiável para fluxos de trabalho grandes e complexos.

Ao passo que as filas fornecem uma abordagem efetiva para distribuir massivamente trabalhos em paralelo, os engenheiros se deparavam rapidamente com as deficiências. A incapacidade de expressar a ordem e dependências dentro das filas as tornavam inadequadas para fluxos de trabalho complexos. Os engenheiros da NASA/JPL também precisaram trabalhar com a duplicação de mensagens ao usar filas. Por exemplo, ao emendar imagens, uma tarefa duplicada para emendar uma imagem resultava em um processamento redundante dispendioso o que levava a computação dispendiosa adicional à medida que a pipeline avançava inutilmente para conclusão. A NASA/JPL também tem vários casos de uso que vão além do processamento de dados brutos e exigem mecanismos para promover o fluxo de controle. Embora os engenheiros tenham sido capazes de implementar fluxos baseados em dados no Amazon Elastic MapReduce com facilidade, eles encontraram dificuldades para expressar cada etapa no pipeline na semântica da estrutura. Especialmente, à medida que a complexidade do processamento de dados aumentava, eles enfrentavam dificuldades em representar as dependências entre as etapas de processamento e em manipular falhas de computação distribuídas.

Os engenheiros da NASA/JPL identificaram a necessidade de um serviço de organização com as seguintes características:

  • Altamente disponível: para suportar operações de missão crítica
  • Escalável: para facilitar a execução paralela simultaneamente de centenas de instâncias do Amazon EC2
  • Consistente: uma tarefa planejada deve ser executada uma vez com probabilidade muito alta
  • Expressivo: a expressão simples de fluxos de trabalho complexos para promover desenvolvimento
  • Flexível: a execução de fluxos de trabalho não deve estar limitada ao Amazon EC2 e as tarefas devem ser roteáveis
  • Eficiente: as tarefas devem ser planejadas com latência mínima

Os engenheiros da NASA/JPL usaram o Amazon SWF e integraram o serviço com os pipelines da Polyphony que eram responsáveis pelo processamento de dados das imagens de Marte para operações táticas. Eles ganharam visibilidade e controle sem precedentes na execução distribuída de suas pipelines. O mais importante, eles podiam expressar fluxos de trabalho complexos de modo sucinto sem serem forçados a expressar o problema em qualquer paradigma específico.

Amazon SWF para MER e MSL

Para oferecer suporte ao Fast Motion Field Test do rover Curiosity, também conhecido como Mars Science Laboratory, os engenheiros da NASA/JPL precisaram processar imagens, gerar imagens estéreo e fazer panoramas. As imagens estéreo requerem um par de imagens adquiridas ao mesmo tempo, e geram um intervalo de dados que informa a um operador tático a distância e a direção da sonda aos pixels nas imagens. As imagens esquerda e direita podem ser processadas em paralelo; no entanto, o processamento estéreo não pode iniciar até que cada imagem tenha sido processada. Esse fluxo de trabalho “split-join” clássico é difícil de expressar com um sistema baseado em fila, ao passo que expressá-lo com o SWF requer algumas linhas simples do código Java junto com as anotações do AWS Flow Framework.

A geração de panoramas também é implementada como um fluxo de trabalho. Para fins táticos, os panoramas são gerados em cada local onde a sonda estaciona e tira fotos. Portanto, a qualquer momento que uma nova imagem chega de um local específico, o panorama é ampliado com as informações recentemente disponíveis. Devido à grande escala dos panoramas e a necessidade de gerá-los o mais rápido possível, o problema teve de ser dividido e orquestrado em numerosas máquinas. O algoritmo empregado pelos engenheiros divide o panorama em várias linhas grandes. A primeira tarefa do fluxo de trabalho é gerar cada uma das linhas com base nas imagens disponíveis no local. Uma vez geradas as linhas, elas são reduzidas a várias resoluções e dispostas lado a lado para serem consumidas por clientes remotos. Usando o conjunto de recursos avançados fornecido pelo Amazon SWF, os engenheiros da NASA/JPL expressaram esse fluxo do aplicativo como um fluxo de trabalho do Amazon SWF.

Um mosaico da Opportunity Pancam com tamanho total de 11.280×4.280 pixels contendo imagens de 77 cores. São necessários blocos em seis níveis de detalhes para distribuir essa imagem para um visualizador em qualquer tamanho arbitrário. As linhas de grade amarelas indicam os blocos necessários para cada imagem. O instrumento Panoramas for Mastcam no MSL é composto por até 1.296 imagens e tem uma resolução de quase 2 gigapixels. A imagem panorâmica correspondente é mostrada abaixo.

Ao disponibilizar a organização na nuvem, o Amazon SWF oferece à NASA/JPL a capacidade de aproveitar recursos dentro e fora de seu ambiente e distribuir sem dificuldades a execução do aplicativo na nuvem pública, permitindo que seus aplicativos sejam dimensionados de maneira dinâmica e executados de forma realmente distribuída.

Muitos pipelines de processamento de dados da NASA/JPL são estruturados como operadores automatizados para carregar dados de firewall, operadores para processar os dados paralelamente e operadores para baixar resultados. Os trabalhadores de upload e download executam nos servidores locais e os trabalhadores de processamento de dados podem executar nos servidores locais e nos nós do Amazon EC2. Usando os recursos de roteamento no Amazon SWF, os desenvolvedores da NASA/JPL incorporaram operadores no pipeline de maneira dinâmica, ao mesmo tempo que aproveitaram características de operadores, como a localidade de dados. Esse aplicativo de processamento também é altamente disponível porque quando os trabalhadores locais falham, os trabalhadores baseados em nuvem continuam a levar o processamento para frente. Como o Amazon SWF não restringe a localização dos nós de operadores, a NASA/JPL executa trabalhos em várias regiões, bem como em datacenters locais para permitir a melhor disponibilidade para sistemas de missão crítica. Conforme o Amazon SWF é disponibilizado em várias regiões, a NASA/JPL planeja integrar o failover automático nas regiões do Amazon SWF.

Os benefícios

O uso do Amazon SWF por parte da NASA/JPL não se limita a aplicativos de processamento de dados. Usando os recursos de programação no Amazon SWF, os engenheiros do JPL criaram um sistema de trabalho distribuído, Cron, que executava com confiança, operações de missão crítica oportunamente. Além da confiabilidade, a NASA/JPL ganhou uma visibilidade sem precedentes e centralizada para esses trabalhos distribuídos por meio dos recursos de visibilidade do Amazon SWF que estão disponíveis no Console de Gerenciamento da AWS. A NASA/JPL até desenvolveu um aplicativo para fazer backup de dados essenciais da MER no Amazon S3. Com trabalhos cron distribuídos, a NASA/JPL atualiza os backups, bem como executa a auditoria da integridade dos dados na frequência escolhida para o projeto. Todas as etapas desse aplicativo, incluindo criptografia, carregamento no Amazon S3, seleção aleatória de dados para auditoria e auditoria por meio da comparação de dados locais com o Amazon S3, são organizadas com segurança por meio do Amazon SWF. Além disso, várias equipes da NASA/JPL migraram seus aplicativos existentes com rapidez para usar a organização na nuvem aproveitando o suporte à programação fornecido por meio do AWS Flow Framework.

A NASA/JPL continua a usar o Hadoop para pipelines de processamento de dados simples, e o Amazon SWF é a escolha óbvia para a implementação de aplicativos com dependências complexas entre as etapas do processamento. Os desenvolvedores também usam com frequência o recurso de análise e diagnóstico disponível por meio do Console de Gerenciamento da AWS para corrigir aplicativos durante o desenvolvimento e o rastreamento de execuções distribuídas. Com a AWS, aplicativos de missão crítica que antes levavam vários meses para serem desenvolvidos, testados e implementados, agora levam apenas dias.

Para obter mais informações sobre como a NASA/JPL usa a Nuvem AWS para outras missões e estudos, consulte as histórias de sucesso de clientes em Desert Research and Training Studies da NASA/JPL e Mars Curiosity Mission da NASA/JPL.


Missões MER e CARVE da NASA/JPL

As missões Mars Exploration Rover da NASA tinham um objetivo de busca e caracterização de uma ampla gama de pedras e solos por pistas da atividade de água no passado de Marte.

Benefícios da AWS

  • Depura aplicativos em dias em vez de meses
  • Diagnóstico poderoso e capacidade analítica
  • Backups e integridade de auditoria de dados frequente

Serviços da AWS usados

Amazon EC2

O Amazon Elastic Compute Cloud (Amazon EC2) é um web service que disponibiliza capacidade computacional segura e redimensionável na nuvem. Ele foi projetado para facilitar a computação em nuvem na escala da web para os desenvolvedores.

Saiba mais >>

Amazon S3

O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade líder do setor, disponibilidade de dados, segurança e performance.

Saiba mais >>

Amazon SQS

O Amazon Simple Queue Service (SQS) é um serviço de filas de mensagens gerenciado que permite o desacoplamento e a escalabilidade de microsserviços, sistemas distribuídos e aplicativos sem servidor.

Saiba mais >>

Amazon EMR

O Amazon EMR é a plataforma de big data nativa da nuvem líder do setor, que permite que as equipes processem grandes quantidades de dados com rapidez, de forma econômica e em grande escala.

Saiba mais >>


Comece a usar

Empresas de todos os portes em todos os setores estão transformando seus negócios diariamente usando a AWS. Entre em contato com nossos especialistas e inicie sua própria jornada para a Nuvem AWS hoje mesmo.