Ambiente de preparação do banco de dados para pessoal que não é de TI

10

Estou no processo de propor um ambiente de preparação de banco de dados ao meu departamento de TI. A idéia é que uma pessoa que não seja de TI como eu (analista de dados de obras públicas) teria um lugar para testar soluções e, em seguida, implementá-las no ambiente ao vivo ou pedir à TI para implementá-las, se necessário. Existem algumas razões / cenários em que esse ambiente seria benéfico:

  1. Eu tenho alguns privilégios de banco de dados básicos em nosso ambiente de banco de dados ao vivo ( create table, create view, etc.). Eu faço alterações de esquema cerca de uma vez por semana, mas me parece insano testar e implementar essas alterações em um ambiente ativo. Existem inúmeras dependências no banco de dados; portanto, se algo der errado, pode ser desastroso. Prefiro testar as coisas com antecedência em um ambiente separado.
  2. Eu não tenho alguns dos privilégios mais avançadas como create triggerou create functionno banco de dados ao vivo. Isso é bom, mas tenho alguns problemas que poderiam ser resolvidos por gatilhos e / ou funções. Planejo propor que sejam concedidas essas permissões no ambiente de preparação para que eu possa desenvolver e testar algumas idéias e, se elas funcionarem, proponho que a TI as implemente no ambiente ativo.
  3. Em geral, meu departamento de TI não tem tempo ou recursos para desenvolver soluções para mim. É realmente assim tão simples. Portanto, se eu mesmo puder fazer o trabalho braçal, é muito mais provável que meus problemas sejam resolvidos.

O 'ambiente de preparação para o pessoal que não é de TI' parece uma abordagem suficientemente sólida para mim, mas, para ser sincero, acabei de inventar a ideia. Não tenho ideia de como isso geralmente é feito no mundo de TI / banco de dados.

Existe algum tipo de prática estabelecida de TI / banco de dados que se encaixe nesse cenário? (Estou no caminho certo ao propor um ambiente de preparação de banco de dados para o pessoal que não é de TI?)

Wilson
fonte
11
Existem dados super sensíveis no banco de dados que você não deve acessar? Parece que uma solução fácil é que eles enviem um backup dos bancos de dados para restaurar no seu computador pessoal com o qual você pode jogar sem medo de interromper a produção. Isso não exigirá recursos adicionais e tudo o que eles precisam fazer é enviar o backup. No entanto, isso depende muito das necessidades de segurança do seu ambiente.
Shaulinator
11
Acho que um backup e restauração para uso em seu próprio ambiente é uma solução fácil e de baixo custo. Idealmente, porém, você deve ter vários ambientes, variando no nível de poder de processamento que imitam um ao outro e, ao fazer alterações, gradualmente os gradua pelos ambientes. Temos um desenvolvedor para participar e mudar, promover para testar onde as coisas são controladas por controle de qualidade, depois outro ambiente que é quase 1: 1 de Prod para hardware e depois Prod para onde as coisas vão ao ar. Isso é obviamente caro. Ter outro banco de dados no servidor semelhante é outra ideia.
Shaulinator
11
No entanto, prefiro manter os ambientes totalmente separados, mantendo a chance de causar um problema no mínimo, caso você tenha uma consulta de fuga.
Shaulinator
11
O Oracle Database Express Edition é provavelmente a sua escolha mais fácil. Instale-o na sua máquina, configure as tabelas como no seu banco de dados principal. Carregue com dados representativos e você poderá desenvolver / testar o quanto quiser. Quando estiver pronto, você poderá enviar as alterações para testar / avaliar.
21916 Raj
11
@Raj, o problema com o Express Edition é que quase não existe nenhuma funcionalidade utilizável. Wilson, como todos os recursos reais do Oracle só vêm com o Enterprise Edition, o licenciamento do Oracle é provavelmente um dos seus maiores obstáculos que ainda não vi considerados, embora o Shaulinator o toque bastante. A Oracle não oferece uma opção de licença mais barata para ambientes de não produção que eu conheço, então você tem um obstáculo bastante caro apenas com o licenciamento. A nuvem pode ser uma boa opção para você devido a problemas orçamentários.
John Eisbrener

Respostas:

2

Concordo com a resposta de @Marcin Gminiski que você idealmente deseja ter um ambiente que imite a funcionalidade disponível em seu ambiente de produção. Embora meus dois centavos no assunto se refiram a "O que você pode pagar?" As restrições orçamentárias costumam ser as principais causas de um bom processo; portanto, o que você pode pagar realmente determina a complexidade / elegância de sua solução final.

Como você menciona que seu departamento de TI não tem tempo e equipe para criar um ambiente para você, você (ou melhor, seu departamento / gerente) é capaz de trazer algum financiamento para a mesa? A aquisição de uma pequena quantia de financiamento anual abriria a possibilidade de observar a nuvem. Os provedores de nuvem oferecem tudo o que você precisa, e algumas soluções incluem até as licenças apropriadas, que costuma ser o seu maior custo no que se refere à Oracle. Se você não estiver lançando dados confidenciais nesse ambiente, a nuvem se tornará ainda mais atraente.

Existem todos os tipos de opções de nuvem disponíveis no mercado, mas indicarei as instâncias do Oracle RDS na AWS apenas porque elas oferecem uma opção de licença incluída , e você pode desativá-la quando não estiver em uso para minimizar ainda mais os custos. Pode existir um equivalente em outros provedores de nuvem, mas muitos provedores de nuvem com os quais estou familiarizado exigem que você traga sua própria licença (BYOL) para soluções baseadas em Oracle, em vez de oferecer uma licença inclusiva.

Nota final aqui, uma instância do AWS RDS é APENAS o banco de dados; portanto, qualquer infraestrutura de servidor de aplicativos que você também precise precisa ser contabilizada. A nuvem é uma ótima opção se você precisar de um ambiente rápido para testar a funcionalidade, além de ser uma abordagem econômica; apenas mantenha-se atualizado e desligue tudo para não pagar por servidores inativos.

John Eisbrener
fonte
3

Geralmente, um ambiente decente seria composto de pelo menos DEV -> TEST -> PRE-PROD -> PROD. O desenvolvimento normalmente teria acesso ao desenvolvimento no DEV, teste de aceitação no TEST e TI para lançamento no PRE e PROD. Se você usar o controle de origem, evitará problemas ao editar o mesmo trecho de código por diferentes desenvolvedores ao mesmo tempo.

Tecnicamente, você só precisa que o esquema seja o mesmo que no prod e não precise de dados de produção abaixo do pré-prod, mas se você estiver de acordo com os dados do prod fora do ambiente do prod, poderá ter uma restauração automática no dev / test. Eu fiz um trabalho semelhante com o Visual Cron e ele faz maravilhas.

Provavelmente, para manter a conformidade, o pessoal de TI precisará liberar alterações no pré e no produto, para tornar isso mais fácil e resistente, você pode seguir o caminho das implantações automatizadas.

Marcin Gminski
fonte
2

Aqui está a minha experiência:

Originalmente, tínhamos um ambiente de desenvolvimento central chamado simserver. Os desenvolvedores testariam as coisas simultaneamente e ficou confuso .

Agora, cada desenvolvedor tem um local no simserverqual eles implantam para teste. Quando eles dizem que está pronto, ele é empurrado para o quality assurance (QA) environment. Temos jiracasos de teste para qualquer coisa que precise ser verificada, além de testarmos as novas adições novamente (temos uma equipe dedicada de controle de qualidade que não faz desenvolvimento; apenas controle de qualidade).

Em seguida, é empurrado ao vivo.

Fazer um local simserveré lógico e fácil. Depois de preparar os VMmodelos, os desenvolvedores apenas os implantam no computador pessoal (sem acesso ao restante da rede - apenas no computador local).

FreeSoftwareServers
fonte
11
Acho que, para o servidor sim, ele significa um ambiente SQL hospedado localmente que possui algum nível de espelhamento (restauração simples de backup?) Do ambiente prod ... Você executa tarefas de desenvolvimento nesse ambiente local. O Jira é uma plataforma de gerenciamento de projetos e rastreamento de problemas que permite que os desenvolvedores e o controle de qualidade acompanhem as alterações. Eu acho que ele está afirmando que uma alteração proposta que é feita em uma instância local é postada no jira for dev. Reveja. VM é uma máquina virtual.
24517 Wes Wes