Рубрики
Uncategorized

Я не хочу удалить в производство

Мой друг написал в Твиттере эту статью, и сегодня отличное резюме о недавнем отключении производства … Tagged с производством, DevOps.

Моя подруга написала в Твиттере эту статью и отличное резюме сегодня о недавнем отключении производства в Travis CI:

Продувка только для чтения-это немного более безопасный Prod, если у вас нет доступа к усечению всех таблиц, то это меньше вероятности: P https://t.co/7urwybtza8

— Nullops (@nullopsio) 9 апреля 2018 г.

Я лично чувствую себя еще сильнее в этом: я не хочу доступа к производству, читать только или иным образом. Я даже не хочу устанавливать программное обеспечение для управления базами данных, будь то студия управления SQL Server или MySQL Client, если я могу помочь.

Я начал новую работу сегодня, и во время адаптации упоминалось, что доступ к производственному серверу был заблокирован IP, поэтому, если это необходимо, это должно было бы быть сделано через VPN, если бы я не был в офисе. Не говоря уже о моем новом работодателе, позвольте мне прояснить, что это было упомянуто только как вариант «на всякий случай», как часть ответа на кого -то прямого вопроса, а не часть регулярной информации о адаптировании, которую люди должны знать. На самом деле все там знают, что это не очень хорошая идея, и что -то, что нужно работать, чтобы удалить в будущем, и помогая сделать это, является большой частью моей роли, но я отступаю.

Я сказал: я не хочу доступа.

Я не доверяю себе, и ты тоже должен

В конце концов у каждого есть момент, когда они делают неправильные вещи. Возможно, они запускают заявление об обновлении без предложения «Где» или они подключены к неправильной среде, когда они настраивают некоторое значение конфигурации. Большинство людей, вы надеетесь, делают только один раз ошибки, и я сделал свои (довольно много лет назад, не волнуйтесь!) И я не хочу делать это снова. Самый простой способ, который я могу придумать, чтобы гарантировать, что это просто сделать это невозможным.

Да, я могу дважды проверить все, что я делаю. Да, я могу заставить людей проверить мое плечо или просмотреть. Да, я могу работать через контрольные списки с хорошо документированными шагами.

Или я могу просто сделать невозможными невозможными действиями. Если я не могу удалить на сервер, я не могу быть удаленным на неправильный сервер. Если я не могу подключиться к базе данных, я не могу забыть часть сценария или оператора.

Если вы хотите что -то исправить, сделайте это проблемой

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

Если единственным возможным путем является автоматизированное инструмент, то к тому времени, когда развертывание производства не только гарантируется, что инструмент действует, вы также в идеале проверяли его выполнение несколько раз в различных средах.

Для разработчиков всегда заманчиво оставить такие усилия до конца, но такое мышление — это то, что приводит к ручным процессам, продолжительным годам как обходные пути, потому что другая работа является более высоким приоритетом. С другой стороны, если у разработчика нет возможности решить свое раздражение, чем выполнять работу правильно в первый раз, будьте уверены, что они это сделают.

Данные тоже обманывают

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

Кодифицированные знания — это общие знания

Другим преимуществом создания инструментов, сценариев или иного автоматизации вещей является то, что все, что кодифицировано и преданное хранилищу источника, — это то, о чем другие люди могут рассуждать, читать и, надеюсь, понять. Нет ничего, что уменьшает Фактор автобуса Например, иметь серию сценариев и инструментов, которые любой может забрать.

По сути, избегайте ручной работы как можно больше, насколько это возможно. Конечно, будьте прагматичны в отношении вещей, в частности, нет ничего плохого в выполнении ручной работы один раз, чтобы почувствовать это, перед автоматизацией, но я не хочу делать что -то дважды или три раза. Кроме того, некоторая ручная работа может быть интересной, и я специально не использую такие инструменты, как Ninite или CHOCOLITY, по этой причине, так как мне просто нравится процесс создания новой машины.

Но я не хочу трогать производственную среду.

Оригинал: «https://dev.to/davidwengier/i-dont-want-to-remote-into-production-55i1»