Cloud

Rapida comparação de preços de máquinas virtuais cloud nas principais empresas – maquinas minimas.

Comparar somente os preços pode ser uma armadilha para algumas aplicações. Há diversas diferenças entre cada empresa. A DigitalOcean cobra o mês cheio. A Amazon e o Google por Hora mas cada tem um tempo minimo de uso diferente. IP Fixo pode ser cobrado em um e outro não assim como direcionamento DNS.

Alguns tem disponibilidade total da CPU outros por burst somente. Isso quer dizer que você não poderá rodar uma aplicação contínua com muita eficiência em máquinas burst pois elas disponibilizam um ‘quantum’ de CPU por segundo e se passar o crédito somente no próximo segundo.

Há diferenças de memória, armazenamento e tipo de armazenamento. O local da infraestrutura também é importante devido ao custo de rede e tempo de acesso.

Mas se é somente para um site simples, uma aplicação para poucos usuários, armazenamento de menos de 50G, ou mesmo para aprendizado aproveite as opções de uso Free Tier ou mais barato e viva feliz.

Veja que se for uma aplicação que começa pequena mas um dia poderá crescer é bom escolher uma empresa que facilite o escalonamento. Imagine que você começa com uma máquina simples e seu produto ou site da certo e precisa de mais CPU e Memória? Simplesmente mudar para um tipo de máquina mais potente iria facilitar muito.

Atenção: Este mercado é competitivo e sempre há novidades. Talvez este post fique desatualizado rapidamente.

Como imagens dizem mais que palavras seguem os screenshots das máquinas virtuais minimas da Google, Amazon, Microsoft e DigitalOcean.

Vamos as imagens:

 

Google

O google oferece créditos de uso de $ 300,00 e isso permite rodar por exemplo uma máquina para machine learn com GPUs por um mês ( e se esquecer ligada falir seu bolso ). Também tem descontos para quem usar continuamente a máquina. 

Google

 

Microsoft

Máquinas Linux são mais baratas. Uma vantagem que vi na Microsoft são máquinas mais potentes pelo mesmo preço e um site mais intuitivo de usar. Mas nunca usei para dizer algo mais.

azure

Amazon

A queridinha do mercado tem um programa de uso livre (Free Tier) por um ANO em máquinas t1-nano. Acredite é gratuito mesmo. Máquinas no Oregon são mais em conta porém tem ping lento para nós (obviamente) e em São Paulo o preço é ligeiramente maior porém com a vantagem do acesso local mais rápido.

aws-oregon

aws-sãopaulo.png

DigitalOcean

Antes era o preço mais em conta porém a Amazon baixou os preços e ficaram iguais. Agora com Google e Azure a DigitalOcean ficou ali no meio dos grandes. O que gosto é do painel de uso muito mais fácil de usar que a Amazon e o Google. Porém você será cobrado mesmo com o servidor desligado. A DigitalOcean tem um programa de affiliados simples para quem quer ganhar créditos indicando seus produtos. Por isso você encontrará sites falando muito bem dela por ai!

digitaocean.png

Docker – roubando a cena

docker-logo-loggedout
Docker ultimamente é o nome da vez. Provavelmente o nome de 2015.

Não vou me aprofundar em explicar o que ele é então basicamente o Docker é um daemon no Linux que permite aplicações dentro de um container (entenda Sandy Box) protegido dos demais containers e obviamente do sistema hospedeiro.

No Arch Linux para instalar ele use o pacman

pacman -S docker

e logo sem seguida habilite o daemon

sudo systemctl enable docker

e inicie-o

sudo systemctl start docker

Descobrindo o que é por exemplos:

Imagine que você queira rodar uma imagem Ubuntu no console do Arch Linux você apelaria para o VirtualBox. O docker evita todo este overhead e facilita a instalação veja como é fácil:

[fabio@15:31 ~]$ docker run -t -i ubuntu:12.04 /bin/bash


Unable to find image 'ubuntu:12.04' locally
ubuntu:12.04: The image you are pulling has been verified

511136ea3c5a: Pull complete 
3e620b0cd0e1: Pull complete 
9cd5c1770233: Pull complete 
aa1f17efe798: Pull complete 
3e09053df658: Pull complete 
Status: Downloaded newer image for ubuntu:12.04

Neste comando pedimos ao docker recém instalado rodar uma imagem ubuntu no repositório de nome ‘ubuntu:12.04’.

Como é uma primeira instalação você provavelmente não terá a imagem em seu computador. Então ele irá automaticamente baixar o arquivo necessário e logo irá rodar o /bin/bash como passado na linha de comando.

Então a linha de comando do novo linux rodando (dentro do linux hospedeiro) será visto dessa forma:

root@a2babec10ee4:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var
root@a2babec10ee4:/# ps
 PID TTY TIME CMD
 1 ? 00:00:00 bash
 11 ? 00:00:00 ps
root@a2babec10ee4:/# clear

Neste caso o root@a2babec10ee4 é nossa linha de comando e o a2babec10ee4 é o identificador do container. É um linux rodando! Não há segredo. Use, então, o Apt-get para instalar programas úteis como servidores, compiladores.

Para sair deste console use CTRL+P+Q. Ao sair o container é colocado em modo Stop.

Para voltar primeiro descubra novamente suas imagens (provavelmente você não anotou este código):

[fabio@17:11 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2babec10ee4 ubuntu:12.04 "/bin/bash" About an hour ago Up About an hour loving_darwin

Para voltar a rodar este container use:

 docker attach a2babec10ee4

Se você acha que eles devem usar alguma forma melhor de nomear estes containers estou com você.

Isso tudo parece o Screen não é mesmo? Mas é diferente. No screen você roda uma aplicação em outro console mas no mesmo sistema operacional com todos os privilégios e acessos do usuário. No Docker uma caixa protegida contém tudo que precisamos sem acesso externo mas somente dos recursos de hardware da máquina e aqui esta a sacada: das bibliotecas e binários do sistema operacional mas de forma protegida.