Windows Azure Storage: Decolando com armazenamento na Nuvem!

Cloud Computing & Microsoft Azure & Microsoft Azure Storage

Windows-Azure-Storage TítuloComo já tratamos anteriormente, o Windows Azure é um “Sistema Operacional” para a tão famosa cloud computing. Utilizando principalmente a oferta PaaS (Plataforma como Serviço)* temos o benefício de uma pequena curva de aprendizagem já que essencialmente temos ferramentas de desenvolvimento já conhecidas da plataforma.

O Azure disponibiliza meios para que os desenvolvedores escrevam serviços escalonáveis e altamente disponíveis como computação virtualizada, gerenciamento automatizado um poderoso SDK e é claro, armazenamento escalável.

O objetivo do Windows Azure Storage é oferecer um armazenamento Escalável, Durável ser altamente disponível e proporcionar ao usuário pagar somente o quanto ele usar. É de fácil acesso a seus dados com interfaces RESTsimples, disponíveis remotamente e em datacenters. Cabe aqui um comentário: estes são alguns dos motivos que fazem acreditar tão fortemente na Cloud Computing.

Os serviços de armazenamento são oferecidos em quatro níveis de abstração:

    • Blobs – Fornece uma interface simples para armazenamento de grandes itens de dados.
    • Tabelas – Fornecem um conjunto de entidades, que contêm um conjunto de propriedades. Um aplicativo pode manipular as entidades e consultar qualquer uma das propriedades armazenadas em uma tabela.
    • Filas – Fornecer armazenamento confiável para entrega de mensagens propiciando expedição assíncrona de trabalhos para habilitar a comunicação entre os serviços de diferentes partes (papéis) de sua aplicação.
    • Drives – Fornece volumes NTFS duráveis para aplicações.

O acesso ao armazenamento e o balanceamento de carga é realizado automaticamente através de um conjunto de nós responsáveis pelo armazenamento físico proporcionando escalabilidade e disponibilidade.

Para podermos utilizar o os serviços de armazenamento do Windows Azure, o usuário precisa criar uma conta de acesso ao portal de gerenciamento da plataforma Windows azure no endereço Windows Azuree acessando a opção “Serviços Hospedados, Contas de Armazenamento e CDN” criar uma “Nova Conta de Armazenamento” seguindo os passos conforme a figura abaixo:

Figura01

Com a criação da conta de armazenamento você irá receber uma chave secreta de 256 bits que será usada para autenticar as solicitações do usuário no sistema de armazenamento criando e incluindo uma assinatura HMAC(Hash-based Message Authentication Code) em cada uma das solicitações. Esta chave é associada a conta de armazenamento e compõem as requisições para a devida autorização.

Algo muito importante de se notar é a URI utilizada para acessar os dados:

    • http(s)://nomeDaConta.blob.core.windows.net/<nomeDoContainer>/<nomeDoBlob>
    • http(s)://nomeDaConta.queue.core.windows.net/<nomeDaFila>
    • http(s)://nomeDaConta.table.core.windows.net/<nomeDaTabela>

Podemos notar que a primeira parte do nome do Host (nomeDaConta) trata-se do nome que foi registrado no portal de gerenciamento da plataforma Azure. Isto possibilita o uso via DNS (Domain Name System - Sistema de Nomes de Domínios) redirecionando seu pedido para o local onde estão os dados de armazenamentos para a conta em questão. Isto ocorre para todas as solicitações. Após o nome da conta temos as palavras chave blob, queue e table que irão redirecionar a requisição ao serviço correspondente. Blob, Queue e Table são serviços distintos contendo cada um espaço diferente na conta de armazenamento. Logo é possível criar um Blob Container, uma Queue e uma Table com o mesmo nome.

Como não poderia faltar, para utilizarmos o ambiente de armazenamento devemos fornecer a nossa aplicação os dados necessários para viabilizar esta conexão. Quando trabalhamos com os arquivos de configuração e definição dos projetos Azure devemos ter em mente que podemos executar nossa aplicação em dois ambientes distintos: na nuvem e local.

As credenciais necessárias para a geração da assinatura HMAC são especificadas no arquivo de configuração do respectivo papel do Windows Azure. Os formatos para string de conexão do armazenamento local e na nuvem respectivamente são:

Configuration

 

Não há nenhuma noção específica de segurança baseada por papel do Windows Azure Storage, assim uma solicitação autenticada terá acesso completo ao armazenamento. Uma exceção a isso é o container blob, que pode ser público (anônimo) ou privado. A autorização é da responsabilidade da aplicação que consome os serviços da camada de armazenamento.

 


Espero que tenham gostado. Nos próximos artigos estarei detalhando alguns pontos importantes no tocante ao Windows Azure Storage. Minha ideia é postar um artigo sobre cada um dos níveis de abstração do serviço de armazenamento do Azure com exemplo prático. Agora é mão no código.

 

Um grande abraço e ótimo estudo!


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


4 minutes to read