Persistindo dados – Flocker
Hoje vamos abordar mais uma forma de como você pode persistir os dados de sua aplicação, garantindo maior disponibilidade para seu ambiente.
Olá!
Hoje vamos abordar mais uma forma de como você pode persistir os dados de sua aplicação, garantindo maior disponibilidade para seu ambiente. Hoje o assunto é sobre o Flocker.
A proposta do Flocker é muito parecida com as demais soluções para sistema de arquivos distribuídos. A grande diferença está no foco que a ClusterHQ (desenvolvedora da solução) está dando para o projeto, pois o objetivo tem sido tornar o Flocker cada vez mais especializado em Docker, ou seja, o objetivo do Flocker não é atender a qualquer tipo de problema, mas sim, atender muito bem uma das deficiências que há no Docker , que é a persistência de dados – tanto que o Flocker em si já é um plugin de volumes oficial do Docker.
Veja abaixo uma imagem que ilustra muito bem o que o Flocker se propõem a atender:
Atualmente, quando você instancia um container em outro host, você precisa cuidar para que o volume de onde está sua aplicação também tenha mapeamento nesse novo host. O, o objetivo do Flocker é abstrair esse tipo de preocupação e garantir que quando um container for movido de um lado para o outro, os dados que estavam mapeados nele também acompanhem esse movimento.
Veja abaixo como é a arquitetura dessa plugin:
Note que, diferentemente do GlusterFS, você precisa ter um ambiente mais complexo, envolvendo basicamente 3 camadas: Flocker Plugin, que é responsável pela comunicação entre o Docker e o Flocker; Flocker Conrol, responsável pelo monitoramento dos volumes, e controle sob o funcionamento do ambiente; Flocker Agent, responsável por executar as ações de criação, remoção e demais ações do Flocker no host que faz parte do ambiente.
Novamente, e o Docker?
Como já falamos em artigos anteriores, a intenção não é mostrar a vocês como realizar a instalação e configuração do cluster de Flocker, mas, sim, seu uso final, juntamente com o Docker. Talvez, daqui a pouco possamos montar um material com isso.
Mãos na massa:
Primeiro vamos criar o volume Docker utilizando o plugin do Flocker, para isso:
$ docker volume create --name volume-1 -d flocker
Agora basta mapear esse volume criado aos containers que desejar:
$ docker run -v volume-1:/data -it centos /bin/bash
Basta criar algum arquivo ou pasta no diretório /data do container e essa informação será salva no volume Flocker que você criou, para ter certeza de que o dado estará nesse volume. Crie outro container mapeando esse volume e você verá que no /data desse novo container estará o arquivo/pasta que você criou no primeiro.
Fácil, né? O mais interessante no Flocker é que você não perde os dados caso dê algum problema no host. O volume será criado no cluster Flocker que você montou, e isso é o que garante a disponibilidade da informação.
Abraço!









