Qual é a diferença entre um Site do Azure e uma Função da Web do Azure

241

Quais são as diferenças materiais entre os novos Sites da Web do Azure e as Funções da Web tradicionais do Azure para um aplicativo ASP.NET MVC? Que motivo eu escolheria um "site" em vez de um "papel da web" ou vice-versa?

Vamos supor que eu precisaria de capacidade igual em ambos os casos (por exemplo, 2 pequenas instâncias). Os preços parecem comparáveis, exceto pelo fato de haver um desconto temporário de 33% nos sites enquanto eles estão no período de visualização.

Existem coisas que posso fazer com um "site" que são difíceis ou impossíveis com um papel na web? Por exemplo, torna-se fácil colocar vários sites em um único conjunto de VMs usando "sites"? Perco alguma coisa com um "site" versus um "papel da web"? Capacidade de ajustar o IIS? Capacidade de usar o serviço de cache localmente?

Erv Walter
fonte
teve o mesmo qs. eles realmente devem deixar claro em seus documentos.
90abyss

Respostas:

213

As Funções da Web oferecem vários recursos além dos Aplicativos da Web (anteriormente Sites da Web):

  • Capacidade de executar scripts elevados de inicialização para instalar aplicativos, modificar configurações do registro, instalar contadores de desempenho, ajustar o IIS, etc.
  • Capacidade de dividir um aplicativo em camadas (talvez Função da Web para front-end, Função do Trabalhador para processamento de back-end) e escalar independentemente
  • Capacidade de fazer RDP na sua VM para fins de depuração
  • Isolamento de rede
  • Endereço IP virtual dedicado, que permite que instâncias de função da Web em um serviço em nuvem acessem Máquinas Virtuais com IP restrito
  • Pontos de extremidade restritos a ACL (adicionados ao Azure SDK 2.3, abril de 2014)
  • Suporte para qualquer porta TCP / UDP (os sites são restritos ao TCP 80/443)

Os aplicativos da Web têm vantagens sobre as funções da web:

  • Implantação quase instantânea com histórico / reversões de implantação
  • Suporte à implantação do Visual Studio Online, github, git local, ftp, CodePlex, DropBox, BitBucket
  • Capacidade de implementar um dos vários CMSs e estruturas (como WordPress, Joomla, Django, MediaWiki, etc.)
  • Uso de banco de dados SQL ou MySQL
  • Simples e rápido de escalar, de nível gratuito a compartilhado, e dedicado
  • Empregos na Web
  • Backups do conteúdo do site
  • Ferramentas de depuração internas baseadas na Web (console de depuração simples do cmd / powershell, explorador de processos, ferramentas de diagnóstico como fluxo de logs etc.)

Com as implementações de abril e setembro de 2014, agora existem alguns recursos comuns aos aplicativos da Web e funções da Web (e funções de trabalho), incluindo:

  • Armazenamento temporário + slots de produção
  • DNS curinga, certificados SSL
  • Integração do Visual Studio
  • Suporte do Gerenciador de Tráfego
  • Suporte de rede virtual

Aqui está uma captura de tela que tirei do formulário de seleção da galeria de sites da Web: insira a descrição da imagem aqui

Acho que os Web Apps são uma ótima maneira de começar a funcionar rapidamente, onde você pode passar de recursos compartilhados para recursos reservados. Depois de superar isso, você poderá passar para as Funções da Web e expandir conforme necessário.

David Makogon
fonte
Além GIT + ftp outro grande é PublishSettings (também podem ser utilizados em WebMatrix 2, por exemplo)
Kris Van der mastro
18
Dividir em camadas não é um fator diferenciador. Você pode usar funções de trabalho com sites.
RickAndMSFT
4
Em relação às camadas: nos sites, você precisa se conectar a um trabalhador por um terminal externo, pois os sites não oferecem suporte a redes virtuais. Além disso: você precisaria dividir seu código em várias implantações (uma para sites da Web e outra para serviço de nuvem com função de trabalhador). Com o Cloud Service, você pode particionar facilmente seu código em camadas escalonáveis ​​e, em seguida, dimensionar e dimensionar cada camada independentemente, mantendo uma comunicação interna entre essas camadas. Isso foi o que eu quis dizer ao apontar as camadas como um diferenciador dos Serviços em Nuvem (web / worker).
David Makogon
1
Isso não está um pouco desatualizado em comparação com o stackoverflow.com/a/10960755/56145 ?
Matt Kocaj
2
Com papel Web você também pode executar processamento em segundo plano no mesmo VMs
Boris Lipschitz
44

EDIT 2014: Para o que vale a pena, muitas das informações nesta resposta não estão mais corretas - consulte os comentários.

Adicione mais à resposta do @David:

Com os sites do Windows Azure, você não tem controle sobre o IIS ou o servidor Web porque está usando uma fatia de recursos junto com centenas de outros sites na mesma máquina; compartilha recursos como qualquer outro, para que não haja controle sobre o IIS.

A grande diferença entre um site compartilhado e a função da web do Azure é que um site é considerado vinculado ao processo enquanto as funções são vinculadas à VM.

Os sites são armazenados em um compartilhamento de conteúdo acessível a partir de todos os "servidores da web" no farm, para que não haja replicação ou algo do tipo necessário.

Os sites do Windows Azure não podem ter seu próprio nome de host. Em vez disso, eles devem usar apenas o websitename .azurewebsites.net e você pode usar a configuração CNAME no provedor de DNS para rotear sua solicitação exatamente da mesma forma que a função anterior do Windows Azure, quando eles estão sendo executados no modo reservado . A configuração CNAME não é suportada para sites compartilhados.

AvkashChauhan
fonte
Os AFAIK WebRoles também não recebem seu próprio nome de host - todos eles são rolename.cloudapp.net. A menos que haja algum recurso que eu não conheça?
11557 Brian Junchl
Você não pode usar o DNS para criar um alias CNAME apontando de www.seudominio.com para websitename.azurewebsites.net?
Bernard Vander Beken
Acredito que, para os sites da WA, apenas aplicativos em execução com instâncias reservadas (VMs dedicadas) podem ter domínios personalizados mapeados para eles.
user94559
Acho que o scottgu mencionou recentemente que eles também procuram dar suporte a domínios personalizados em instâncias compartilhadas.
Jeremy
19
Pelo que vale a pena, muitas das informações nesta resposta não estão mais corretas (embora em junho de 2012): os sites agora podem ter domínios personalizados. Os sites podem ser executados no modo "reservado", que é essencialmente uma VM, mas completamente gerenciado.
Jay Querido
34

Acabei de publicar um post abrangente sobre esse assunto em http://robdmoore.id.au/blog/2012/06/09/windows-azure-web-sites-vs-web-roles/ .

Um trecho da minha conclusão: se você precisar de enormes centros de dados SSL, asiáticos ou do oeste dos EUA, uma configuração não padrão (do IIS, portas, diagnósticos, certificados de segurança ou scripts de inicialização), RDP ou funções de trabalho econômicas ( combinado com sua função na Web), então você precisará seguir as funções na Web por enquanto.

Caso contrário, os sites da Web são uma ótima opção!

Robert Moore
fonte
14

A Função Web do Azure é como um host virtual privado. Você obtém uma VM que atua como seu servidor da Web e é o proprietário dessa instância da VM.

Os Sites do Azure são como um serviço de hospedagem compartilhada elástico. Você implanta seu aplicativo em um servidor Web que não é controlado por você e que também serve servidores de sites de outros usuários. Você pode dimensionar seu site para cima e para baixo (a um custo extra) para torná-lo mais elástico conforme suas necessidades de recursos mudam.

Jimmy
fonte
6

Há mais um cenário no ar: depois que essas 500 exceções são eliminadas, eles não disseram nada sobre a capacidade dos Sites do Azure de manipular CNAME de caracteres curinga. Vários de nós estão usando o Acelerador de Função da Web do Nate nos Serviços em Nuvem, porque um hack de uma linha fornece recursos de subdomínio curinga no software do Nate. Não podemos mover esses aplicativos de subdomínio curinga até sabermos que os sites do Azure poderão lidar com eles. Se ele nunca for capaz de fazer isso, será considerado positivo no lado do papel na Web da equação. Também é importante notar que, com o preço sendo exatamente o mesmo (após o término do desconto de visualização), não tenho certeza se quero desistir do meu acesso ao RDC e ao Event Viewer (apenas para mencionar duas coisas).

Luke Latham
fonte
6

Sites do Azurepermite que você crie sites altamente escalonáveis ​​rapidamente no Azure. Você pode usar o Portal do Azure ou as ferramentas de linha de comando para configurar um site com idiomas populares como .NET, PHP, Node.js e Python. As estruturas suportadas já estão implantadas e não exigem mais etapas de instalação. A galeria de sites da Azure contém muitos aplicativos de terceiros, como Drupal e WordPress, além de estruturas de desenvolvimento como Django e CakePHP. Após criar um site, você pode migrar um site existente ou criar um site completamente novo. Os sites eliminam a necessidade de gerenciar o hardware físico e também oferecem várias opções de dimensionamento. Você pode passar de um modelo multilocatário compartilhado para um modo padrão em que máquinas dedicadas atendem ao tráfego de entrada. Os sites da Web também permitem a integração com outros serviços do Azure, como Banco de Dados SQL, Barramento de Serviço e Armazenamento. Usando a visualização do SDK do Azure WebJobs, você pode adicionar o processamento em segundo plano. Em resumo, os Sites do Azure facilitam o foco no desenvolvimento de aplicativos, oferecendo suporte a uma ampla variedade de idiomas, aplicativos de código aberto e metodologias de implantação (FTP, Git, Implantação da Web ou TFS). Se você não possui requisitos especializados que exigem serviços em nuvem ou máquinas virtuais, um site do Azure provavelmente é a melhor opção.

Serviços na nuvempermitem criar aplicativos da Web escaláveis ​​e altamente disponíveis em um ambiente rico de plataforma como serviço (PaaS). Ao contrário dos Sites, um serviço de nuvem é criado primeiro em um ambiente de desenvolvimento, como o Visual Studio, antes de ser implantado no Azure. Estruturas, como PHP, exigem etapas ou tarefas de implantação personalizadas que instalam a estrutura na inicialização da função. A principal vantagem dos serviços em nuvem é a capacidade de suportar arquiteturas multicamadas mais complexas. Um único serviço de nuvem pode consistir em uma função da web de front-end e uma ou mais funções de trabalho. Cada camada pode ser dimensionada independentemente. Há também um nível aumentado de controle sobre sua infraestrutura de aplicativos da web. Por exemplo, você pode usar a área de trabalho remota nas máquinas que estão executando as instâncias de função.

Máquinas virtuaispermitem executar aplicativos da Web em máquinas virtuais no Azure. Esse recurso também é conhecido como IaaS (Infraestrutura como Serviço). Crie novas máquinas Windows Server ou Linux através do portal ou faça upload de uma imagem de máquina virtual existente. As máquinas virtuais oferecem a você o maior controle sobre o sistema operacional, a configuração e os softwares e serviços instalados. Essa é uma boa opção para migrar rapidamente aplicativos Web locais complexos para a nuvem, porque as máquinas podem ser movidas como um todo. Com redes virtuais, você também pode conectar essas máquinas virtuais a redes corporativas locais. Assim como nos serviços em nuvem, você tem acesso remoto a essas máquinas e a capacidade de executar alterações na configuração no nível administrativo. No entanto, ao contrário de Sites e Serviços em Nuvem, você deve gerenciar completamente as imagens da máquina virtual e a arquitetura do aplicativo no nível da infraestrutura. Um exemplo básico é que você deve aplicar seus próprios patches no sistema operacional.

Consulte a comparação atualizada e abrangente deste link: http://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

Jamil
fonte
4

Sites, Trabalhadores da Web e Máquinas Virtuais do Azure são três abordagens de computação diferentes disponíveis no Windows Azure. Eles diferem no nível de controle e responsabilidades:

  • Site do Azure tem o nível de controle mais baixo, mas você não se preocupa em manter a máquina virtual de integridade e o IIS, porque as coisas do Azure fazem isso por você
  • Funções da Web oferecem mais controle (gerenciador de tráfego, área de trabalho remota), mas é possível administrar mais do seu lado, o que significa que você pode quebrar alguma coisa na área de trabalho remota, por exemplo
  • Máquinas virtuais oferecem controle total da VM, portanto, exigem mais esforços de administração.

Não existe uma melhor opção, pois depende do nível de controle necessário, dos recursos necessários e do que você deseja manter para manter o material do Azure. E é um grande tópico ..

Consulte estes artigos para obter mais informações e fazer escolhas mais informadas:

Tudo se resume a uma troca entre facilidade de uso e recursos.

johnnyno
fonte
3

Mais duas coisas que achei foram o custo de obter SSL para um site de domínio personalizado e configurações de multilocatário.

Para o site, você precisa pagar mensalmente em cima da instância padrão (instância pequena é a opção mais barata). Isso significa que, para obter https de domínio personalizado, custaria ~ 70 / mês para instância pequena, mais ~ 41 / mês para SSL, compatível com todos os navegadores.

Para o WebRole, você pode obter a instância XS e adicionar seu próprio SSL gratuitamente, o que significa ~ $ 15 por mês e você tem um domínio personalizado com SSL.

Para sites com vários inquilinos, confira CName curinga dinâmica do Azure com vários inquilinos

Farnam
fonte
1

Uma função da web é uma máquina virtual que hospeda vários sites

mLar
fonte
2
Não é bem preciso. Você pode hospedar vários sites em uma função da Web, mas as funções da Web vão muito além disso, pois são VMs do Windows Server. Você pode optar por não executar nenhum site e executar tarefas em segundo plano, pontos de extremidade REST, servidores de banco de dados etc. (não há requisito para usar o IIS e você pode até desabilitá-lo). E não esqueça que eles são apátridas, o que os torna muito fáceis de escalar.
precisa
@DavidMakogon Então, também posso dizer que, as funções da Web realmente executam algumas tarefas, mas, como usa o protocolo HTTP, são chamadas de função 'WEB' e, como suportam esse protocolo, também oferecem suporte a sites, mas esse não é o objetivo principal. assim sendo?
Aditya Bokade
@AdityaBokade Não tente ler mais: o nome é uma relíquia desde o lançamento do Azure, onde as Funções da Web eram a única maneira de hospedar um aplicativo externo (as Funções de Trabalhador não tinham pontos de extremidade externos e nada mais existia - VMs, não aplicativos da Web). As funções da Web (e trabalhador) são máquinas virtuais Windows sem estado, com empacotamento especial para o seu código e scripts de inicialização. Não é definido com suporte ao http: você pode se comunicar com recursos externos via http (s), tcp, udp ou mesmo nada. Isso é realmente tudo o que existe.
David Makogon
0

Essa é uma pergunta comum e eu gostaria de fornecer um trecho do msdn.

Acesso a serviços como armazenamento em cache, barramento de serviço, armazenamento, banco de dados do SQL Azure - Site: Sim WebRole: Sim

Suporte para ASP.NET, ASP clássico, Node.js, PHP - Site da Web: Sim WebRole: Sim

Conteúdo compartilhado e configuração - Site: Sim WebRole: Não

Implantar código com GIT, FTP - Site: Sim WebRole: Não

Implantação quase instantânea - Site da Web: Sim Função da Web: Não

Site da Web integrado de suporte ao MySQL como serviço: Sim WebRole: Sim

Vários ambientes de implantação (produção e armazenamento temporário) -WebSite: Não WebRole: Sim

Isolamento da rede-WebSite: Não WebRole: Sim

Acesso remoto da área de trabalho a servidores-Site da Web: Não Função da Web: Sim

Capacidade de executar programas com permissões elevadas-WebSite: Não WebRole: Sim

Capacidade de definir / executar tarefas de inicialização-WebSite: Não WebRole: Sim

Capacidade de usar estruturas ou bibliotecas não suportadas-WebSite: Não WebRole: Sim

Suporte para o Site de Rede do Windows Azure Connect / Web do Windows Azure: Não Função da Web: Sim

Para obter mais detalhes, visite este link: http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to -use-what.aspx

Adithya Kumaranchath
fonte