Environnement de transfert de base de données pour le personnel non informatique

10

Je suis en train de proposer un environnement de transfert de base de données à mon service informatique. L'idée est qu'une personne non informatique comme moi (analyste de données de travaux publics) aurait un endroit pour tester des solutions, puis les implémenter moi-même dans l'environnement réel ou demander au service informatique de les implémenter si nécessaire. Il y a quelques raisons / scénarios où cet environnement serait bénéfique:

  1. J'ai quelques privilèges de base de données de base dans notre environnement de base de données en direct ( create table, create view, etc.). Je fais des changements de schéma environ une fois par semaine, mais il me semble insensé de tester et de mettre en œuvre ces changements dans un environnement en direct. Il existe d'innombrables dépendances sur la base de données, donc si quelque chose se passe mal, cela pourrait être désastreux. Je préfère de loin tester les choses à l'avance dans un environnement séparé.
  2. Je n'ai pas certains des privilèges les plus avancés comme create triggerou create functiondans la base de données en direct. C'est très bien, mais j'ai quelques problèmes qui pourraient être résolus par des déclencheurs et / ou des fonctions. Je prévois de proposer que je reçoive ces autorisations dans l'environnement de transfert afin de pouvoir développer et tester certaines idées, et si elles fonctionnent, proposer au service informatique de les implémenter dans l'environnement réel.
  3. En général, mon service informatique n'a ni le temps ni les ressources pour développer des solutions pour moi. C'est vraiment aussi simple que cela. Donc, si je peux faire les démarches moi-même, alors mes problèmes sont beaucoup plus susceptibles d'être résolus.

L '«environnement de mise en scène pour le personnel non informatique» me semble une approche suffisamment solide, mais pour être honnête, je viens de créer l'idée. Je ne sais pas comment cela se fait généralement dans le monde informatique / base de données.

Existe-t-il une sorte de pratique informatique / base de données établie qui conviendrait à ce scénario? (Suis-je sur la bonne voie lorsque je propose un environnement de transfert de base de données pour le personnel non informatique?)

Wilson
la source
1
Y a-t-il des données super sensibles dans la base de données auxquelles vous ne devriez pas accéder? Il semblerait qu'un travail facile consiste à leur envoyer une sauvegarde des bases de données à restaurer sur votre ordinateur personnel avec lesquelles vous pouvez jouer sans craindre de casser la production. Cela ne nécessitera aucune ressource supplémentaire et tout ce qu'ils doivent faire est de vous envoyer la sauvegarde. Cependant, cela dépend fortement des besoins de sécurité de votre environnement.
Shaulinator
1
Ensuite, je pense qu'une sauvegarde et une restauration à utiliser dans votre propre environnement sont une solution simple et peu coûteuse. Dans l'idéal, cependant, vous devriez disposer de plusieurs environnements dont le niveau de puissance de traitement se mime mutuellement et lorsque vous apportez des modifications, vous les graduez lentement dans tous les environnements. Nous avons un développeur pour jouer et changer, promouvoir pour tester où les choses obtiennent une QA, puis un autre environnement qui est presque un 1: 1 de Prod pour le matériel, puis Prod où les choses vont vivre. C'est évidemment coûteux. Avoir une autre base de données sur le serveur qui est similaire est une autre idée.
Shaulinator
1
Je préfère cependant garder les environnements totalement séparés, ce qui réduit au minimum la possibilité de provoquer un problème au cas où vous auriez une requête de fuite.
Shaulinator
1
L'édition express de la base de données Oracle est probablement votre choix facile. Installez-le sur votre machine, configurez les tables comme sur votre base de données principale. Chargez avec des données représentatives et vous pouvez développer / tester autant que vous le souhaitez. Une fois que vous êtes prêt, vous pouvez leur envoyer des modifications à tester / évaluer.
Raj
1
@Raj, le problème avec Express Edition est qu'il n'y a pratiquement aucune fonctionnalité utilisable. Wilson, parce que toutes les fonctionnalités réelles d'Oracle ne viennent qu'avec Enterprise Edition, la licence Oracle est probablement l'un de vos plus grands obstacles que je n'ai pas encore vu pris en compte, bien que Shaulinator y touche dans une certaine mesure. Oracle n'offre pas une option de licence moins chère pour les environnements de non-production que je connaisse, vous avez donc un obstacle assez coûteux avec la licence seule. Le cloud peut être une bonne option pour vous uniquement en raison de problèmes budgétaires.
John Eisbrener

Réponses:

2

Je suis d'accord avec la réponse de @Marcin Gminiski selon laquelle vous souhaitez idéalement avoir un environnement qui imite les fonctionnalités disponibles dans votre environnement de production. Bien que mes 2 cents sur la question se résument tous à: "Que pouvez-vous vous permettre?" Les contraintes budgétaires sont souvent le tueur d'un bon processus, donc ce que vous pouvez vous permettre déterminera la complexité / élégance de votre solution finale.

Parce que vous mentionnez que votre service informatique manque de temps et de personnel pour mettre en place un environnement pour vous, êtes-vous (ou plutôt votre département / gestionnaire) en mesure d'apporter des fonds à la table? L'achat d'un petit montant de financement annuel ouvrirait la possibilité d'examiner le cloud. Les fournisseurs de cloud offrent tout ce dont vous avez besoin, et certaines solutions incluent même les licences appropriées, ce qui est souvent votre coût le plus élevé en ce qui concerne Oracle. Si vous ne jetez pas de données sensibles dans cet environnement, le cloud devient encore plus attrayant.

Il existe toutes sortes d'options de cloud disponibles, mais je vous pointerai vers les instances Oracle RDS sur AWS uniquement parce qu'elles offrent une option de licence incluse , et vous pouvez la désactiver lorsque vous ne l'utilisez pas pour minimiser davantage les coûts. Un équivalent peut exister sur d'autres fournisseurs de cloud, mais de nombreux fournisseurs de cloud que je connais vous demandent d'apporter votre propre licence (BYOL) pour les solutions Oracle au lieu d'offrir une licence inclusive.

Remarque finale ici, une instance AWS RDS est UNIQUEMENT la base de données, donc toute infrastructure de serveur d'applications dont vous avez également besoin doit également être prise en compte. Le cloud est une excellente option si vous avez besoin d'un environnement rapide pour tester les fonctionnalités, tout en étant une approche rentable; assurez-vous simplement de rester au courant et de désactiver les choses afin de ne pas payer pour des serveurs inactifs.

John Eisbrener
la source
3

Habituellement, un environnement décent serait constitué d'au moins DEV -> TEST -> PRE-PROD -> PROD. Le développement aurait normalement accès au développement dans DEV, les tests d'acceptation dans TEST et IT pour sortir dans PRE et PROD. Si vous utilisez le contrôle de code source, vous éviterez les problèmes liés à l'édition du même morceau de code par différents développeurs en même temps.

Techniquement, vous avez seulement besoin que le schéma soit le même que dans prod et pas besoin de données de production en dessous de pré-prod, mais si vous êtes d'accord avec les données de prod en dehors de l'environnement de prod, vous pouvez avoir des restaurations automatisées dans dev / test. J'ai fait un travail similaire avec Visual Cron et cela fonctionne à merveille.

Il est probable que pour rester conforme, le personnel informatique devra publier des modifications dans pré et prod, afin de rendre cela plus facile et plus résilient, vous pourriez suivre la voie des déploiements automatisés.

Marcin Gminski
la source
2

Voici mon expérience:

À l'origine, nous avions un environnement de développement central appelé simserver. Les développeurs testaient les choses simultanément et cela devenait désordonné .

Désormais, chaque développeur dispose d'un local sur simserverlequel il se déploie pour les tests. Une fois qu'ils disent que c'est prêt, il est poussé vers le quality assurance (QA) environment. Nous avons jirades cas de test pour tout ce qui doit être vérifié, et nous testons à nouveau les nouveaux ajouts (nous avons un personnel QA dédié qui ne fait pas de développement; juste QA).

Ensuite, il est poussé en direct.

Faire un local simserverest logique et facile. Une fois les VMmodèles prêts, les développeurs les déploient simplement sur leur ordinateur personnel (sans accès au reste du réseau - juste leur ordinateur local).

FreeSoftwareServers
la source
1
Je pense que, pour le simserver, il signifie un environnement SQL hébergé localement qui a un certain niveau de mise en miroir (restauration de sauvegarde simple?) De l'environnement prod ... Vous effectuez des tâches de développement sur cet environnement local. Jira est une plateforme de gestion de projet et de suivi des problèmes qui permet aux développeurs et au contrôle qualité de suivre les changements. Je pense qu'il déclare qu'un changement proposé qui est effectué sur une instance locale est publié sur jira pour dev. la revue. VM est une machine virtuelle.
Wes