meu cliente não permite devops. e agora?
TRANSCRIPT
Meu cliente não permite DevOps. E agora?
Everton Emilio TavaresDeveloper
O que pode ser automatizado?
• Produção;•Homologação;•Desenvolvimento;
Possíveis barreiras para Entrega Continua.
• Infraestrutura;• Restrição de Segurança;• Processos / Politicas;• Implantação em terceiros;• Falta de interesse (ou falta de conhecimento);
Nossas Barreiras...
• Servidor interno;• Produção;• Homologação;
• Restrições de segurança;
... e nossa infra
• Servidor Central• WebLogic;• Banco de Dados – Oracle;
• Servidor Filial• Weblogic:
• Fila de Sincronização;• Fila de tratamento de erros;
• Banco de Dados – Mysql• 3 instâncias: Gravação, Leitura, Leitura – Espelho;• Com configurações específicas;
Problemas com desenvolvimento• Conexão com o cliente
instável (VPN);• Banco de Dados
concorrente;• Tempo para configuração
de ambiente;• Manter histórico de
atualizações do Banco de Dados;
Solução:
•Docker• 2 Weblogic;• Oracle;• Mysql;
• Flyway:• Banco Mysql (legado);• Banco Oracle;
O que foi automatizado:
•Weblogic (central e filial)• Filas JMS;• DataSources;
•Oracle• Migrations;
•Mysql• Migrations (apenas tabelas relevantes);• Dados de teste;
• Jenkins• Integração continua;
O que ganhamos?
• Acabou problema com VPN;• Tempo de configuração de ambiente caiu;• Cliente adotou as migrations;• Configuração do Weblogic ficou documentada (Python);•Outras aplicações do mesmo cliente adotaram o Docker;• Cliente tem a infra configurada caso desejar adotar adotar;
DicasNão apanhe como a gente apanhou...
Organização
Fragmentação Flyway
• 1__estrutura_inicial.sql• 2__enderecos_funcionarios.sql• 3__financeiro.sql• 4__compras.sql
Fragmentação Flyway
• 1_1_1__estrutura_funcionarios.sql• 1_1_2__dados_funcionarios.sql• 1_2_1__estrutura_funcionario_endereco.sql• 1_2_2__dados_funcionario_endereco.sql• 1_3_1__estrutura_financeiro_contas.sql• 1_3_2__dados_financeiro_contas.sql• 1_4_1__nova_coluna_cep_funcionario_endereco.sql• 1_4_2__dados_cep_funcionario_endereco.sql
Docker compose
•Disponível no Windows a partir da versão 1.9.0-rc3 (30/10/2015);• Facilita levantar as maquinas em conjunto;• Antes o projeto usava um arquivo .sh;