O que é Cloud Storage Gateway: definição e utilização.

Conforme a adoção da Computação em Nuvem (Cloud Computing) evolui, novos desafios são encontrados, e constantemente superados. Este foi o caso do Armazenamento em Nuvem (Cloud Storage). Por haver diferenças entre padrões para armazenar dados em uma Nuvem Pública (por explo. na AWS) e armazenar dados em seu Data Center (in loco / on premise), foi criado o Cloud Storage Gateway.

Os fornecedores de Cloud Storage entregam seus serviços de armazenamento utilizando APIs (Application Programming Interfaces) nos padrões/modelos REST (Representative State Transfer)  ou SOAP (Simple Object Access Protocol). No outro lado da moeda, as aplicações tradicionais (aquelas comumente utilizadas nas empresas) utilizam um padrão diferente, conhecido como “Block or File Data Abstraction”. Simplificando a história: Os modelos são diferentes.

Para atender esta necessidade de conversão entre padrões, existe o Cloud Storage Gateway, que tem a função de traduzir as informações de maneira bidirecional . Do lado Cloud Computing utilizando chamadas API (REST e SOAP) e  do outro que utilizando Protocolos de Armazenamento baseados em bloco (iSCSI, Fiber Channel) ou baseados em arquivos (NFS, CIFS). Este Gateway é um Servidor (Virtual ou Appliance) instalado entre as duas redes, que traduz as informações entre os lados de acordo com as requisições. Também podem existir outros recursos agregados a este Gateway (Backup/Recovery, Caching, Compression, Deduplication, Storage Provissioning e Encryption).

Um Cloud Storage Gateway também pode ser utilizado para transferir dados entre diferentes fornecedores de Armazenamento em Nuvem, dependendo da necessidade e da arquitetura da solução (sistema).

Resumo da obra: Se você tiver diferentes modelos de armazenamento de dados, você precisará de um Gateway para que estes dados sejam transferidos (e armazenados) de um lado para outro.

Recomendo uma visita a AWS para conhecer o AWS Storage Gateway: http://aws.amazon.com/pt/storagegateway/

Obs.: Existem muitos conceitos e termos técnicos inseridos no contexto do Cloud Storage Gateway. Eu apenas citei alguns termos, pois, o objetivo desta publicação é a introdução e visão geral, mas se você necessitar aprofundar-se no assunto, minha sugestão é o mergulhar nos conceitos de Armazenamento de Dados, pois, a partir daí tudo ficará mais claro.

Caso tenha alguma dúvida, crítica ou sugestão, por favor, contate-me.

Um abraço,
Antonio Ricardo Gonçalves

Hybrid Cloud: Quando escolher a Nuvem Pública ou a Nuvem Privada

Cloud Computing

O termo “Hybrid Cloud’ é um dos mais utilizados – e provavelmente “o que está em moda” – no universo da Computação em Nuvem (Cloud Computing). Não há nenhum mistério neste modelo, pois, ele é a combinação entre “Private Cloud” e “Public Cloud”. O importante é saber decidir, ao migrar sua estrutura atual, qual a melhor opção para sua empresa migrar os sistemas em produção (Nuvem Pública ou Nuvem Privada).

Vários aspectos do negócio e também técnicos devem ser considerados ao optar-se por um dos modelos. Questões como flexibilidade do ambiente tecnológico, expansão geográfica da empresa, economia com infraestrutura, retorno sobre os investimentos, segurança e integridade das informações entre várias outras; a serem definidas de acordo com a necessidade.

Do lado da Nuvem Pública, os custos são atrativos, pois, o investimento em hardware e software é praticamente zero. Aqui, o fornecedor irá entregar este “pacote” pronto para ser utilizado. Imagine que você tenha que criar uma estrutura temporária para um evento ou projeto e que seu orçamento e prazos sejam enxutos. Neste caso, seria possível viabilizar esta solução, sem investir em hardware e evitar muita burocracia, entregando um ambiente pronto em um período curto, comparado com um modelo onde haja necessidade de montar estrutura física, comprar hardware e software e assim por diante. Do lado da nuvem pública você irá adquirir basicamente SaaS, PaaS ou IaaS.

Por outro lado, se você precisa de uma solução que ofereça vantagens da Computação em Nuvem, porém, a segurança das informações é algo extremamente delicado, optar pela Nuvem Privada é uma boa escolha. Neste caso você conseguirá utilizar os recursos do modelo Cloud que deseja, combinado com vários aspectos de segurança que você necessita, implantando a solução – imagine um Data Warehouse – exatamente de acordo com estratégias de segurança de sua empresa.  Lembrando que, nesta opção, você irá criar sua nuvem, com a necessidade de hardware e softwares para atender seu modelo. O gerenciamento da Nuvem Privada ficará sob sua responsabilidade.

Lembre-se, que, você pode – e provavelmente irá – ao longo do tempo, misturar Nuvem Pública e Nuvem Privada. O termo Nuvem Híbrida nasceu por conta desta necessidade e isto não é nenhuma tarefa impossível. A Plataforma Azure da Microsoft, por exemplo, permite que isto seja feito de acordo com suas necessidades.

Como é possível perceber, não há uma “receita de bolo” para a utilização do modelo Cloud Computing. É necessário planejamento estratégico e tático para que o objetivo seja alcançado. É fundamental que haja uma equipe de especialistas multidisciplinares para que a tomada de decisão seja apoiada em critérios que realmente atendam ao negócio.

Obs.: Este texto é direcionado a empresas médias e principalmente as grandes empresas, onde normalmente questões geográficas, aspectos de conformidade de diferentes legislações possuem grande peso na tomada de decisões.

Boa sorte e sucesso!

Um grande abraço,
Antonio Ricardo Gonçalves

Seus Aplicativos estão prontos para a Computação em Nuvem?

Cloud Computing

A resposta para a pergunta do título deste artigo (Seus Aplicativos estão prontos para a Computação em Nuvem?) é óbvia: Não estão!

Cientes desta situação, podemos elaborar algumas explicações e também algumas soluções para o desafio de entregar Aplicativos / Sistemas compatíveis com a Computação em Nuvem.

[Leia mais: O que é Cloud Computing? / O que são SaaS, PaaS, IaaS?]                                       

Porque as aplicações não estão prontas para serem migradas / transferidas para a Nuvem?!

Simplesmente porque há uma grande diferença nos conceitos da computação tradicional, quem vem sendo utilizada nas últimas décadas, que é baseada em soluções individualizadas, ou seja, desenvolvem-se sistemas para determinadas necessidades (de uma companhia ou segmento) e estes sistemas são entregues normalmente em uma infraestrutura de TI local ou que estejam num provedor de serviços de outsourcing, porém, estas estruturas são conceitualmente diferentes de uma Nuvem e baseiam-se na relação Carga do Sistema x Capacidade do Hardware enquanto na Computação em Nuvem esta relação é diferenciada.

Inúmeros fatores são relevantes no momento da arquitetura de um novo sistema; como quais linguagens, bancos de dados, sistemas operacionais e demais tecnologias relacionadas serão utilizadas para que este sistema seja desenvolvido – além do óbvio que são as necessidades e as regras do negócio – e até pouco tempo atrás a Computação em Nuvem e seus conceitos e modelos simplesmente não existiam e/ou não estavam acessíveis à maioria das empresas.

Com a Computação em Nuvem tornando-se realidade e disponível para todos através de grandes empresas como Microsoft, Google, Amazon e também por outros inúmeros pequenos fornecedores, tornou-se viável desenvolver soluções para qualquer tipo ou tamanho do negócio, utilizando-se as vantagens deste modelo.

 [Leia mais: Gerenciamento de Cloud Computing – Pt. I / Gerenciamento de Cloud Computing – Pt. II]

As vantagens e os desafios dos Aplicativos na Nuvem!

A grande vantagem da computação em nuvem do ponto de vista da entrega de um sistema é sua capacidade de elasticidade, o que significa que você pode ter uma solução capaz de atender 10 usuários ou 100.000 usuários utilizando os recursos técnicos que a Nuvem lhe oferece. Isto é possível por causa da capacidade de desvincular a capacidade de carga de um sistema a capacidade de carga do hardware, pois, no modelo de Computação em Nuvem as camadas de hardware e os sistemas funcionam separadamente e este fator – dentre outros contidos na Computação em Nuvem – faz com que, um sistema desenvolvido com arquitetura de Computação em Nuvem seja capaz de crescer ou diminuir instantaneamente para atender as necessidades do negócio.

Outras características da Computação em Nuvem que podemos considerar vantagens são a maior capacidade de monitoração e gestão do ambiente, o que proporciona visão em tempo real do ambiente e também maior capacidade de prever risco ou necessidades operacionais. Estas características são básicas na computação em nuvem, assim como a Orquestração que é responsável pela automatização de processos e a capacidade de manter a Nuvem (Privada ou Publica) sempre em operação sem a necessidade de intervenção humana na maioria das situações cotidianas.

Neste momento que estamos, creio que o grande desafio seja o conhecimento, pois, grande parte dos profissionais ainda tem em mente o modelo pré Cloud Computing, portanto, aprender a desenvolver em um ambiente com muito mais possibilidades e recursos demanda tempo e esforço e esta mudança não ocorre em um período de curta duração. Também existem outros fatores como resistência a mudanças, a própria falta de entendimento de muitos conceitos de Computação em Nuvem que podem prejudicar o desenvolvimento para este ambiente atualmente, mas que, certamente serão superados nos próximos anos.

O importante é ter em mente que a Computação em Nuvem é um modelo que está revolucionando a Tecnologia da Informação e que certamente toda empresa terá sistemas baseados neste conceito e  também que possuir conhecimento para criar soluções em Nuvem é essencial para quem atua no mercado de TI.

 Um abraço!
Antonio Ricardo

Cloud Computing: Vantagens e Desvantagens

Como qualquer outra tendência no mundo da TI, Cloud Computing tem suas vantagens e desvantagens. Também podemos encarar a situação com outros termos como desafios, barreiras, inovação dentre muitos outros termos, porém, pontuar vantagens e desvantagens é o meio mais claro de auxiliar quem necessita adotar Cloud Computing, seja no apoio aos negócios, pesquisa, desenvolvimento social ou em alguma finalidade específica.

Antes de continuar, caso você não esteja familiarizado com os conceitos, sugiro que leia os artigos sobre Cloud Computing, os modelos SaaS, PaaS, IaaS e Gerenciamento de Cloud Computing, para facilitar o entendimento do texto a seguir.

As Vantagens (algumas que considero mais claras e se aplicam a maioria dos casos):

Serviços com métrica: Permite saber exatamente o que está sendo utilizado, pois, Cloud Computing oferece métricas, auditoria e relatórios sobre todos os recursos de sua nuvem. Se não houver este item, você provavelmente está sendo “enrolado”, ou seja, comprando “gato por lebre”.

Elasticidade: Permite que o ambiente aumente ou diminua de acordo com suas necessidades. Recursos como processamento, armazenamento, memória e rede (utilização de banda) devem estar disponíveis de acordo com a necessidade do negócio, “crescendo ou encolhendo” junto com seu ambiente, de acordo com a demanda.

Agrupamento de recursos (resource pooling): O provedor de serviços de Cloud Computing, disponibiliza um ambiente, onde os recursos são agregados por segmento (como memória, disco / armazenamento, processador e rede), criando uma camada de recursos disponíveis para seus clientes, independente do modelo de sua infraestrutura. Isto significa que o cliente visualiza o ambiente de forma plana, ou seja, ele terá acesso ao recurso que necessita independente do modelo da infraestrutura do fornecedor de Cloud Computing.

Acesso amplo aos recursos de rede: Os recursos disponibilizados pelo modelo de Cloud Computing baseiam-se em padrões que permitem o acesso através de vários tipos de clientes, como sistemas operacionais de diferentes fornecedores e diferentes plataformas como smartphones, laptops, tablets etc.

Autosserviço (Self-service) baseado na demanda: É possível que o cliente tenha acesso aos recursos da nuvem diretamente,  sem a necessidade de intermediários. Através de um painel de controle em um portal web, por exemplo, é possível que o cliente administre sua nuvem (ou recursos de uma parcela da nuvem).

Podemos adicionar outras muitas vantagens como baixo custo (comparando com infraestrutura convencional), facilidade de utilização, disponibilidade, administração simplificada do ambiente (a parte mais complexa é realizada pelo fornecedor da solução de Cloud Computing). Por último nesta lista, cito a relação “facilidade x custo” de utilizar Cloud Computing. Tal relação viabiliza a qualquer empresa acessar recursos computacionais,  sem a necessidade de uma equipe de especialistas (o que aumentaria os custos de uma solução de TI), viabilizando a adoção da tecnologia mesmo para micro empresas.

As Desvantagens (também analisando globalmente, sem analisar um segmento específico):

Obviamente não são apenas flores que habitam este jardim, então vamos enumerar alguns – de muitos – aspectos que podem ser desinteressantes no modelo de computação em nuvem.

Creio que atualmente, como regra geral, adotar Cloud Computing é mais interessante para as empresas de pequeno e médio porte do que para as grandes empresas. E isto acontece porque as empresas de porte maior tem a possibilidade de manter suas próprias equipes de TI e desenvolver soluções que atendam de forma personalizada suas necessidades.

Quando utilizamos soluções tradicionais baseadas em nuvem (não estou me referindo a nuvem privada), em linhas gerais, estamos utilizando soluções que podem não ser tão personalizáveis o quanto necessitamos. É a mesma situação onde alguém que necessite um terno e pode comprar pronto ou sob medida. Cada opção tem suas características e valores específicos. Ainda através de uma perspectiva técnica, existem outros fatores como latência de rede, necessidade de hardware muito robusto, necessidade de trafegar grande quantidade de dados, questões relacionadas à arquitetura e plataformas onde as aplicações são executadas entre outras.

Apesar de vários aspectos técnicos contribuírem para a lista de desvantagens, creio que nenhum deles é mais relevante para esta lista do que as questões relacionadas à Privacidade e Segurança, pois, no meu ponto de vista, apesar do grande esforço para garantir padrões confiáveis e reconhecidos internacionalmente, ainda não há muita clareza e um consenso no que diz respeito a direitos e deveres entre as partes envolvidas num modelo de Cloud Computing.

Outra questão relacionada à Privacidade e Segurança é que cada mercado – ou país – tem suas próprias regulamentações e como muitas empresas fornecem serviços globalmente, entender e atender cada região, de acordo com a legislação local vigente é algo bem complexo. Por exemplo, nos Estados Unidos, atender os requisitos Sarbanes-Oxley é algo fundamental  para quem vai fornecer um serviço como um software baseado em nuvem.

Muitos aspectos precisam amadurecer no âmbito legal, comercial e técnico para que a computação em nuvem realmente passe a ser algo amplamente adotado pelas empresas de grande porte, porém, creio que é um caminho natural de qualquer tecnologia, basta uma rápida análise no modelo da adoção de tecnologia e sua famosa curva.

Um grande abraço!
Antonio Ricardo Gonçalves

O que é Cloud Computing?

Cloud Computing

OS CONCEITOS:

Porque o termo Nuvem  (em inglês: Cloud) é utilizado?
A ideia é bem simples: A(s) nuvem(ns) não possui(em) forma definida, ou seja, podem assumir qualquer formato ou tamanho, dependendo de fatores como vento, pressão atmosférica, temperatura etc, podem juntar-se ou dispersar, formando novas nuvens; também podem deslocar-se entre locais totalmente distintos.

Agora vamos aplicar a ideia acima a computação.

E o que significa Computação em Nuvem (em inglês: Cloud Computing)?
Basicamente a Computação em Nuvem refere-se a utilização de recursos computacionais como memória, capacidade de armazenamento de dados/informações, capacidade de processamento/cálculo baseados em servidores compartilhados e interligados através da Internet, baseados no princípio da Computação em Grade (em inglês: Grid Computing).

Grid Computing é um modelo de computação onde é possível executar processos através de computadores distribuídos localmente ou geograficamente distribuídos. A Computação em Grade (Grid Computing) é uma evolução da Computação Distribuída. Um exemplo muito interessante de Grid Computing é o “World Community Grid”. Acesse o site http://www.worldcommunitygrid.org para conhecer. Caso queria saber mais sobre os assuntos Grid Computing e Computação Distribuída, a Wikipedia é sempre uma boa fonte para pesquisa.

Outra questão fundamental para entendermos a Computação em Nuvem é a Virtualização, que também possui um conceito simples. A ideia da virtualização é isolar as aplicações/sistemas do hardware, através de uma camada de software conhecida como Hypervisor. O objetivo deste modelo é prover a liberdade de execução de um sistema, sem depender do tipo de hardware utilizado.

Finalmente chegamos onde eu queria: Sintetizar todas as ideias acima em uma explicação para o que conhecemos como Cloud Computing e utilizamos em nosso dia-a-dia.

Cloud Computing (esta é minha visão): Um conjunto de hardware agrupado (em inglês: clustered) com capacidade automática (ou autônoma) de prover serviços através de provisionamento e análise em tempo real da capacidade deste conjunto de hardware. Este modelo tem como objetivo o consumo transparente de recursos de computação que podem estar em qualquer lugar de forma simples e amigável a quem consome o serviço. Este serviço, de acordo com sua capacidade de autogerenciamento, pode “crescer” ou “encolher” de acordo com a necessidade de que está consumindo.

Resumidamente, a ideia de Cloud Computing é atender as necessidades de um consumidor de TI, sem burocracia, com agilidade e de maneira totalmente transparente e gerenciável, baseado nos conceitos acima descritos.

 

A PRÁTICA:

Na prática, utilizamos Cloud Computing o tempo todo. Quando utilizamos serviços como o Google, Gmail, Outlook, Azure, Facebook estamos consumindo Cloud Computing, pois, independente de onde está a infraestrutura e os softwares envolvidos na solução – e estes estão espalhados pelo mundo todo – o que precisamos está sempre ao nosso alcance.

Atualmente existem inúmeros tipos de ofertas de Computação em Nuvem no mercado de TI. Desde as grandes como Microsoft, IBM, HP, Google, Amazon até pequenas empresas fornecem soluções neste modelo. Cabe a cada um, profissional ou empresa, entender o que necessita em quem pode lhe fornecer a melhor solução.

Quando falamos de Cloud Computing, geralmente entramos nos conceitos de TI como um Serviço (TI as a Service), como SaaS, IaaS, Paas, DaaS e vários outros. Caso queira saber sobre estes modelos, acesse este artigo https://antonioricardo.org/2013/03/28/o-que-e-saas-iaas-e-paas-em-cloud-computing-conceitos-basicos  ou navegue pelo blog para mais informações.

Um grande abraço!
Antonio Ricardo