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:
- 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é. - Je n'ai pas certains des privilèges les plus avancés comme
create trigger
oucreate function
dans 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. - 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?)
la source
Réponses:
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.
la source
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.
la source
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
simserver
lequel il se déploie pour les tests. Une fois qu'ils disent que c'est prêt, il est poussé vers lequality assurance (QA) environment
. Nous avonsjira
des 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
simserver
est logique et facile. Une fois lesVM
modè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).la source