No dia 27 de Outubro de 2008, durante um evento para desenvolvedores em Los Angeles, EUA, a Microsoft lançou oficialmente aquele que se tornaria um dos principais produtos e apostas da companhia: a plataforma Azure. Já se foram quase 5 anos e a plataforma se consolidou dia após dia nesse período.
Hoje a plataforma disponibiliza diversos recursos e serviços que atendem a demandas de praticamente todo o mercado. Muito embora a plataforma já disponibilize um importante value proposition para boa parte das empresas, a Microsoft não parou no tempo e trabalha em ritmo acelerado no sentido de disponibilizar um modelo cada vez mais seguro, confiável e robusto para a plataforma.
Existem muitos bons textos apresentando overviews da plataforma Azure internet a fora e este pode parecer "mais do mesmo" para alguns. Particularmente penso de forma diferente. Defendo a ideia de que, quanto mais textos, vídeos, podcasts (conteúdos de forma geral) forem gerados sobre determinado assunto, mais a comunidade ganha. Logo, aqui estou com mais uma série de artigos - desta vez, sobre a plataforma Azure.
Mais uma série?
Neste ponto você pode estar se perguntando: mas Fabrício, mais uma série? Você tem várias sem terminar em seu site e vai começar mais uma?
O fato de possuir algumas séries em andamento não impede com que novas possam ser criadas ( there are no rules ). Particularmente, gosto de escrever sobre os assuntos quando tenho vontade, daí esta forma não-linear de escrever artigos. Os artigos das demais séries serão escritos à medida que a vontade deste que vos escreve permitir.
Nesta série pretendo apresentar diversos aspectos da plataforma Azure. Pretendo iniciar com aspectos gerais da plataforma e ir "aprofundando" nos recursos a medida em que se fizerem necessários.
A plataforma Azure
Windows Azure pode ser definido de forma "bem resumida" como: a plataforma de nuvem ( cloud computing ) proposta pela Microsoft. A palavra "plataforma" não foi escolhida por acaso. Ela passa a ideia de completude, amplitude e muitos recursos, exatamente o que é o Windows Azure. Trata-se de uma rede de computadores de alta performance distribuídos estrategicamente ao redor do mundo e mantida pela Microsoft.
Hoje Windows Azure é uma plataforma que permite a publicação de aplicações robustas (que podem ser escritas em diferentes linguagens) adicionando a elas um completo conjunto de recursos desejáveis tanto para desenvolvedores autônomos quanto para empresas de qualquer porte.
Abaixo listo as principais características proporcionadas pelo modelo de computação em nuvem e pelo Windows Azure:
- Alta disponibilidade : uma das premissas do modelo de computação em nuvem é: os recursos da plataforma devem estar disponíveis e acessíveis o máximo de tempo possível (tendendo a 100%). A plataforma Azure entrega através de seu contrato de prestação de serviços um uptime de 99.95%. A plataforma é resiliente, o que por inércia faz com que ela seja tolerante a falhas, gerando o uptime mencionado.
- Uma plataforma aberta : Windows Azure é uma plataforma pensada para ser multi-tecnologias. Isto significa que, quem escolhe a linguagem/tecnologia das aplicações é o cliente e não a Microsoft. Como passo seguinte, a plataforma Azure atua como um "host automatizado" das aplicações.
- Armazenamento "infinito" : o termo "infinito" em computação não existe de fato entretanto, diz-se que a capacidade de armazenamento do Windows Azure é infinita porque nunca faltará espaço para seus clientes, haja o que houver.
- Elasticidade : Windows Azure é uma plataforma 100% automatizada o que significa que além de disponibilizar os recursos mencionados anteriormente, ela encapsula a complexidade de administração e auto-provisionamento de recursos. Os recursos são alocados e sub-alocados conforme a necessidade.
- Recursos avançados : para complementar o set de recursos disponíveis atualmente na plataforma Azure, é preciso mencionar alguns aspectos adicionais. São eles:
- CDN : solução de cache distribuído ao redor do mundo. O objetivo principal é reduzir a latência de comunicação entre as aplicações.
- HPC ( High Performance Computing ): como o próprio nome sugere, é um serviço de computação de alto desempenho. Neste modelo é cobrada a hora de computação de acordo com o tipo de servidor escolhido. Exemplos de aplicações comumente encontradas execução em HPC são aquelas que utilizam código assíncrono e multithreads.
- SQL Azure, Azure Tables e Blogs : recursos para armazenamento de dados disponíveis no Windows Azure. SQL Azure é o modelo relacional de armazenamento de dados já tradicionalmente conhecido de qualquer desenvolvedor. SQL Azure foi desenvolvido com os mesmos recursos do SQL Server tradicional assim, é possível executar praticamente todas as operações já tradicionalmente realizadas no ambiente on-premises. O Windows Azure disponibiliza também um modelo de armazenamento de dados não estruturados, chamado de Azure Tables. Profissionais acostumados a trabalharem com NoSQL têem suas necessidades atendidas com este modelo. Finalmente, como última opção, mencionamos o modelo de Blobs. A ideia aqui é proporcionar um ambiente dedicado ao armazenamento de arquivos gerais em formato binário. Em artigos futuros nesta série, trataremos de cada feature apresentada em detalhes.
- Service Bus : recurso que possibilita a integração entre diferentes sistemas através de serviços diversos. Service Bus pode ser entendido como um "hub de integração".
- Windows Azure Connect : recurso responsável por garantir a qualidade conexão entre a nuvem e o(s) ambiente(s) on-premise(s) ao(s) qual(is) ocorrerá esta(s) conexão(es).
- Active Directory : ao sofrer consideráveis melhorias em diversos aspectos o Access Control Service (ACS) tornou-se o que hoje é conhecido como Windows Azure Active Directory . Em linhas gerais, WAAD é um hub dedicado a disponibilização de serviços para autenticação de usuários, seja via AD, Facebook, Twitter, ou o que for.
- Media Services : recurso dedicado a produção e compartilhamento de recursos de mídia (vídeo e audio).
A Figura 1 apresenta uma visão geral da plataforma.
Figura 1 . Visão geral do Windows Azure
Pague pelo que utilizar
Windows Azure implementa o conceito de pagamento/utilização de recursos sob demanda. A pergunta cuja resposta justifica a implementação do modelo é simples: se não utilizo todos os recursos alocados todo o tempo, porque então tenho que pagar por eles? Com Windows Azure você paga apenas pelos recursos utilizados e ponto.
A característica "pague pelo que utilizar" traz diversas vantagens em relação ao modelo tradicional para host de aplicações. A primeira delas é a economia na alocação de recursos uma vez que não há sub utilização dos mesmos. Outra característica é a redução do custo de manutenção de datacenters locais. Diversas outras vantagens poderiam ser apresentadas neste ponto.
Onde utilizar?
Muito embora tenhamos apresentado o Windows Azure como uma plataforma (e realmente é) completa para desenvolvimento e " host " de aplicações, se olharmos para o conceito de computação em nuvem, podemos ver de forma clara diferentes modelos de utilização da mesma.
Os cenários que se apresentam favoráveis a adoção/utilização da computação em nuvem são muitos. Neste ponto faremos uma análise dos modelos de negócios existentes e em quais o Windows Azure pode se tornar uma opção rentável para empresas e desenvolvedores de forma geral.
- SaaS : a computação em nuvem abre muitas possibilidades de negócios. Um dos modelos apresentados neste novo conjunto de possibilidades é a comercialização de " Software as a Service " (ou em português, Software como Serviço). A ideia básica é a de comercializar as aplicações construídas por você ou sua empresa como um serviço (através de assinaturas por períodos). Por estarem hospedadas na plataforma Azure, a aplicação suporta grandes cargas de requisições e dados. É mais barato para empresas terceiras que contratam, mais simples de manter a aplicação para quem desenvolve, etc.
- Aplicações web : se sua aplicação utiliza a web como ambiente de execução, Windows Azure é o ambiente adequado para ela pois proporciona crescimento sob demanda e alta performance com dados e arquivos redundantes em diferentes locais do mundo.
- Big Data : Windows Azure disponibiliza infraestrutura resiliente, altamente disponível e com espaço de armazenamento "infinito". Grandes empresas possuem problemas para gerenciar grandes massas de dados e não só isso, problemas ainda maiores quando informações necessitam ser extraídas destes dados. Com Windows Azure, todas as ferramentas e características necessárias para suportar grandes massas de dados são disponibilizadas.
- Jogos : Windows Azure disponibiliza um ambiente extramente favorável a construção de jogos. Através de diversos recursos como HPC, por exemplo, jogos podem hospedar o núcleos de processamento de jogos em rede ou ainda, hospedar jogos em redes sociais.
- Mobile : construa aplicações autodimensionáveis e escaláveis que podem ser facilmente consumidas em plataformas móveis como Windows Phone, iOS (iPod, iPhone e iPad) e Android.
Conclusões
Analisando-se toda a pilha de recursos proporcionados pela plataforma Windows Azure e sua alta aderência as demandas do mercado, é possível afirmar que o futuro da plataforma Azure no Brasil e no mundo é extremamente favorável.
Para desenvolvedores ela acrescenta valor ao processo de construção de aplicações que privilegiam arquiteturas robustas ou mesmo aplicações mais simplistas. A plataforma Azure tira do desenvolvedor a responsabilidade de cuidar de aspectos técnicos relacionados a infraestrutura entregando um ambiente robusto, auto-escalável, resiliente e em função disso, tolerante a falhas.
Veja mais sobre computação em nuvem:
- Videoaula gratuita Cloud Computing (Computação em Nuvem)
- Carnavoud: Carnaval na Cloud!
- Cloud Empresarial tem futuro? Desafios e oportunidades
- Computação em nuvem e a ITIL
- Cupom de desconto para certificação Cloud Computing