Среда разработки для 1С-ника (базовые принципы)


#1

Добрый день.

Почитав статьи и послушав видеозаписи от специалистов “Серебряной пули” сделал для себя вывод, что стандартом для рабочего окружения должно стать (или уже стало?) использование систем виртуализации (вначале разговор шел о Vagrant в связке Virtualbox, последнее время чаще разговор ведется о Docker).
В связи с этим у меня возникло несколько вопросов:

  1. Действительно ли мой вывод о начале эры всеобщей виртуализации разработчиков 1С верен?
    Если да, то …
  2. Кто какие операционные системы использует в качестве базовых?
    Если с полной виртуализацией особых вопросов нет. Ее можно поднять на любой оси. То для Docker c моей точки зрения больше подходит Linux в качестве хост системы.
  3. Разработка всегда ведется только в гостевых системах или host система тоже используется?

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


#2

Забудьте слова “стандарты”, “эра” и прочий напыщенный маркетинговый булшит.

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

Теперь по вашим вопросам:

  1. В платформе существуют еще несколько нерешенных проблем и трудностей, мешающих нормально использовать виртуализацию. Насколько я знаю работы в этом направлении сама фирма 1С ведет.

  2. В основном *nix. Контейнеры на Windows пока еще сырые. ОС выбирается по потребностям и вкусу.

  3. Не очень понятен вопрос. Гостевые системы чаще используются как сервисы - как серверы, компиляторы, исполнятели и т.п. - а сама разработка ведется на хостах. Но опять же, все зависит от конкретной специфики/возможностей.


#3

Все это довольно сильно зависит от того, что вы делаете на 1с. Если вы днями и ночами разрабатываете внешние отчёты или меняете движения документов в подписках на события, то от виртуализации вам будет мало прока - разве что иметь преднастроенную виртуалку с 1с, вордом и прочим.

А вот чуть в бок… Событийная интеграция? Контейнер с рэббитом. Связь с каким-нибудь СДО - контейнер с мудлом. Потестировать веб- и хттп-сервисы? Контейнер с соап-юи или контейнер с двустрочником на express.js

Апачи, нджинксы… Протестировать дев и пре-прод окружение локально - для всего этого виртуализация подходит очень хорошо.

В плане докера - использую docker for Windows на вин10 и докер тулбокс, если на машине нет hyper-v, уже полтора года - полет нормальный и удобный.


#4

Так сказать в копилку

  • 1СFresh - уже поставляется с Vagrant файлом
  • кластер 8.4.1 ориентирован на запуск в среде Kubernetes о чем прямо показывается на анонсах платформы

Теперь по существу

  • когда мне нужно добиться повторяемости блочных устройств между машинами - я использую Vagrant
  • когда мне нужно быстро повторно запускать композитные приложения я использую Docker

Разработку на данный момент веду в режиме поддержки гетерогенности - то с учетом того что запуск будет иметь место на разных системах

  • но разработку оставляю “на хосте” с пробросом внутрь “контейнеров” или “коробочек” (vagrant-box)

Сейчас основной системой является Windows 10 с поддержкой Ubuntu - на ней же развернут HyperV и Docker