Introdução ao Cloud Computing e o posicionamento da

Propaganda
Introdução ao Cloud Computing e o posicionamento da Microsoft
neste paradigma
Por: Nuno Filipe Godinho
[email protected]
Conteúdos
Introdução ...............................................................................................................................2
Modelos de Disponibilização....................................................................................................4
Modelos de Utilização .............................................................................................................5
SaaS – Software as a Service ................................................................................................6
PaaS - Platform as a Service .................................................................................................7
IaaS - Infrastructure as a Service ..........................................................................................8
Questões Principais a colocar aos seus Fornecedores de Cloud? .............................................8
Será o Cloud Computing para mim? .......................................................................................11
Windows Azure e o Cloud Computing ....................................................................................14
Boas Práticas para a ISVs para a criação de SaaS bem sucedidas ...........................................18
Conclusão ...............................................................................................................................18
Introdução
Recentemente colocaram-me um desafio para escrever um artigo relativamente ao Cloud
Computing e o Windows Azure. Pareceu-me muito interessante e foi assim que apareceu este
artigo, onde iremos falar sobre o Cloud Computing relativamente ao seu significado e, também às
vantagens que o mesmo fornece aos seus consumidores, dependendo do tipo de Cloud que estão
a utilizar. Iremos também ver como a Microsoft se colocou neste espaço e o que a sua oferta
Windows Azure Service Platform, Office
365, Office Online, entre outros se
posicionam no mercado.
Muito se tem falado ultimamente
em “Cloud”, “Cloud Computing”, e outras
buzz words relacionadas como o SaaS,
PaaS, IaaS, mas antes de começarmos a
entrar nestas áreas é importante
compreender, o que é afinal o cloud
computing e aí encontramos diversas
definições como por exemplo:
Figura 1: Cloud Computing
Origem: Blog Infosys
“Computação baseada na Internet, onde recursos partilhados, software e informação são
fornecidos para computadores e outros dispositivos a pedido, como acontece por exemplo
com a electricidade” - Wikipedia
“Evolução natural da adopção em massa da Virtualização, Arquitectura baseada em
Serviços e do Utility Computing” – Wikipedia
“Descreve um novo modelo de consumo e disponibilização para serviços de IT baseados
na Internet (…) tipicamente envolve provisionamento dinâmico e escalável e muitas vezes
recursos virtualizados via Internet” – Wikipedia
Estas são algumas das definições que se podem encontrar no Wikipedia dos quais
podemos retirar algumas funcionalidades principais como:










Agilidade
o Os utilizadores vêem a sua agilidade melhorada com o provisionamento
dos recursos da sua infra-estrutura tecnológica de uma forma rápida e
inesperada.
API
o Habitualmente os sistemas Cloud utilizam API’s REST
o Esta é uma funcionalidade muito importante pois através dela poderemos
não só utilizar a solução da forma como foi criada, mas também criarmos
integração com outras soluções.
Custo
o Redução significativa dos custos sendo o CapEx (Capital Expenditures /
Investimento Inicial) substituído pelo OpEx (Operational Expenditures /
Custos Operacionais)
Independência do Dispositivo e Localização
o Possibilidade de o utilizador aceder ao software independentemente do
dispositivo que estão a utilizar e da sua localização.
o Habitualmente utilizando o Browser.
Multi-Tenancy
o Partilha dos recursos utilizados
o Possibilita a partilha de custos proporcionando:
 Centralização da Infra-estrutura em locais com custos mais
reduzidos
 Aumento da Capacidade nos Picos de utilização
 Melhoria da Utilização e Eficiência para sistemas que são
habitualmente pouco utilizados.
Fiabilidade
o Devido à redundância da informação que é intrínseca ao Cloud Computing,
conseguimos obter uma maior fiabilidade para os nossos recursos.
Escalabilidade
o Capacidade de escalar as soluções e os recursos de uma forma simples e
rápida.
Segurança
o Aumento da segurança dos diversos recursos pois, para além de existirem
diversos sistemas colocados em funcionamento, a maioria das empresas
não têm, ou não têm as competências necessárias para os utilizarem da
melhor forma, é-nos fornecido tudo isto como um Serviço, em que nós
temos Acordos de Nível de Serviço (SLA’s) que nos permitem ficar mais
confiantes na segurança dos nossos dados.
Manutenção
o Deixa de ser necessária a preocupação com os diversos elementos que
fazem parte da manutenção de um sistema, como instalação de patches
do sistema operativo, cópias de segurança e até a preocupação com as
próprias máquinas.
Mensurável
o
Acima de tudo uma das características muito importantes do Cloud
Computing é serem mensurável, pois até para o sistema de pagamento
por serviço e com base no que utilizamos é necessário que a mesma
contenha diversas métricas para proporcionar um melhor controlo do IT.
Modelos de Disponibilização
Figura 2: Nuvem Pública vs. Nuvem Privada e Híbrida
Origem: Site ESRI
Existem diversos modelos de disponibilização de Cloud Computing, como são os seguintes
casos:



Public Cloud / Nuvem Pública
o Descreve o Cloud Computing de uma forma tradicional (como é
maioritariamente vista), onde os recursos são provisionados
dinamicamente e com enorme detalhe, mas sempre de uma forma
autogerida via Internet através de Aplicações ou Serviços Web, um
parceiro que que nos cobra a um nível de detalhe na base do utility
computing.
Private Cloud / Nuvem Privada
o Nuvem Privada ou Nuvem Interna foram descritas como novidades,
contudo os conceitos são anteriores ao termo cloud em 40 anos.
Basicamente é a capacidade de ter todas as capacidades de uma Cloud
interna a uma organização.
Community Cloud / Nuvem Comunitária
o Poderá ser estabelecida entre organizações que tenham requisitos
semelhantes e procurem partilhar infra-estrutura.
o

Exemplos deste tipo de modelo é a nuvem comunitária da Google "Gov
Cloud".
Hybrid Cloud / Nuvem Híbrida
o Este termo tem sido utilizado como significando quer duas nuvens
integradas (pública, privada, interna ou externa), quer a combinação de
instâncias virtualizadas em conjunto com hardware real.
o A definição mais correcta do termo é provavelmente a utilização de
hardware físico e virtualizado fornecendo um serviço comum, pois
habitualmente duas nuvens integradas é mais correctamente denominada
de "combined cloud".
Modelos de Utilização
Além de todos estes modelos de
disponibilização o Cloud Computing poderá também
aparecer sobre diversos modelos de utilização, os
muitas vezes denominados de “sabores da nuvem”,
que são os seguintes:



SaaS – Software as a Service
PaaS – Platform as a Service
IaaS – Infrastructure as a Service
Figura 3: Modelos de Disponibilização
Origem: SaaS Blog
Figura 4 – Diferença entre os modelos de Utilização de Cloud Computing
Origem: Windows Azure Training Kit
SaaS – Software as a Service
Mas afinal o que é o SaaS?
“Software que é disponibilizado através
da internet e/ou instalado para correr atrás da
firewall numa rede local ou computador pessoal”
Mas nem todos os softwares que são
disponibilizados pela Internet são considerados
SaaS, pois existem diversos “pilares” para que se
/possa considerar uma solução como SaaS, e eles
são:
 Acesso e Gestão da Solução
através da Intenet
 Multi-Tenant
 Responsabilidade

sobre
a
Monitorização e Gestão da infraestrutura é apenas do fornecedor
Configurável
Figura 5: Exemplo de Software como um Serviço
E com este tipo de soluções o cliente obtém vantagens como:







Pagamento baseado na utilização
Acesso de qualquer local e qualquer dispositivo
Ajuste do pagamento à medida das necessidades
Escalabilidade imediata
Segurança
Fiabilidade
APIs de integração
Alguns dos principais fornecedores deste tipo de soluções são:

Microsoft
 Exchange Online
 Sharepoint Online
 Office 365
 ...
o Google
 Gmail
 Google Apps
 ...
o SalesForce.com
 CRM
Origem: Soa.com
 ...
o NetSuite
 NetSuite ERP
 NetSuite CRM
 NetSuite eCommerce
 ...
PaaS - Platform as a Service
O que é o PaaS?
“Facilita a disponibilização de aplicações sem os custos e complexidade de comprar e gerir
o hardware e Software de suporte, bem como as capacidades de provisionamento,
proporcionando todas as capacidades necessárias para a construção e disponibilização de
soluções e serviços inteiramente disponíveis via Internet” - Wikipedia
As funcionalidade principais deste tipo de serviços são as seguintes:






Disponibilização para Desenvolver, Testar, Disponibilizar, Suportar e Manter
soluções tudo dentro do mesmo ambiente
Ferramentas para criação disponibilizadas via Internet
Arquitecturas Multi-Tenant
Integração com Serviços e Bases de Dados
Suporte para colaboração das equipas de desenvolvimento
Instrumentação
Alguns dos principais fornecedores deste tipo de serviços são:




Microsoft
 Windows Azure
 SQL Azure
 Azure DataMarket
 Windows Azure AppFabric
 ...
Google
 Google App Engine
 ...
Amazon
 Amazon AWS
 ...
SalesForce.com
 Force.com
 Database.com
 ...
IaaS - Infrastructure as a Service
O que é o IaaS?
“Fornece uma infra-estrutura, tipicamente um ambiente virtualizado, como um serviço. (…)
Tipicamente os fornecedores cobram por estes serviços numa base de utility computing e
os recursos consumidos tipicamente reflectirão o nível de actividade. IaaS evoluiu das
ofertas de servidores virtuais privados” - Wikipedia
As funcionalidade principais deste tipo de serviços são as seguintes:



Infra-estrutura disponibilizada como um serviço
Pagamento na medida da utilização
Pagamento ajustado às necessidades
Alguns dos principais fornecedores deste tipo de serviços são:



Amazon
 Amazon EC2
 ...
VMWare
 vCloud Express
 ...
Microsoft
 Hyper-V Cloud
Questões Principais a colocar aos seus Fornecedores de Cloud?
A partir do momento que conhecemos melhor o que significa cloud e os seus diversos
“sabores”, uma das questões que imediatamente surgem é “Como é que eu escolho o meu
fornecedor?”, e para isso o melhor a fazer é ter um conjunto de questões preparadas para
efectuar aos mesmos, sendo as mesmas aplicáveis aos diversos “sabores” de cloud. Questões
como:

Segurança
 É necessário ter em consideração que os dados são importantes, e mesmo que
por vezes não pareça poderão sê-lo para alguém.
 Questões:
 Que tipo de infra-estrutura de segurança está a ser utilizada nos
servidores de cloud para garantir a segurança dos meus dados?
 Que tipo de segurança é utilizado nas comunicações entre o cliente e
o sistema?

Política de Extracção de Dados
 É importante que todos compreendam que os dados são efectivamente do
cliente, e não de quem os guarda e daí a importância deste aspecto.
 Questões:
 Qual a política de extracção de dados da empresa?
 Posso retirar os meus dados quando quiser?
 Quais os sistemas que me permitem fazê-lo?

Disponibilidade dos Dados e Acordos de Nível de Serviço
 Um dos aspectos mais importantes das nossas soluções cloud é o facto de
estarem permanentemente disponíveis e acessíveis, daí ser importante
existirem acordos de nível de serviço para que possamos garantir estes
aspectos.
 Questões:
 Qual é o uptime? 99,9%, 99,99%? ...
 Que tipos de acordos de nível de serviço fornecem?

Localização dos Dados / Data Centers
 Embora quando falamos em cloud seja sempre num âmbito global, é
importante manter em mente a localização dos dados, por diversas razões
como a protecção de dados (não é permito que alguns dados se encontrem
fora do país), velocidade de acesso (termos os dados o mais próximo possível),
etc.
 Questões:
 Onde estão os vossos Data Centers?
 Posso associar os meus dados apenas a alguns deles?

Suporte
 É sempre necessário saber quem e como contactar em caso de alguma coisa
não estar a correr como o previsto.
 Questões:
 Quais os horários de suporte?
 Qual o tipo de suporte?
 Onde posso encontrar documentação?
 Existe uma base de dados de conhecimento sobre esta
tecnologia/solução?

Inovação Contínua
 Embora os serviços cloud sejam muito inovadores, necessitamos sempre de
saber como é que o nosso fornecedor vai disponibilizar essas mesmas
novidades.
 Questões:
 Qual é o ciclo de disponibilização de novidades?
 É sempre mantida a retro compatibilidade?
 Como posso pedir novas funcionalidades?
 O que acontece ao feedback enviado?

Integração
 Sabendo de antemão que diversos serviços/soluções vão para a nuvem, como
são os casos do email, CRM, Serviços de um ESB, etc., é sempre importante ter
em mente que alguns continuarão, pelo menos num futuro imediato, dentro
de casa (on-premises), e por isso é muito importante saber como poderemos
efectuar a integração entre os mesmos.
 Questões:
 Quais sãos as APIs disponíveis para integração?
 Que tipos de protocolos utilizam? HTTP/HTTPS/TCP?
 Que tipo de comunicação? REST/SOAP?
 Qual a forma de pagamento deste tipo de integração?

Usabilidade
 Ainda que alguns dos fornecedores de cloud continuem a ter sistemas algo
complexos e “em bruto”, pois são criadas maioritariamente por engenheiros e
tecnólogos, o fornecedor ideal fará a experiência de utilização muito mais
interessante. Quando falamos em termos de usabilidade não será apenas ao
nível das características do User Interface, mas também ao nível da
usabilidade dos diversos sistemas que são disponibilizados, como serviços por
exemplo
 Questões:
 Que tipo de painel de controlo é disponibilizado?
 Como é efectuado o provisionamento?

Infra-estrutura
 Poderá não ser muito fácil de compreender, mas será bastante importante
perceber qual a escalabilidade a da infra-estrutura, para verificar se a mesma
poderá escalar até às suas necessidades.
 Questões?
 Qual é a infra-estrutura utilizada?
 Qual a capacidade máxima da infra-estrutura?
 Existem descontos para grandes volumes de informação, utilizadores
ou dados?

Referências
 Nada mais interessante para perceber o tipo de fornecedor com que estamos
a falar do que falar com alguém que já trabalhe com o mesmo, e verifique
quais as referências que os mesmos nos fornecem. A partir desses dados
teremos muito melhor informação sobre como o serviço é na realidade.
 Questões:
 Quais as referências que já têm?
 Outras:
 Funciona sempre bem utilizar as redes sociais como Twitter, LinkedIn,
Facebook, Buzz, e outros para perceber o que se vais dizendo sobre os
mesmos.

Planear os Custos
 Um dos pontos mais falados quando a abordar o tema de cloud tem a ver com
os custos, pois ao mesmo tempo que o pagamento com base na utilização nos
ajuda a gastar menos e apenas o que utilizamos, cria ao mesmo tempo uma
dificuldade que tem a ver com a previsibilidade dos custos, que tão
importante é em termos financeiros, e por isso mesmo este é um elemento
importante a ter em conta.
 Questões:
 Existe alguma ferramenta para efectuar o planeamento de custos?
 Existe a possibilidade de testar antes de utilizar?
Será o Cloud Computing para mim?
Qualquer um de nós poderá tirar partido do Cloud Computing pois existem diversas áreas
em que poderá ajudar-nos, mas existem 4 padrões em que o Cloud Computing é a resposta clara,
sendo eles os seguintes:

“On and Off”
o
o
Situações em que é necessário colocarem algo muito específico em
produção e altamente disponíveis.
Exemplos são o processamento de uma determinada operação que requer
muito poder computacional, mas é limitado no tempo.

“Growing Fast”
o
o

Situações em que seja necessário dar suporte a uma disponibilidade e
processamento muito elevados e que crescem rapidamente ao longo do
tempo.
Exemplos deste padrão são as campanhas de Marketing Digital, que
efectivamente têm um crescimento muito elevado e que é muito
complicado efectuar uma planificação correcta das necessidades
“Unpredictable Bursting”
o
o
Situações em que existem picos de utilização que são de difícil previsão.
Exemplos desta situação são, os canais de notícias que na altura dos
ataques terroristas de 11 de Setembro tiveram uma enorme afluência e,
não conseguiram dar suporte a todos os pedidos.

“Predictable Bursting”
o
o
Situação em que existam picos de utilização mas que os mesmos são
previsíveis, e por isso é necessário que o poder computacionais seja
ajustado na medida das necessidades.
Exemplos desta situação são por exemplo os sites de compras online
durante o período de Natal, em que recebem uma enorme afluência de
pedidos que têm de ser respondidos.
Windows Azure e o Cloud Computing
Figura 6 – Windows Azure Service Platform
Origem: Blogs MSDN
Agora que sabemos exactamente o que esperar e o que perguntar aos fornecedores,
iremos analisar a forma como a Microsoft se encontra a posicionar na área do cloud computing, e
neste âmbito o posicionamento tem sido bastante específico nas áreas de SaaS e PaaS, não
investindo tanto no imediato no IaaS como nos restantes modelos, pois conforme disse o
Microsoft Western Europe DPE Lead, em entrevista, a Microsoft pensa que poderá ser muito mais
diferenciadora ao nível do SaaS e PaaS, uma vez que ao nível do IaaS existem muitas empresas a
posicionarem-se, em é considerada uma área de “commodity computing”, e não tanto de
diferenciação, estando por isso a trabalhar melhor esta oferta para que seja também
diferenciadora. Tendo esta estratégia em consideração conseguimos olhar para a oferta da
Microsoft em 2 (duas) vertentes diferentes, que são o SaaS e o PaaS, estando o Windows Azure ao
nível do PaaS.
O Windows Azure tem vindo ao longo dos tempos a evoluir bastante e neste momento
podemos contar com ofertas como:








Windows Azure Compute ( Computação como um serviço)
 WebRole
 Serviço de Hosting Web (ASP.NET, PHP, ...)
 Hosted IIS 7
 Worker Role
 Serviços que não são hosted na web
 VM Role
 Máquina virtual, mas diferente do IaaS, uma vez que esta é
uma máquina virtual que não guarda estado, e é apenas uma
outra forma de conseguir efectuar o instalação tendo acesso
ao nível dos recursos que se encontram instalados na
máquina, e não apenas ao nível do que se pode instalar em
cima do Windows Azure OS, ou Cloud OS da Microsoft.
Windows Azure Storage
 Storage as a Service que permite suportar Tabelas (NoSQL), Queues,
Blobs e Drives
Windows Azure AppFabric – Service Bus
 Serviço que nos permite efectuar 3 (três) tipos de operações, sendo
elas:
 Tunneling
 Eventing
 Service Remoting
Windows Azure AppFabric – Access Control Service
 Serviço de Autenticação e Autorização com suporte a Federação de
Identidade de Claim-based Identities
 Suporte actual para federação:
 Active Directory Federation Services v2.0
 Windows Live
 GoogleId
 YahooId
 Facebook
Windows Azure AppFabric – Composite App
 Serviços para automatizar a instalação e gestão de aplicações
compostas como uma entidade lógica simples, bem como o suporte
para a disponibilização de Serviços Web e Workflows
Windows Azure AppFabric – Caching
 Serviço de Caching em Memória para aplicações (Semelhante ao
Windows Server AppFabric Caching)
Windows Azure AppFabric – Integration
 Serviços para a integração de sistemas e outras capacidades de
integração como o Business Activity Monitoring (BAM), Regras de
Negócio, entre outros.
Windows Azure Connect / Windows Azure Virtual Network




Mecanismo simples e de fácil manutenção para criar conectividade
entre elementos que se encontram na Cloud e On-Premise.
Windows Azure CDN (Content Delivery Network)
 Disponibilização de conteúdos de uma forma altamente disponível
Windows Azure Marketplace
 Windows Azure DataMarket
 MarketPlace de informação que fornece quer conteúdos
públicos, quer informações premium comerciais de fácil
consumo, descoberta e compra.
 Suportado pelo protocolo OData.
 Windows Azure AppMarket
 MarketPlace que incluí componentes, formação, serviços e
soluções acabadas, desenhados para incorporarem outras
soluções desenvolvidas na plataforma Azure
Windows Azure Appliance
 Abordagem da Microsoft ao Private Cloud.
 Plataforma que poderá ser colocada nos datacenters dos próprios
clientes mantendo todas as características actuais da plataforma
Azure. Consiste no Windows Azure, SQL Azure e uma configuração
específica de rede da Microsoft, storage e hardware de servidor.
Em conjunto com as ofertas do Windows Azure a Microsoft também acrescentou as de
SQL, como:



SQL Azure Database
 Base de Dados disponibilizada como um serviço.
 Fácil de provisionar e disponibilizar
 Altamente Disponível e com tolerância a falhas
 Preparado para soluções Multi-Tenant
 Construído para a cloud
 Mantém a coerência em termos de competências necessárias que os
produtos on-premise (SQL Server, ...)
SQL Azure Data Sync
 Serviço de sincronização baseado na cloud construído em cima da
Microsoft Sync Framework. Possibilita sincronização de dados
bidireccional, bem como funcionalidades de gestão permitindo a fácil
partilha de informações entre diversas bases de dados de SQL Azure
em Data Centers diferentes.
SQL Azure Reporting
 Permite uma utilização das ferramentas on-premise que já são
conhecidas para mais facilmente desenvolver e disponibilizar
relatórios na cloud.
 Disponibiliza:
 Funcionalidade de relatórios empresariais na Web.
 Suporte a múltiplas Origens de Dados
 Capacidade de disponibilização em diversos formatos


Suporte a disponibilização de relatórios com os métodos push
e pull.
 Altamente escalável
 Possibilita a criação de extensões às funcionalidades
existentes
SQL Azure Appliance
 Parte do Windows Azure Appliance
Com base no que vimos anteriormente sobre o Cloud Computing e sobre aquilo que a
Microsoft actualmente disponibiliza, podemos compreender que esta aposta é bastante séria e de
elevada qualidade, pois com o Windows Azure Compute a dar suporte a toda a parte
computacional, como disponibilização de Soluções Web (Web Role), Serviços (Worker Role) e
outro tipo de soluções que tenham requisitos de Sistema Operativo mais específicos ou
necessidade de outras soluções instaladas também na plataforma (VM Role), complementados
com a oferta de Azure Storage que permite uma capacidade de armazenamento muito elevada e
de alta disponibilidade e escalabilidade. Se juntarmos ainda os serviços de middleware do Azure
AppFabric que nos permite ter serviços de Autenticação e Autorização (Access Control Service),
serviços de disponibilização de conectividade às soluções (Service Bus), como disponibilização de
pontos de contacto para serviços internos das empresas, ou serviços de um canal para
disponibilização de Eventos, por forma a tornar as soluções Event Driven. E além de tudo isto se
juntarmos a oferta de Base de Dados (SQL Azure) altamente escalável e disponível, com tolerância
a falhas, etc., então conseguimos facilmente compreender que a maioria das soluções podem tirar
um enorme partido do Cloud Computing e do Windows Azure.
Boas Práticas para a ISVs para a criação de SaaS bem-sucedidas
Por fim parece-me interessante enumerar um conjunto de boas práticas para que
possamos criar soluções SaaS mais interessantes. Elas são as seguintes:
1. Adoptar e abraçar novos negócios e novas formas de disponibilizar as soluções.
2. Tirar partido da Web 2.0 para construir soluções melhores, mais apelativas e
também colaborativas.
3. Adicionar valor às soluções bem como ao ambiente em redor, utilizando Web
Services, APIs e Mashups.
4. Desenvolver uma estratégia para a integração da solução.
5. Disponibilização de novas funcionalidades frequentemente e incrementalmente.
6. Utilização de metodologias ágeis no processo de Investigação e Desenvolvimento.
7. Pensar na segurança logo desde o início do processo (SDLC)
Conclusão
Em resumo podemos ver então que o Cloud Computing não é apenas mais uma Buzz Word
mas sim algo que poderá ajudar-nos bastante já, pois não estamos a falar de coisas que irão
aparecer num futuro próximo mas sim algo que já existem e muitos de nós já estamos a utilizar. É
sempre importante conhecer bem no que vamos apostar, e foi esse o objectivo deste artigo. E não
se esqueçam, não deixem para amanhã quando podem começar a beneficiar hoje.
Download