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

Anúncios

[Microsoft Cloud] Comercial de TV da Microsoft sobre Cloud Computing

Como estou sem tempo disponível para novas publicações, decidi compartilhar um comercial da Microsoft que é veiculado constantemente nos canais de TV dos EUA / Canadá.
É um exemplo da aplicação da Nuvem da Microsoft (Microsoft Cloud) na prática (em uma situação real).
Divirtam-se!

Um abraço!
Antonio Ricardo

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 IaaS

Para finalizar a Trilogia de Exemplos de Cloud Computing: SaaS, PaaS e IaaS, neste artigo ilustro a seguir uma aplicação prática do modelo IaaS.

Primeiramente vamos recapitular o conceito:

IaaS – Infrastructure as a Service (Infraestrutura como um Serviço) Neste modelo você contrata sua infraestrutura de TI como serviço, com uma vantagem muito interessante ao modelo tradicional, que é a contratação de servidores virtuais (e outros dispositivos de infraestrutura) ao invés de comprar servidores, roteadores, racks e outras “caixas” de hardware. Aqui você é tarifado por alguns fatores, como o número de servidores virtuais, quantidade de dados trafegados, dados armazenados e outros itens, dependendo de como e com quem (fornecedor IaaS) você trabalha. Neste caso, creio que o Windows Azure, Amazon EC2 e a IBM sejam bons exemplos para quem queira pesquisar mais sobre o assunto. No IaaS, obviamente também é utilizado o modelo pay-per-use, onde a cobrança é baseada no serviço e não em licenciamento de produto, ou seja, se você precisa de 10 servidores para o próximo mês, você contrata a utilização destes servidores por este período determinado e depois, simplesmente cancela a utilização.

O modelo IaaS é apoiado em soluções de virtualização (Ex. VMware, Microsoft, RedHat etc.) que são amplamente utilizadas atualmente, adicionando ingredientes extras muito importantes relacionados ao gerenciamento do ambiente. Geralmente num ambiente virtualizado “in company” a questão do gerenciamento fica limitada aos recursos mais básicos como memória, armazenamento e processamento, porém, no modelo IaaS é esperado que o gerenciamento vá além do básico, entregando maior capacidade de provisionamento do ambiente, melhor disponibilidade (por tratar-se de ambiente mais robusto e mais complexo), além do ponto fundamental que é a gestão do custo, pois, o IaaS é comercializado baseando-se na utilização dos recursos, então se não houver um sistema eficiente que gerencie todos os recursos, alguma das partes sairá prejudicada.

O Exemplo prático:

Como a Microsoft tem uma base instalada maior que os demais, torna-se um pouco mais fácil exemplificar, utilizando o Windows Azure, pois a maior parte (ou a parte total) é formada de soluções já utilizadas em infraestrutura de TI convencional.

Através da Plataforma Windows Azure, além de seus servidores Windows, Linux e outros Sistemas Operacionais x86 e 64 bits é possível criar do ponto zero ou ainda estender sua infraestrutura para o modelo Cloud Computing / IaaS transferindo parte dela para a nuvem, incluindo o Active Directory, aramzenamento / backup, aplicações web internas ou externas hospedadas em IIS, Apache etc.

Através de várias soluções integradas na plataforma Azure é possível criar conexões seguras pela Internet e tornar sua infraestrutura flexível, tirando proveito de uma infraestrutura na Nuvem. Você terá uma extensão da sua infraestrutura atual, sem se preocupar com o hardware.

Recomendo o acesso ao site do Windows Azure, pois, existe muito conteúdo em português, e cada um dos itens da solução possui uma grande biblioteca de informações, além de eventos e a comunidade Microsoft que é uma ótima fonte de obtenção de conhecimento. Creio ser mais interessante e objetivo obter as informações diretamente na fonte. Também não deixe de acessar a calculadora disponível no Site do Windows Azure, pois, esta lhe fornecerá uma excelente base para entender como os custos são aplicados.

Um grande 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

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

O que é SaaS, IaaS e PaaS em Cloud Computing? (Conceitos básicos)

Hoje vou tratar objetivamente e com abordagem simples a respeito destas três siglas relacionadas a Computação em Nuvem (Cloud Computing em inglês), que, apesar de não se tratarem de algo tão novo assim, causam dúvidas em quem não tem muito contato com conceitos de tecnologia da informação.

SaaS – Software as a Service (Software como Serviço):
É 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. Como exemplo, para fácil compreensão, cito o Skype da Microsoft. O Skype é um software de comunicação que permite vários tipos de utilização, que pode ser a simples troca de mensagens até uma videoconferência em grupo. Para utilizar o Skype você não paga nenhum tipo de licença, e é tarifado (ou cobrado) de acordo com os serviços que utiliza. Por exemplo, se você utiliza apenas o recurso de videoconferência em grupo, pode contratar apenas este recurso, porém, é possível combinar vários recursos oferecidos adaptáveis a sua necessidade. É um modelo flexível, que lhe permite controlar o que você necessita, pagando apenas pelo que utiliza em determinado período ou situação pontual. Resumidamente, você paga o serviço e não o produto. (Pesquise também o Lync Server e o Webex)

IaaS – Infrastructure as a Service (Infraestrutura como Serviço):
De maneira análoga a anterior, neste modelo você contrata sua infraestrutura como serviço, com uma vantagem muito interessante ao modelo tradicional, que é a contratação de servidores virtuais (e outros dispositivos de infraestrutura) ao invés de comprar servidores, roteadores, racks e outras “caixas” de hardware. Aqui você é tarifado por alguns fatores, como o número de servidores virtuais, quantidade de dados trafegados, dados armazenados e outros itens, dependendo de como e com quem (fornecedor IaaS) você trabalha. Neste caso, creio que Amazon EC2 e a IBM sejam bons exemplos para quem queira pesquisar mais sobre o assunto. No IaaS, obviamente também é utilizado o modelo pay-per-use, onde a cobrança é baseada no serviço e não em produto, ou seja, se você precisa de 10 servidores para o próximo mês, você contrata a utilização destes servidores por este período determinado e depois, simplesmente cancela a utilização, exatamente como a compra de um serviço de TV a cabo ou um plano de serviço de dados para seu celular.

PaaS – Platform as a Service (Plataforma como Serviço):
Aqui temos um modelo que fica entre o SaaS e IaaS, proporcionando uma plataforma mais robusta e flexível para a utilização de muitos recursos de tecnologia, onde é possível a utilização de softwares de maneira mais flexível, sendo possível desenvolver suas próprias aplicações baseadas em alguma tecnologia (framework, linguagem etc.) e utilizar a infraestrutura necessária, e o mais importante, adequada a aplicação desenvolvida. Pense em uma solução onde você necessite de um software, porém, por alguma limitação de um fornecedor do modelo SaaS, você não conseguirá implementar um determinado recurso personalizado que é fundamental para seu negócio. É aqui que o modelo PaaS é interessante, pois, você pode utilizar a mesma estrutura que você teria “em casa”, porém, utilizando o modelo “as a service”, livrando-se da aquisição de hardware, licenças de software etc. e utilizando esta mesma estrutura como serviço. Para entender este modelo é muito interessante pesquisar sobre o Microsoft Azure. Aliás, o Azure é bem flexível e lhe permite utilizar, além do PaaS, também os modelos SaaS e IaaS.

De uma maneira bem simplista, podemos dizer que os modelos SaaS, IaaS e Paas em Cloud Computing são substitutos para a infraestrutura tradicional com o diferencial do modelo de comercialização, que, ao invés de licenciamento, utiliza um modelo baseado em pagamento por utilização de recursos.

Espero ter contribuído para facilitar o entendimento. E, em caso de dúvidas, mantenha contato.

Sempre lembre-se que qualquer tecnologia deve ser utilizada para apoiar o negócio, então, antes de decidir, analise se é o momento certo para utilizar ou não alguma solução. Também considere sempre a possibilidade de evolução em ondas, ou seja, comece utilizando moderadamente as tecnologias que você não se sente seguro e vá aprendendo e evoluindo. Só não deixe de inovar no apoio aos negócios, senão você ficará para trás e terá que dar um salto bem grande para atualizar sua tecnologia, o que pode causar prejuízo na continuidade dos negócios de sua empresa.

Caso queira saber mais sobre o tema Cloud Computing, acesse este outro post, onde a abordagem é apenas Computação em Nuvem: https://antonioricardo.org/2013/09/18/cloud-computing/

Grande abraço!
Antonio Ricardo