Fernando Correia

Ideias para uso do Azure

In Dicas on 18 maio 2012 at 09:06

big-ideas

A plataforma Windows Azure é um conjunto de inúmeros serviços. Dificilmente uma única aplicação usará todos.

Neste artigo, veremos algumas ideias para aproveitar os serviços do Azure.

O que o Azure tem de especial

O Windows Azure oferece na forma de serviços uma série de recursos para computação, armazenamento de dados e comunicação.

O diferencial é que são serviços gerenciados, de alta disponibilidade, escaláveis, elásticos, redundantes entre regiões geográficas, e pagos conforme o uso.

Estas características viabilizam o atendimento de uma ampla gama de cenários de uso que seriam muito difíceis ou caros de atender com hospedagem tradicional.

Alguns cenários onde o Azure pode ajudar

Software como serviço

Uma nova categoria de negócios está ganhando cada vez mais força. São os cloud service vendors (CSVs), empresas que desenvolvem soluções que são fornecidas como serviços pagos conforme o uso. É a modalidade conhecida como Software as a Service (SaaS). Tipicamente estes serviços são operados como um único grande conjunto que atende a todos os clientes concorrentemente. A vantagem aqui é a economia de escala que vem da redução de custos ao operar uma única instância, e do compartilhamento de recursos entre muitos clientes e usuários.

O Azure pode ajudar fornecendo os recursos de computação, seja para front-end web, API de serviços e processamento em back-end, fornecendo mecanismos escaláveis para armazenamento de dados (relacionais ou não relacionais).

Portais para clientes finais e consumidores

Uma organização que atenda uma grande quantidade de pessoas pode se beneficiar de um portal de relacionamento onde estes clientes, consumidores ou cidadãos possam interagir, consultar sua situação e fazer solicitações. Este cenário aparentemente simples apresenta grandes desafios operacionais para fornecer uma estrutura que atenda os requisitos de performance, disponibilidade, segurança e custos.

O Azure pode ajudar fornecendo serviços escaláveis, onde servidores podem ser adicionados nos momentos de pico e removidos nos períodos de baixa demanda, de forma dinâmica, sem perda de disponibilidade. A vantagem é que se paga apenas pelas horas de servidor efetivamente consumidas, e ao mesmo tempo se dispõe de uma reserva de segurança para não perder a qualidade quando a demanda aumentar.

Outros aspectos onde o Azure pode ajudar têm a ver com comunicação de dados e segurança. A camada de rede do Azure ajuda a diminuir o impacto de eventuais ataques de negação de serviço e faz o balanceamento do tráfego entre os servidores. A rede de distribuição de conteúdo pode ser usada para aumentar a velocidade percebida pelos usuários. O serviço de identidade pode ser usado para autenticar usuários de forma segura e escalável.

Estes portais na nuvem podem e devem ser integrados aos sistemas hospedados em outros provedores, ou internamente, através de canais de comunicação privativos e seguros.

Auxílio a desastres

Este é um cenário especial dos portais. A característica aqui é que precisa ser colocado no ar muito rapidamente, em questão de horas e não dias ou semanas, deve escalar para atender uma quantidade gigantesca de acessos, e encolher à medida que a demanda diminuir.

Tudo isso é muito difícil e complicado de conseguir com uma estrutura de hosting tradicional ou hospedagem própria. Não dá tempo de negociar contratos, adquirir equipamentos e softwares, instalar, negociar largura de banda, proteger, pensar em redundância, backups, etc.

Utilizando o recurso de websites do Azure é possível criar um website com uma ferramenta de gerenciamento de conteúdo já instalada e configurada, e através do painel de controle escalar este website tanto verticalmente (usando servidores mais potentes) quanto horizontalmente (usando mais servidores), aumentando e diminuindo os recursos disponíveis conforme a variação na demanda de uso. Outros serviços úteis neste cenário são a rede de distribuição de conteúdo, o serviço de gestão de identidade e controle de acesso e o recurso de streaming de mídia.

Extensão de aplicações corporativas

As organizações passam por picos de demanda de processamento, que podem ser sazonais (todo final de mês, todo final de ano) ou inesperados (uma nova legislação exigindo um grande processamento, uma campanha comercial). Custa caro manter servidores ociosos para atender estes picos, e é bastante complicado administrar e distribuir as cargas de trabalho.

O Azure pode ajudar oferecendo computação como serviço na forma de máquinas virtuais. Usando a técnica conhecida como cloud bursting, é possível criar um canal de comunicação privado virtual entre o datacenter próprio e a nuvem, transmitir os dados que devem ser usados no processamento, levantar um grande número de servidores, processar todos os dados e baixar os resultados. Ao final, exclui-se tudo, sejam os dados temporários, sejam as instâncias de computação, e paga-se apenas pelo uso de horas de servidor, serviço de armazenamento e largura de banda consumida para os downloads.

Atenção: no Azure, não se paga pelo upload de dados. Isto levanta uma série de possibilidades interessantes.

Hot sites

A área de marketing é muito dinâmica e precisa de agilidade. Campanhas de marketing precisam de presença na Internet, seja na forma de hot sites, seja na forma de tweets, blogs, redes sociais ou anúncios, direcionando para landing pages e alimentando o funil. É desafiador provisionar em tempo hábil e dentro do orçamento a estrutura necessária para atender aos requisitos de desempenho, disponibilidade e escalabilidade.

O Azure pode ajudar com o serviço de websites escaláveis, elásticos e tolerantes a falhas, e com a rede de distribuição de conteúdo para dar ainda mais escalabilidade a baixo custo e aumentar a velocidade de resposta.

Armazenamento de dados escalável

Com a chamada “explosão de dados”, a demanda por espaço de armazenamento só cresce. Seja por obrigações legais ou para obter diferenciais competitivos, as empresas não querem mais jogar fora dados que custaram dinheiro para produzir ou captar. Mas apesar de ser hoje muito mais barato do que no passado, o armazenamento de dados de forma confiável, disponível, escalável e com performance adequada ainda é um problema complexo.

O Azure pode ajudar com seus serviços de armazenamento de dados, seja na forma de tabelas não relacionais, seja na forma de objetos binários. O custo destes serviços é muito baixo e tem caído continuamente, e as características dos serviços são muito interessantes. Uma empresa que está se beneficiando disso é a Apple, que usa o Azure no seu serviço iCloud.

Publicação segura de serviços

Uma coisa é desenvolver um web service. Outra é publicá-lo na Internet para ser consumido por uma grande quantidade de parceiros de negócio (clientes, conveniados) atendendo aos requisitos de segurança, desempenho e escalabilidade. Dependendo do cenário, estamos falando de problemas complexos e caros.

O Azure pode ajudar fornecendo um barramento de serviço que faz a interface entre os consumidores de serviço que estão acessando através da Internet, e o serviço que está hospedado em outro lugar. Diversas características técnicas do barramento de serviços, como o retorno de chamada, tornam este cenário bastante atraente. Em conjunto com o serviço de identidade, é possível autenticar os consumidores de serviço no Active Directory interno da organização.

Aplicações móveis

Em cenários móveis, temos uma grande quantidade de pessoas que a qualquer momento precisam interagir com dados ou serviços que nós fornecemos. Com a explosão da popularização destes dispositivos, estamos falando potencialmente de milhões de pessoas, com uma grande flutuação de demanda.

O Azure pode ajudar fornecendo serviços escaláveis, elásticos e de alta disponibilidade para computação, armazenamento de dados e gestão de identidade. Os kits de desenvolvimento para smartphones aceleram o desenvolvimento de aplicações que tirem proveito da nuvem.

Outro recurso que pode ser aproveitado é o de serviços móveis (mobile services), que permite rapidamente criar uma API para armazenamento e recuperação de dados de forma escalável e elástica.

Computação altamente paralela

Existem inúmeros problemas, desde projeções de riscos de investimentos ou seguros até renderização de filmes, que são muito demorados para processar de forma sequencial. A solução é usar o paralelismo, subdividindo o problema em pequenos blocos que são processados de forma independente e possivelmente colaborativa entre muitos núcleos e mesmo muitos servidores.

O Azure pode ajudar com o fornecimento de recursos de computação escaláveis e pagos conforme o uso, e com o suporte a computação de alto desempenho (HPC).

Processamento de vastos conjuntos de dados

Outro aspecto da explosão de dados é o chamado “big data”, no qual se deseja minerar uma massa de dados muito grande, na ordem de dezenas de terabytes para cima. Isto exige não só computação escalável, mas também armazenamento escalável, e coordenação de tudo isso.

O Azure pode ajudar oferecendo como serviço o Hadoop, que hoje é a plataforma padrão de mercado para este tipo de processamento.

Banco de dados relacional escalável

Para uma ampla categoria de aplicações, os bancos de dados relacionais ainda são a tecnologia mais apropriada, em virtude dos inúmeros benefícios que oferecem. Contudo, escalar estes bancos para atender grandes quantidades de usuários e/ou clientes, atendendo aos requisitos de desempenho, disponibilidade e tolerância a falhas, é um grande desafio.

O Azure pode ajudar oferecendo na forma de serviço um banco de dados baseado no SQL Server, que tem várias características interessantes. Em primeiro lugar, os dados são armazenados de forma redundante, de forma que a perda de um servidor não cause perda de dados nem interrupção do serviço. Em segundo lugar, o serviço suporta escalabilidade vertical, onde é possível criar desde um banco de dados de 1 GB a baixo custo executando em servidor compartilhado, até um banco de dados hoje de 150 GB, com muito mais poder de processamento e capacidade de entrada e saída de dados. E finalmente, o que possivelmente o maior diferencial, o serviço suporta também a escalabilidade horizontal, em que os dados podem ser distribuídos por um conjunto de bancos de dados separados de forma que o serviço faz automaticamete o redirecionamento de conexões, para garantir a performance, e permite juntar ou dividir bancos de dados dinamicamente, sem interrupção do acesso.

Inteligência de negócios

Vamos imaginar uma empresa média que esteja enfrentando dificuldades para obter em tempo hábil números consolidados que sejam confiáveis e que possibilitem análises e tomadas de decisão.

O Azure pode ajudar com o serviço de relatórios e BI. Este serviço é baseado no SQL Server Reporting Server e é um verdadeiro servidor de relatórios como serviços. A empresa pode criar remotamente seus relatórios, armazená-los no servidor e dar as permissões de acesso adequadas. Os funcionários autorizados terão acesso a estes relatórios a qualquer momento, que serão executados no servidor hospedado no Azure. Os dados podem ser obtidos da própria base de dados da empresa, ou podem ser mantidos como uma réplica em um banco de dados hospedado no Azure.

Comunicação direta entre usuários

Seja em aplicações sociais, jogos ou mesmo aplicações de negócios, surgem a cada dia mais ideias para comunicação direta entre usuários. Por exemplo, para trabalho colaborativo.

O Windows Azure pode ajudar fornecendo peças que podem ser usadas para compor esta arquitetura, como os Web Roles escaláveis, a fila de mensagens e o barramento de serviços. Além disso, o Kit de Ferramentas do Windows Azure para Jogos Sociais acelera o desenvolvimento de aplicações interconectadas para diversos dispositivos e tecnologias.

Vídeos e áudio

Mídias como vídeos e músicas estão cada vez mais presentes em nossas vidas e na comunicação através da Internet. A cada dia surgem ideias inovadoras para o seu uso, como a Khan Academy, e assistimos à popularização nas redes sociais e à utilização como ferramentas de marketing. Ainda assim, o fluxo de trabalho de produção, processamento e especialmente o streaming para uma grande quantidade de usuários apresentam desafios.

O Azure pode ajudar com o seu serviço de mídia, que permite criar workflows do processo inteiro, desde o upload e armazenamento, passando por codificação, conversão de formato, proteção, até o streaming sob demanda ou ao vivo.

Muito mais

Como o Windows Azure oferece uma ampla gama de serviços, que podem ser combinados de diversas formas e complementados por serviços de terceiros, outros produtos, desenvolvimento próprio e integrações, a quantidade de cenários que podem ser atendidos é imensa.

Saiba mais sobre os recursos do Azure e aprenda a utilizá-los na central de desenvolvimento.

Você enxerga outras maneiras de tirar proveito dos recursos de computação na nuvem do Windows Azure? Compartilhe suas ideias nos comentários abaixo ou pelo Twitter.

Atualizado em 26/09/2012 para incluir os mais recentes serviços do Azure.

  1. Muito bom, é importante pensarmos fora da caixa e sabermos aproveitar ao maximo as tecnologias disponiveis

    • Concordo, estão surgindo cada vez mais recursos que podem ser usados de maneira inovadora. Isso é muito empolgante e vai ser um grande acelerador da economia.

  2. Bem bacana o artigo! show de bola, parabéns!!!

Os comentários estão desativados.