Промежуточная среда базы данных для не ИТ-персонала

10

Я нахожусь в процессе предложения среды размещения базы данных для моего ИТ-отдела. Идея заключается в том, что такой человек, как я (аналитик данных общественных работ), может найти место для тестирования решений, а затем либо сам внедрить их в живую среду, либо попросить ИТ-специалистов внедрить их при необходимости. Есть несколько причин / сценариев, в которых эта среда была бы полезна:

  1. У меня есть некоторые основные привилегии базы данных в нашей реальной среде базы данных ( create table, create viewи т.д.). Я делаю изменения схемы примерно раз в неделю, но мне кажется безумным тестировать и применять эти изменения в реальной среде. Существует бесчисленное множество зависимостей от базы данных, поэтому, если что-то пойдет не так, это может иметь катастрофические последствия. Я бы предпочел проверить вещи заранее в отдельной среде.
  2. У меня нет некоторых более продвинутых привилегий, таких как create triggerили create functionв реальной базе данных. Это нормально, но у меня есть несколько проблем, которые могут быть решены с помощью триггеров и / или функций. Я планирую предложить, чтобы мне были предоставлены эти разрешения в промежуточной среде, чтобы я мог разрабатывать и тестировать некоторые идеи, и, если они работают, предложить ИТ-специалистам реализовать их в реальной среде.
  3. В общем, у моего ИТ-отдела нет времени или ресурсов для разработки решений для меня. Это действительно так просто. Так что, если я смогу выполнить работу самостоятельно, то мои проблемы с большей вероятностью будут решены.

«Промежуточная среда для не-ИТ-персонала» кажется мне достаточно разумным подходом, но, если честно, я просто выдвинул эту идею. Я понятия не имею, как это обычно делается в мире ИТ / баз данных.

Существует ли какая-либо установленная практика ИТ / баз данных, которая бы соответствовала этому сценарию? (Правильно ли я нахожусь на правильном пути, предлагая промежуточную среду базы данных для не ИТ-персонала?)

Wilson
источник
1
Есть ли в базе данных сверхчувствительные данные, к которым вам не следует обращаться? Казалось бы, легко обойти это, попросив их отправить вам резервную копию БД для восстановления на вашем персональном компьютере, с которой вы можете играть, не опасаясь прерывания работы. Это не потребует дополнительных ресурсов, и все, что им нужно сделать, это отправить вам резервную копию. Однако это сильно зависит от требований безопасности вашей среды.
Шаулинатор
1
Тогда я думаю, что резервное копирование и восстановление для использования в вашей собственной среде - это недорогое и простое решение. Тем не менее, в идеале у вас должно быть несколько сред с разными уровнями вычислительной мощности, которые имитируют друг друга, и по мере внесения изменений вы будете постепенно распределять их по средам. У нас есть разработчик, который может поиграть и измениться, продвинуться, чтобы протестировать, где что-то получится QA'd, затем другая среда, почти равная 1: 1 от Prod для аппаратного обеспечения, и затем Prod, где все будет работать. Это явно дорого. Наличие другой похожей базы данных на сервере - еще одна идея.
Шаулинатор
1
Я предпочитаю сохранять среду полностью раздельной, тем не менее, вероятность того, что у вас возникнет проблема, сведена к минимуму.
Шаулинатор
1
Oracle Database Express Edition, вероятно, ваш простой выбор. Установите его на свой компьютер, настройте таблицы, как на вашем основном БД. Загрузите репрезентативные данные, и вы сможете разрабатывать / тестировать столько, сколько хотите. Как только вы будете готовы, вы можете отправить им изменения для тестирования / оценки.
Радж
1
@Raj, проблема с Express Edition в том, что в ней практически нет функциональных возможностей. Уилсон, поскольку любые реальные функции для Oracle поставляются только с Enterprise Edition, лицензирование Oracle, вероятно, является одним из ваших самых больших препятствий, которые я еще не видел, хотя Шаулинатор затрагивает это в некоторой степени. Oracle не предлагает более дешевую лицензию для непроизводственных сред, о которой я знаю, поэтому у вас есть довольно дорогое препятствие только с лицензированием. Облако может быть хорошим вариантом для вас исключительно из-за бюджетных проблем.
Джон Айсбренер,

Ответы:

2

Я согласен с ответом @Marcin Gminiski о том, что в идеале вы хотите иметь среду, которая имитирует функциональность, доступную в вашей производственной среде. Хотя мои 2 цента по этому вопросу сводятся к: «Что вы можете себе позволить?» Бюджетные ограничения часто являются убийцей хорошего процесса, поэтому то, что вы можете себе позволить, определит сложность / элегантность вашего окончательного решения.

Поскольку вы упоминаете, что вашему ИТ-отделу не хватает времени и персонала, чтобы подготовить для вас среду, можете ли вы (или, скорее, ваш отдел / менеджер) привлечь какое-либо финансирование? Приобретение небольшого количества ежегодного финансирования откроет возможность взглянуть на облако. Облачные провайдеры предлагают все, что вам нужно, а некоторые решения даже включают в себя соответствующие лицензии, которые часто являются вашей самой большой ценой в сравнении с Oracle. Если вы не выбрасываете конфиденциальные данные в эту среду, облако становится еще более привлекательным.

Существуют всевозможные варианты облачных вычислений, но я укажу вам на экземпляры Oracle RDS в AWS исключительно потому, что они предлагают опцию « Включенная лицензия» , и вы можете отключить ее, если не используете ее, чтобы дополнительно минимизировать затраты. Эквивалент может существовать у других облачных провайдеров, но многие облачные провайдеры, с которыми я знаком, требуют, чтобы вы принесли свою собственную лицензию (BYOL) для решений на основе Oracle вместо того, чтобы предлагать инклюзивную лицензию.

Последнее замечание: экземпляр AWS RDS является ТОЛЬКО базой данных, поэтому любая инфраструктура сервера приложений, в которой вы также нуждаетесь, должна учитываться дополнительно. Облако - отличный вариант, если вам нужна быстрая среда для тестирования функциональности, и все это при этом является экономически эффективным подходом; просто убедитесь, что вы держите его в руках и выключаете, чтобы не платить за незанятые серверы.

Джон Айсбренер
источник
3

Обычно приличная среда состоит как минимум из DEV -> TEST -> PRE-PROD -> PROD. Разработка обычно имеет доступ к разработке в DEV, приемочное тестирование в TEST и IT для выпуска в PRE и PROD. Если вы используете управление исходным кодом, вы избежите проблем с редактированием одного и того же фрагмента кода разными разработчиками одновременно.

Технически, вам нужно только, чтобы схема была такой же, как в prod, и вам не нужны производственные данные ниже pred prod, но если вы согласны с наличием данных prod вне среды prod, вы можете выполнить автоматическое восстановление в dev / test. Я проделал аналогичную работу с Visual Cron, и он творит чудеса.

Скорее всего, для того, чтобы оставаться совместимым, ИТ-персоналу придется вносить изменения в pre и prod, чтобы сделать это проще и более гибким, чтобы вы могли пойти по пути автоматизированного развертывания.

Марчин Гмински
источник
2

Вот мой опыт:

Первоначально у нас была центральная среда разработки под названием simserver. Разработчики тестировали бы вещи одновременно, и это становилось грязным .

Теперь у каждого разработчика есть локальная simserverсреда, которую они развернули для тестирования. Как только они говорят, что оно готово, его подталкивают к quality assurance (QA) environment. У нас есть jiraтесты для всего, что нужно проверить, плюс мы снова тестируем новые дополнения (у нас есть специальный персонал QA, который не занимается разработкой; просто QA).

Тогда это толкается вживую.

Создание локального simserverлогично и легко. Как только вы подготовите VMшаблоны, разработчики просто развернут их на своем персональном компьютере (без доступа к остальной части сети - только на своем локальном компьютере).

FreeSoftwareServers
источник
1
Я думаю, для симсервера он подразумевает локально размещенную среду SQL, которая имеет некоторый уровень зеркального отображения (простое восстановление из резервной копии?) Среды prod ... Вы выполняете задачи разработки в этой локальной среде. Jira - это платформа для управления проектами и отслеживания проблем, которая позволяет разработчикам и QA отслеживать изменения. Я думаю, что он заявляет, что предлагаемое изменение, которое делается в локальном экземпляре, публикуется в jira для dev. рассмотрение. ВМ это виртуальная машина.
Уэс