Freigeben über


Windows Azure Internals : Uma revisão de conceitos

Olá pessoal, tudo certo?

Os CTP’s de março da plataforma Azure trouxeram grandes novidades e informações sobre os detalhes internos do sistema operacional para a nuvem. Para relembrar, os links para downloads estão abaixo:

Windows Azure Tools for Microsoft Visual Studio (March 2009 CTP )
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=59E8FC0C-C399-4AB7-8A93-882D8E74B67A&displaylang=en

Windows Azure Software Development Kit (March 2009 CTP)
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=b44c10e8-425c-417f-af10-3d2839a5a362&displaylang=en

Microsoft .NET Services SDK (March 2009 CTP)
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=8d1d1d5e-1332-4186-b33f-26d053759e49&displaylang=en

Microsoft .NET Services Client Redist (March 2009 CTP)
Ref.: https://www.microsoft.com/downloads/details.aspx?familyid=4EFF38B3-FCA0-4940-A014-461631152E5D&displaylang=en

Vamos aproveitar o post para reforçar alguns tópicos sobre a plataforma e seus conceitos. Começando pelas capacidades principais do Windows Azure, podemos organizá-las em 3 grupos: computação, armazenamento e gerenciamento.

image

Gerenciamento (Management) : o controlador de malha (ou Fabric Controller) é responsável pela organização da infra-estrutura contratada pelo cliente, através de um modelo de serviços representado por um arquivo de configuração. A configuração permite definir quantas máquinas serão provisionadas para front-end, back-end, assim como o número de instâncias de cada papel em execução, seja Web Role ou Worker Role. 

image

Computação (Compute): é o ambiente de computação virtualizado baseado em Windows Server. A figura acima representa os principais componentes de computação do Windows Azure, onde vemos Web Roles e Worker Rolers. As principais características desse ambiente são:

  • Suporte ao .NET 3.5 sp1 sobre IIS7
  • Infra-estrutura Windows Server 2008 – 64bit
  • Virtualização oferecida através de Hyper-V Microsoft
  • Web Role: implementados como Web Sites (ASP.NET) e Web Services (WCF)
  • Worker Role: similares a serviços Windows locais 
  • Servidores Stateless (sem manutenção de estado)
  • Acesso via Http(s), TCP 

Hoje, computação na plataforma Azure (no CTP de Março) significa executar código gerenciado somente. No futuro, a plataforma deverá suportar também código não-gerenciado, como foi anunciado durante o PDC 2008. Já é possível executar código PHP através do módulo IIS FastCGI na plataforma Azure, como disponível anunciado durante o último MIX 09, veja:

image

Ref.: https://blogs.msdn.com/windowsazure/archive/2009/03/18/using-3rd-party-programming-languages-via-fastcgi.aspx

Existem 2 papéis possíveis para nossos processos sobre o Windows Azure:

  • Web role: que é um site web, ASP.NET, com serviços WCF, imagens, CSS, etc.
  • Worker role: que é similar ao serviço Windows on-premise, sendo executado de forma desacoplada em background na plataforma Azure. Todos os servidores são stateless na plataforma e todo acesso para eles suporta balanceamento de carga.

image

Armazenamento (Storage): é o espaço de armazenamento de dados, durável e para alta escalabilidade.

  • Durável: toda escrita é persistida em disco, não em memória;
  • Escalável: você terá diversos servidores com seus dados replicados;
  • Disponível: assim como ocorre com a computação, o Windows Azure garante a disponibilidade de seus dados, replicando em diversos servidores;
  • Tipos Blobs: similar ao sistema de arquivos, podemos usar blobs para armazenar conteúdo e suas alterações, uploads, dados não estruturados, imagens, filmes, etc.;
  • Tipos Tables: dados semi-estruturados, oferece um armazenamento de entidades particionável, permitindo a persistência de linhas em múltiplos servidores; 
  • Queues: filas simples para desacoplar as Web Roles das Worker Roles;
  • Interfaces REST: permite o acesso a dados a partir da web sobre HTTP, sendo possível também o uso de ADO.NET Data Services para seu consumo;

Computação, Armazenamento e Gerenciamento são os principais macro-componentes do Windows Azure, que nos ajudam a entender suas capacidades e recursos disponíveis para aplicações na nuvem.

Enfim, nossas aplicações sobre o Windows Azure poderão aproveitar os diferentes processos, enquanto consomem dados de diferentes tipos no ambiente de armazenamento do Windows Azure, conhecido como Azure Storage. A figura abaixo ilustra este cenário:

image

Finalmente, que tal dar uma olhada em como se parece mesmo um datacenter Microsoft para o Windows Azure? Veja as fotos abaixo:

image

Realmente, são milhares de kms de cabeamento, espaço em disco quase ilimitado e poder de processamento escalável, em área de mais de 50 mil m2. Essa nova geração de datacenters pode mesmo ser considerada as novas usinas de processamento do mundo. 

Sobre esses vários recursos, encontramos a plataforma de serviços do Windows Azure. Mas vamos deixar esse assunto para uma próxima conversa.

Por enquanto é só! Até o próximo post :)

Waldemir.