X

Usando Docker para escalar sua aplicação

No sábado dia 12 novembro/2016 tivemos aqui na cidade de Campo Grande um dos melhores eventos de Tecnologia da Informação do Estado de Mato Grosso do Sul.

Estamos falando do Javaneiros, com diversas palestras, confira aqui como que ficou a agenda desta edição: Link da agenda.

Uma das palestra aprovada para esta edição foi a minha (Iniciando com Docker), confesso que fiquei muito feliz pela primeira oportunidade de compartilhar o conhecimento, com diversas pessoas que estiveram presente. Segue abaixo somente 3 images do evento.

Mas vamos ao foco do post. Usando Docker para escalar sua aplicação, preparamos um repositório com um cenário além do básico em docker.

Para iniciar seus estudos com docker sugiro que você fazer uma cópia deste projeto: Link do projeto.

Segue abaixo como ficou nosso Layout.

1- Criando serviço de banco de dados MySQL (1-mysql)

  1. docker pull mysql:5.6
  2. docker build -t mysql:5.6 .
  3. docker run -d –name localhost -p 3306:3306 mysql:5.6
  4. docker exec -i localhost service mysql status
  5. docker exec -i localhost mysql -u root -pknkA9n7YnzvrDLE -h localhost cobranca < cobranca.sql 2> /dev/null

Detalhando os passos acima: Primeiramente faremos o pull da image do docker do mysql com a versão 5.6; Alteramos a image com base nas informações que estão no Dockerfile; Criamos um container e no item 6 restauramos um backup do banco de dados.

2 – Criando um cluster de serviço para app (2-tomcat)

  1. docker pull tomcat:8.5-jre8
  2. docker build -t tomcat:8.5-jre8 .
  3. docker run -d –name tomcat1 –link localhost:localhost -p 8081:8080 tomcat:8.5-jre8
  4. docker run -d –name tomcat2 –link localhost:localhost -p 8082:8080 tomcat:8.5-jre8
  5. docker run -d –name tomcat3 –link localhost:localhost -p 8083:8080 tomcat:8.5-jre8

Detalhando os passos acima: Primeiramente faremos o pull da image do docker do tomcat com a versão 8.5-jre8; Alteramos a image com base nas informações que estão no Dockerfile; Neste exemplo criamos 3 containers com a mesma app. Observe o parâmetro –link localhost:localhost que faz um link do tomcat com o serviço de bando de dados. Sempre usando o nome do Container.

3 – Criando um serviço de cache (3-varnish-cache)

  1. docker pull anspfeifer/varnish:1.0
  2. docker run -it –name varnish –link tomcat1:tomcat1 –link tomcat2:tomcat2 –link tomcat3:tomcat3 -p 6081:6081 anspfeifer/varnish:1.0
  3. docker exec -it varnish /etc/init.d/varnish restart

Detalhando os passos acima: Primeiramente faremos o pull da image do docker que preparei com base no Dockerfile. Já no segundo passo nos criamos um container para o cache, e observe novamente o parâmetro –link, mas agora neste caso estamos linkando o varnish aos 3 tomcat. Já para o ultimo passo temos que jazer um restart no serviço, para este exemplo podemos fazer de duas forma. De fora para dentro como esta no item 3, ou de dentro para fora da seguinte forma: docker exec -it varnish bash, fazendo o login como root no container e executar /etc/init.d/varnish restart.

4 – Criando um serviço de cache (4-nginx)

  1. docker pull nginx
  2. docker run -d –name nginx –link varnish:varnish -p 80:80 nginx
  3. docker cp default.conf nginx:/etc/nginx/conf.d/default.conf
  4. docker restart nginx

Detalhando os passos acima: Primeiramente faremos o pull da image do docker nginx; Criamos o serviço de proxy reverso linkando ele ao varnish; Copiamos o arquivo de config para dentro do container. E reiniciamos o container com docker restart nginx.

Para compor este cenário com 6 container docker procuramos usar algum dos principais comandos, você pode continuar seus estudos sobre esta tecnologia que esta revolucionado o mercado de TI, para lhe ajudar nesta tarefa estamos alimentando o Bizu Docker que é um ebook aberto que você pode ler e ate mesmo nos ajudar a editar. Acesse agora mesmo e bons estudos.