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

O que é computação em nuvem com a AWS – Amazon Web Services

Uma breve – mas bem interessante e didática – apresentação do AWS (Amazon Web Services). A solução de Cloud Computing fornecida pela Amazon globalmente.
Vídeo produzido pela Amazon em Português. Confira!

[Cloud Computing] O que é “Conteinerização”/”Containerization” (utilizando Docker)?

A “Conteinerização” é uma alternativa leve – e muito mais leve – para a Virtualização Completa (utilizando uma VM – Virtual Machine) que envolve a ação de encapsular um aplicativo em um recipiente com o seu próprio ambiente operacional. Esta alternativa fornece muitos dos benefícios de carregar um aplicativo em uma máquina virtual, como executar o aplicativo em qualquer máquina física adequada, sem quaisquer preocupações com dependências.

A Conteinerização ganhou bastante destaque com a solução open-source Docker. Os contêineres Docker são projetados para funcionar em qualquer tipo de dispositivo/plataforma (em tudo), de computadores físicos à máquinas virtuais, bare-metal, OpenStack cloud clusters, instâncias públicas e muito mais.

Talvez, para quem não tenha conhecimento técnico em Virtualização ou em Computação em Nuvem, a explicação acima fique um pouco complicada ou distante de algo que possa fazer sentido, então, para simplificar um pouco – se é que isto é possível – podemos definir a “Conteinerização” como uma forma padronizada (um modelo) para a entrega de uma determinada aplicação dentro de uma estrutura virtual (Conteiner) que se assemelha a uma VM (Virtual Machine), e que consome menos recursos e possui estrutura para portabilidade mais simples entre diferentes ambientes físicos/virtuais. Podemos considerar de forma mais genérica – ou grosseira – que um Contêiner seria uma versão enxuta de uma VM Padrão (que necessita de um hypervisor para ser executada).

Abaixo, está disponível um vídeo contendo uma Introdução ao Docker, apresentado pelo fundador Solomon Hykes, publicado no Youtube pelo Twitter University. Divirta-se! 😀

Quer adicionar alguma informação a este conteúdo? Envie estas informações, sugestões e comentários através das Redes Sociais ou através de um comentário nesta publicação.

Um 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

Exemplo de SaaS

SaaS

Para não ficar apenas nos conceitos e nas explicações teóricas, decidi publicar este artigo com um exemplo simples e didático de SaaS ou Software as a Service.

Tenho o (estranho) hábito de pesquisar soluções no modelo “as a Service” para situações que enfrento no meu dia-a-dia. Como nesta semana tive uma experiência desagradável com um agendamento para exames de rotina, então saí pela Internet pesquisando e analisando o que havia.

Após algumas horas e várias leituras, análises, testes etc; encontrei na AWS (Amazon Web Services) o software tuOtempO, e por tratar-se de um software muito simples conceitualmente, mas com aplicação muito eficiente para o dia-a-dia, decidi utilizá-lo como exemplo para quem deseja visualizar na prática os conceitos de SaaS que repetidamente menciono neste blog.

Recapitulando o conceito de SaaS – Software as a Service:
SaaS – Software as a Service (Software como Serviço) é basicamente um modelo onde a aquisição e/ou utilização de um software não está relacionado a compra de licenças, ou seja, você utiliza algum software e paga por sua utilização. Este software é baseado em um ambiente computacional no modelo de Cloud Computing, e – na minha visão – deve disponibilizar acesso multiplataforma, ou em outras palavras, quem está utilizando deve possuir meios de acessá-lo através de diferentes aparelhos (celulares, tablets, desktops, notebooks) com diferentes tipos de clientes (browser/navegador) sem a necessidade de instalação de nenhum tipo de software adicional.

O que é o tuOtempO?
O tuOtempO é um conjunto de softwares no modelo SaaS, que podem trabalhar de forma independente ou integrada entre seus módulos e também integrando-se a software legado em caso de necessidade. Alguns módulos são: Serviço de Agendamento, Comunicação Interativa com Pacientes, Resultados de Exames entre outros. Para maiores detalhes, consulte o site do fornecedor.

Como utilizar o modelo SaaS no dia-a-dia (a prática):

Se a clínica, que atualmente utiliza um software ultrapassado (uma mescla um sistema baseado em Access / MS Office, Visual Basic e algumas planilhas) e que aparentemente não atende as expectativas, decidisse adotar uma nova solução, seria muito interessante do ponto de vista ‘custo x benefício’, passar a utilizar algo no modelo SaaS, pois a solução que menciono como exemplo – tuOtempO – e que é 100% SaaS, atenderia facilmente uma das necessidades do negócio – o agendamento de consultas, sendo possível passar a utilizá-la imediatamente através da assinatura mensal que possui custo baixo e sem a necessidade de nenhum tipo de intermediário, aquisição de hardware, software etc.

Com a transição do modelo atual para o SaaS, a clínica teria muitos benefícios, como a facilidade de gestão dos recursos de TI, pois, atualmente se o servidor onde o software está instalado ou uma das estações onde a atendente faz os agendamentos apresenta alguma falha, há indisponibilidade total ou parcial por conta do modelo ser ultrapassado e não oferecer alternativas para o caso de falhas. Já na situação onde o SaaS é utilizado, a interrupção dos serviços é praticamente nula, pois, é possível acessar o software de qualquer dispositivo e em qualquer local. Mesmo que haja uma queda na infraestrutura da clínica, é possível acessar o sistema de agendamentos por um smartphone ou tablet com acesso a Internet e continuar a atividade normalmente. Como estamos mencionando SaaS/Cloud Computing, o nível de confiabilidade e disponibilidade esperado é sempre alto.   Concluindo a ideia, é sempre fundamental analisar  qual o tipo e o tamanho do negócio para saber quando é interessante um ou outro modelo, mas de forma simplista, para situações mais simples você terá benefícios utilizando SaaS e para situações onde há necessidade de software com maior nível de parametrização (‘customização’) devido a regras do negócio, outros modelos como IaaS ou PaaS, e mesmo a computação em seu modelo tradicional, provavelmente serão mais interessantes.

Obs. Este artigo não é patrocinado. Apenas utilizei o exemplo da tuOtempO porque considero uma solução simples e de fácil entendimento para fins didáticos e o AWS por tratar-se de um fornecedor conhecido.

Um grande abraço!
Antonio Ricardo