GenCloud - Uma abordagem para disponibilização

de sistemas web baseado em contêineres em um
ambiente de nuvem híbrida

Autor: João Victor Uchôa Vaz
Orientador: Vinicius Cardoso Garcia
Introdução
● Docker

● Devops

● Softwares de Apoio
Fundamentação e Justificativa
Metodologia Ágil
● Indivíduos e interações

● Software funcional

● Colaboração do cliente

● Resposta à mudanças
Práticas Comuns
● Scrum

● eXtreme Programming
DevOps

Desenvolvimento vs Operações
Principais problemas

1. Operações de TI que não estejam envolvidas na especificação de requisitos
2. Má comunicação e fluxo de informação
3. Ambientes de teste insatisfatórios
4. Falta de transferência de conhecimento
5. Sistemas sendo colocados em produção antes de estarem completos
6. Rotinas operacionais não sendo estabelecidas antes da implantação
Princípios

● systems thinking

● loops dos feedbacks

● Cultura da experimentação contínua
Práticas DevOps
● Continuous Deployment, ou Implantação Contínua

● Continuous Delivery, ou Entrega Contínua

● Continuous Integration, ou Integração Contínua
Contêineres
Docker
● Dockerfile

● Docker Images

● Docker Registry

● Docker Compose
Provisionamento, Gerenciamento de
Configurações e Orquestramento de
Contêineres
Ferramenta de provisionamento

● Terraform
Ferramenta gerenciadora de configurações

● Rancher
Ferramenta orquestradora de contêiner

● Cattle
Uso das ferramentas

API
Terraform + Rancher + Cattle
Projeto GenCloud
Modelo Atual
● Desenvolvedores vs Infraestrutura

● Máquina Virtual

● Instalação manual dos pacotes

● Deploy Manual

● Maior Downtime
GenCloud

● Terraform + Rancher + Cattle
● Desenvolvedores + Infraestrutura
● Infraestrutura por códigos
● Instalação automática de pacotes
● Deploy automático
● Menor Downtime
Técnica e métricas
Técnica da Simulação

● Velocidade da criação do ambiente virtual

● Disponibilidade do sistema GenSoft
Infraestrutura utilizada
Análise
● Teste da velocidade da criação do ambiente virtual
○ ‘docker build -t “dockerregistry.genomika.com/ubuntugenomika:14.04” .’
○ ‘docker build -t “dockerregistry.genomika.com/gensoft:base’ .’
○ Tf = T1 + T2

● Teste da disponibilidade do sistema GenSoft
○ Terraform Plan
○ Terraform Apply
○ Tf = T1 + T2
Resultados
● Teste da velocidade da criação do ambiente virtual

● Teste da disponibilidade do sistema GenSoft
Considerações
● Automação da maior parte dos processos de deploy de sistemas web,
incluindo o GenSoft.
● Menor downtime dos sistemas.
● O encapsulamento das aplicações e a mobilidade entre ambientes
computacionais distintos.
● Relacionamento mais “saudável” entre as equipes de operações e de
desenvolvimento
Conclusões
Obrigado !