Conheça o Azure WebJobs

Aprenda nesse artigo como utilizar o Azure WebJobs para realizar o processamento de rotinas em segundo plano, contínuas ou agendadas, no ambiente de cloud da Microsoft.

Fique por dentro
Este artigo será útil em situações em que precisamos de uma maneira fácil para hospedar ou executar rotinas de processamento em segundo plano, seja através de um processamento agendado ou através de um serviço contínuo.

O WebJobs é hospedado no Azure como parte de seu site web, com todos os benefícios que PaaS (Platform as a Service) pode oferecer. O SDK do Azure WebJobs simplifica a tarefa de criar e monitorar processamento em segundo plano. Ele ainda oferece uma integração com o armazenamento do Azure (blobs, filas, tabelas) ou com o Service Bus.

A Computação em Nuvem pode ser definida como uma forma especializada de Computação Distribuída, o qual apresenta modelos de utilização para provisionamento remoto de recursos escaláveis e mensuráveis.

E segundo o National Institute of Standards and Technology (NIST) a Computação em Nuvem é um modelo que permite acesso ubíquo, conveniente, sob demanda a um conjunto de recursos computacionais configuráveis através da internet que podem ser rapidamente provisionados e liberados com um esforço mínimo de gerenciamento ou interações com o provedor de serviço.

Uma vez que o paradigma computação em nuvem está em constante evolução, o NIST fornece uma linha de base para a discussão do que é a Computação em Nuvem, e qual a melhor forma de sua utilização, definindo uma taxonomia simples para serviços e modelos de implementação, sem restringir ou limitar qualquer método particular de implementação, entrega de serviço ou operações de negócios, sendo elas abordadas a seguir:

· Self-service sob demanda (On-demand self-service): o consumidor pode, sem o auxílio de um agente por parte do provedor de serviço, unilateralmente provisionar mais capacidades computacionais. Um exemplo é a adição de um disco a um determinado servidor;

· Acesso amplo à rede (Broad network access): capacidade de acesso, por diversos dispositivos, através da rede a recursos computacionais. Um exemplo é a manutenção de um recurso com a mesma experiência através de dispositivos distintos (navegador de uma estação de trabalho e uma aplicação para smartphone);

· Agrupamento de recursos (Resource pooling) são os recursos do provedor são agrupados em um modelo multi-tenancy para atender vários consumidores com necessidades de recursos diferentes.

Existe uma abstração desses recursos para o consumidor, em que ele não tem o controle ou o conhecimento sobre a localização exata dos recursos disponibilizados, mas possui o controle para especificar o local em um nível de maior de abstração. Um exemplo é definir o país ou região de um país onde os servidores estarão hospedados;

· Elasticidade rápida (Rapid elasticity): capacidade de prover e entregar recursos de maneira rápida e dinâmica, muitas vezes pode ser automatizado de acordo com a demanda. Para o consumidor existe a falsa sensação de que os recursos são infinitos e estão disponíveis a qualquer momento que precisar;

· Serviço mensurado (Measured servisse): capacidade de medir a utilização dos recursos com um nível de abstração de acordo com o serviço oferecido. O uso dos recursos pode ser monitorado, controlado e reportado oferecendo uma transparência tanto para o provedor quanto para o consumidor.

Além disso, hoje temos conhecidos três tipos de modelos de serviços:

· SaaS - Software como um Serviço (Software as a Service): modelo que oferece ao consumidor um determinado serviço que está sendo executado e mantido pelo provedor em uma infraestrutura de nuvem. O consumidor não gerencia ou controla a infraestrutura da nuvem, apenas pode configurar a nível de usuário;

· PaaS - Plataforma como um Serviço (Platform as a Service): nesta modalidade o fornecedor oferta uma infraestrutura para a implantação de aplicações criadas ou customizadas pelo consumidor e suportadas pelo provedor. O consumidor pode configurar a nível de aplicação;

· IaaS - Infraestrutura como um Serviço (Infrastructure as a Service): o fornecedor disponibiliza para o consumidor um modelo da infraestrutura de recursos computacional. O consumidor pode configurar a nível de sistema operacional.

E dentro dos modelos de implantação temos:

· Nuvem Privada (Private cloud): neste formato a infraestrutura é ofertada apenas para uma organização, e consumida apenas por ela. A infraestrutura pode estar disponível dentro da própria organização ou em um provedor externo;

· Nuvem Comunitária (Community cloud): a nuvem é ofertada para um grupo especifico de organizações, e consumida apenas por esse grupo seleto. A infraestrutura pode estar dentro delas ou em um provedor externo;

· Nuvem pública (Public cloud): a nuvem é localizada dentro do provedor e pode ser acessada por múltiplos clientes pelo globo terrestre;

· Nuvem Híbrida (Hybrid cloud): modelo composto por uma composição de duas ou mais infraestruturas de nuvem (privada, comunitária ou pública).

Microsoft Azure

Contextualizando para o universo da Microsoft, o Azure é uma plataforma para computação em nuvem pública, o qual provê opções para a construção de soluções como Azure Virtual Machines, Azure Websites e Cloud Services.

As Máquinas virtuais (Azure Virtual Machines) dão o controle para o consumidor do serviço de Computação em Nuvem poder gerenciar tudo, desde a atualização do sistema operacional, configuração do servidor até a implantação da aplicação. Esse é um modelo típico de infraestrutura como serviço (IaaS).

O Azure Websites é provavelmente a melhor opção para a maioria dos desenvolvedores, pois oferece uma gama de recursos para os desenvolvedores como aplicações, frameworks, modelos de aplicações pré-construídas disponíveis através da galeria de aplicativos do Azure, sem a necessidade de sair do navegador, facilitando assim o processo de construção de sites escaláveis, tudo isso de forma integrada e gerenciável pelo portal web do Microsoft Azure ou através de APIs." [...] continue lendo...

Artigos relacionados