O que é DevOps e será que você deveria aderir, ou não..?

Existem sempre muitas tendências e “buzzwords” acontecendo no setor de TI. DevOps é mais uma destas palavras que circulam já faz alguns anos e ainda causa muito barulho e até um pouco de confusão. A seguir, pretendo esclarecer e desmistificar o tema, apresentando conceitos básicos que podem ser úteis na hora de decidir qual o momento de aderir à cultura DevOps no seu time ou empresa.

Você se recorda de ter brincado de Lego com seus amigos alguma vez em sua vida, criando e recriando diferentes cenários? Apesar de parece estranho, se você já fez isto alguma vez e gostou, é provável que goste da prática de DevOps e seja aquela pessoa que fará a diferença no seu time por compreender bem o processo de criar e recriar cenários.

O sucesso – e obviamente o fracasso – na prática do DevOps está relacionado à forma em que você trabalha para que algumas engrenagens básicas, que movimentam a TI, funcionem de maneira sincronizada. São elas: Pessoas, Processos, Ferramentas e Colaboração.  É fundamental começar a montagem dos blocos com estes quatro elementos em mente.

Antes de abordar o conceito básico de DevOps, é bom entender o que não é DevOps: Analistas, Operadores, Engenheiros de Software e quaisquer outras funções ou profissões não são DevOps, ou seja, não existe o famoso Analista de DevOps, a não ser em ambientes onde DevOps não é compreendido corretamente. O mesmo se aplica a um departamento ou softwares de automação e orquestração, que muitas vezes são descritos como DevOps. Softwares como Jenkins, Juju, Chef, Terraform etc. são excelentes ferramentas que contribuem na automação (e orquestração) de processos, mas não deve ser confundidos com o conceito de DevOps.

A justificativa para o que mencionei acima é bem simples: O Conceito de DevOps está relacionado à cultura utilizada por um grupo de pessoas que atuam de forma colaborativa durante o ciclo de vida de um serviço de TI. O grupo de pessoas pode ser formado por Analistas de Sistemas, Analistas de Suporte, Programadores, Operadores, Analistas de QA, Arquitetos de Solução entre outros, buscando a entrega do serviço do início ao fim. Estas pessoas trabalham de forma colaborativa e criam processos, que ao atingirem um alto nível de maturidade confiabilidade, podem – devem – ser automatizados através de ferramentas.  Assim sendo, temos conectados os quatro elementos básicos que começam a compor a Cultura e fizemos a fusão dos times de Desenvolvimento e Operações criando o nosso DevOps.

Além deste entendimento básico da estrutura, existem muitos outros conceitos envolvidos na Cultura DevOps, difundidos na comunidade engajada nesta prática. Um destes conceitos refere-se a outro conjunto de quatro elementos conhecido como CAMS (em inglês, refere-se a “Culture, Automation, Measurement, Sharing”). Em tradução livre: Cultura, Automação, Medição (ou Medir), Compartilhamento. É possível conectar e montar os blocos entre Engrenagens e CAMS facilmente, pois, a Cultura está relacionada com as Pessoas e ao Compartilhamento. A Automação está diretamente relacionada aos Processos e Ferramentas. E por último a Medição relacionando-se às quatro engrenagens básicas (Pessoas, Processos, Ferramentas e Colaboração).

A representação a seguir foi criada apenas para efeito didático e pode ser organizada e reorganizada de várias formas, movendo os elementos, inserindo mais elementos ou ainda retirando alguns de acordo com a maturidade na cultura DevOps.

DevOps

DevOps Representação

Agora chegou a hora de você parar e analisar se deve aderir à Cultura DevOps. Faça um exercício, simulando sua situação real atual, distribuindo o que você já possui de recursos dentro dos times de Desenvolvimento (Dev) e Operações (Ops). É bem comum perceber a existência da maioria dos elementos como Ferramentas, Processos, Automação (mesmo que em nível inicial) etc. Então o que é necessário para poder afirmar que é possível a adesão imediata? A resposta é simples mais uma vez: Falta apenas implantar e compartilhar a cultura, criando um ambiente onde pessoas dos times de Desenvolvimento e Operações colaboram na busca de resultados comuns para entregar um serviço, sistema, solução ou como queira descrever tal entrega (DevOps juntos do início ao fim do ciclo). E para completar não se esqueça de medir o desempenho do conjunto. E, “voilà”, sua prática de DevOps funciona!

Acredito que pelo menos 95% das pessoas que leem os conceitos básicos e que façam o teste concluem que falta muito pouco para iniciar esta nova jornada para um funcionamento muito mais eficiente e com menores custos operacionais através da Cultura DevOps.

Espera aí que tem bônus! A seguir deixo descrições um pouco mais detalhadas e técnicas sobre alguns pontos principais da Cultura DevOps e no final do texto tem uma lista com alguns livros para você utilizar como referência.

Bônus:

O Básico para quem precisa compreender o conceito:
DevOps é a prática onde times de desenvolvimentos de sistemas e times de suporte/operação de TI atuam em conjunto em todo ciclo de vida do serviço, desde o processo de design e desenvolvimento até o suporte de produção. O DevOps também é caracterizado pela maneira que a equipe de operações atua, utilizando muitas técnicas que os desenvolvedores de seus sistemas trabalham. Por outro lado o time de desenvolvimento passa a compreender um pouco mais do que acontece durante a operação de um serviço/sistema devido à proximidade com o time operacional.
Podemos simplificar o conceito, dizendo que DevOps é prática onde times de Desenvolvimento e Operações atuam de forma colaborativa durante o ciclo de vida de um serviço ou produto.

Existem alguns componentes centrais na prática de DevOps que devem ser compreendidos:
Cultura, Automação, Medição (ou Medir), Compartilhamento (CAMS em inglês)
O termo – em inglês – CAMS refere-se a “Culture, Automation, Measurement, Sharing”

Apesar dos termos serem autoexplicativos, a seguir, explico o CAMS um a um:

Cultura: Refere-se à maneira como as pessoas envolvidas na prática do DevOps atuam e pensam. DevOps é muito diferente dos modelos tradicionais de gestão de TI, onde as equipes de Desenvolvimento e Operações trabalham em ciclos completamente diferentes, utilizando processos isolados. E a Cultura é fundamental, pois, se você não investir nela, todas as tentativas de automação serão em vão. A Automação necessita de pessoas engajadas e ferramentas para funcionar.
Automação: Aqui é um dos lugares por onde você começa quando já entende sua cultura. Neste ponto, as ferramentas podem começar a unir uma malha de automação de tarefas para o DevOps. As ferramentas para gerenciamento de versões, provisionamento, gerenciamento de configuração, integração de sistemas, monitoramento e controle e também orquestração tornam-se peças importantes na construção de uma estrutura de DevOps.
Medição: Medir é uma prática fundamental no gerenciamento de qualquer atividade e, com DevOps não é diferente. Se você não conseguir medir, não poderá melhorar. Uma implementação bem sucedida de DevOps deverá medir tudo o que puder com a menor frequência possível. Métricas de desempenho, métricas dos processos e também métricas de pessoas.
Compartilhamento: Compartilhar ideias e problemas é a maneira de manter ativo o ciclo do CAMS. Criar esta cultura onde as pessoas possam compartilham ideias e problemas é primordial. Outra motivação interessante na cultura DevOps é a forma como as histórias de sucesso de DevOps ajudam os outros. Na prática do DevOps é sempre bem vindo o compartilhamento das ideias, e falar sobre problemas não deve ser encarado como uma situação de acusação pessoal ou menosprezo por causar alguma falha durante o ciclo. O que importa de verdade é entender o que acontece de errado e corrigir os problemas.
Agora que já passamos pelo básico, vamos conhecer as 5 metodologias utilizadas no DevOps:

  1. Pessoas sobre processos e processos sobre ferramentas (People over Process over Tools): Esta metodologia começa buscando as pessoas certas para cumprir um papel necessário. Em segundo lugar, assegure-se de que o processo esteja correto e ótimo. Por fim, melhore a eficiência do processo, reduzindo etapas, através de automação baseada em ferramentas.
    Para deixar claro, as ferramentas de automação são as últimas. Não faz sentido automatizar processos errados mesmo que você utilize as ferramentas certas. Automação serve para ajudar atingir excelência operacional e não para criar mais problemas!
  2. Entrega Contínua (Continuous Delivery): Entrega/Distribuição Contínua é a capacidade de fornecer mudanças de todos os tipos – incluindo novas funcionalidades, alterações de configuração, correções de bugs e produção de experiências – nas mãos dos usuários, de forma segura e rápida de forma sustentável. Muitos times já tem atuado com metodologias Ágeis e técnicas relacionadas a CI/CD, sendo assim, parte da metodologia utilizada na prática do DevOps já é conhecida. Como o tema aqui é DevOps, não vou me aprofundar em CI/CD. Você pode buscar no Google ou clicar aqui para saber mais.
  3. Gestão Enxuta (Lean Management): A Gestão Enxuta (Lean Management) é uma abordagem para administrar-se uma organização que tem base no conceito de melhoria contínua, uma abordagem de longo prazo para o trabalho que sistematicamente busca alcançar pequenas mudanças incrementais nos processos, a fim de melhorar a eficiência e a qualidade. É derivada da metodologia “Lean Manufacturing”, amplamente utilizada nas linhas de produção de automóveis.
  4. Controle de Mudança no estilo “Operações Visíveis” (Visible Ops style Change Control): O Visible Ops é uma metodologia que faz parte do ITIL desde o ano 2000 aproximadamente e basicamente reflete o que foi abordado no “item 1.Pessoas sobre processos e processos sobre ferramentas”, onde a excelência operacional não está apenas na utilização de ferramentas e sim na utilização do conjunto Pessoas/Processos/Automação criando um ciclo de entrega de serviço simples, eficiente e com custos que proporcionem que o negócio (ou produto final) seja competitivo.
  5. Infraestrutura como Código (Infrastructure as Code): A infraestrutura como Código (IaC) é um tipo de configuração de TI em que desenvolvedores ou equipes de operações gerenciam e provisionam automaticamente os recursos de TI utilizando ferramentas de automação, em vez de usar um processo manual para configurar dispositivos de hardware e sistemas operacionais. A infraestrutura como Código é também descrita como infraestrutura programável ou definida por software. É possível utilizar ferramentas dos próprios fornecedores dos equipamentos/serviços ou utilizar ferramentas de terceiros como as conhecidas Chef, Puppet, Terraform etc.

DevOps é um assunto bastante amplo e contempla todas as áreas da TI, portanto, se você tem interesse é sempre bom manter o conhecimento em dia, pois, como sabemos, estamos em constante mudança e, a cada ano, os ciclos de vida em TI estão sempre mais curtos. A parte boa é que a maioria dos conceitos e áreas de conhecimento utilizadas na prática de DevOps são conhecidos e facilitam a adoção de DevOps. Os desafios quando falamos deste assunto é mantermos uma cultura favorável a colaboração e como montar e desmontar os blocos de acordo com as necessidades do negócio, como um brinquedo de blocos Lego.

A seguir, a lista que mencionei:
Obs. Estou disponibilizando a lista com os Títulos todos em inglês, pois, estou fora do Brasil há algum tempo e não tenho certeza se existem traduções para todos.

  1. The Visible Ops Handbook: Implementing ITIL in 4 Practical and Auditable Steps, by Gene Kim, Kevin Behr, and George Spafford
    https://www.amazon.com/Visible-Ops-Handbook-Implementing-Practical/dp/0975568612 
  1. Continuous Delivery, by Jez Humble and David Farley
    https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912 
  1. Release It!, by Michael Nygard
    https://pragprog.com/book/mnee/release-it 
  1. Effective DevOps, by Jennifer Davis and Katherine Daniels
    http://shop.oreilly.com/product/0636920039846.do
  1. Lean Software Development: An Agile Toolkit, by Mary and Tom Poppendieck
    https://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783
  1. Web Operations, by John Allspaw and Jesse Robbins
    https://www.amazon.com/Web-Operations-Keeping-Data-Time/dp/1449377440
  1. The Practice of Cloud System Administration, by Christine Hogan, Strata R. Chalup, and Thomas A. Limoncelli
    http://the-cloud-book.com/
  1. The DevOps Handbook, by Gene Kim, Jez Humble, Patrick Debois, and John Willis
    http://itrevolution.com/devops-handbook
  1. Leading the Transformation, by Gary Gruver and Tommy Mouser
    http://itrevolution.com/books/leading-the-transformation/
  1. The Phoenix Project, by Gene Kim, Kevin Behr, George Spafford
    https://en.wikipedia.org/wiki/The_Phoenix_Project_(novel)

 

Eu gostaria muito de saber a sua opinião sobre o assunto.
Opine e participe da discussão aqui no Blog ou no meu perfil do LinkedIn!
Um abraço!

Publicidade

Centro de Arquitetura da AWS (Dicas)

Se você tem interesse em aprender, melhorar seus conhecimentos na Nuvem AWS ou está trabalhando em alguma solução de Nuvem AWS, o Centro de Arquitetura da AWS é o local certo para isto.

A AWS disponibiliza um extenso conteúdo (Artigos, Vídeos, Modelos de Arquiteturas etc.) relacionado ao tema Arquitetura, no Centro de Arquitetura da AWS.

Todo mês, um tema é abordado com maior profundidade. Este mês você irá encontrar muito material sobre Microsserviços (Microservices).

Minha última dica em relação ao Centro de Arquitetura AWS é pesquisar o AWS Answers para encontrar respostas às perguntas mais comuns e também àquelas baseadas em casos reais.

Essa foi a dica de hoje!

Abraços,
Antonio Ricardo Goncalves

microservices-aws

Cloud Computing: Como funciona um Datacenter da Microsoft (Vídeo)

A maioria dos profissionais de tecnologia – e de outras áreas também – estão acostumados ao Termo Cloud Computing (Computação em Nuvem). Mas será que a maioria sabe o que é um datacenter preparado para este modelo?

Venho abordando o tema de vários pontos de vista, com conceitos técnicos – os modelos SaaS / PaaS / IaaS -, soluções de mercado e como Cloud Computing pode solucionar problemas relacionados ao negócio. No entanto, muitos não tem ideia do tamanho e da capacidade de um datacenter que atende a este modelo de Computação em Nuvem.

Pesquisando conteúdo, encontrei um vídeo publicado pela Microsoft no Youtube, onde é possível dar um passeio por dentro de um datacenter da Microsoft. Então decidi compartilhar, pois, nada melhor do que visualizar o que acontece por trás de todos estes conceitos, siglas, soluções que abordo neste blog.

Espero que gostem!
Caso haja alguma dúvida, por favor, escrevam. E se por algum motivo o vídeo apresentar algum problema, por favor, alguém informe.

Um abraço!
Antonio Ricardo

Cloud Computing para Pequenas e Médias Empresas (PME)

Cloud Computing para PME

Em artigos anteriores, tenho escrito a respeito de vantagens e desvantagens na utilização do modelo de Computação em Nuvem (Cloud Computing Model) para vários segmentos de mercado, e neste artigo vou abordar a utilização de uma solução desenvolvida em Cloud Computing para o segmento PME (Pequenas e Médias Empresas).

Até alguns anos atrás, o acesso à tecnologia custava muito mais do que nos dias de hoje. Nas últimas décadas, o hardware (Desktops, Notebooks, Tablets, Celulares etc) tornou-se acessível à maioria – ou a todas – das empresas, pois, os preços foram decrescendo, passaram a ser competitivos e tornaram-se ‘commodities’, porém, a aquisição de um software de boa qualidade para atender as necessidades de negócio de uma empresa pequena ou média, ainda era algo pouco acessível, devido aos modelos aplicados pelas empresas fornecedoras de software.

Os modelos tradicionais de comercialização de software:

No(s) modelo(s) mais tradicional(is) de comercialização de software você adquire algum tipo de licença de utilização combinada com serviços como a instalação deste software, sua customização (adequação as necessidades do negócio) entre outros. Após a fase inicial (de implantação da solução) é comum ser cobrado mais algum tipo de manutenção do software/sistema utilizado, o que significa mais custo. Além disso, o que considero complexo neste modelo é que estes custos/valores são sempre flutuantes, ou seja, sempre dependem de varáveis difíceis de entender (para quem não é especialista no assunto), principalmente quando focamos o mercado PME. Em resumo, para quem já tem conhecimento em termos técnicos relativos à T.I./Negócios, estou tratando neste parágrafo de TCO (Total Cost of Ownership) e ROI (Return on Investment): O “Calcanhar de Aquiles” de muitos gestores.

A vantagem da Computação em Nuvem (Cloud Computing):

Para quem adquire um software de gestão desenvolvido no modelo Cloud Computing, todo o parágrafo anterior é eliminado, pois, você irá aderir ao modelo SaaS – Software as a Service, onde será cobrada uma assinatura mensal e você terá acesso instantâneo a solução. O maior desafio nesta situação é a análise da necessidade inicial do negócio, pois, a maioria dos Softwares no modelo SaaS não fornecem grande flexibilidade de adaptação a regras específicas de uma determinada linha de negócios. Como muitas empresas do segmento PME não possuem controles básicos, como Fluxo de Caixa, Controle de Estoque, Folha de Pagamento; o início da utilização de um SaaS – Software as a Service pode ser através de alguma das áreas primárias de apoio ao negócio, o que não necessita de adequações complexas.

Agora a prática:

Pesquisei e escolhi aleatoriamente uma solução para exemplificar, baseada no conteúdo texto que escrevi.

Site: http://www.salesbinder.com – Sales Binder
Solução: Controle de Estoque / Inventário no modelo SaaS
Descrição: Controle de estoque padrão – modelo tradicional – tirando proveito das vantagens da Computação em Nuvem / web. http://www.salesbinder.com/tour/online-inventory-management/ Preços: Gratuito para utilização de até 100 registros e 1 usuário. Até $99,00/mês para 100.000 registros e 50 usuários. http://www.salesbinder.com/pricing/

Com o exemplo acima percebemos que é possível gerenciar desde um pequeno estoque sem investir nada (zero) ou investindo um valor mensal baixo e acessível, um grande estoque pode ser gerenciado de maneira profissional.

Um abraço!
Antonio Ricardo

PS: Para quem é leitor eventual deste blog, lembro que meus artigos não são patrocinados e se algum for publicado mediante patrocínio, será devidamente informado.

[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 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

Gerenciamento de Cloud Computing (Private Cloud)

Como mencionei no artigo anterior, o gerenciamento de Cloud Computing para quem adota o modelo de Private Cloud (Nuvem Privada) merece atenção especial, pois, sem a aplicação de um bom modelo de gestão aliado a um software destinado a este fim, sua nuvem privada pode tornar-se um fracasso.

É necessário um conjunto de hardware e software para a criação de uma Nuvem Privada, e para que este conjunto funcione harmoniosamente, você precisará de uma solução – software – destinada ao gerenciamento de sua nuvem.  Um bom exemplo para entender como isto funciona é comparar com uma orquestra, onde existem músicos excepcionais e que dominam totalmente seus respectivos instrumentos musicais, porém, para que haja harmonia entre todos estes e seja produzida boa música e um resultado em grupo, o maestro é fundamental na condução do conjunto.

Existem vários fornecedores no mercado que entregam ótimas soluções para esta finalidade. Muitos fornecem soluções completas, onde você terá desde o modelo conceitual, hardware e software e a plataforma para fazer a gestão da sua Nuvem Privada.

Um ponto fundamental a ser destacado para quem passa a utilizar uma Nuvem Privada é basear a maior parte dos recursos oferecidos no conceito de auto-serviço (self-service), onde, o cliente pode criar seus próprios recursos, como máquinas virtuais (servidores / desktops), armazenamento etc. Este cliente pode ser um departamento de T.I. ou outro qualquer, dependendo da necessidade, e isto é definido de acordo com um modelo de gestão baseado nas necessidades dos negócios da empresa.

As duas fontes a seguir podem lhe fornecer muita informação sobre este assunto: (Obs. Os exemplos não são patrocinados, como sempre faço. Caso queira sugerir algum outro exemplo, fique a vontade. Sugestões são sempre bem-vindas!) http://www.microsoft.com/en-us/server-cloud/solutions/virtualization-private-cloud.aspx#fbid=IW3d6VZuKPD
http://www.vmware.com/br/products/vsphere/

Um grande abraço!
Antonio Ricardo