O desenvolvimento Live e o Windows Azure : o comentário que virou post!

Olá pessoal, tudo certo?

Como blog é um recurso típico da Web 2.0, achei melhor responder um comentário feito pelo leitor Eduardo na forma de um post. De fato, esse é um comentário que virou um FAQ :)

O assunto é Live Services e seus recursos sobre o Windows Azure. Antes, vamos fazer uma breve introdução sobre o Live e os serviços do Windows Live.

O desenvolvimento Live antes do Windows Azure (isto é, antes do PDC 2008) oferecia uma série de API's para o consumo de serviços online oferecidos pela Microsoft com o foco no consumidor final, os serviços do Windows Live. Esses serviços são os chamados Finished Services na visão Software + Services.

Para aprender sobre essas API's e serviços online tínhamos a disposição o portal https://dev.live.com/, que tinha a página principal abaixo:

image

Lembra dela? Essa página era do início de outubro, pouco antes do PDC 2008 (out/2008).

Era possível agrupar os serviços do Live em 5 grupos principais, como vemos na figura a seguir:

image

Uma boa referência sobre essas API's você tem no post do Rogério Cordeiro, aqui.

Um dos recursos de desenvolvimento disponível era o Windows Live Tools for Visual Studio, um pacote que oferecia templates para aplicações Live (como ASP.NET Windows Live Web Site e Windows Live Web Application). Também havia bibliotecas .NET & controles para o interação com o Windows Live, add-ins para a construção de agentes do Windows Live, entre outras ferramentas. Veja o novo CTP do pacote no link abaixo:

Windows Live Tools for Microsoft Visual Studio (CTP Novembro/2008)
Ref.: https://dev.live.com/tools/

Era possível construir aplicações Web ou Windows integrados aos serviços do Live. Aplicações Windows (desktop) poderiam ser publicadas em servidores do enteprise, consumindo LiveID, por exemplo. Aplicações Web poderiam ser publicadas em servidores do enterprise ou em servidores de hosters locais, consumindo serviços como Live Search, Virtual Earth, Live ID, entre outros.

Portanto, antes do Azure, as opções de publicação de aplicações Live eram:

  • Servidores dedicados ou compartilhados no enterprise (on-premise) em ambiente controlado da empresa;
  • Servidores dedicados ou compartlhados em hosters ou provedores (remotos) em ambientes fora da empresa;

Durante o PDC 2008 fomos apresentados ao Windows Azure e sua plataforma de serviços. Podemos considerar o Windows Azure como uma plataforma como serviço, ou seja, um PaaS - Platform as a Service. Isso significa que o Windows Azure oferece um ambiente de computação como serviço, com poder de processamento, área para armazenamento de dados, tipos de dados específicos, aspectos de particionamento, provisionamento, gerenciamento e controle por demanda, de forma elástica. Além dos recursos do Windows Azure como um sistema operacional na nuvem, ele apresenta um conjunto de serviços para funcionalidades diversas, como dados, workflows, controle de acesso e também os serviços Live de forma integrada.

Com o lançamento do Windows Azure foram anunciados dois novos recursos: o Live Services e o Live Framework.

image

O Live Services é um conjunto de serviços que fornece ao desenvolvedor a oportunidade de interagir com uma das maiores audiências da Web, o Windows Live e seus mais de 400 milhões de usuários.

Através do Live Services é possível incorporar nas aplicações blocos construtivos sociais, conectando o poder da web com uma experiência rica para o usuário, através de dispositivos digitais diversos. Nos moldes do Live antes do Azure, o Live Services (pós-Azure) integra os vários serviços sobre uma plataforma de serviços na nuvem.

image O Live Framework é a maneira uniforme de programação dos serviços do Live Services, a partir de uma variedade de plataformas, linguagens de programação, aplicativos e dispositivos. Através do Live Framework, é possível consumir ou combinar serviços do Live Services para a construção de aplicações que abrangem tando os dispositivos digitais como a web. O Live Framework veio com uma série de ferramentas e SDK que amplia as alternativas para o desenvolvimento e arquitetura de aplicações sobre o Windows Live.

Finalmente, a nova página do portal https://dev.live.com/ com o Live Services e Windows Azure é esta:

image

Depois dessa rápida introdução, vejamos um mini-FAQ sobre o Windows Live e o Live Services:

1) O que difere desenvolver Live com o Azure de desenvolver Live na forma "tradicional" e liberá-los na rede?

O desenvolvimento Live envolve o consumo de serviços online da Microsoft, do Windows Live. As aplicações construídas serão web ou windows, disponibilizadas na internet ou no ambiente enterprise como clientes no desktop. Hoje, podemos colocar nossas aplicações desktop em servidores on-premise na empresa, consumindo serviços do Live Services. Podemos também colocar servidores dedicados em hosters ou provedores locais, terceirizando a infra-estrutura necessária para essas aplicações. Da mesma forma, podemos publicar nossas aplicações Web consumindo serviços do Live Services em hosters locais ou internacionais. Todos esses exemplos podemos chamar de deploy "tradicional", disponíveis hoje em dia.

Com o Azure, teremos a disposição um sistema operacional na nuvem, elástico, que poderá provisionar recursos computacionais sob demanda, de acordo com as necessidades de negócio. As aplicações sobre o Windows Azure ainda poderão consumir os serviços da plataforma, como o Live Services, pois o Live Framework unifca o modelo de programação para consumo de serviços Live, seja para cliente ou para a nuvem.

Em resumo, usando o Live Framework, não haverá diferença no modelo de programação, se para o cliente on-premise ou para a aplicação na nuvem.

Porém, usando o Windows Azure, será possível usufruir os benefícios de uma plataforma como serviço, aproveitando o conceito da economia de escala para nossas soluções.

2) Tenho os mesmos recursos do .NET framework no Azure?

Sim. De fato, o Windows Azure suporta o .NET Framework 3.5 SP1. Ainda, o desenvolvedor tem a disposição do Live Framework e o Live Framework SDK para a construção de aplicações para os serviços do Windows Live. No futuro, todos os serviços oferecidos pelo Windows Live serão suportados internamente pelos recursos e API's do Live Services. Veja mais detalhes no link abaixo:

Live Framework
Ref.: https://dev.live.com/liveframework/

3) Olhando pelo lado comercial, por que eu optaria por desenvolver utilizando tecnologias Live, talvez usando a infra-estrutura da Microsoft para hospedagem, ao invés do modelo de hoje?

O modelo comercial de licenciamento e subscrição para o Azure, assim como para seus serviços, ainda está em desenvolvimento. Ao longo de 2009 deveremos ter novidades e novos anúncios.

O modelo de hospedagem de hoje apresenta duas alternativas básicas para os serviços do Live: aplicações publicadas em servidores on-premise, dentro do ambiente da corporativo; ou aplicações publicadas em servidores em hosters ou provedores externos, aproveitando a infra-estrutura terceirizada por uma empresa.

Com o Windows Azure podemos agora publicar nossas aplicações sobre uma plataforma como serviço, que poder ser reconfigurada por demanda, provisionando mais ou menos poder computacional de acordo com as necessidades de negócio ou características evolutivas da aplicação.

Seja no cliente desktop, no servidor enterprise, no servidor do hoster ou na plataforma Azure, nos datacenters da Microsoft pelo mundo, o Live Framework unifica o modelo de programação para consumo dos serviços do Live Services.

Finalmente, decidir entre um cenários e outro irá depender da aderência entre controle e economia de escala, mas essa discussão merece um outro post.

4) Um projeto desenvolvido com o Live Services é automaticamente suportado por qualquer dispositivo?

Um dos objetivos da plataforma Azure é ser aberta, sendo suportada através de padrões e protocolos web, como ATOM, REST, JSON, POX, RSS, Binay XML, através de API's para Live em Silverlight, JavaScript, Controles Windows e Controles Web, entre outros. Dispositivos móveis ou embarcados que suportem essas interfaces serão capazes de consumir os serviços oferecidos pelo Live Services, assim como apresentar os recursos do Windows Live.

5) Qual a relação existente entre Azure, Live Services e Live Mesh?

O Azure oferece recursos de computação elástica, assim como uma plataforma de serviços na nuvem. Um dos serviços dessa plataforma é o Live Services, que também oferece um framework dedicado chamado Live Framework, para um modelo de programação unificado para todos os blocos construtivos do Live Serives. O Live Mesh é um dos componentes do Live Framework.

Para uma bela introdução sobre o MeshMobile, por exemplo, veja o blog de Ori Amiga, Principal Group Program Manager da plataforma Live:

Introducing the MeshMobile…
Ref.: https://blogs.msdn.com/oriamiga/archive/2008/11/09/introducing-the-meshmobile.aspx

6) Tudo bem que é sempre bom estar em contato com novas tecnologias, mas o mercado está conseguindo absorver em tão pouco tempo tanta tecnologia nova?

Esse é o grande desafio de hoje: suportar o dia-a-dia da TI em nossas empresas e acompanhar a evolução do setor, cada vez mais rápida e surpreendente.

O post anterior nasceu exatamente com essa preocupação, de questionar o quanto estamos apenas envolvidos nos problemas do dia-a-dia, sem perceber as grandes mudanças que estão surgindo no horizonte próximo. Essas mudanças chegarão até o Brasil, com certeza. Claro, não serão transformações da noite para o dia, mas estar preparado para elas será crítico para algumas indústrias, especialmente aquelas expostas à concorrência externa mais forte.

Muitas tecnologias emergentes, pouco tempo para absorção, muitos problemas no dia-a-dia, poucos profissionais qualificados, custo elevado de operação, poucos investimentos em inovação, muitos cenários em definição, etc, etc, etc. Já ouviram falar em Ondas de Schumpeter?

Creio que um dos grandes motivadores de TI nos próximos anos será o NEGÓCIO ÁGIL, que exigirá um TI flexível, adaptativa, de composição, elástica e dinâmica, enfim uma TI ÁGIL. Absorver as tecnologias que concretizam essa TI será uma obrigação para as empresas que desejam permanecer no mercado. Construir arquiteturas que suportam essa visão será uma responsabilidade dos arquitetos dessas empresas.   

Por último, recomendo as sessões sobre Live apresentadas no PDC 2008, aqui:

Ref.: https://channel9.msdn.com/tags/Live+Mesh/
Ref.: https://channel9.msdn.com/tags/Live+Services/
Ref.: https://channel9.msdn.com/tags/Live+Framework/ 

Foi um post longo, mas importante para discutirmos algumas questões. Em breve, deve iniciar aqui no blog uma nova série, sobre a plataforma de serviços Azure. Fiquem ligados!

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

Waldemir.