Uma introdução sobre o Windows Server AppFabric 1.0

Olá pessoal, tudo certo?

Estou devendo este artigo sobre Windows Server AppFabric aqui para o Profissionais TI faz algum tempo. Promessa é dívida, certo Jackson?! 🙂 Então vamos lá!

Para quem ainda não ouviu falar sobre Windows Server AppFabric, esse pacote representa um importante componente de infraestrutura na plataforma Microsoft. Lançado em Março de 2010, ele integra um conjunto de serviços para hosting, caching, integração, composição e monitoração de serviços e workflows na plataforma Microsoft.

Atualmente, já temos os serviços de caching e hosting disponíveis para download. Os demais devem ser publicados como CTP ao longo de 2011.

Para informações atualizadas sobre o roadmap e links para download, confira sempre o portal do AppFabric, no link:

Ref.: http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx

Assim, vamos focar nessa artigos as principais funcionalidades do AppFabric Hosting Services e do AppFabric Caching Services.

Uma visão geral sobre o Windows Server AppFabric

Quando pensamos em serviços de modo geral na plataforma Microsoft, pensamos em nosso velho amigo WCF – Windows Communication Foundation. Ele representa o principal mecanismo para construção de interfaces de serviços e transporte de mensagens, suportando diversos protocolos como HTTP, SOAP, WS-I, TCP, MSMQ, NAMED PIPE, etc. além de ser altamente extensível e configurável. É muito provável que você já esteja trabalhando com serviços WCF em suas aplicações corporativas ou web services.

Da mesma forma, podemos usar o WCF Workflow Services, uma implementação de serviços via workflow usando o WF – Windows Workflow Foundation, disponível na versão WF4/WCF4 no Visual Studio 2010. A grande vantagem desse tipo de template é sua capacidade de construir workflows sofisticados, oferecendo uma interface de serviços WCF para suas chamadas e requisições.

Muito bem, a grande pergunta é: onde você publica seus serviços?

Muitas empresas utilizam apenas o IIS – Internet Information Services como ponto principal para hosting de serviços. Isso limita o atendimento de requisições somente para o HTTP/SOAP, como protocolos básicos de comunicação. Na plataforma Windows Server 2008, outra opção também importante é a utilização do WAS – Windows Process Activation Services, que amplia os protocolos suportados para requisições de serviços WCF. Um post publicado pelo especialista Microsoft Rafael Godinho faz uma breve introdução aqui, confira:

Hospedando um serviço WCF no WAS – Windows Process Activation Services
Ref.: http://blogs.msdn.com/b/rafaelgodinho/archive/2009/05/07/hospedando-um-servi-o-wcf-no-was-windows-process-activation-services.aspx

Nesse contexto, o Windows Server AppFabric adiciona funcionalidades sobre a dupla IIS/WAS, ampliando seu poder de hosting com novos recursos para gerenciamento, monitoração e administração de serviços e workflows na plataforma.

O Windows Server AppFabric oferece uma infraestrutura através de 2 principais serviços:

  • O AppFabric Hosting Services, que integra ferramentas de administração e monitoração para hospedagem de serviços WCF/WF;
  • O AppFabric Caching Services, que adiciona um cache distribuído na plataforma, para aplicações com alto desempenho, trabalhando com dados em cache.

Assim, quando instalamos o Windows Server AppFabric em um servidor Windows Server 2008, recebemos três novos componentes na interface de administração do IIS Manager:

  • AppFabric Dashboard: uma interface gráfica sobre o IIS Manager, que consolida e apresenta uma série de informações sobre chamadas de serviços, persistências de workflows e histórico de eventos sobre serviços e workflows de aplicações publicadas.
  • Endpoints: uma interface que consolida todos os endpoints e bindings suportados por serviços de uma dada aplicação publicada no servidor.
  • Services: uma interface que consolida informações e ações de configuração sobre serviços WCF publicados.

Dentro dessas funcionalidades, diversos recursos para administração e observação de comportamento sobre o ambiente estão disponíveis, o que aumenta o poder de monitoração da plataforma sobre aplicações e soluções baseadas em serviços WCF/WF.

Monitoração com Windows Server AppFabric

Um assunto de destaque sobre o Windows Server AppFabric é sua capacidade de monitoração e tracking de informações sobre o que acontece com nossos serviços. Quando falamos sobre monitoração de serviços e workflows na plataforma Windows, temos diversas ferramentas disponíveis:

  • Performance Monitor
  • Event Viewer
  • Cmdlets do PowerShell
  • Event Tracing for Windows
  • Tracking Profile no Windows Server AppFabric

Qual dessas ferramentas você mais utiliza? Para responder, você pode perguntar: mas para que situação você quer ativar a monitoração?

Correto! Temos duas situações de monitoração importantes no dia-a-dia:

  • a monitoração para saber como anda a saúde da aplicação (health monitoring, por exemplo)
  • a monitoração para descobrir o que aconteceu com a aplicação, em caso de problemas (troubleshooting e debugging).

Ainda, podemos dizer que existem duas demandas diferentes sobre monitoração, de acordo com o profissional de TI envolvido:

O desenvolvedor espera do ambiente algumas informações sobre o comportamento de seus serviços e workflows, em tempo de desenvolvimento. Seria interessante obter, por exemplo, o histórico de chamadas sobre um WCF Service, ou ainda, o histórico de eventos e atividades executadas por um workflow. Claro, podemos sempre utilizar o ambiente de testes do Visual Studio 2010 para essas ações, mas algumas situações, especialmente cenários de persitência, colaboração de workflows, correlação de mensagens, etc, exigem a depuração em ambiente servidor. Um ambiente de testes e homologação torna-se uma ferramenta quase obrigatória para esses cenários.

O profissional de TI, administrador de rede ou IT Pro, por sua vez, espera informações detalhadas sobre o comportamento da aplicação em produção. Uma demanda constante é obter o mapa de valores sobre a saúde da aplicação em execução. Em caso de problemas, a ferramenta de monitoração precisa permitir uma inspeção rápida sobre a configuração ativa, assim como informações sobre onde o problema está ocorrendo e qual sua gravidade.

Nesse contexto, o Windows Server AppFabric está integrado com o Event Tracing for Windows para a monitoração de serviços WCF e workflows WF. De fato, o Windows Server AppFabric instala em sua máquina o serviço Event Collector Service, que consolida em base de dados os eventos capturados pelo ETW. Isso garante uma base de dados de monitoração histórica, sobre a qual podemos realizar nossas análises e observações.

Podemos ainda configurar diferentes níveis de monitoração, que são opções disponíveis na configuração do AppFabric. Assim, podemos usar os chamados tracking profiles pré-configurados para nossa aplicação. Os principais tracking profiles disponíveis com a instalação do Windows Server AppFabric são:

  • Troubleshooting
  • End-to-End Monitoring
  • Health Monitoring (default)
  • Erros Only
  • Off

Para conferir essas opções de configuração, o ponto de partida sempre será o IIS Manager, que você encontra na pasta de Ferramentas Administrativas do Painel de Controle do Windows Server. De imediato, notamos um grande diferencial sobre a plataforma com a instalação do Windows Server AppFabric: simplesmente não temos uma interface de consolidação de eventos quando hospedamos nossos serviços e workflows apenas sobre o IIS. Por isso, não deixe de instalar em seu ambiente o AppFabric, para aproveitar os benefícios dessa monitoração integrada.

Outro ponto de destaque em relação monitoração sobre AppFabric é que podemos personalizar um tracking profile para nossos workflows. Isso é feito através da configuração de uma seção no arquivo de Web.Config de nosso workflow, indicando quais eventos e variáveis gostaríamos de exportar para o ambiente de monitoração do AppFabric.

Persistência de workflows

Outro recurso importante da infraestrutura Windows Server AppFabric é sua integração com uma base SQL Server, permitindo a criação automática de um repositório para persistência de workflows de longa duração. Esse cenário é muito comum em ambiente corporativo, onde soluções baseadas em human workflows podem executar workflows que duram dias para serem finalizados. Nesse período de tempo, o workflow é descarregado da memória até a chegada de uma mensagem esperada, o que provoca sua nova ativação e processamento.

O Windows Server AppFabric trabalha então com dois repositórios de dados importantes:

  • A base para dados de monitoração, consolidando todas as informações e eventos capturados a partir do ETW;
  • A base para persistência de workflows de longa duração, mantendo por algum tempo as informações de estado de um workflows em execução;

Existem diversos cenários envolvendo persistência de mensagens e workflows que são resolvidos diretamente quando trabalhamos com o trio WCF/WF/APPFABRIC. Se este é o caso em sua empresa, não deixe de conferir mais essa funcionalidade.

Caching Distribuído de Dados

Finalmente, mais uma funcionalidade de destaque do Windows Server AppFabric é o AppFabric Caching Services. Esse serviço permite a criação de uma camada de cache unificado entre vários servidores de um cluster, combinados através do AppFabric.

Além da possibilidade de criação de um cache unificado, o serviço oferece uma API que pode ser usada em qualquer aplicação .NET para a manipulação de dados do cache de forma programática.

Comando como GET, ADD, PUT e REMOVE estão disponíveis para nossas aplicações, permitindo uma fácil utilização de uma camada de cache unificada. Aplicações de alto desempenho como portais ASP.NET, por exemplo, podem ainda utilizar sessões armazenadas diretamente numa camada de cache implementada via AppFabric Caching Services.

Todos os recursos do Windows Server AppFabric estão instrumentados via scripts e linhas de comando PowerShell 2.0, o que facilita o trabalho de administração e configuração em ambiente corporativo. Se você é um profissional de rede, deve estar familiarizado com os  scripts em PowerShell e cmdlets. O AppFabric disponibiliza diversos módulos de script para configuração, criação instrumentação e consultas sobre caching e serviços hospedados na infrastrutura.

Este mini-artigo fez apenas uma visão rápida sobre alguns recursos da plataforma Windows Server AppFabric. Sem dúvida, AppFabric é um forte aliado seu na administração e implementação de soluções otimizadas para serviços e workflows. E o mais importante: o Windows Server AppFabric é gratuíto, disponível para download agora mesmo! Confira:

Ref.: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=467e5aa5-c25b-4c80-a6d2-9f8fb0f337d2

Tenho publicado diversos posts no meu blog, sobre a infraestrutura AppFabric e seu impacto para a arquitetura de soluções. Para esses posts, tenho usado a tag [appfabric]. Fique a vontade para conferir e deixar seus comentários:

Ref.: http://blogs.msdn.com/b/wcamb/archive/tags/appfabric/

Por enquanto é só!

Um abraço grande!

Waldemir Cambiucci
Blog: http://blogs.msdn.com/wcamb/
Twitter: http://twitter.com/wcamb/

Waldemir Cambiucci

Mais artigos deste autor »

Waldemir Cambiucci ([email protected]) trabalha na Microsoft Brasil como arquiteto de soluções, com foco na comunidade de arquitetura e clientes corporativos. É graduado em Engenharia de Computação, mestre em Engenharia Elétrica e Pós-Graduado em Finanças e Administração. Com mais de 14 anos de experiência em TI, atua na Microsoft há 8 anos, tendo participado de projetos importantes no Brasil e no exterior. Waldemir tem sido palestrante em diversos eventos como Tech-Ed Brasil 2007/2008/2009/2010 e Conferências como Software+Service Day 2008/2009, Regional Architect Forum Brasil 2007/2008/2010, SOA Conference Brasil 2008/2009 e muitos outros. É ainda autor de diversos artigos publicados em revistas técnicas e conferências nacionais e internacionais. Seu blog é o http://blogs.msdn.com/wcamb e seu Twitter é http://twitter.com/wcamb/.


1 Comentários

Jackson
1

Opa Waldemir!
Que bom que voltou a compartilhar seus conhecimentos no PTI. Tenho certeza que muitos, inclusive eu, ficaram felizes =D
Grande abraço!

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!