EDITAR 03/03/2013 - atualizado para referenciar endpoints UDP, máquinas virtuais e mais idiomas
EDITAR 6/6/2013 - atualizado para refletir a descontinuação da função VM e atualizar as imagens de sistema operacional de linha de base da função web / trabalhador para o Windows Server 2012
Bom link de @Vladimir. Um pouco mais de esclarecimento: todas as funções (web, trabalhador) são essencialmente Windows Server. As funções da Web e de trabalho são quase idênticas:
- As funções da Web são VMs do Windows Server com IIS habilitado
- As funções de trabalho são VMs do Windows Server com IIS desabilitado (e você pode habilitá-lo manualmente)
- As funções da VM são imagens do Windows Server 2008 que você constrói localmente via Hyper-V e carrega no Azure (e agora foram descontinuadas e não estão mais disponíveis em 31 de maio de 2013
- Máquinas virtuais são imagens do Windows ou Linux criadas no Azure, armazenadas como um vhd em seu próprio armazenamento e têm vários aprimoramentos sobre a função VM. Por exemplo: como o vhd está em sua própria conta de armazenamento, você pode criar facilmente um modelo de imagem de seu vhd, copiá-lo para um novo vhd ou até mesmo carregá-lo no VM Depot (somente Linux).
Para responder à sua pergunta sobre o que fazer com essas funções: O kit de treinamento da plataforma (mencionado abaixo) lhe dará muitas boas ideias e exemplos, mas aqui estão alguns casos de uso simples:
- Você pode executar qualquer código que exponha um ponto de extremidade tcp, http, https ou udp (aplicativos da web, serviços SOAP / REST etc.). Você precisa pensar sobre a maneira sem estado de fazer as coisas - se você tiver mais de uma instância de VM em execução, o tráfego do usuário será distribuído entre essas instâncias. O kit de treinamento da plataforma mostrará como usar armazenamento ou cache para lidar com isso.
- Você pode executar o código que vive fora de uma fila ou um cronômetro. Talvez você tenha tarefas sob demanda, como geração de miniaturas de fotos ou cálculos baseados na entrada do usuário. Eles não precisam de terminais disponíveis externamente. Você pode enviar suas solicitações para uma fila e, em seguida, ter uma tarefa em execução que simplesmente se alimenta dessa fila (e você pode escalar esse processo em várias instâncias, com mensagens de fila consumidas por todas as instâncias).
- Você pode executar .NET, Java, php, python, node, ruby, etc. Você só precisa distribuir o código de tempo de execução apropriado junto com o código do projeto. Todas as linguagens podem fazer chamadas REST para a API do Azure e várias linguagens (incluindo aquelas mencionadas acima) têm SDKs que cuidam disso para você. Todos os SDKs de linguagem estão aqui , com o código-fonte no github, aqui .
Com uma função de VM, você pode instalar e executar software com instalações muito complexas / demoradas, instalações que requerem intervenção manual e instalações que não podem ser automatizadas de forma confiável. Você deve lidar com a manutenção do sistema operacional neste caso. Além da função VM, agora existem máquinas virtuais, fornecendo construção VM baseada em nuvem, juntamente com suporte para Windows e Linux. Eu sugeriria máquinas virtuais em vez da função VM.
Com funções da Web e de trabalho, o SO e os patches relacionados são tratados para você; você constrói os componentes do seu aplicativo sem ter que gerenciar uma VM.
Com as funções de VM, você cria uma imagem completa do Windows Server, adiciona os ganchos do Azure a ela e envia toda a VM para a nuvem (e então mantém a imagem da VM ao longo do tempo).
Com as máquinas virtuais, você simplesmente escolhe uma imagem do sistema operacional em uma galeria, que é criada para você e armazenada como um vhd no armazenamento de blob. Você então RDP / ssh e configura como quiser.
Usando o chapéu do arquiteto, é aqui que fica divertido e interessante. Você pode executar serviços da Web em uma função da Web ou função de trabalho (e ser capaz de abrir portas em qualquer uma); Você pode hospedar o Tomcat ou outros servidores da Web em uma função de trabalho. você pode escolher combinar um site e serviços em uma única função ou dividi-los em várias funções para diferentes necessidades de escalabilidade.
Para um bom começo, dê uma olhada no Kit de treinamento da plataforma e comece a percorrer os exercícios.