Upload
tdc-globalcode
View
106
Download
3
Embed Size (px)
Citation preview
Meu cliente não permite DevOps. E agora?
Everton Emilio Tavares
Developer
Cenário ideal
• Builds automatizados;
• Alta cobertura de testes;
• Entrega ou deploy continuo;
• Criação do ambiente automatizado;
Possíveis barreiras.
• Infraestrutura;
• Restrição de Segurança;
• Processos / Politicas;
• Implantação em terceiros;
• Falta de interesse (ou falta de conhecimento);
O que pode ser automatizado?
• Produção;
• Homologação;
• Desenvolvimento;
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;
Por que não Vagrant?
Próximos passos
Cenário
• Equipe de TI e Devs isoladas;
• Equipes aprendendo “por conta”;
• Equipes com ambiente de dev nas nuvens;
• Algumas equipes sem nenhum tipo de automatização;
• Inclusive algumas equipes sem teste automatizado;
Mudança na equipe de Ops
• Disseminar a cultura de DevOps
• Construção de uma nuvem privada;• CloudStack + Chef;
• Utilização de ambientes dev, hom e QA;
• Aproximação dos Ops dos Devs;• Equipe de Ops “circulando” entre as equipes de dev;
• Estreitar laços entre as equipes;
• Devs aprender um pouco de ops;
Mudança na equipe de Devs
• Equipe apoiando o monitoramento das aplicações;• Zabbix, NewRelic, etc...
• Definição de um responsável por apoiar as equipes em automatização;• Disseminar conhecimento entre as equipes;
• Automatizar tudo o que for possível;
• Tornar as equipes responsáveis pelas suas automatizações;
• Meta: 100% das equipes automatizadas;
Dicas
Nã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;