quarta-feira, 6 de maio de 2015

Alta disponibilidade em containers docker

quarta-feira, 6 de maio de 2015
Docker é realmente uma ferramenta incrível, estou construindo um cluster apache mesos de alta disponibilidade e tudo o que preciso é o docker, estou usando uma feature interessante do docker que é a possibilidade de reiniciar serviços que falham.

Em um cluster apache mesos, a idéia é abraçar a falha, o marathon da mesosphere é um framework que garante a alta disponibilidade das aplicações que estão sendo lançadas reiniciando as mesmas se por algum motivo elas caem, entretanto, quem garante a alta disponibilidade das aplicações que administram o cluster?

Neste ponto estou realmente apaixonado sobre o docker, vejam bem o teste que fiz para mostrar o seu poder.

Criei um script que simplesmente incrementa o conteúdo do arquivo e espera 10 segundos, ao rodar este script no docker fiz assim:

arquivo /ṭmp/script:
#!/bin/sh
echo $(($(cat /tmp/executou) + 1)) > /tmp/executou
sleep 10
Concedemos permissão de escrita para o script:
chmod +x /tmp/script 
Criamos o arquivo que terá o seu valor incrementado:
echo 0 > /tmp/executou
Rodamos o script usando o docker:
docker run -v /tmp:/tmp -dt ubuntu /tmp/script

Ao rodar o container, a imagem executa e logo em seguida sai, normalmente, quando olhamos o arquivo /tmp/executou, o conteudo dele agora é 1, ou seja executou 1 vez.

Agora imagine que este script na verdade seja um serviço critico sendo executado, como garantir a alta disponibilidade, reiniciando o serviço em caso de queda?

simples use a feature do docker --restart=always

docker run -v /tmp:/tmp --restart=always -dt ubuntu /tmp/script


Você verá que o script não para de ser executado, quando ele sai por ter encerrado o tempo, o docker reinicia automaticamente o serviço.

Vejam que isso ocorre mesmo se parar o docker (lógico que o container morre rsrsrs):

stop docker
start docker 

Ao iniciar o docker novamente o serviço está lá novamente, rodando, assim garante-se a alta disponibilidade dos containers em execução.

Realmente o docker é demais.

Espero que tenham gostado da dica.


Nenhum comentário :

terça-feira, 21 de abril de 2015

Cloud, o que é?

terça-feira, 21 de abril de 2015

No começo era apenas o programador e seu computador. Assim que terminava um sistema, copiava num disquete e levava no cliente para atualizar. Trabalhei muito assim quando desenvolvia em clipper, ainda bem que as coisas mudaram... Agora somos confrontados com sistemas rodando em nuvem. Mas o que tenho notado e que muitos desenvolvedores falam sobre o assunto  mas poucos realmente já trabalharam efetivamente com serviços em nuvem. E mesmo os que estão usando a nuvem ainda não estão tirando pleno proveito do que a computação em nuvem pode realmente fazer. Desta forma é necessária uma introdução aos termos usados neste novo cenário.

Vamos começar pelo primeiro nível : IaaS ou infraestrutura como serviço. Nesta categoria se encaixa provedores de serviço como amazon, digital ocean, linode.

O que eles oferecem? Disponibilizam poder computacional para que você possa executar qualquer coisa na infraestrutura deles. A amazon por exemplo tem serviços um pouco mais elaborados como balanceamento de carga, redes internas. Sendo possível construir todo um data center dento da infra estrutura deles.

O próximo nivel é o PaaS ou plataforma como serviço. Nesta categoria encontra-se o openshift, o heroku, etc...

Eles provem o serviço de execução de sistemas em nuvem abstraindo quase que completamente configurações extras. Geralmente essa categoria é destinada as pessoas que tem um aplicativo e simplesmente querem executá-lo sem se preocupar com detalhes de infra como uma configuração de máquina regras de firewall, como escalar o sistema para diversos servidores, etc...

E como último nível temos o SaaS. Que significa software como serviço. O gmail, é um exemplo típico de aplicação assim. A característica dessas aplicações é que a mesma aplicação atende diversos usuários diferentes. Aplicações assim damos o nome de multitenant.



Nenhum comentário :

segunda-feira, 20 de abril de 2015

Revivendo o blog

segunda-feira, 20 de abril de 2015

Uau como o tempo passa, o ultimo post foi em 2011 e de lá para cá muita coisa mudou. Fiquei maia velho, mais maduro e ganhei um anjinho, minha filhinha Layla nasceu. Adoeci e estou melhorando com o tempo. Foram transformações incríveis que somente mostram como o ser humano é mutável.

Na área de desenvolvimento muita coisa mudou em minha vida, agora  estou atuando como arquiteto de soluções na  CAPES.

Tem sido incrível o quanto me desenvolvi neste ambiente de trabalho incrível.

A tecnologia evoluiu muito e neste ponto estou procurando não ficar parado, desenvolvimento para cloud, integração de sistemas , micro serviços... Apenas para citar diversas frentes que estou estudando.

Com isso pretendo me comprometer mais e contribuir com a comunidade, agora teremos informações cada vez mais atualizadas sobre tecnologia.

Espero que gostem.



Nenhum comentário :