Ненавязчивая локальная разработка с traefik2, docker и letsencrypt

Публикация № 1441852 16.05.21

Разработка - DevOps и автоматизация разработки

Перевод статьи по проксированию HTTP траффика до сервисов развернутых в docker контейнерах. Оригинал от 24.09.2020.

Когда дело доходит до разработки сайтов, использующих поддомены, это может быть сложной или скучной задачей, поскольку localhost не является полным доменным именем. Вы не можете просто перейти, к примеру.localhost. Вы либо постоянно редактируете /etc/hosts, либо настраиваете некоторые dnsmasq в своей локальной сети.

До сих пор наиболее часто используемые мной решения были http://lvh.me (на данный момент не работает) - бесплатный сервис, который разрешает себя вместе со всеми поддоменами на localhost, и похожий на него сервис http://nip.io который позволяет кодировать ip-адрес для преобразования в доменное имя 192-168-1-250.nip.io, и, таким образом, позволяет генерировать сертификат letsencrypt для указанного домена.

Это было рабочим решением в течении половины десятилетия, но по мере того, как все больше и больше моих клиентов переходили к обзору pull request (PR) и параллельно выбирали docker или kubernetes в качестве платформы, я все больше и больше ограничивался классическими решениями выше.

 
 О обзоре pull request

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

Давайте рассмотрим подход, который я сейчас использую для клиентов, использующих докеризованные приложения (локальные или swarm) 

 
 О swarm (режим роя)

 

Выбор компонентов для решения

Компоненты

а) docker- классический или в режиме роя. (На моем рабочем ноутбуке у меня есть докер в режиме роя, это не мешает ему также использоваться в качестве автономной среды докера)

б) traefik2 в виде официального образа докера. Traefik-это пограничный маршрутизатор с открытым исходным кодом, который делает публикацию ваших услуг веселой и простой. Он получает запросы от имени вашей системы и выясняет, какие компоненты отвечают за их обработку. Особый интерес для меня представляют два поддерживаемых бэкенда - docker и kubernetes.

в) Поддомен разработки. Для хорошо работающего решения нам нужно выделить какой-то поддомен для разработки, например: `*.lvh.voronenko.net` - указывающий на локальный хост, или `*.preview.project.net` - какой-то подстановочный домен, указывающий на ваш промежуточный сервер.

d) Wildcard сертификат от letsencrypt для организации валидных сертификатов. Хотя на удаленной виртуальной машине traefik может позаботиться о получении валидного сертификата для каждого полного доменного имени для вас, если у вас есть возможность предварительно создать сертификат wildcard - почему бы и нет?
Настроенный домен с указанием на локальный хост, как уже упоминалось `*.lvh.voronenko.net - ... ты должен сам позаботиться об этом.

Wildcard-сертификат — сертификат открытого ключа, который может использоваться с несколькими подобластями домена.

Для генерации сертификатов letsencrypt мой текущий инструмент выбора - это acme.sh - мощный и простой в использовании клиент протокола ACME, написанный исключительно на языке оболочки (оболочка Unix), совместимый с оболочками bash, dash и sh. Помогает управлять установкой, продлением, отзывом SSL-сертификатов. https://github.com/acmesh-official/acme.sh

acme.sh --issue --dns dns_gd -d lvh.voronenko.net -d "*.lvh.voronenko.net"

Обратите внимание, что инструмент также заботится о продлении сертификата, когда это необходимо.
Установка сертификатов в нужную папку также проста, как выполнение сценария оболочки

~/.acme.sh/acme.sh --install-cert -d "${DOMAIN_NAME}" \
        --cert-file $TARGET/cert.pem \
        --key-file  $TARGET/privkey.pem \
        --fullchain-file $TARGET/fullchain.pem

В худшем случае (если вы не проинструктировали acme.sh с командой, что делать при продлении сертификата) - вам нужно будет позаботиться о копировании нового набора сертификатов один раз в 93 дня

e) Какой нибудь инструмент, которым вы можете проверить, что происходит с docker. Есть много хороших консольных инструментов, но если вам нравится вариант с веб-интерфейсом - portainer, безусловно, один из лучших.

Теперь, когда мы обсудили компоненты, давайте объединим их вместе:

 

Локальная настройка - настройка traefik для локальной разработки

Нам нужны:

папка "traefik_certs", в которой мы будем хранить предварительно созданный wildcard сертификат (у вас может быть более одного), также здесь traefik будет хранить информацию о собственных сертификатах.

папка "traefik_conf", в которой мы будем хранить части конфигурации traefik, которую мы хотим исключить из docker-compose.

По умолчанию "certificates.toml" сообщает traefik, что у нас есть один предварительно созданный сертификат, который можно найти по указанному пути в папке certs.

 
 о TOML

 

[[tls.certificates]] #first certificate
   certFile = "/certs/fullchain.pem"
   keyFile = "/certs/privkey.pem"

#[[tls.certificates]] #second certificate
#   certFile = "/path/to/other.cert"
#   keyFile = "/path/to/other.key"

Управление через `Makefile" поможет вам создать общую общедоступную сеть для docker, которая будет использоваться traefik для поиска открытых служб и процедур повышения/понижения

 
 о Makefile

 

create-traefik-network-once:
        docker network create traefik-public
up:
        docker-compose up -d
down:
        docker-compose down

и сердце конструкции: основной докер файл с описанием компоновки для traefik, чтобы сделать историю короче, я прокомментирую наиболее важные части конфигурации

 
 о YAML (не путать с YML)

 

version: '3.4'
services:
  traefik:
    image: traefik:v2.1.4
# на моем ноутбуке traefik работает на портах http https по умолчанию
# это позволяет работать с URL-адресами, таким как https://app.lvh.voronenko.net/
    ports:
      - 80:80
      - 443:443
# настройка может быть легко преобразована в развертывание роя
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager
        preferences:
          - spread: node.id
      labels: []
# /certs и /conf - это выделенные известные каталоги в
# официальном traefik образе.
# для того, чтобы позволить traefik обращаться бэкэнду docker, мы
# сопоставляем внутри сокеты docker.
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik_certs:/certs
      - ./traefik_conf:/conf
    restart: always
# если traefik должен обслуживать реальный кластер роя, следует указать `peram`
#       --docker.swarmmode
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.watch=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/conf/"
      - "--providers.file.watch=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.mongo.address=:27017"
      - "--entrypoints.postgres.address=:5432"
      - "--log.level=DEBUG"
      - "--accessLog"
      - "--api"
      - "--metrics"
      - "--metrics.prometheus"
      - "--providers.docker.network=traefik-public"
    networks:
      - default
      - traefik-public
# traefik конфигурируется с помощью метол (labels)
# откройте панель мониторинга traefik по адресу https://traefik.lvh.voronenko.net
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.lvh.voronenko.net`)"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.tls.certresolver=letsencryptresolver"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.routers.traefik.tls=true"
# пользовательский интерфейс управления docker, который будет доступен по адресу
# https://docker.lvh.voronenko.net
  portainer:
    image: portainer/portainer
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.portainer.rule=Host(`docker.lvh.voronenko.net`)"
      - "traefik.http.routers.portainer.entrypoints=web"
      - "traefik.http.routers.portainer-secure.rule=Host(`docker.lvh.voronenko.net`)"
      - "traefik.http.routers.portainer-secure.entrypoints=websecure"
      - "traefik.http.routers.portainer-secure.tls=true"
volumes:
  portainer_data:
networks:
  traefik-public:
    external: true

 

Теперь, если вы запустите настройку, т.е. `docker-compose up -d`, вы получите:

a) traefikUI по адресу https://traefik.lvh.voronenko.net/ - не так много параметров доступных изменения, но хороший вид с высоты птичьего полета на обнаруженные в настоящее время сервисы. Обратите внимание, что эта страница отображается с валиным сертификатом, который вы настроили.

b) PortainerUI по адресу https://docker.lvh.voronenko.net/ - предоставляет подробные внутренние параметры в docker, работающем на вашей машине, контейнерах, службах и т.д.

Обратите внимание, что traefik docker-compose (контейнер) является полностью независимым компонентом вашей системы без прямого отношения к какому-либо проекту, над которым вы в настоящее время работаете. Это означает, что он может постоянно работать на вашем хосте, как и любой другой веб-сервер.

В тот момент, когда вам нужно предоставить какой-либо проект docker, над которым вы в настоящее время работаете, traefik, вам понадобится

а) добавить сервис, доступный за пределами сети `traefik-public`.

б) указать правила обнаружения, например полное доменное имя для службы - "Host(`whoami.lvh.voronenko.net`)"

в) добавить traefik параметры для любой дополнительной конфигурации, такой как перенаправление, авторизация/защита паролем и т.д.

Как только вы запустите такой docker-compose в папке проекта, он сразу же откроется с помощью traefik. Более того - все ваши товарищи по команде, работающие над проектом, имеют точно такую же среду и опыт взаимодействия с ней, но на своих собственных ноутбуках.

Пример настройки контейнера whoami

  whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    networks:
      - app
      - traefik-public
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.lvh.voronenko.net`)"
      - "traefik.http.routers.whoami.entrypoints=web"
#      - "traefik.http.middlewares.traefik-auth.basicauth.users=USER:PASSWORD"
#      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
#      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=websecure"
      - "traefik.http.routers.traefik-secure.rule=Host(`whoami.lvh.voronenko.net`)"
#      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
networks:
  traefik-public:
    external: true

Ваши сервисы выставляются на выделенные имена, обслуживаемые валидными сертификатами - почти идентичной копией вашей производственной среды.

 

Установка на общедоступном сервере

Настройка экземпляра traefik для удаленной разработки (для развертывания ветки и т.д.) выполняется аналогичным образом, но вам нужно будет лучше защитить свою интеллектуальную собственность (например, вы не хотите, чтобы кто-либо в Интернете просматривал развертывание вашей ветки), а также защитить панели мониторинга portainer и traefik с учетными данными или даже полностью удалить их из общего доступа.

 

Traefik имеет несколько промежуточных программ на выбор https://docs.traefik.io/middlewares/overview/

Наиболее разумными промежуточными программами для рассмотрения были бы

Basic Аутентификация (логин и пароль) https://docs.traefik.io/middlewares/basicauth/

Digest Аутентификация (усиленная Basic ) https://docs.traefik.io/middlewares/digestauth/

Список белых IP https://docs.traefik.io/middlewares/ipwhitelist/

Ограничение количества запросов https://docs.traefik.io/middlewares/ratelimit/

Также для общедоступного сервера traefik позаботится о создании валидных сертификатов, если вы не предоставили предварительно созданный wildcard сертификат.

Кроме того, изменения в настройке `local_server` приведут к активации поставщика сертификатов letsencrypt.
Мы вводим новую сопоставленную папку letsencrypt для хранения автоматически полученных сертификатов.

дополнение в docker-compose.yml

   volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik_certs:/certs
      - ./traefik_conf:/conf
      - ./letsencrypt:/letsencrypt

и мы дополнительно должны активировать провайдера letsencrypt acme в traefik

labels:
      - "--certificatesResolvers.letsencrypt.acme.email=<LETSENCRYPT_MAIL_ADDRESS>"
      - "--certificatesResolvers.letsencrypt.acme.tlsChallenge=true"
      - "--certificatesResolvers.letsencrypt.acme.httpChallenge=true"
      - "--certificatesResolvers.letsencrypt.acme.httpChallenge.entryPoint=web"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"

Тем не менее, я рекомендую, по крайней мере, для хоста, служащего в качестве предварительного просмотра развертывания ветви, предварительно создать wildcard сертификат.
Совершенно бесполезно генерировать новый сертификат для каждой новой развернутой ветви (branchname.preview.voronenko.net)

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

labels:
      - traefik.http.routers.whoami.tls.certresolver=letsencrypt

 

Полный пример для выставленного сервиса:

whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.preview.voronenko.net`)"
      - "traefik.http.routers.whoami.entrypoints=web"
#      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
#      - "traefik.http.middlewares.traefik-auth.basicauth.users=USER:PASSWORD"
#      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
#      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=websecure"
      - "traefik.http.routers.traefik-secure.rule=Host(`whoami.preview.voronenko.net`)"
      - "traefik.http.routers.traefik-secure.tls=true"
      - traefik.http.middlewares.whoami.compress=true
      - traefik.http.routers.whoami.tls.certresolver=letsencrypt
     networks:
       traefik-public

 

Резюме

При описанном подходе вы можете обеспечить ненавязчивую локальную разработку с помощью traefik2, docker и letsencrypt индивидуально, а также для всех ваших товарищей по команде. Владельцы стартапов могут применять "фирменную" среду разработки, например "app.lvh.mystartup.domain".

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

Вы можете легко расширить подход к общедоступному серверу, реализовав "сервер предварительного просмотра" для тех же компонентов. Traefik и docker позволяют вам также вводить предварительные просмотры PR в разумные сроки (в течение дня).

Упомянутые в статье примеры можно попробовать по адресу https://github.com/Voronenko/traefik2-compose-template

`local_server`- это пример среды разработки на вашем локальном хосте, т. е. https://someapp.lvh.voronenko.net/

`public_server` - это пример среды, которую можно развернуть на общедоступном сервере. 

 

От переводчика:

Переводил через translate c правками для сохранения сути статьи. Буду рад разумной критике и правкам по стилистике.

Благодарю за внимание.

Специальные предложения

Оставьте свое сообщение

См. также

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    718    ardn    3    

22

Формула успешного внедрения DevOps и Agile в 1С: от неудачи к неудаче без потери энтузиазма

Групповая разработка (Git, хранилище) Управление проектом Бесплатно (free)

На конференции Infostart Event 2021 Post-Apocalypse выступил директор практики БИТ:ERP компании Первый БИТ Глеб Стальной. В ходе доклада он рассмотрел трансформацию проектного подхода в продуктовый, рассказал про имплементацию «современных» практик DevOps и продемонстрировал инструменты для разработки, взаимодействия с бизнесом и клиентами, применяемые в его команде.

27.02.2023    692    glebushka    1    

6

SonarQube: про объемы, ветки, покрытие кода и интеграцию с Gitlab

DevOps и автоматизация разработки Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Опыт применения SonarQube в нескольких командах. Плюс некоторые тонкости: уменьшение объемов базы SQ, интеграция, покрытие кода.

26.02.2023    1798    kraynev-navi    10    

41

DevOps для Плейстоцена. Скрещивание обычных форм толстого клиента с практиками CI/CD

DevOps и автоматизация разработки Бесплатно (free)

Плейстоцен — эпоха четвертичного периода, начавшаяся 2.588 миллионов лет назад и закончившаяся 11,7 тысяч лет назад. В 1С этот период характеризуется обычными формами, использованием толстого клиента и вызовом «Предупреждение» без таймаутов прямо из модулей проведения документов. О том, как внедрять инженерные практики для огромного монолита легаси и тестировать функциональность без менеджера и клиента тестирования под разными пользователями, на конференции Infostart Event 2021 Moscow Premiere рассказал ведущий программист компании BCS FinTech Сергей Голованов.

20.02.2023    1201    Golovanoff    17    

13

Жизнь платформы 1C:Предприятие в кластере Kubernetes

Сервера DevOps и автоматизация разработки Облачные сервисы, хостинг Бесплатно (free)

Во многих сферах запуск приложений в Kubernetes является де-факто стандартом архитектуры, так как это позволяет быстро и эффективно задействовать ресурсы, не затрачивая на это большие деньги. Но с платформой 1С:Предприятие не все так просто, но потенциально возможно. Руслан Жданов на митапе «DevOps в 1С: CI/CD. Непрерывная интеграция и поставка решений на 1С» рассказал про то, как с помощью Kubernetes организовать в облаке управление кластером из серверов 1С и реализовать там тестирование приложений на 1С или запуск скриптов на OneScript.

24.01.2023    5160    ZhdanovR    3    

22

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Кровь, пот и GIT

Групповая разработка (Git, хранилище) Бесплатно (free)

Ведущий разработчик 1С Андрей Карпов на конференции Infostart Event 2021 Post-Apocalypse поделился ошибками, которые совершают новички в работе с GIT. В докладе четыре кейса с пошаговыми инструкциями, которые позволят не допускать конфликтов в разработке.

17.01.2023    5602    karpik666    46    

61

Концепция ландшафта 1С-систем на предприятии

DevOps и автоматизация разработки Управление ИТ-подразделением Бесплатно (free)

Визуализация размещения программных ресурсов и сервисных данных 1С-систем в корпоративном ландшафте. Как 1С-службе и ИТ-службе договориться о разграничении, получить свободу для своих задач и сохранить порядок во взаимодействии.

09.12.2022    1152    roman72    13    

7

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    4764    kamisov    20    

81

Что, если Continuous Integration – это прежде всего практика, а не набор инструментов?

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Бесплатно (free)

Рано или поздно многие компании приходят к практикам DevOps. И начало этому – Continuous Integration. О том, что происходит в команде специалистов 1С, когда они переходят на Git, и почему простое внедрение CI-инструментов не решает проблему подходов к разработке, в докладе на Infostart Event 2021 Post-Apocalypse рассказал руководитель компании ПрогТехБизнес Александр Анисков.

07.12.2022    1366    vandalsvq    0    

23

Управление хранилищами без боли

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Бесплатно (free)

Когда хранилищ много, возникает вопрос удобного управления ими. Андрей Овсянкин на онлайн-митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал, как настроить перенос хранилища на новую версию платформы без перепрописывания путей у каждого разработчика, и как безболезненно обеспечить для хранилища запрет коммита с пустым комментарием.

28.11.2022    6245    Evil Beaver    11    

85

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Как избавиться от большого количества комментариев в коде с использованием EDT + Git

Рефакторинг и качество кода DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Публикация освещает вопрос улучшения качества и читабельности кода путем отказа от излишних комментариев. Рассматривается пример из опыта работы команды разработки на EDT + Git. Команда работает в EDT меньше года. Конфигурация сильно доработана и не обновляется типовыми релизами.

15.11.2022    975    shastin87    5    

9

Технология доработки типовой конфигурации с использованием конфигуратора

Групповая разработка (Git, хранилище) Бесплатно (free)

Как обычно происходит процесс доработки типовой? Разворачивается и используется рабочая база из какой-то типовой поставки 1С (БП/ERP/ЗУП и т.д.). Далее бизнес постоянно приносит требования по доработке типового функционала (отдельный вопрос, зачем это нужно). Возникает задача организовать постоянное изменение типовой конфигурации группой программистов. На мой взгляд, это довольно частая задача. Хотелось бы рассмотреть возможные варианты ее решения. Нигде не нашел упоминаний о подходах решения такой задачи, хотя, думаю, многие работают в таком режиме.

16.07.2022    1621    partizand    13    

7

Быстро в Jenkins

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Написать свою сборочную линию для решения на 1С – задача нетривиальная: собрать конфигурацию из исходников, конвертировать между форматами, запустить множество инструментов, агрегировать результаты, сформировать отчеты... А хочется ведь просто ЗапуститьСвоюСборку()... Можно? Можно! О том, как создать сборочную линию за 5 минут в формате «Далее-далее-готово» на конференции Infostart Event 2021 Moscow Premiere рассказал Никита Федькин.

21.06.2022    5990    nixel    49    

81

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Отражаем хранилище в репозиторий git, Jenkins'ом

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Описание приемов по настройке копирования хранилища 1С в репозиторий git. С помощью gitsync, под управлением Jenkins.

16.06.2022    1496    ImHunter    1    

19

Работа с хранилищем конфигурации с разными версиями конфигуратора

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Бывают ситуации (в моей практике - постоянно), когда нужно работать с одним хранилищем конфигурации из-под разных версий платформы. Предлагаю свой вариант решения.

08.06.2022    1474    curdate    10    

7

Скрипт перепривязки базы к хранилищу конфигурации

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Пример скрипта для перепривязки базы к хранилищу конфигурации, используя Python.

17.04.2022    1208    malikov_pro    0    

12

Выгрузка версии хранилища в XML файлы

Файловый обмен (TXT, XML, DBF), FTP Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Скрипт, выполняющий выгрузку произвольной версии из хранилища в XML.

17.03.2022    1023    kraynev-navi    2    

7

APDEX 1C + Prometheus + Grafana + Superset, а точнее наоборот

DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Вы не задумывались о том, что расчет APDEX должен быть онлайн? Онлайн для всех - от бизнес-пользователей до команды разработки. Если задумывались - то в статье мы расскажем, зачем это делать, и поделимся наработками, как подключить 1С+APDEX к такой штуке, как Prometeus.

16.02.2022    7265    digital-samolet    42    

95

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Как Gitlab-CI и OneScript могут отсортировать массив (Часть 2)

DevOps и автоматизация разработки Бесплатно (free)

Продолжение сквозного примера настройки Gitlab-CI - вывод результатов теста, условия запуска и таймауты.

12.12.2021    2312    SaschaG    4    

16

Стек технологий для 1С

Инструментарий разработчика Рефакторинг и качество кода Групповая разработка (Git, хранилище) Механизмы платформы 1С Бесплатно (free)

Стек технологий, которые могут быть полезны разработчику на 1С и около 1С. По каждой технологии постарался объяснить, зачем она нужна и с чего начать изучение, если заинтересует.

29.11.2021    29445    mrXoxot    63    

417

Как Gitlab-CI и OneScript могут отсортировать массив (Часть 1)

DevOps и автоматизация разработки Бесплатно (free)

С приходом в 1С EDT мы получили git. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который все сделает сам. Надо только правильно его попросить...

18.11.2021    3851    SaschaG    9    

73

Девопсы в 1С: микросервис распознавания штрихкодов

Групповая разработка (Git, хранилище) Бесплатно (free)

Распознавание штрихкода из сканированного документа в PDF.

09.08.2021    2408    alexey_kurdyukov    8    

9

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Как начать разработку проекта 1С, чтобы легко перейти к DevOps-практикам

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

22.06.2021    8417    artbear    2    

72

Микросервисы на Golang. Часть 6. Докеризация, Начальная оркестрация, CD\CI

DevOps и автоматизация разработки Конфигурации 1cv8 Бесплатно (free)

Создадим микросервис, поместим его в докер, проведем его масштабирование на нескольких виртуальных машинах с помощью оркестрации Docker Swarm, выполним также CD\CD микросервиса с помощью GitHub Action (Микросервис взят с прода, обрезан лишний функционал) будет показан пример его взаимодействия с 1С клиентом.

21.06.2021    2851    dmitry-irk38    3    

6

Docker для 1Сника

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

На онлайн митапе «DevOps в 1С» Руслан Жданов рассказал, для чего 1С-нику нужен Docker, как его применять, какие сервисы можно вынести в контейнеры и как организовать взаимодействие контейнеров друг с другом.

07.06.2021    12384    ZhdanovR    34    

41

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Как подключиться к хранилищу конфигурации на сервере за NAT, если есть доступ по RDP?

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

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

01.06.2021    4184    Dipod    13    

53

Мастер-класс: Реализация цикла CI/CD на практическом примере с использованием системы Тестер

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе Инфостарта «DevOps в 1С» выступил Дмитрий Решитко – руководитель отдела разработки в компании C.T. Consultants Inc. Дмитрий провел мастер-класс, в котором продемонстрировал, как создавать новую функциональность в конфигурации с одновременным использованием инструмента тестирования и реализовать автоматизированное тестирование конфигурации при помещении кода в репозиторий на GitLab.

31.05.2021    2413    grumagargler    0    

18

Осторожный DevOps

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

Начальник отдела разработки в компании «Билайн» Игорь Сухоруков на Meetup Infostart DevOps поделился особенностями работы своего ИТ-подразделения и рассказал о том, как устроено производство и внедрение ПО в режиме нон-стоп в компании, подразделения которой работают по всей России: от Москвы до Владивостока.

24.05.2021    4025    ig1082    4    

32

Технология разветвленной разработки конфигураций 1С

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Вся групповая разработка любой организации, где работает более 2-х программистов, в превосходящем большинстве случаев строится вокруг хранилища конфигурации. Те из нас, кто обращался к стандартам разработки 1С как минимум раз в жизни и читал их полностью (а может, и просто слышал от коллег), наверняка знают, что существует «Технология разветвленной разработки конфигураций» https://its.1c.ru/db/v8std#content:709:hdoc но не все поняли, как на самом деле эту замечательную вещь применять на практике, а кто-то понял и вероятнее всего думает, что «это к нам не относится, командная разработка по такой технологии в нашей организации не получится в силу определённых причин и потому применять её, к сожалению, я один не могу и не буду», до конца не разобравшись во всех аспектах, но это ошибочное мнение. В этой статье я постараюсь описать свой опыт, рассказать о преимуществах использования данной технологии, дать понять, что технология разветвленной разработки конфигураций на самом деле вещь индивидуальная и каждый для себя решает сам, применять её или нет, а также внести понимание, что у вас вообще нет никакой зависимости от своих коллег, работая в хранилище конфигурации при использовании этой технологии.

19.05.2021    9791    sinichenko_alex    45    

127

Шпаргалка установки сервера взаимодействия без MSI(9.0.33) использованием Postgresql в docker-compose

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

Какой бы не был бизнес - он нуждается в коммуникации. У кого-то Telegram, у других - Whatsapp, у кого то - электронные письма. Возникла задача наладить общение между пользователями базы 1С без мессенджеров. Скачав самую свежую версию на момент написания статьи 9.0.33, обнаружились некоторые подводные камни при установке.

07.04.2021    2900    yaroslavkravets    2    

24

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

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

Тестируем в Docker

DevOps и автоматизация разработки Бесплатно (free)

Чтобы продукт гарантированно отвечал функциональным требованиям, нужно писать для него тесты и часто их запускать. О том, через какие этапы проходит компания, которая хочет автоматизировать тестирование – от одного клиента на локальной машине до запуска тестов по запросу в Kubernetes, на INFOSTART MEETUP Ekaterinburg.Online рассказал Андрей Крапивин.

29.03.2021    7554    Scorpion4eg    8    

52

1С on demand – скажи "нет" постоянным билд-агентам

DevOps и автоматизация разработки Бесплатно (free)

Каждый, кто пытался запускать на своем компьютере тесты для 1С, сталкивался с тем, что процесс тестирования не позволяет что-то делать параллельно. О том, как изолировать тестовые окружения и организовать «Агент по запросу» с помощью Docker на примере Jenkins CI, рассказал ведущий разработчик компании «Первый БИТ» Никита Грызлов.

25.01.2021    5477    nixel    12    

68

DevOps: бери и делай!

DevOps и автоматизация разработки Бесплатно (free)

В последнее время тема DevOps становится актуальной благодаря бесплатным инструментам автоматизации для проектов на 1С. О том, как вести разработку по DevOps и какие при этом могут возникнуть проблемы и сложности, рассказал разработчик Инфостарта Павел Олейников.

15.01.2021    5680    OPM    2    

38

Практика применения DevOps. Автоматизированная сборочная линия

DevOps и автоматизация разработки Бесплатно (free)

В четвертой части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступил Валерий Пронин. Он рассказал, как развернуть автоматизированную сборочную линию, которая будет контролировать качество кода в проекте и в зависимости от прохождения порога отдавать релиз в виде cf-файла либо отправлять письмо об ошибках.

16.12.2020    7510    proninvvp    5    

65

Практика применения DevOps. Автоматизация процессов разработки, инструментарий и работа с Git

DevOps и автоматизация разработки Бесплатно (free)

Автоматизация процессов разработки с применением DevOps-практик помогает получать более качественный и осмысленный результат. На конференции Infostart Event 2019 Inception в ходе мастер-класса «Практика применения DevOps» команда Инфостарта разложила «по полочкам» инструментарий, который используется для каждого из процессов DevOps, и показала, как работать с ними на практике. В первой части выступил Павел Олейников – он сделал обзор инструментов, которые можно использовать при автоматизации процессов разработки, и рассказал про работу с Git (в том числе в EDT).

03.12.2020    6385    OPM    3    

44