Cloud Computing e Azure no contexto da pesquisa científica Otavio Pecego Coelho Arquiteto de Soluções Microsoft Brasil http://blogs.msdn.com/otavio E-mail: [email protected] INTRODUÇÃO A Evolução da Ciência • Ciência Empírica • Cientistas coletam dados pela observação direta • Cientistas analisam a informação • Ciência Teórica • Cientistas constroem um modelo analítico • Fazem predições • Ciência Computacional • Simulação do modelo analítico • Validação do modelo e construção de predições A Ciência Computacional Evolui • eScience - Exploração da Informação • “onde a TI encontra a ciência” • Informação capturada por instrumentos e/ou Informação gerada por simuladores • Processadas por software • Armazenadas em bancos/arquivos • Cientistas analisam bancos/arquivos • Nova ênfase em informática: Captura Organização Sumarização Análise Visualização • Une exploração de dados mais simulação. • É cedo para dizer se comp-X e X-info irão unificar ou competir. BaBar, Stanford P&E Gene Sequencer From http://www.genome.uci.edu/ 5 • • • • • Space Telescope A Explosão de Dados na Ciência Experimentos Simulações Arquivos O Desafio: Possibilitar Descobertas via mineração, buscas e análise destes dados em tempo quase-real. Petabytes Dobrando a cada 2 anos Literatura Consumo Hoje temos um ponto de inflexão • Desafios econômicos • Eficiência na Pesquisa • Escala da Infraestrutura • Transição Tecnológica • Cloud computing e Software+Serviços • Escalando o armazenamento e lidando com o Multicore • Respostas atuais: • Serviços na nuvem ricos • Infraestrutura Hospedada • Economia de escala (Computação como Commodity) Alguns Investimentos da Microsoft • High Performance Computing • Cloud Computing - Azure Alternativa usual HPC 10 Objetivo Windows HPC Server 2008 • Solução inter-operável c/ biblioteca padrão MPI • Construída em cima do Windows Server 2008 64-bit Administração Networking & MPI Job Scheduling Storage Service Oriented Architecture-HPC WS Scheduler Jobs WS WS Req Results Req Head Node Job Mgmt Cluster Mgmt SchedulingResource Mgmt WS WS Compute Node Job Execution User App MPI Topologia Típica de um Cluster Infra estrutura da TI Windows Update AD DNS Monitoring Systems Management DHCP Rede Pública Head Node Compute Node Compute Node Admin / User Cons Node Manager Node Manager WDS MPI MPI Job Scheduler Management Management MPI Management Rede Privada NAT Rede MPI Cluster de Computação Diferenciais • • • • • • Setup Simples Foco no gerenciamento simplificado Escala Horizontalmente Integração com o gerenciamento da corporação Integrado com a IDE de Desenvolvimento MS Research: Dryad e DryadLinq AZURE Não seria bom ter… Um pool de recursos computacionais (virtualmente) infinito (e elástico) oferecido no modo self-service, por um terceiro via um modelo “pague o quanto usa” Esta é a definição mais usual de Cloud Computing ! O que isto iria resolver? “Crescimento Rápido“ Computar Computar “On / Off “ Período de Inatividade Uso Médio Uso Média Time Tempo Cargas On/Off (ex.:. Job batch) Desperdício da capacidade provisionada Time to market pode ser retardado Serviços que precisam cresce e escalar Crescer é um desafio grande na TI Deployment complexo “Carga Sazonal“ Computar Computar “Carga Imprevista“ Uso Médio Uso Médio Tempo Tempo Pico de demanda inesperada Desempenho comprometido pelo pico Difícil provisionar nos casos extremos Serviços c/ micro sazonalidades Picos devido a demandas periódicas Complexidade da TI + desperdício CAPACIDADE DA TI “Falta“ de capacidades Custo Inicial das capacidades Alocação de capacidades Previsão de Carga Custo fixo das capacidades “Desperdício“ de capacidades Carga Atual TEMPO CAPACIDADE DA TI Alocação de capacidades Redução dos investimentos iniciais Previsão de Carga Sem “falta“ de capacidades Redução do “excesso de TI“ É possível a redução das capacidades no caso da redução da carga Carga Atual Tempo Datacenter Cloud Computing Modelo em Camadas Plataforma Windows Azure WEB & Nuvem Aplicações Web Nuvem de Terceiro Experiência de Desenvolvimento que usa ferramentas e conhecimento atual Compute Storage Management Aplicações Compostas Relational data Management ON-PREMISES Connectivity Access control Aplicações LOB Cloud Computing Modelo em Camadas Componentes da Plataforma Windows Azure Reporting Business Analytics Data Sync Componentes do Windows Azure Windows Azure em uma imagem Portal de Negócios Portal do Desenvolvedor REST Código Service de Gerência de Serviços WA SDK Desktop Compute Cluster VS Tools … VM Setup … … Storage Cluster Runtime API REST Datacenters da Microsoft Cloud VM Arquitetura do Windows Azure • Ferramentas de Desenvolvimento Abstração de Storage: Blobs, Tables, … Modelo de Programação Gerenciamento de Serviços Partições Balanceadas para Carga Armazenamento de Dados Replicados Modelo de Processamento do Serviço; Modelo de Saúde do Serviço Deployment de imagens de VMs; Programação de Rede; Alocação de VMs Microsoft Global Datacenters • Infraestrutura em nuvem construída de baixo para cima Serviços de Computação no Windows Azure OBJETIVO: ESCALABILIDADE MASSIVA Scale “out” pela replicação de instâncias dos processos de acordo com necessário. Dois tipos de Instâncias: Web Role & Worker Role Full-Trust - Código Nativo via P/Invoke FastCGI Cada instância roda na sua própria VM e é replicada caso necessário DEMO – PORTAL E HELLO WORLD Gerência do Serviço • Gerência de Serviço como serviço • APIs para uso local ou remoto • API de diagnóstico • Logs do IIS, Contadores de Desempenho, etc. • API de Service Management • Em combinação c/ a API de diagnóstico você pode construir um loop de feedback Modelos de Upgrades • In-place rolling upgrade • Instâncias de Roles são divididos em update domains • Atualize um update domain por vez • O serviço permanece disponível durante o upgrade • Real-time hot swap • Troca de endpoints do serviço velho c/ o novo • Permite mudanças arquiteturais complexas • Downtime planejado • Pare e troque o serviço com a nova versão Serviços de Storage no Windows Azure OBJETIVO: ESCALÁVEL, DURÁVEL E PAGUE O QUANTO USA O Storage do Windows Azure é um outro aplicativo gerenciado pelo Fabric Controller. Aplicativos do Windows Azure podem usar o storage nativo ou o SQL Services O estado do Aplicativo é armazenado nos serviços de storage para que os processos possam se replicados para melhor escalabilidade. Blobs: dados grandes e não estruturados (audio, video, etc) Tables: quantidades massivas de dados simples e estruturados, acessados via ADO.NET Queues: mensagens acessadas de modo serial, permitindo a interação entre os papéis web e workers Azure : Um Cenário Completo Microsoft Data Centers User Interface Table Storage Video Metadata Business Logic Blob Storage Raw Video Queue Encoding Process Process Communication Blob Storage Encoded Azure: Um Cenário Completo Microsoft Data Centers User Interface Table Storage Video Metadata Business Logic Blob Storage Raw Video Queue Encoding Process Process Communication Blob Storage Encoded Reporting Business Analytics • Banco de Dados Relacional como serviço • Alta disponibilidade, manutenção automática • Extensão da plataforma SQL Server Data Sync Data Sync • Ferramenta para sincronização com o SQL Azure • Conecta aplicativos da nuvem com os on-premises • Cria clientes em modo cached • Novos: • SQLAzureSyncProvider: otimizado para o SQL Azure • VS PlugIn: Template + Geração de código • SQL Azure Data Sync Tool for SQL Server: provisionamento e sincronização entre SQL Server e SQL Azure. Sync Sync / Cache • Conexões Seguras entre serviços • Atravessa os limites das organizações • Controle de acesso baseado em declarações MAPREDUCE Pattern “MapReduce”* * 2004 OSDI paper by Jeff Dean and Sanjay Ghemawat (Google) - Usando a Nuvem para Computar Quantos ”e”’encontramos na frase “The quick brown fox jumps over the lazy dog”? Data Client Master Worker M<k,v> Worker M<k,v> Worker M<k.v> “Map” M<“the quick brown”.”e”> M<“fox jumps over”.”e”> M<“the lazy dog”.”e”> Usando a Nuvem para Computar Client Master L<k,v> Worker L<k,v> Worker Result Worker L<k,v> 3 ”e” achados “Reduce ” L<”e”,”1”> L<”e”,”1”> L<”e”,”1”> Como resolver isto no Azure? Usando a Nuvem para Computar Data Client Web Role Aplicação Cliente Job/Task Scheduler Worker Data Worker Data Worker Data Serviço Remoto Req Fila Tabela Demo Resumo • A ciência hoje pede uma infraestrutura que apoie a alta demanda de poder computacional e armazenamento de dados Duas das principais iniciativas que vão de encontro a estas necessidades são os investimentos em HPC e Azure Diminuir os custos de administração e deployment é o maior diferencial do HPC da Microsoft hoje Azure é um Sistema Operacional feito para a Nuvem • • • • • É projetado para utility computing Tem 4 metas principais: • • • • Gerenciamento Automático dos Serviços Um hospedeiro poderoso de Serviços Armazenamento e processamento escalável e disponível Uma experiência de desenvolvimento rica e familiar Convite • Cloud Futures 2010 Conference • • • • na Microsoft Research, Redmond 8-9 de Abril 2010 Key notes Prof D. Patterson, UC Berkeley and Dr. D. Reed, Microsoft Research Industry presentations, Tutorials and Panel discussions (including Microsoft, Amazon, Yahoo, Google) – provisional;. • Invited talks from faculty, researchers and industry of 30 minutes on the role of cloud computing across a variety of research and curriculum development areas---including computer science, earth sciences, healthcare, humanities, life sciences, and social sciences---that highlight how new techniques and methods of research in the cloud may solve distinct challenges arising in those diverse areas. • • • • The presenters will be selected based on the abstract Abstract submission deadline February 10, 2010 to [email protected]; Invited talks will be announced on February 18, 2010 Abstracts will be review by the designated panel of MSR researchers and practitioners. Links • http://research.microsoft.com/enus/collaboration/fourthparadigm/default.aspx • http://research.microsoft.com/en-us/projects/Dryad/ • http://www.microsoft.com/hpc • http://www.microsoft.com/windowsazure • http://msdn.microsoft.com/pt-br/azure • http://blogs.msdn.microsoft.com/otavio • [email protected] © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.