Por que eu devo ler este artigo:Este artigo é útil para quem deseja desenvolver aplicações onde seja necessário o armazenamento de uma grande quantidade de dados para o sistema, além de possibilitar a disponibilidade dos mesmos através da internet, tendo como um fator decisivo a escalabilidade. Utilizando o Azure Storage, ao invés de um banco de dados relacional, local ou remoto, os dados passarão a ser armazenados em uma sólida estrutura na nuvem, onde a disponibilidade é garantida e a manutenção da infraestrutura não despende grande esforço e investimentos adicionais.

Nos últimos anos, o mercado tecnológico vem passando por dificuldades devido a restrições físicas no que diz respeito à disponibilidade e escalabilidade dos recursos computacionais. Normalmente, as empresas utilizam recursos próprios para manter uma infraestrutura interna apropriada para armazenamento de dados, além de fornecer serviços que consomem esses recursos físicos. Esse é um problema constante, pois é preciso que ocorram manutenções regulares para manter as máquinas em pleno funcionamento, o que requer um alto custo com mão de obra e material.

Quando o assunto é escalabilidade, tratamos de ambientes em que há não somente altas demandas por processamento, mas também nos quais essa varia ao longo do tempo, como em lojas virtuais. Esses cenários, muitas vezes, requerem a utilização de vários servidores, e em determinados momentos pode ser preciso aumentar ou reduzir a quantidade de máquinas que estejam em operação, seja para atender a uma maior demanda ou para economizar recursos em situações onde as requisições são reduzidas. A manutenção desses ambientes gera custos e esforços adicionais e, dependendo da magnitude da aplicação (ou conjunto de aplicações) que está sendo mantida, em algum momento poderá se tornar inviável para a empresa.

Outro fator de extrema importância quando se trata de sistemas web é a disponibilidade. Como esse tipo de aplicação pode ser acessado de qualquer lugar, a qualquer horário e por um número indefinido de usuários simultaneamente, é preciso que esteja disponível sempre que o cliente requisitar. Quando é responsabilidade da empresa manter uma infraestrutura local de servidores, cortes no fornecimento de energia elétrica ou falhas de hardware podem levar à indisponibilidade da aplicação até que a situação seja normalizada, o que pode demorar algum tempo dependendo do problema.

Nos apoiando nos recursos oferecidos pela computação em nuvem, podemos utilizar o Microsoft Azure para desenvolver aplicações escaláveis ​​e altamente disponíveis na web, com redução de custos e esforços de manutenção. Esse tipo de plataforma computacional abstrai para os usuários toda a complexidade da infraestrutura utilizada para provimento dos serviços e conta com grande capacidade de processamento e armazenamento alocada em vários datacenters ao redor do mundo. Isso garante a redundância e alta disponibilidade dos dados, que estão armazenados simultaneamente em mais de um local, prevenindo perdas por falhas locais. Além disso, a escalabilidade é garantida, geralmente, por uma interface simples que permite alocar ou desalocar recursos de hardware utilizando um painel de administração online.

Entre os vários serviços oferecidos pelo Microsoft Azure, neste artigo trabalharemos com o Azure Storage, mecanismo de armazenamento de arquivos e dados em vários formatos, que permite que esses permaneçam disponíveis na internet, podendo ser acessados de qualquer lugar sem ocupar espaço em disco local. Essa funcionalidade divide-se em quatro estruturas de armazenamento: blob, table, queue (filas) e files (arquivos), cujos detalhes veremos mais adiante.

Referente aos bancos de dados no formato key/value, temos o armazenamento de dados como objetos serializados para cada valor de chave (key), o que mostra ser um melhor recurso para armazenamento de grandes quantidades de dados. O Azure BLOB Storage funciona de forma semelhante ao File Storage, onde as chaves representam os diretórios e o nome dos arquivos. Sobre o value (valor), temos que ele representa uma entidade, que pode ser considerada uma linha de registros da tabela, e várias propriedades chamadas de colunas, sendo esse o recurso mais escalável e barato se comparado aos bancos de dados relacionais, tendo como diferença que os bancos de dados baseados em chave/valor não permitem a utilização de joins ou queries mais complexas. Por fim, temos os bancos de documentos, um banco de dados que fornece alto desempenho e facilidade de desenvolvimento, onde temos a possibilidade de armazenar dados no formato JSON, XML ou BSON, além de plain texts. Algumas diferenças existentes nesse último tipo de armazenamento em relação à pesquisa por chave/valor é que ele possui a permissão para realizar pesquisas com base em campos que não são chaves e a definição de índices secundários para a realização de pesquisas mais eficientes.

Para uma melhor apresentação dos tipos de storages presentes no Microsoft Azure, daremos uma breve introdução a respeito dos quatro tipos e trataremos com maior ênfase os tipos Table e Blob com o intuito de criarmos uma aplicação simples para o armazenamento de currículos.

Azure Storage Tables

O Azure Storage Table é um serviço que armazena dados NoSQL estruturados na nuvem, onde o armazenamento dos dados é realizado no formato chave/atributo, ou key/attribute, baseado no design tableless (sem esquemas), o que dá uma maior facilidade para a adaptação dos dados de acordo com a necessidade evolutiva da aplicação. Ao utilizarmos esse formato, temos ao nosso alcance um acesso muito mais rápido aos dados, além de um melhor custo-benefício para todos os tipos de aplicação. Com o Azure Storage Table temos um custo muito mais baixo no que diz respeito a grandes volumes de dados em comparação com o armazenamento de dados relacional.

Esse tipo de storage pode ser utilizado para armazenarmos conjuntos de dados flexíveis, como os dados do usuário para as aplicações web, informações sobre dispositivos, agendas, dados pessoais ou qualquer outro tipo de metadado que a nossa aplicação necessite. De forma similar, podemos ter qualquer número de entidades em uma mesma tabela, além de uma conta de armazenamento, que pode conter qualquer quantidade de tabelas, pois é praticamente ilimitado o número de tabelas que podem ser geradas na conta de armazenamento. Ao nos referirmos a entidades, essas podem ser comparadas às linhas de uma tabela relacional, onde as colunas são equivalentes às propriedades das entidades. Essas propriedades (colunas) podem ser utilizadas para a filtragem ou seleção de informações nas Storage Tables, onde cada linha possui uma RowKey, que é uma identificação única da entidade, e também uma P ...

Quer ler esse conteúdo completo? Tenha acesso completo