Servidores Físicos

Durante o começo da internet e a disponibilização dos servidores online, as máquinas de uso pessoal passaram a ser utilizadas com propósito exclusivo de hospedar uma aplicação que seria utilizada por diversos usuários através da rede. Essas máquinas, denominadas servidores, estiveram e estão presentes desde os primórdios da computação.

Cloud Computing

Com a popularização da internet, a quantidade de pessoas utilizando serviços online aumentou consideravelmente, exigindo servidores cada vez mais potentes para suprir a demanda dos usuários. Porém, essa demanda adicional não é contínua ao longo da vida útil de uma aplicação. Sites de eCommerce, por exemplo, possuem picos de demanda em épocas específicas do ano, e reduzindo a patamares menores durante o resto do ano. Com isso em vista, em 2006, a Amazon lançou o Amazon Web Service, pioneiro na computação em nuvem. Seu objetivo era otimizar a utilização dos recursos computacionais que em várias épocas do ano ficariam ociosos. Nos anos seguintes, diversas outras soluções de cloud passaram a ser desenvolvidas por empresas e organizações, uma delas sendo o OpenCloud.

Infrasctructure-as-a-Service

Os serviços online são divididos em três grandes paradigmas. Software-as-a-Service (SaaS), Plataform-as-a-Service (PaaS) e Infrastructure-as-a-service (IaaS). Nas soluções SaaS, a empresa que fornece o serviço do software é responsável tanto pelo desenvolvimento do software disponibilizado quanto pela infra-estrutura. A plataforma PaaS oferece um nível acima de desenvolvimento. Enquanto uma empresa continua fornecendo a estrutura física e a estrutura lógica do sistema, o fornecedor do software contrata esses recursos e é responsável apenas pelo desenvolvimento da aplicação, sem a necessidade de possuir os servidores que disponibilizam a aplicação. Já no IaaS, a empresa responsável pelo software além de ser responsável pela aplicação, também é responsável pela alocação dos recursos, sendo possível flexibilizar de acordo com a demanda apresentada. Também passa a ser responsável pela infra-estrutura de software que a aplicação irá utilizar.