Desenvolver de Forma Eficiente e com Segurança
Use essas melhores práticas para garantir que seu processo de desenvolvimento seja eficiente e seguro.
Usar Controle Restrito de Ambiente e Código de Origem
O uso intenso e restrito de ambientes separados e o controle do código de origem é essencial para um processo de desenvolvimento limpo e seguro:
Muitos clientes usam pelo menos dois e com frequência três ou mais ambientes separados. Os ambientes de desenvolvimento, teste, preparação e produção são típicos. Use um controle estrito sobre a promoção do ambiente para o ambiente.
O sistema de controle de origem deve garantir a consistência dos artefatos:
- Metadados para criação de tabelas
- Dados de amostra e origem
- Código ETL
- Versões e níveis de patch do PaaS
Considere um "supervisor de metadados" que controle a evolução dos metadados e garanta que todos os desenvolvedores usem as mesmas definições. Além disso, considere designar um "gerenciador de release" que controla quando os artefatos são importados para qualquer ambiente diferente do ambiente de desenvolvimento, e que sabe todas as vezes que estão usando quais ambientes para a finalidade.
Os ambientes dedicados têm diversos benefícios. Além de um ambiente de produção, considere ambientes de desenvolvimento, teste e desempenho. Esses ambientes podem ser escalados conforme necessário.
Em um ambiente dev:
- Todas as alterações feitas no código, mesmo aquelas secundárias, serão desenvolvidas.
- Testes de unidade (usando dados de amostra – geralmente um subconjunto de dados reais para execuções mais rápidas) são executados.
- O código que está pronto para promoção deve ser identificado como tal. Você pode implementar processos para revisar e promover automaticamente o código para um ambiente de teste ou produção.
Em um ambiente QA:
- Consolidação das alterações feitas no dev (somente alterações validadas para promoção).
- Validação da consistência de alteração (usando os mesmos metadados, orquestração consistente, etc.) e o código é executado corretamente.
- Não são permitidas alterações de código.
Um ambiente adicional usado para testes de desempenho pode ser vantajoso. Em um ambiente de desempenho:
- Estabelecer uma linha de base para o desempenho do código.
- Alterações de código limitadas permitidas somente por uma equipe de desempenho, para validar os aprimoramentos de desempenho.
- Identifique gargalos, investigue e reporte as alterações necessárias para que elas possam ser implementadas no Desenvolvimento.
- Continue a monitorar o desempenho com todos os códigos certificados pela equipe de QA para identificar problemas de incidentes e endereços de desempenho.
Observe que é importante continuar a monitorar o desempenho no ambiente de produção. A degradação do desempenho às vezes é uma advertência de uma degradação do ambiente. Especificamente, a Oracle recomenda controlar os planos de execução usando o SPM (SQL Plan Management). As alterações do plano de execução na produção podem causar falhas, e os carregamentos de tabelas causam riscos de alteração do plano de execução.
Automatizar Tarefas de Administração
As tarefas administrativas manuais demoram e adicionam risco:
- A redefinição manual do ambiente para repetir uma carga (devido a um erro de código, bug de produto, alteração do código etc) depende dos desenvolvedores que executam as instruções SQL manualmente.
- Os processos manuais são propensos a erros e podem atrasar a próxima tentativa.
- Os processos manuais estão lentos: os desenvolvedores precisam ter cuidado com o que estão fazendo e perder muito tempo para verificar se realizaram o problema certo.
- Os erros são custeados: a necessidade de corrigir os erros (possivelmente recarregando dados apagados) pode atrasar o trabalho de desenvolvimento.
- O Onboarding de novos desenvolvedores é mais lento e induze mais risco porque eles devem ser treinados para seguir os processos manuais.
As tarefas administrativas devem ser totalmente automatizadas para que os desenvolvedores possam apenas definir alguns parâmetros e executar um job que já esteja validado para executar as tarefas corretas cada vez.
Considere automatizar as seguintes tarefas:
- Redefinir dados do ambiente, variáveis e parâmetros para permitir a nova tentativa de um carregamento.
- Reconstruir ambientes: ferramentas e patches PaaS quando necessário, metadados, dados, código PaaS. Isso deve incluir a capacidade de executar um carregamento inicial do ambiente de destino.
- Expurgar logs e relatórios de cenário do Oracle Data Integrator (que melhora o desempenho): a ferramenta
OdiPurgeLogdisponível em pacotes pode ser usada para criar cenários dedicados e programar expurgações. - Limpa as tabelas intermediárias que foram usadas para cargas que foram bem-sucedidas.
- Limpe ou redesenha arquivos que foram carregados com êxito.
- Ao aplicar patches, use instalações silenciosas (registrar processo de aplicação de patches em um ambiente de desenvolvimento e depois repetir em outros ambientes).
Gerenciar Patches
A aplicação de patches é importante manter seus sistemas atualizados com as correções de segurança e de bug mais recentes, mas uma regimen de aplicação de patches gerenciada por ponto pode criar vulnerabilidades e causar eventos de inatividade inesperados.
A Oracle recomenda:
- Valide quem em sua organização receberá e responda aos alertas do Oracle sobre patch.
- Documente o nível de aplicação de patches de todos os seus ambientes. Observe que alguns serviços têm patches e foram atualizados automaticamente pelo Oracle, mas talvez você precise aplicar patches em serviços não ativos manualmente e especialmente em qualquer instância local.
- Definir janelas de patch. Para aplicação de patch manual, identifique janelas de tempo que sejam menos interrupções para seus usuários.
Acompanhar Melhores Práticas da Conta do Usuário
Siga as melhores práticas com contas de usuário para garantir a segurança de seus dados, ambientes e integrações.
Cada desenvolvedor deve ter sua própria conta de usuário do Oracle Data Integrator, mesmo que receba privilégios de supervisor. Não compartilhe contas. As contas de usuários separadas melhoram a comunicação e garantem a responsabilidade:
- Os objetos bloqueados mostrarão quem está editando o objeto.
- As últimas atualizações mostrarão quem modificou pela última vez um objeto e quando.
Quando o Oracle Data Integrator precisa acessar um banco de dados:
- Crie um usuário de banco de dados dedicado especificamente para o Oracle Data Integrator. Não reutilize uma conta de usuário individual ou uma conta usada por outro serviço.
- O usuário do Oracle Data Integrator deve ser o proprietário do esquema de teste (usado para executar operações de criação, eliminação, inserção, atualização e exclusão).
- O usuário do Oracle Data Integrator deve ter privilégios limitados ao uso real de outros esquemas (selecionar, inserir, atualizar e deletar).
Usar Utilitários Proven
Algumas ferramentas funcionam melhor que outras pessoas: acreditam com as comprovadas que trabalham em seu ambiente e documentam o padrão para que os novos membros da equipe saibam o que usar.
Por exemplo:
- Geração de chave: Existem vários formatos para chaves. Certifique-se de documentar o formato de chave correto que os desenvolvedores devem usar (por exemplo, você pode exigir o uso do formato RSA e proibir o formato OpenSSH).
- Utilitários ZIP: Nem todo o conteúdo é compactado da mesma forma por diferentes utilitários. Certifique-se de ter controle sobre o algoritmo de compactação usado para compactar arquivos. A Oracle recomenda o uso do 7Zip.