Por que Cloud Computing é a solução para Startups?

O cenário cotidiano vivenciado por uma startup é restritivo e incerto. Dadas as características inovadoras dos produtos e serviços inerentes à essa categoria de empresa, constrói-se um negócio num ambiente de riscos e incertezas que poucos investidores estão dispostos a patrocinar e poucos empreendedores estão capacitados para superar.

Já há alguns anos os gestores têm percebido a necessidade das empresas, independente do ramo ou setor, em possuir uma estrutura computacional e de sistemas de informação que promova um diferencial competitivo através de agilidade, organização e eficácia de seus processos organizacionais e operacionais. Quando falamos de empresas de tecnologia ou internet, essa necessidade se torna ainda mais vital.

Imagem via Shutterstock

Imagem via Shutterstock

Computação em Nuvem

A computação em nuvem surgiu recentemente como uma palavra da moda na comunidade de computação distribuída. Embora muitas definições formais tenham sido propostas na academia e na indústria, a fornecida pela US NIST (National Institute of Standards and Technology) parece incluir os elementos comuns fundamentais mais amplamente utilizados na comunidade:

A computação em nuvem é um modelo para permitir o acesso conveniente e sob demanda à um pool compartilhado de recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e liberados com um esforço mínimo de gerenciamento ou interação com o provedor de serviços. (MELL e GRANCE, 2009)

Esta definição é acompanhada por cinco elementos essenciais da computação em nuvem, que são claramente articulados:

1) On-demand self-service: um consumidor com uma necessidade instantânea em um intervalo de tempo determinado pode aproveitar recursos de computação (tais como tempo de CPU, armazenamento de rede, licenças de uso de software, e assim por diante) de maneira automática, sem recorrer a interações humanas com os prestadores desses recursos.

2) Amplo acesso à rede: Estes recursos computacionais são entregues através da rede (por exemplo, Internet, rede interna) e utilizados por várias aplicações clientes com plataformas heterogêneas (como telefones celulares, laptops e PDAs) situado nas instalações do consumidor.

3) Pooling de recursos. Recursos de computação em nuvem de um provedor de serviços são organizados em pools, num esforço para atender a vários consumidores usando o modelo de locação ou de virtualização, com diferentes recursos físicos e virtuais atribuídos e realocados dinamicamente de acordo com a demanda do consumidor. A motivação para a criação de tal paradigma de computação baseado em pool reside em dois fatores importantes: economia de escala e especialização. Os benefícios de um modelo com essa base está em os recursos de computação físicos se tornarem “invisíveis” para os consumidores, que em geral não têm controle ou conhecimento sobre a localização, formação e características destes recursos (banco de dados, CPU, etc).

4) Elasticidade rápida: para os consumidores, os recursos de computação devem ser imediatos, ao invés de persistentes. Não existem contratos e compromissos antecipados, pois eles podem ser escalados sempre que necessário (por exemplo, para suprir um momento de pico) e liberados uma vez terminado o uso.

5) Serviço Medido: embora os recursos de computação sejam reunidos e partilhados por vários consumidores (ou seja, multi-locação), a infraestrutura de nuvem é capaz de usar os mecanismos apropriados para medir o uso desses recursos para cada um dos consumidores através de suas capacidades de medição.

Além dessas cinco características essenciais, os provedores utilizam uma categorização quanto ao modelo do serviço prestado.

Software as a Service (SaaS) é uma categoria onde os consumidores carregam seus aplicativos em um ambiente de hospedagem e podem ser acessados por diversos dispositivos como desktops, celulares, tablets, etc. Os provedores do aplicativo não têm controle sobre a infra-estrutura na nuvem, que muitas vezes emprega uma arquitetura de sistema multi-locação, ou seja, aplicações de diferentes consumidores são organizadas em um único ambiente lógico SaaS para obter economias de escala e otimização em termos de velocidade, segurança, disponibilidade, recuperação de desastres e manutenção. Exemplos de SaaS incluem SalesForce.com, Google Mail, Google Docs, e assim por diante.

Já o modelo Platform as a Service (PaaS) é uma plataforma de desenvolvimento que suporta todo o ciclo de vida do software e permite que os consumidores desenvolvam serviços e aplicações (inclusive aplicações SaaS) diretamente na nuvem.

A diferença entre esses modelos está em o SaaS somente prover a aplicação pronta para ser utilizada enquanto o PaaS oferece uma plataforma de desenvolvimento que hospeda uma aplicação mais genérica, mais “baixo nível”, de forma a possibilitar maior controle e possibilidade de customização. Isso requer que o PaaS, além de prover o ambiente do aplicativo de hospedagem, possua uma infra-estrutura de desenvolvimento, incluindo o ambiente de programação, ferramentas de gerenciamento de configuração, e assim por diante. Um exemplo desse modelo é o Google AppEngine.

Infrastructure as a Service (IaaS) é quando os consumidores usam diretamente a infraestrutura da nuvem, como processamento, armazenamento, redes, e outros recursos de computação fundamentais. A virtualização é amplamente utilizada em IaaS para integrar/decompor recursos físicos de maneira ad-hoc, de forma a atender à uma demanda de recursos que é dinâmica.

A estratégia básica da virtualização é a criação de máquinas virtuais independentes (VM) que são isoladas tanto do hardware quanto das outras VMs subjacentes. Nota-se que esta estratégia é diferente do modelo de multi-locação, que visa transformar a arquitetura de software para que várias instâncias (de vários consumidores da nuvem) possam ser executadas em uma única máquina lógica. Um exemplo de IaaS é EC2 da Amazon.

Por fim, o Data storage as a Service (DaaS) compreende a provisão de armazenamento virtualizado de dados na nuvem. É razoável dizer que o DaaS é um tipo especial de IaaS, mas merece uma atenção especial pela crescente demanda em sua comercialização. A motivação por adquirir esse tipo de serviço está em os sistemas de bancos de dados corporativos em servidores dedicados estarem muitas vezes amarrados a um custo inicial de aquisição, licenças de software, serviços associados e custos de manutenção exorbitantes.

O DaaS permite que os consumidores paguem aquilo que estão realmente usando, em vez de uma licença para todo o banco de dados. Além de interfaces de armazenamento tradicionais, como RDBMS e sistemas de arquivos, alguns serviços DaaS fornecem abstrações estilo tabela que são projetadas para armazenar e recuperar uma grande quantidade de dados dentro de um curto espaço de tempo, o que é muito grande, muito caro ou muito lento para a maioria dos RDBMS comerciais. Exemplos deste tipo de serviço incluem Amazon S3, Google BigTable e Apache HBase.

Vantagens sobre as Implementações Convencionais

Há três casos de uso particularmente atraentes que favorecem a utilização da computação em nuvem sobre a hospedagem convencional. Um primeiro caso é quando a procura por um serviço varia com o tempo. Uma startup do ramo financeiro, por exemplo, pode oferecer um serviço cujo uso massivo aconteça no 5º dia útil do mês. O provisionamento de um Data Center para sustentar um pico de carga alguns dias por mês acarreta na subutilização de toda essa infraestrutura no restante do mês.

Um segundo caso é quando a demanda não é conhecida com antecedência. Por estar em um cenário de extrema incerteza, uma startup poderá permanecer no anonimato durante dias ou meses, mas terá de estar preparada para suportar um crescimento explosivo, fruto por exemplo, da viralização de seu conteúdo. Não haveria nada mais frustrante para um empreendedor do que conquistar uma grande audiência e depois de todo o trabalho não ser capaz de supri-la por falta de uma infraestrutura que a suporte.

Finalmente, as organizações que realizam grandes processamentos em lote podem usar o custo associativo da computação em nuvem para concluir suas tarefas mais rápido: 1000 máquinas virtuais por uma hora podem atingir um desempenho semelhante a uma máquina por 1000 horas.

Alguns, erroneamente, acusam a computação em nuvem de apenas converter as despesas de capital em despesas operacionais, porém, o conceito “pague somente o que usar” captura mais diretamente o benefício econômico para os que a utilizam. Além disso, a ausência de despesas de capital up-front permite que esse montante seja direcionado de forma mais eficiente, seja para um diferencial competitivo, marketing ou para o core business. Dada a escassez de capital vivida pela maioria das empresas nascentes, fica clara mais uma vez a vantagem sobre o modelo de infraestrutura convencional.

Além do supracitado, a computação em nuvem permite que uma organização pague por hora por seus recursos computacionais e não precise se preocupar com custos de manutenção, depreciação, upgrades, renovação do parque ou mão de obra técnica especializada. Tudo isso pode levar à redução de custos mesmo que a tarifa para “alugar uma máquina” a partir de um provedor de nuvem seja maior do que a taxa para adquiri-la.

Conclusão

Tendo isso em vista, entende-se que a Computação em Nuvem é uma solução, no que tange a infraestrutura computacional da empresa, mais aderente às necessidades e peculiaridades de uma startup do que os modelos convencionais (por aquisição ou aluguel de estrutura física).

Em primeiro lugar, pelas características de elasticidade rápida e sob demanda do serviço. A startup geralmente inicia sua operação de forma experimental, ou seja, um montante de testes é feito até encontrar um modelo de negócio ideal. Uma vez terminada essa fase, é necessário estar preparado para a escalabilidade do serviço prestado, e as soluções na Nuvem suprem esse quesito de forma transparente e com esforço mínimo.

Um segundo argumento está na heterogeneidade da solução técnica. Ao contratar um serviço na nuvem, o usuário pode optar por uma série de modelos de serviços como SaaS, Paas, escolhendo o que melhor supre sua necessidade. Uma vez que se contrata o serviço, também estão abstraídos os fatores de compatibilidade de hardware, suporte, licenças, etc.

Em terceiro lugar está o fator humano da operação do serviço. Como a startup é uma empresa nascente, contará inicialmente com um corpo de funcionários reduzido. O principal enfoque da empresa deve estar em seu core business, enquanto trabalhos marginais devem ser, de preferência, delegados a outros. Com a estrutura “na mão” da empresa, é necessário deslocar um recurso para manutenção e operacionalização desse parque.

Por último, mas talvez o mais importante, está o fator financeiro. Mediante a dados estáticos e devido aos fatores de risco já citados, sabe-se que a grande maioria das startups não se perpetuará. Tendo isso em vista, os empreendedores devem gerir o capital inicial da empresa com austeridade. Por que investir em servidores e data centers num negócio que, muito provavelmente, irá à falência em alguns meses? Assim, os modelos de cobrança e precificação de serviços na Nuvem por hora de uso mais uma vez se adequam e trazem a economia e dinamismo que as startups tanto precisam, deixando mais uma vez evidente os ganhos de sua utilização sobre os demais modelos.

Rodrigo Silva Pinto

Mais artigos deste autor »

Atuando com densenvolvimento de software a mais de 10 anos, nas funções programador, líder técnico e gestor. Áreas de interesse vão de estratégias empresariais e governança de TI à gerência de projetos e linguagem de programação. Atualmente cursando mestrado em Engenharia de Produção (enfoque em Lean & Agile) e trabalhando como coach de times ágeis.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!