[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

Anúncios

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 PaaS

PaaS

Recapitulando o Conceito (Já Publicado no artigo “O que é SaaS, IaaS e PaaS em Cloud Computing? – Conceitos básicos”):

PaaS – Platform as a Service (Plataforma como Serviço):
Este modelo 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 personalizada, sendo possível desenvolver suas próprias aplicações baseadas em alguma tecnologia (framework, linguagem etc.) e utilizar a infraestrutura necessária – disponível na Nuvem.

O exemplo (Aplicações práticas do Conceito):

Para ilustrar o que menciono no conceito, vou apresentar o WOLF, pois, trata-se de uma solução que utiliza todos os conceitos, mas, principalmente tira o melhor proveito possível da utilização de um Framework e da gestão do ciclo de vida de uma aplicação.

A solução WOLF permite que qualquer empresa desenvolva sua aplicação em um ambiente de Cloud Computing, tira proveito dos benefícios do modelo Web 2.0, utilizando o desenvolvimento “code free” (sem necessidade de escrever código), entre outras funcionalidades.

Eu poderia publicar vários parágrafos aqui, mas acredito ser mais produtivo acessar o site do Wolf Framework, pois, existem muitos detalhes e informações, além de vídeos autoexplicativos que irão auxiliar muito no entendimento. Além do mais, não há nenhum tipo de alteração radical, que seja incompreensível para quem tem algum conhecimento – mesmo que seja básico – em Tecnologia da Informação. PaaS é mais uma excelente ferramenta no apoio ao desenvolvimento de aplicações, porém, baseada em ambiente de Cloud Computing.

Lembrando que, este NÃO é um artigo patrocinado e estou utilizando o WOLF apenas pela facilidade de entendimento do modelo, pois, o site tem ótimas informações. Se você deseja mais opções, a seguir apresento mais algumas: Azure (Português), Drupal (Inglês), Salesforce1 Platform (Inglês/Português), Squarespace (Inglês), LongJump (o site do LongJump também é excelente para aprofundar o entendimento – Inglês).

Um abraço!
Antonio Ricardo Goncalves

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

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 é Fabric-Based Infrastructure

Vamos adicionar mais um pouco de conhecimento ao nosso Gerenciamento de Cloud Computing  e entender o que é Fabric-Based infrastructure (FBI). Este é um termo relativamente novo que é utilizado para ambientes com capacidade de gestão automatizada.

Este conceito destinado à integração vertical de hardware e infraestrutura de software, chamado de Fabric-Based infrastructure (FBI) é apoiado por uma camada de automação (baseada em softwares para o gerenciamento de ambientes computacionais) e tem como objetivo apoiar a T.I. a prover soluções sob demanda para apoio aos negócios com maior agilidade, eficiência e eficácia. Desta forma, promete entregar infraestrutura para aplicações em tempo real.

Como mencionei nos artigos anteriores (Gerenciamento de Cloud Computing P.I e P.II) e também em vários outros, este modelo de computação (no modelo Cloud Computing), vem se diferenciando dos modelos tradicionais pela capacidade de atender as demandas de negócios por entregar soluções flexíveis. Isto significa disponibilizar ambientes que crescem ou encolhem horizontal ou verticalmente, baseados nas necessidades dos negócios.  Da perspectiva das áreas de negócios, esta facilidade de obter e liberar recursos computacionais implica em menores custos para seus projetos e maior rapidez na entrega de soluções.  Na visão da TI, este tipo de solução com gerenciamento mais eficiente é muito interessante por ser capaz de reduzir o consumo de recursos desnecessários (ex. hardware, software, armazenamento, energia elétrica) disponibilizando somente o necessário para determinado projeto ou solução e distribuindo melhor tais recursos.

O conceito é bem simples. Trata-se de um modelo de gestão automatizada para ambientes computacionais, porém, sem um recurso desta natureza, os modelos de Cloud Computing tornam-se ineficazes, por não atingirem seus objetivos de entrega de ambientes (como SaaS, PaaS e IaaS) com maior agilidade e eficiência operacional do que os modelos convencionais. E por último, mas, não menos importante: Custo/benefício mais atrativo para aqueles que  utilizam este modelo de computação.

Um grande abraço!
Antonio Ricardo Goncalves