Arquitetura de Referência Microsoft: Domain Driven Design, Dependency Injection, Cloud e muito mais (Parte 3 – Final)

Olá pessoal!

Esta é o último post de uma série em que vimos até então um apanhado geral sobre o e-book gratuito .NET Technology Guide for Business Applications, escrito por Cesar de La Torre e David Carmona. No post anterior terminamos de abordar toda a camada Application services. Neste, passaremos pelas camadas Infrastructure services e Deployment environment, ilustradas no diagrama a seguir. Vamos lá!.NET Technology Guide for Business Applications

Infrastructure Services

Storage

Dentro de Infrastructure Services, a primeira caixa que encontramos é Storage, onde são relacionadas às tecnologias atuais para armazenamento de dados. Estas compreendem o tradicional sistema gerenciador de banco de dados relacional SQL Server, disponibilizado pela Microsoft como uma solução instalada on-premisses ou na nuvem, sendo que esta última pode ser feita através de uma instalação completa em uma máquina virtual Windows Azure. Também há a opção de utilização de uma versão do SQL Server na modalidade de contratação Infrastructure as a Service (IaaS), endereçada pelo produto Windows Azure SQL Database, que segundo o e-book, tem grande compatibilidade com o SQL Server tradicional, facilitando cenários de migração de aplicações on-premisses para a nuvem e/ou sincronização entre elas.

NoSQL

Endereçando o conceito de NoSQL, são listados os produtos Windows Azure Tables e Windows Azure Blobs, ambos disponíveis na nuvem Microsoft. Uma base NoSQL normalmente prioriza o armazenamento e a obtenção de dados massivos, em detrimento do uso de relacionamento entre os elementos, de forma que tal priorização normalmente não permite suporte a comandos do tipo “Join” nem a utilização dos tradicionais comandos SQL para manipulação de dados. Esta abordagem é freqüentemente utilizada para endereçar cenários que requeiram alta escalabilidade horizontal – onde há o acréscimo de novos nodes para suportar a base de dados, à medida que a quantidade de dados ou a quantidade de acessos cresça.

Big Data

Já o conceito de Big Data é endereçado pela Microsoft através do produto HDInsight, que nada mais é do que uma versão da solução Open Source Apache Hadoop, com suporte Microsoft – entendeu o trocadilho? “Hadoop Insight” que soa como “Hadoop Inside”. Como o próprio nome já indica, o conceito de Big Data compreende conjuntos de dados extremamente volumosos, variando em escalas de terabytes para petabytes. Tais massas de dados são freqüentemente analisadas em busca de tendências, o que requer grande poder de processamento que normalmente não é suportado pelos tradicionais sistemas gerenciadores de banco de dados. A estrutura do Hadoop compreende um sistema de arquivos específico – Hadoop distributed file system (HDFS), bibliotecas e utilitários para se trabalhar com dados armazenados em clusters, suportando o processamento em batch de forma paralela. Segundo o e-book, a Microsoft disponibiliza o HDInsight tanto em sua nuvem, no Windows Azure, quanto on-premisses, no Windows Server.

App/Web server

Partindo para a caixa App/Web server, encontramos o IIS (Internet Information Services) que é o tradicional servidor de aplicações web Microsoft, capaz de hospedar todas as tecnologias de páginas web Microsoft, que rodam em servidor, mencionadas anteriormente (ASP .Net, ASP .Net MVC, SPA, etc.), além dos web services ASP .Net Web API e LightSwitch OData Services. Já a hospedagem dos serviços WCF e workflows WWF fica por conta do AppFabric, que vem a cumprir o papel de servidor de aplicações, permitindo o monitoramento da execução dos mesmos.

Identity & Access

Os conceitos de Federação e Autenticação, listados na caixa Identity & Access servem tanto para a nuvem quanto para o data center local, e portanto, possuem produtos específicos para cada cenário. Começando pela nuvem, temos o Windows Azure Active Directory (AD) que cumpre papel semelhante ao Active Directory on-premisses tradicional, permitindo que todas as aplicações que rodam na nuvem Microsoft, sejam elas produtos Microsoft como o Office 365, Windows Azure, Dynamics, etc., ou aplicações customizadas, baseiem seus mecanismos de autenticação e autorização nele, endereçando assim o conceito de Single Sign-on. O interessante aqui é que a comunicação com o Windows Azure Active Diretory pode ser feita através de serviços REST.

Pertencente ainda à mesma família, temos ainda o Windows Azure AD Access Control Services, que possibilita que a autenticação de usuários de aplicações e serviços web seja feita através de mecanismos bastante difundidos atualmente, como o WIF, mencionado anteriormente, web identity providers (IPs), como o Google, Yahoo, Facebook e o Windows Live Id, além do Open Data Protocol (OData) e o Active Directory Federation Services (ADFS) 2.0. Este último roda on-premisses, no Windows Server, permitindo a integração (federação) com o Windows Azure Active Directory .

Instrumentation & Monitor

Finalmente, a caixa Instrumentation & Monitor compreende o produto System Center, que possibilita o monitoramento dos itens compreendidos nas diversas camadas de uma solução de TI, partindo do nível de aplicação até a infraestrutura que a suporta. O System Center possui versões disponíveis na nuvem Microsoft e também para o Windows Server.

Deployment Environment

.NET Technology Guide for Business Applications - Deployment Environment

Como opções para a hospedagem / ambiente de execução para todas as tecnologias que vimos até aqui, são listados três tipos de ambiente. O primeiro é o on-premisses, que é endereçado pela plataforma Microsoft através de instalações do Windows Server no ambiente interno à sua organização de TI. Este, conforme podemos observar no diagrama retirado do e-book a seguir, provê o que é conhecido como escalabilidade vertical, ou scale up, onde se aumenta a capacidade de um servidor através do acréscimo de memória ou CPUs, por exemplo, para se obter maior capacidade de processamento. O segundo é a nuvem privada, que consiste em um ambiente virtualizado e escalável horizontalmente (scale out – onde acrescenta-se novos nodes de processamento), disponível dentro da sua organização, ou em um hosting dedicado, sendo este composto principalmente pelos produtos Windows Server e System Center. Em uma nuvem privada, além de prover monitoramento, o System Center também provisiona recursos disponíveis em um pool de forma dinâmica. O terceiro é a nuvem publica que consiste em um ambiente similar ao que temos na nuvem privada, porém, utilizando-se de recursos disponíveis em um pool compartilhado entre a sua e outras organizações.

Outros cenários podem se formar ainda a partir da combinação destas opções, caracterizando-se o que é conhecido como Hibrid-Cloud. Em uma Hibrid-Cloud, temos soluções on-premisses se integrando com soluções hospedadas em uma nuvem publica. Um produto Microsoft que suporta este cenário é o Windows Azure Virtual Network, que possibilita a conexão entre sua rede local a um conjunto definido de máquinas virtuais Windows Azure. Outra opção ainda, dependendo do seu cenário, é o Windows Azure Traffic Manager, que faz o roteamento de requisições entre instancias da sua aplicação instalada em datacenter distintos.

E assim terminamos esta série. E você, acha que a Microsoft está no caminho certo com sua linha de produtos? Deixe seu comentário!

Deixe um comentário

O seu endereço de e-mail não será publicado.