O que é “a nuvem” e como ela se relaciona com o desenvolvimento?

14

Eu continuo ouvindo sobre a tecnologia Cloud, embora principalmente no desenvolvimento de redes sociais, etc. Eu ouvi sobre isso hoje novamente, e agora estou muito curioso: o que é a 'Cloud' e como ela se relaciona comigo (na minha caso, eu acho) como um desenvolvedor da Web? Como eu respondo a pergunta que eu continuo sendo perguntado - "é na nuvem?" - sem dizer "o que você está pedindo é sem sentido?"

    
por mattsven 27.05.2011 / 20:53
fonte

6 respostas

31

A "nuvem" é uma palavra de ordem. Não tem definição que não inclua a palavra "Cloud". Eis como a Dell descreve sua nuvem:

Cloud computing delivers IT as a service. It might be your own private cloud accessible only within your organization, the public cloud of an external provider, or a hybrid cloud that spans both.

Ah, então a nuvem é a TI como um serviço. Certo. Eu pensei que o Geek Squad era como um serviço? Então, a nuvem é o Geek Squad, ou o Geek Squad é a nuvem? E se o Geek Squad começar a oferecer serviços em nuvem, um universo acabará com a singularidade? Não há inferno quente ou profundo o suficiente para o marketing de pessoas.

Basicamente é a progressão lógica de clusters, virtualização e conexões de internet mais rápidas. As empresas podem se especializar no fornecimento de poder de armazenamento e processamento, e você pode hospedar seu aplicativo em seu cluster e acessá-lo pela Internet. E, usando a virtualização, pode existir em um ambiente arbitrário não relacionado ao hardware físico real em que está sendo executado. Muito legal.

A capacidade de hospedar um aplicativo em equipamentos de terceiros que podem ser dimensionados de maneira transparente é muito poderosa. Você pode criar uma presença na web sem ter que comprometer em hardware. A implementação de hardware específica não importa para os desenvolvedores, então é legal também.

A razão pela qual eles chamam de "nuvem" é porque nos diagramas de rede tradicionais, a internet, o resto do mundo, a WAN, a rede e o hardware que estão além do escopo do diagrama imediato, são sempre representados como nuvem.

Apróprianaturezadanuvemcomopaísdesconhecidopersistiuatéosdiasatuaiseestánaraizdomotivopeloqualninguémpodedescreversatisfatoriamenteoqueanuvemé.Opontoprincipaléquevocênãosabeoqueé.Vocênãoprecisa.VocêapenassabequepodedarseuaplicativoparaaAmazon,IBM,ouqualqueroutroprovedor"Cloud", e eles irão hospedá-lo e faturá-lo com base no uso.

    
por 27.05.2011 / 22:35
fonte
10

Quando você ouve o termo "nuvem", é realmente um termo abstrato (ruim) que é executado a partir de:

  • Infraestrutura como serviço (IaaS) - onde você tem computação virtualizada recursos disponíveis para você através tanto um provedor remoto e um API programática. Exemplos comuns de este é o Amazon EC2 e Rackspace Nuvem. Observe, a "API programática" parte dessa descrição é o kicker - caso contrário você é apenas falando sobre hospedagem remota ou servidores privados virtuais (VPSs).
  • Plataforma como serviço (PaaS) - que é uma abstração até o camada de aplicação. Por exemplo, você como um desenvolvedor de aplicativos da Web faria construir um artefato implantável (vamos digamos .war em java ou uma gema em rubi, por exemplo) e, em seguida, implantar artefato para um provedor de PaaS. Eles leve seu aplicativo, oculte todos os detalhes de hardware e sistema operacional de você e gerenciando o dimensionamento do aplicativo para cima e para baixo com base no tráfego / taxa de transferência de seu aplicativo para você. Você como desenvolvedor estão preocupados apenas com a escrita do aplicativo em si e nada mais (que é um exagero grosseiro, mas destinado a fazer o ponto que você controla apenas o app, realmente). Exemplos são o Google App Engine ou Heroku.
  • Software como serviço - é aqui você como um desenvolvedor abandonar o controle de tudo para um terceiro com a exceção de se tornar um cliente de seus serviços. Você basicamente usa um API fornecida externamente para trabalhar com seus dados em outra pessoa ' infra-estrutura através de um conjunto de web Serviços. Provavelmente o mais popular exemplo disso é o Salesforce.

O termo "nuvem" em si é uma descrição muito pobre dessas três coisas. Em geral, quando as pessoas se referem à "computação em nuvem", o que elas estão chamando é a mudança de paradigma em que você tem fornecedores especializados onde você renuncia ao controle de algumas (ou todas) das preocupações não funcionais de seu software. e gerenciar tudo sozinho.

    
por 28.05.2011 / 20:02
fonte
1

Muito antes de "The Cloud" ser um chavão, as pessoas desenhando diagramas de rede atrairiam todos os clientes, servidores, roteadores e switches sob seu controle direto e as conexões entre eles, mas tradicionalmente desenhar uma nuvem para partes do rede eles não controlam. Para alguns exemplos, faça uma pesquisa de imagens do Google por PSTN (rede telefônica pública comutada). A nuvem representa uma coisa nebulosa que nossos fios entram e saem. Não precisamos entender como funciona porque outras pessoas cuidam disso. Apenas confiamos que os pacotes voltem para o lugar certo do outro lado. Normalmente, a Internet é desenhada como uma nuvem, porque uma vez que seus pacotes atinjam seu ISP, você confia que sabe como levá-los ao lugar certo e não se importa com os roteadores específicos pelos quais ele viaja.

"Computação em nuvem", em poucas palavras, refere-se aos serviços hospedados dentro da nuvem no diagrama de rede de sua casa ou empresa, ou seja, a Internet. O hardware não está sob seu controle direto, você apenas envia seus dados "para a nuvem" e confia no seu fornecedor para processá-los e armazená-los para que estejam disponíveis quando você precisar retirá-los. O significado da palavra da moda também implica que as coisas que estão sendo manipuladas "na nuvem" eram tradicionalmente o domínio de um computador local. Você pode ter tradicionalmente um servidor de backup, mas mudou para um serviço como o carbonite que faz seus backups "na nuvem". Você usava anteriormente o MS office na sua área de trabalho local, mas agora usa o google docs, etc.

Como desenvolvedor web, o que isso significa para você é que os clientes geralmente estão procurando maneiras de substituir serviços tradicionalmente gerenciados por computadores desktop com aplicativos da web. Ser capaz de substituir e não apenas suplementar o software de desktop pode lhe dar uma vantagem competitiva.

    
por 27.05.2011 / 23:13
fonte
1

Muitas pessoas explicaram admiravelmente o que é nuvem, então tentarei abordar o que a nuvem pode trazer para você (um desenvolvedor da Web), além de unicórnios e arco-íris dourados: (com plugues sem vergonha para nossa tecnologia)

  1. Hospedagem e dimensionamento horizontal sob demanda - Amazon EC2. Digamos que nosso site seja slashdotted ou redditted e você precise de hosts extras nos próximos dias - sem problemas. Eles podem ser trazidos para cima e para baixo sob demanda.
  2. Cobrança fina - pague somente pelo que você usa. O serviço mais barato na AWS é realmente gratuito para uso limitado! Então, tente construir seu site sem nenhum custo. Não há mais saltos para hospedagem de datacenter, etc.
  3. Você deseja criar um site que precise de um banco de dados de apoio - não há problema. Você pode usar o AWS SimpleDB para noSQL / RDS se precisar de SQL.
  4. Você quer armazenar essas imagens engraçadas de gatinhos e vinculá-las? AWS S3.
  5. Você deseja abordar um conjunto global de pessoas com baixa latência? Frente da nuvem AWS! Estes têm servidores de borda co localizados perto de seus clientes, para que eles obtenham essas imagens rapidamente!
  6. Monitoramento / relato ao vivo do uso de seus sites
  7. Você deseja um sistema distribuído para resolver um problema enorme de conjunto de dados? AWS MapReduce
  8. Você deseja enviar e-mails aos seus clientes de maneira confiável? AWS SES
  9. Você quer fazer algum processamento assíncrono como um back-end para pedidos on-line? SQS da AWS

Há muito mais no link . Confira! Obviamente, isso é tudo da AMZN, Outros como o Google têm ofertas competitivas também.

    
por 28.05.2011 / 05:15
fonte
0

O problema é que "Cloud" é um significado um pouco ambíguo (no escopo).

O mínimo que a maioria das pessoas pensa quando ouve "Cloud" é a infraestrutura virtualizada e seus benefícios:

  • elimine a redundância necessária para levar em conta a possível falha de hardware
  • o potencial para ter recursos de infraestrutura "elásticos" ou sob demanda (ou seja, girar até 10 mais vms totalmente provisionados para lidar com carga máxima ou sazonal)
  • facilidade de realocar / reatribuir / descomissionar recursos
  • facilidade de replicar ambientes
  • capacidade de "capturar instantaneamente" e "reverter" recursos de infraestrutura virtualizada e, em alguns casos, ambientes inteiros

A propósito, você nem sempre consegue tudo na lista, e mesmo que você o faça, pode não ser 100%. Você pode pesquisar no Google o que aconteceu com "AWS US East Outage" para um exemplo do mundo real.

Às vezes, as pessoas também adicionarão outros serviços como parte da "Nuvem", como Banco de Dados, Registro em Log, e qualquer outro serviço que cubra o espaço entre "infraestrutura" e "aplicativo".

Algumas pessoas também usam "Cloud" como sinônimo de "virtual". Às vezes as pessoas também usam isso para significar "Software e plataforma como serviço".

    
por 28.05.2011 / 06:00
fonte
0

Cloud é apenas outra palavra para a internet. Está se tornando mais burburinho agora, à medida que a Internet amadurece o suficiente para as organizações confiarem nela para importantes serviços de software, por isso continuamos ouvindo sobre coisas como SAAS.

    
por 28.05.2011 / 13:38
fonte