Рубрики
Uncategorized

Почему мы все еще работаем на проблемах моей машины?

Столько, сколько компьютерное программирование продвинулось за последние два десятилетия, разработчики и операторы … помечены с Кубернетами, Докером, DevOps, Plationnative.

Столько, сколько компьютерное программирование продвинулось за последние два десятилетия, разработчики и операторы все еще имеют дело с проблемами «Работы на моей машине» — приложение, которое отлично работает на ноутбуке, но совершенно не функционально в производстве или на ноутбуке коллеги. Почему мы все еще имеем эту проблему?

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

Давайте обратимся в первые дни компьютерного программирования, при программировании компьютера участвуют перфораторы. Любая ошибка на перфокарте означала, что вам пришлось снова ударить эти карты. Разработчики кодировали в производстве, а стоимость каждой ошибки была высокой. Но ошибки были сразу очевидными, и разработчики работали как можно ближе к производству. Все работали на одной машине, поэтому не было «работает на моей машине».

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

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

Затем пришло облако. Сначала облако было действительно тенью, используемым и настроенным разработчиками для запуска некритических приложений. На этом этапе разработчики провели контроль над облаком, а проблемы «Работы на моей машине» проблемы снизились.

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

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

На данный момент большинство компаний обращаются к проблеме «Работы на моей машине» со смесью следующих методик:

  • Уменьшение скорости. Более устойчивые тестирования — это одна стратегия для ловли потенциальных проблем, прежде чем они достигнут добычи. Мы хотели бы подумать, что все тестирование на 100% автоматизировано и мгновенно, но это неправда. Более прочная процедура тестирования замедляет скорость развития и до сих пор не гарантирует, что все «работает на моих машинах» проблемах поймана до производства.

  • Методом проб и ошибок. Организации говорят о прохождении проблем в производстве путем развертывания чаще или с использованием расширенных методов развертывания, такие как канареечные развертывания. Это эвфемистический способ сказать, что они используют испытание и ошибку для решения проблем «работает на моей машине».

  • Установление более строгих процедур развертывания. Организации также пытаются обратиться к проблемам «Работает на моей машине», установив все более жесткие процедуры развертывания и вкладывающих в ограждения, так и в ограждениях по трубопроводу о развертывании, надеясь, что проблемы будут пойманы перед производством.

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

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

Оригинал: «https://dev.to/roost/why-are-we-still-having-works-on-my-machine-problems-31m3»