Как построить микросервисную инфраструктуру

Публикация № 1250635

Разработка - Системная интеграция - Интеграция

При росте информационных систем возникает потребность выноса определенной бизнес-логики в отдельное приложение для повышения отказоустойчивости и возможности одновременного использования этой функциональности в различных источниках. О том, как построить микросервисную инфраструктуру с использованием Apache Kafka в качестве шины данных, на конференции Infostart Event 2019 Inception рассказал разработчик группы компаний Автоград Дмитрий Маренин.

 

 

На рынке сейчас существует два вида организации приложений, о которых мы поговорим в докладе, это:

  • монолитная архитектура и ее проблемы;
  • и микросервисы – их многие сейчас пробуют использовать или хотят попробовать, но не знают, как. Мы поговорим о том, что это такое, какие у микросервисов плюсы и минусы;
  • я расскажу, как применение микросервисов помогло нам повысить эффективность бизнеса.

 

Монолитная архитектура и ее недостатки

 

 

Итак, монолитная архитектура – это архитектура, где приложение представлено в виде единого компонента и представляет собой разрез бизнес-логики, которая модульно прошита.

Все клиенты, как правило, обращаются только к одному приложению.

Казалось бы, если мы сделали приложение, и все работает, то почему бы так дальше и не жить?

 

 

Какие проблемы мы выявили в процессе эксплуатации приложения?

  • Внеся изменения в одном месте монолитной программы, можно вызвать повреждения в каких-то других ее частях (я думаю, многие в курсе, о чем я сейчас пытаюсь сказать). Все дело в том, что компоненты в монолите могут иметь не всегда очевидные связи. Не всегда можно понять, чем это дальше при изменении может обернуться.
  • Попытка изменить что-то в коде может занять массу времени и иметь далеко идущие последствия в плане долгой отладки и разбирательства – почему так произошло.
  • Из-за своей сложности монолитные приложения требуют от инженера глубокого понимания внутреннего устройства кода. Это может быть огромное количество легаси, в котором нужно как-то копаться и раскручивать, чтобы внести туда какие-то изменения. Варианта два:
    • это документация, которая, как правило, неполная или ее может вообще не быть;
    • и второй вариант – это очень долгое погружение человека в проект, поскольку монолит – это достаточно большое приложение.
  • Монолитные приложения падают с грохотом и зачастую парализуют полностью бизнес-процессы всей компании.
  • С течением времени бизнес растет, у него появляются какие-то новые требования, и иногда приходится переиспользовать текущие наработки в каких-то других проектах или системах. В монолите с этим возникают определенные проблемы – это только дублирование кода решения.
  • Разбалансировать нагрузку становится сложнее. Начинают расти затраты на покупку железа, для работы приложения требуются мощные сервера.
  • Технологии тоже развиваются – появляются языки либо библиотеки, которые решают текущую задачу эффективнее и быстрее, чем в монолите. С течением времени, как правило, все это начинает тормозить, висеть – настает «красная полоса», когда нужно что-то менять (или людей, или софт).

 

Микросервисная архитектура

 

 

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

Что вообще такое микросервис? Это небольшая программа, запущенная на своем сервере и работающая только над одним типом задач. Например, сервис авторизации, который принимает на вход логин/пароль и далее решает – давать пользователю доступ в систему или нет. Или, например, сервис отправки SMS.

Любое монолитное приложение можно разбить на множество сервисов, которые должны как-то между собой взаимодействовать.

 

 

Сервисы могут общаться между собой любым удобным способом:

  • отправляя друг другу TCP или UDP-пакеты;
  • через REST-интерфейс (дергая методы по HTTP);
  • либо через шину данных (RabbitMQ, Apache Kafka).

Как правило, в основном сервисы общаются по HTTP.

 

 

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

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

 

 

Например, если мы написали для какого-то проекта сервис авторизации – то для другого проекта мы не дублируем код, а просто дергаем этот сервис по REST-протоколу, и он нам возвращает данные.

Допустим, ваше приложение – это магазин, состоящий из набора сервисов (таких, как корзина, формирование заказов, платежный шлюз). И вот в течение дня у вас отваливается шлюз платежной интеграции. Но бизнес позволяет клиентам дальше формировать заказы, видеть витрину товаров. Просто в момент оплаты клиент будет видеть сообщение, что у вас сейчас проблемы с оплатой: «Вы сможете оплатить заказ позже». И когда сервис поднимется, можно будет уведомить клиентов, тем самым, какая-то часть из них может вернуться.

А в случае монолитной архитектуры – при проблеме в основном приложении встает все.

 

 

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

 

 

Плюсы-плюсами, но есть и минусы.

  • Чем больше сервисов, тем сложнее их мониторить, Понятно, что если их количество приближается к сотне или к тысяче, то уже начинаются интересные проблемы.
  • Пересылка данных вызывает небольшие задержки, которые могут быть критичны для приложений, где важна высокая скорость. В случае монолита все вызывается относительно быстро, а в случае микросервисов все уже зависит от канала связи и других вещей.
  • Усложняется управление инфраструктурой. Каждый сервис принято запускать на отдельном сервере – это может быть Docker-контейнер, виртуальная машина или какое-то железо. Это может усложняться еще и тем, что используются сборки разных дистрибутивов Linux. Мы используем стандарт – это Docker и Debian 9. Админы в шоке.

 

Мониторинг микросервисов – Flask Monitoring Dashboard

 

 

В качестве REST-шлюза мы используем Flask. Есть OpenSource библиотека Flask Monitoring Dashboard. С ее помощью мы мониторим количество вызовов методов – например, на скриншоте видно, сколько раз происходил вызов определенного метода сервиса. Если в течение двух месяцев мы видим, что этот метод никто не вызывает, мы можем просто его выпилить.

 

 

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

 

 

Есть профайлер, который собирает в себе, какие входные параметры передавались в метод, и сколько чего выполнилось – это облегчает расследование проблем с производительностью.

 

Мониторинг шины данных– Kafka Manager от Yahoo

 

 

Сервисы обмениваются сообщениями через шину данных – мы используем в качестве шины Apache Kafka.

Шина данных – это такая сущность, которая соединяет собой поставщиков сообщений и их потребителей. Например, когда вы пишете письмо, в качестве шины выступает «Почта России».

Само сообщение выглядит как письмо. Есть тема, которая указывает на название события, и есть данные, и есть потребители. Шина видит, что на эту тему подписаны эти потребители, и она им скидывает эти сообщения по сети.

Шину мониторим через Kafka Manager от Yahoo – он собирает метрики по сообщениям.

 

Архитектура обмена сообщений между 1С и шиной данных Apache Kafka

 

 

Встает логичный вопрос – как подключить Apache Kafka к 1С.

Мы реализовали подключение без использования внешних компонент:

  • с одной стороны Kafka, с другой – 1С;
  • и между ними прокси-сервис на Python, который подключен к шине и подписан на события – он выгребает эти события из шины и возвращает их в 1С по HTTP;
  • а в 1С работает HTTP-сервис, который это все может принять и дальше уже обработать.

Соответственно, 1С стучит GET и POST-запросами в Kafka через такой же прокси-сервис, который имеет соответствующий REST-интерфейс, и этот прокси-сервис скидывает эти сообщения в шину данных.

Вот так можно решить вопрос интеграции 1С и Kafka.

 

 

Вот пример, как собирает метрики по сообщениям Kafka Manager от Yahoo. Здесь показаны как раз метрики на то событие, которое выгребает прокси-сервис.

 

 

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

 

Примеры использования микросервисов. Asterisk client

 

 

Поговорим о реальных примерах применения из жизни моего предприятия. Как же нам помогло применение микросервисов в повышении эффективности работы бизнеса.

Недавно мы проводили реструктуризацию бизнес-процесса «Запись на сервис». И одной из точек маршрута было – уведомить клиента за сутки о том, что он собирался приехать. Если клиент подтверждает свое намерение приехать, то бизнес-процесс двигается дальше по ветке, начинается подготовка к заезду и т.д. А если клиент не планирует приезжать, то бизнес-процесс завершается, и переходит уже к другой логике (к попытке вернуть клиента и т.д.).

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

Это выглядит следующим образом:

  • звонит сервис, спрашивает: «Добрый день! Вы приедете завтра к нам на сервис?»
  • клиент ему отвечает – «Да» или «Нет», происходит распознавание речи;
  • и в зависимости от ответа бизнес-процесс идет дальше – или запись подтверждается, или время в журнале записи освобождается;
  • при необходимости разговор разбирается, подключаются менеджеры и т.д.

 

 

Как это работает?

  • В 1С регламентным заданием создаются задачи на обзвон. Задача 1С – только сгенерировать данные для обзвона (телефон, имя клиента, дату и какой-то текст) и отправить их в сервис. После этого 1С занимается своими делами.
  • Итак, 1С по REST дергает сервис, передавая ему в качестве параметров данные для обзвона. В сервисе есть очередь заданий. Он их обрабатывает.
    • Основная задача сервиса – это передать данные в Asterisk, чтобы он совершил звонки.
    • Далее – подписаться на события Asterisk, чтобы мы понимали, что звонок завершен.
    • И еще одна его функциональная обязанность – это принять от Asterisk записанный файл с ответом от клиента и превратить его в текст.
  • Далее полученный от Asterisk ответ и его текстовая расшифровка идет в шину данных,
  • После чего все это доезжает до 1С, которая уже принимает решение, что мы будем делать дальше – мы либо идем по положительной ветке, либо завершаем процесс.

 

 

В результате мы увеличили количество дозвонов и автоматизировали получение ответов (да/нет) по поводу каждого обращения.

 

 

Снизили нагрузку на операторов и менеджеров по исходящему трафику.

 

 

И в качестве побочного эффекта облегчили менеджерам набор номера клиента, потому что раньше возможности совершить звонок из 1С не было.

 

Примеры использования микросервисов. Внешний журнал записи

 

 

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

 

 

По нагрузке на приложение:

  • Это более 100 пользователей, которые постоянно с небольшой периодичностью тыкают, обновляют журнал, переключают периоды – создают бурную деятельность.
  • Большая разнородность данных. Здесь имеется в виду, что в одном запросе собирается несколько справочников, несколько бизнес-процессов, несколько документов. Это все большие выборки с соединениями нескольких таблиц.
  • По датам выборка составляет +/- 90 дней – это тоже доказывает разнородность данных.
  • Более 15 подразделений.
  • В одном подразделении ~ 10 сотрудников и 5 постов.

 

 

Первая реализация, конечно, была полностью сделана средствами 1С и как-то работала, но потом ее пришлось выпилить, потому что 1С не справлялась с задачами бизнеса.

С какими основными проблемами при реализации на 1С мы столкнулись:

  • долгая выборка из базы данных при переключении периода;
  • недостаточно функциональности 1С диаграммы Ганта;
  • нет возможности переиспользовать фронтэнд 1С в каких-то других приложениях (в колл-центре либо для записи с сайта).

 

 

После отказа от фронтенда на 1С была выбрана следующая архитектура:

  • Сервис написан на Python;
  • HTTP сервер на Flask;
  • В качестве ORM для работы с базой данных используется библиотека peewee.
  • В части фронтенда – это HTML с JS, используется библиотека Timeline.js.

 

 

Как это все работает?

  • 1С при проведении документа отправляет триггер в сервис.
  • Сервис делает запрос в базу данных, формирует JSON и отправляет его в кэш.
  • Далее отправляет в шину сообщение, что по этому цеху есть изменение на такое-то время такой-то даты. К шине подключены подписчики на это событие, которые при необходимости могут уже дальше делать какую-то свою логику.
  • Когда пользователь меняет дату в 1С или обновляет журнал на веб-форме браузера, уходит GET-запрос в сервис. Если данные есть в кэше, они берутся оттуда, если нет, мы идем в базу, отправляем данные в кэш и обратно клиенту.
  • На клиентской стороне происходит прорисовка журнала. К веб-форме реализовано подключение по WebSocket – это нужно для того, чтобы, когда у 10 пользователей открыт один и тот же журнал (они записываются в него), нужно, чтобы если кто-то изменил журнал (добавил или удалил запись), у всех пользователей одновременно происходило обновление журнала. Это реализовано с помощью событийной логики – все доезжает до клиента по WebSocket.

 

 

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

 

 

Кроме этого мы получили единый фронтенд. Операторы колл-центра периодически переваливаются из 1С в колл-центр и обратно, они не задают вопросы, как с ним работать – он работает аналогично.

 

 

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

 

 

На слайде показан пример, как это работает – интерфейс очень отзывчивый, ничего не висит.

 

 

Мы теперь можем делать произвольные формы, не ограничиваясь 1С-ным стеком. Если нам нужна какая-то дополнительная функциональность, мы ее выносим. На слайде показан пример, где одна форма HTML выводится поверх другой – все реализуемо.

 

 

Быстрый отклик при работе из базы 1С. Раньше это работало очень медленно.

Обратите внимание, поле, где работает журнал – это встроенный в 1С Chrome (Chrome Embedded Framework). Потому что текущий движок в платформе 8.3.8 (Internet Explorer) не позволял запускаться js-коду. Там ничего не работало. Чтобы добиться результата, пришлось впилить туда Chrome.

 

 

Какие еще преимущества мы получили в результате:

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

 

Примеры использования микросервисов. Предсказание пробега

 

 

Еще один пример – у нас есть сервис предсказания пробега.

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

Тем самым мы: во-первых, повышаем лояльность клиентов, во-вторых, повышаем возможность покупки этого ТО у нас.

 

 

Как это все работает?

  • 1С при записи добавляет триггер в сервис,
  • Сервис добавляет данные в базу MySQL и на основании этих данных делает расчет планового заезда с помощью машинного обучения – записывает в базу план ТО по машинам: дату, пробег и планируемую дату прохождения следующего ТО.
  • Другой сервис делает выборку по плановым заездам, генерирует короткие ссылки, а также занимается коммуникациями с клиентом – отправляет ему SMS-сообщения, в WhatsApp, Viber и т.д. При переходе по короткой ссылке клиент видит предложение и может записаться на удобное для него время. Результат коммуникации сервис отслеживает и сохраняет, чтобы мы дальше могли бы уже смотреть выбытие клиентов и т.д. (могли уже дальше какие-то вещи делать). Соответственно, собираются метрики переходов по коротким ссылкам – какой клиент открыл, на какой странице он остановился, что произошло, на какие кнопки он нажал. Туда впилена полная интеграция с Яндекс.Метрикой.

 

 

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

 

 

Мы заранее предсказываем его пробег с точностью до 2-х недель в 80-90% случаев.

 

 

Создаем предложения по заезду с какой-то дальнейшей обработкой.

 

Выводы

 

 

В качестве выводов могу сказать следующее:

  • Писать и поддерживать небольшие сервисы всегда проще, чем большие.
  • Для каждого сервиса можно выбрать язык и свой технологический стек, который больше всего подходит для решения этой задачи. Если нужна скорость, можно попробовать сделать микросервис на  C++, если постоянно туда-сюда гоняются данные, можно попробовать реализовать сервис на go. А для всего остального есть 1С и Python.
  • Не страшно экспериментировать с новыми технологиями. Хочешь добавить какую-то новую функциональность – выкатываешь сервис. Если по метрикам видишь, что там что-то не так, откатываешь его обратно. Остальная инфраструктура от этого не страдает. Если видим, что в сервис больше никто не ходит, просто его выключаем, и все – значит, про него все забыли.
  • Вместо рефакторинга проще выбросить сервис и написать его с нуля.

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

 

Вопросы

 

  • Вы используете для машинного обучения какую-то свою разработку или используете какой-то облачный сервис – передаете данные в Яндекс или еще куда-то?
  • В первый день конференции был доклад по машинному обучению. Мы используем те же питоновские стандартные библиотеки для машинного обучения – sckit-learn, pandas и т.д. Один в один, просто у нас своя логика идет.
  • Все это как-то тестируется? Я знаю, что у микросервисов есть проблема по этой части.
  • По тестированию здесь особо я вам ничего не расскажу, мы больше на мониторинг ориентируемся.
  • Как себя ведет Chrome Embedded Framework в толстом клиенте 1С:Предприятия?
  • У нас используются управляемые формы, и в поле HTMLДокумента есть возможность запустить ActiveX. Есть библиотека Chrome Embedded Framework, которая работает под ActiveX. Получается, что в поле HTML стартует Chrome. Как запустить ActiveX в управляемом приложении – точно так же.
  • Я правильно понимаю, существует готовый ActiveX, который показывает Chrome, и этот ActiveX можно вставить в Explorer?
  • Да. Код Chrome Embedded Framework открыт, можно скомпилировать его самим и реализовать интерфейс
  • У вас переплетено так много технологий, а сколько у вас разработчиков этим занимаются?
  • Пять.
  • И все по разным языкам?
  • Не все. Кто-то на Python, кто-то на 1С, а кто-то и на 1С, и на Python.
  • Про микросервисную архитектуру есть два или три тома книжек, которые говорят, что микросервисы, Enterprise – это целая история, ты должен начать с планирования, разделить все на микросервисы, гетерогенный ландшафт не существует. Если делать ландшафт из микросервисов, они должны быть действительно маленькими. У тебя точно микросервисная архитектура или все-таки элементы микросервисов?
  • У нас архитектура больше сервис-ориентированная – каждый сервис решает свою бизнес-задачу. Микросервисная архитектура меньше дробится.
  • Я так понимаю, что у тебя не совсем микросервисы, а скорее применение более специализированных технологий для решения определенного круга задач.
  • Тут надо сначала поднять из тех трех томов понятие о микросервисах, и потом можно будет поговорить об этом дальше.
  • Когда вы передаете клиенту этот широкий спектр технологий, он может как-то это сам поддерживать?
  • Я сам поддерживаю эти технологии, я представитель бизнеса, а не франч.
  • Но как это тиражировать и отдавать?
  • Мы не касаемся вопроса тиражирования.
  • Вопрос по интеграции с Asterisk. Передается запись звонка с Asterisk, она дальше разбирается в текст, разбирается на какие-то сегменты, а как дальше анализируется? Как система 1С понимает, что клиент согласился на приезд или захотел перенести свою заявку на какую-то другую дату и т.д.
  • Сервис отправляет данные в Asterisk, вызывает originate action – пошел набор номера. У нас в Dial-плане прописано, что когда подняли трубку, есть макрос, который при поднятии трубки записывает разговор. Как только записали разговор, Asterisk POST-запросом на PHP возвращает в сервис адрес, где лежит wag-файл. Сервис получает запрос, получает файл, разбирает через speech_to_text, парсит и делает статус 1 или 0, формирует JSON, отправляет его в 1С.
  • А кто понимает, что «Наверное», «Да», «Нет» и «Ни за что» – это 1 или 0?
  • Есть словари. Мы эту базу расширяем.
  • Ты рассказывал, как поделить на микросервисы внешние интеграции – Asterisk и т.д. А есть ли смысл делить саму 1С?
  • Внешний журнал записи – это как раз пример, что в микросервис была выделена отдельная функциональность из 1С.
  • А есть ли какие-то идеи разделить «Управление торговлей 11» на сеть 1С-ных баз, которые будут работать как микросервисы?
  • У меня такой идеи нет. Но возможность есть – я говорил, что можно из основной базы выделить сервис, который занимается оформлением заказов. Какие-то модули можно разделить.
  • Были на твоем предприятии такие случаи, что два разных микросервиса на 1С работали?
  • У нас 1С-база одна, мы ее не делим. Нам одной хватает.
  • У меня вопрос по терминологии. Поскольку сейчас в стационарной платформе произошел треш с передачей файлов на сервер, мы внутри 1С для получения / отправки файлов или получения информации о картинках, остатках и т.д. используем HTTP-сервис внутри этой же базы. Получается, что мы берем монолит 1С, но обращаемся мы к нему как к сервису.
  • А зачем?
  • Потому что есть ограничение платформы. Но я не знаю, считать это за сервис?
  • Я думаю, нет. Потому что у вас потребитель и поставщик один и тот же.

 

****************

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Выбрать мероприятие

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. papami 43 16.06.20 09:28 Сейчас в теме
В части автобизнеса неплохой подход.
Но у меня никогда даже мысли не было выносить запись) Вместо Ганта написан ActiveX (Альфа-Авто 4 и 5). Вопросы производительности в 1С решаются так или иначе.
Видимо просто масштаб бизнеса побольше в Вашем случае.
4. dmarenin 315 16.06.20 11:51 Сейчас в теме
(3) журнал используется не только в альфе. этот же фронт используется в кол центре, бэк еще используется в записи с сайта
5. papami 43 16.06.20 11:57 Сейчас в теме
(4) ну я понял, что обусловлено задачей. У нас запись с сайта импортера. У них там свой API. Таймлайна нет.
6. lmnlmn 64 16.06.20 12:59 Сейчас в теме
Это, несомненно, чудесное веяние, господа!
7. Darklight 27 17.06.20 16:12 Сейчас в теме
Монументально для статьи по докладу! Респект автору!
davdykin; +1 Ответить
8. comol 4573 22.06.20 12:43 Сейчас в теме
В этой статье/докладе всё прекрасно, кроме названия :).
И правильное использование сторонних сервисв с 1С и "нерешаемых задач нет" даже в толстом клиенте.

Только "микросервисная архитектура" это всё-таки про "поднятие и падение сервисов оркестратором", "каталог сервисов", "единый интерфейс", "распределенные паттерны" и т.п. К 1С это едва ли применимо, ну по крайней мере пока политика лицензирования не изменится...
Оставьте свое сообщение

См. также

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

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

03.09.2019    14179    m-rv    1    

Использование mock при интеграции с внешним API

Интеграция Бесплатно (free)

На Infostart Meetup DevOps инженер-программист Андрей Крапивин поделился с коллегами опытом тестирования интеграции с внешним API – показал возможности мокирования и рассмотрел их применение на реальном примере тестирования погодного виджета для конфигурации «Бухгалтерия 3.0».

28.05.2021    877    Scorpion4eg    0    

Как приручить драконов. История построения экосистемы на основе 1С

Интеграция Управление проектом Бесплатно (free)

Многие задачи интеграции и мониторинга не имеют стандартных решений в среде 1С. О том, как команда 1С-ников смогла организовать успешный симбиоз учетной системы и системы тысяч внешних устройств, на INFOSTART MEETUP Новосибирск.Online рассказал TeamLead и специалист по внедрению компании ИнфоСофт Григорий Шатров.

14.05.2021    2424    G.Shatrov    6    

Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

Документоборот 2 Интеграция v8 ДО Бесплатно (free)

Статья - пример для разработчика, как можно, не используя подсистему Интеграция с Документооборотом, управлять процессами, а именно на нашем примере прерывать выполнение процессов в 1С: Документооборот. Используя данный пример, можно организовать http-сервис в любой конфигурации 1С, которая поддерживает механизм HTTP сервисов.

13.05.2021    1118    Flover    0    

И тогда наверняка нас захватят облака Промо

Интеграция Бесплатно (free)

Внимание! Данный текст содержит достаточно мало технических подробностей и готовых рецептов. Главным образом некоторые размышления на предмет будущего технологий и профессий. Некое лёгкое чтение на досуге.

28.06.2019    10444    comol    36    

Настраиваем авторизацию пользователей 1С через Okta

Интеграция v8 Бесплатно (free)

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    2667    ripreal1    10    

Как вам поможет Service Discovery и управление секретами инфраструктуры в 1С и не только

Интеграция Информационная безопасность ИТ-инфраструктура Бесплатно (free)

DevOps-инженер компаний «Первый Бит» и «Серебряная пуля» Руслан Жданов рассказал, как работает service discovery, зачем нужно хранение секретов, и как реализовать эти технологии в инфраструктуре 1С. Доклад прозвучал в рамках онлайн-митапа Infostart Meetup Novosibirsk.

21.04.2021    1043    ZhdanovR    0    

Интеграция "1С:Управление торговлей 10.3" с Yandex SpeechKit для распознавания телефонных звонков

WEB Интеграция Телефония, SIP Бесплатно (free)

Распознавание телефонных звонков позволяет контролировать работу менеджеров, организовать для них дополнительный KPI, помогает разбирать конфликты и категоризировать звонки по вхождению слов. О своем опыте интеграции «1С:Управления торговлей 10.3» и сервиса Yandex SpeechKit на INFOSTART MEETUP Saint Petersburg.Online рассказал ИТ-директор компании «Умный дом» Федор Рыжков.

12.03.2021    778    zzhiraf_    0    

Автоматизация магазина на Oracle Apex. Обзор аналога 1С Промо

Интеграция Розничная торговля Розничная торговля Бесплатно (free)

Как известно 1С - лидер в автоматизации учета в постсоветском пространстве. Есть ли достойные альтернативы (не дорогие, с возможностью конфигурирования, простые) ? Однозначно да ! Предлагаю Вашему вниманию обзор "буржуйской" технологии Oracle Apex

17.05.2013    61404    avhrst    295    

«БИП: Бизнес-Процессы». Интеграция с Telegram и Конструктор чат-ботов

Управление бизнес-процессами (BPM) Интеграция v8 УУ Бесплатно (free)

В статье приводятся примеры настройки автоматических оповещений в системе «БИП: Бизнес-Процессы» с использованием мессенджера Telegram. Также, приводятся примеры создания и настройки произвольных чат-ботов с использованием Конструктора чат-ботов.

15.02.2021    766    YuriYuriev    0    

Практические опыты с Red Hat JBoss Middleware RED HAT JBOSS FUSE. Часть №2

Интеграция Бесплатно (free)

Пробуем активировать маршрутизацию, разбираемся с пакетами (бандлами), терминалом karaf, графической средой управления с web-интерфейсом hawtio.

14.02.2021    401    ksnik    0    

Практические опыты с Red Hat JBoss Middleware RED HAT JBOSS FUSE. Часть №1

Интеграция Бесплатно (free)

Задачи интеграции на солидном предприятии могут быть неочевидно сложны и многообразны. Нередко выполняется скрупулезная оценка рисков до начала разработки "на берегу". Рассмотрите эксперименты с бесплатными аналогами дорогостоящих эквивалентов систем интеграции на основе сервисной шины предприятия ESB. Они проводились на актуальной версии Centos Linux. Большим плюсом Fuse являются разнообразие решаемых задач, широкие возможности смены или доработки стратегии, технологий интеграции уже в процессе внедрения. (В скачанных дистрибутивах заготовки настроек для запуска этого ПО на Windows имеются.). В данной публикации Вы узнаете как установить и запустить сервисную шину RED HAT JBOSS FUSE.

13.02.2021    433    ksnik    0    

Бесплатный GPS-трекинг Промо

Интеграция Управление персоналом (HRM) Учет рабочего времени Управление персоналом (HRM) Учет рабочего времени Бесплатно (free)

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

05.01.2013    49537    venger    19    

Архитектурное решение интеграции баз 1С с использованием брокера сообщений Rabbit MQ

Интеграция v8 1cv8.cf Бесплатно (free)

При решении задач интеграции баз данных можно использовать различные средства «транспорта» сообщений. Одним из таких механизмов является брокер сообщений «Rabbit MQ». Такие механизмы очередей сообщений удобно использовать для организации обмена между информационными системами с различной структурой данных, когда велик объем передаваемой информации и требуются гарантии успешной доставки сообщений, а также когда поддержание работоспособности иных способов передачи, например через файлы, становиться слишком трудоемким. Брокер сообщений Rabbit MQ широко описан в сети, но 1С пока не имеет штатных механизмов работы с ним, поэтому их приходится дорабатывать. Рассмотрим пример архитектуры 1С с его использованием.

12.02.2021    1181    Koder_Line    1    

Как мы интегрировали свою систему управления разработкой со Slack. Инструменты, возможности, процесс разработки

Интеграция Бесплатно (free)

Slack – это не только корпоративный мессенджер. Он предоставляет гибкие настройки уведомлений и реализует несколько вариантов интеграции, с помощью которых можно наладить взаимодействие с собственным приложением. Об интеграции Slack с системой управления разработкой, написанной на 1С, рассказал руководитель компании «ПрогТехБизнес» Александр Анисков.

01.02.2021    1536    vandalsvq    7    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2542    SizovE    25    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1886    SizovE    2    

Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО

Интеграция Документоборот 2 Перенос данных из 1C8 в 1C8 v8 ДО КА2 Бесплатно (free)

Приветствую всех. Сегодня пойдет речь о том, как на одной крупной компании внедряли 1С:Документооборот 2.1 в связке с КА 2.4. Вроде бы системы типовые, мы практически не добавляли ничего в них, но проблем было столько, что я решил изложить их в статье. Может, кому-то пригодится это в дальнейшем, и не придется тратить кучу времени на поиск решений.

10.11.2020    5648    maks_20    23    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 2)

Интеграция Практика программирования v8 1cv8.cf Бесплатно (free)

В статье опишу вариант обработки для загрузки номенклатуры поставщика, блок загрузки номенклатуры и доп. реквизитов.

17.10.2020    887    malikov_pro    3    

Интеграция 1С и B2B-проектов

Интеграция Бесплатно (free)

Часто у бизнеса возникает потребность предоставить крупным клиентам возможность самостоятельно оформлять заказы на B2B-портале, интегрированном с 1С. Как организовать такую интеграцию на конференции Infostart Event 2019 Inception рассказал исполнительный директор компании «Гильдия консультантов» Николай Елатонцев.

09.10.2020    2728    nelatontsev@webgk.ru    1    

Управление соляриями из 1С через Arduino

Интеграция v8 1cv8.cf Здравоохранение, медицина, стоматология УУ Бесплатно (free)

Мой опыт автоматизации сети соляриев с интеграцией 1С и оборудования соляриев с помощью платформы Arduino.

01.10.2020    2469    impextr    32    

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 4 - NoSQL (MongoDB, Redis)

Интеграция Бесплатно (free)

Если в ИТ-инфраструктуре есть NoSQL решения, с которыми требуется взаимодействовать из 1С, можем использовать прослойку на Golang в стиле RESTful

21.09.2020    5123    dmitry-irk38    11    

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 3 - ElasticSearch

Интеграция Журнал регистрации Бесплатно (free)

Как в статье №1 этого цикла выгрузим через прослойку журнал регистрации (xml формат) в ElasticSearch. Статья будет иметь практическую направленность в минималистичном стиле

14.09.2020    1777    dmitry-irk38    4    

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 2 - Docker

Интеграция Бесплатно (free)

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

07.09.2020    2514    dmitry-irk38    0    

Интеграция с Трелло. Готовый код

Обмен данными 1С Интеграция Agile (XP, SCRUM, Канбан) v8 Бесплатно (free)

Код основных действий, интеграция с API Трелло.

19.08.2020    3939    Yashazz    14    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    3250    Infector    4    

Мониторинг факта выполнения обмена с помощью сервиса healthchecks.io

Интеграция Системное администрирование v8 1cv8.cf Россия Бесплатно (free)

В статье опишу вариант простого мониторинга обработчиков, запускаемых по расписанию.

30.06.2020    2202    malikov_pro    7    

Частые проблемы с бесшовной интеграцией документооборота

Документооборот и делопроизводство Интеграция Бесплатно (free)

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

30.06.2020    3122    Koder_Line    3    

Как мы запилили в АЙТАТ.РФ обработку-бота, чтобы ускорить отгрузку в 2 раза или Реальный опыт внедрения нового механизма "Трансляция событий" от 1С-Коннект

Интеграция v8 Бесплатно (free)

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

24.06.2020    2075    direwest    4    

Маркировка лекарственных препаратов. Часть первая "Быстрая интеграция"

Интеграция Розничная торговля v8 1cv8.cf Фармацевтика, аптеки Россия УУ Бесплатно (free)

Данный цикл будет посвящен маркировке лекарственных препаратов (далее ЛП), нюансам работы с "1С: Библиотека интеграции с МДЛП", доступной для скачивания на сайте ИТС, методиками работы с регистраторами выбытия, и проблемам, с которыми пришлось столкнуться при интеграции. Эта статья будет представлять из себя краткую инструкцию, что делать, когда маркировка уже близко и необходимо быстро внедрить ее. Надеюсь, она станет подспорьем в данной задаче. Будут приведены рекомендации, как в короткие сроки с минимально необходимой функциональностью и минимумом чтения документации произвести интеграцию библиотеки МДЛП и выполнить начальные настройки. Также будут даны рекомендации по быстрым, но важным, на мой взгляд, доработкам.

23.06.2020    8248    IssakN    32    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    8825    John_d    10    

1C# – 1С моей мечты

Интеграция v8 Бесплатно (free)

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

01.06.2020    12512    zhichkin    36    

Обработчик "После завершения транзакции" своими руками

Практика программирования Интеграция v8::blocking Бесплатно (free)

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

31.05.2020    3583    barelpro    63    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5430    zhichkin    30    

Учимся готовить кроликов с редиской: опыт применения Rabbit MQ и Redis в интеграционных проектах

Производительность и оптимизация (HighLoad) Интеграция Бесплатно (free)

При построении мощных производительных отказоустойчивых решений для интеграции во всем мире активно используются технологии обработки очередей сообщений с помощью брокера RabbitMQ и кэш-сервера Redis. О практическом опыте использования этих технологий при построении ИТ-ландшафта, включающего системы на 1С, на конференции Infostart Event 2019 Inception рассказал Сергей Наумов.

12.05.2020    7768    SergeyN    3    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5537    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2720    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4584    RPGrigorev    0    

Измерительная лаборатория с использованием 1С+Ардуино

Периферийные устройства Интеграция v8 Россия Бесплатно (free)

1С в автоматизации "научных" и около... экспериментов.

02.05.2020    4875    maxlab    16    

Интеграция БИТ:СКУД с типовой конфигурацией

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция БИТ:СКУД с типовой конфигурацией, обновление БИТ:СКУД в составе конфигурации и отдельно. Обновление системы защиты.

26.04.2020    5876    RPGrigorev    0    

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView.

06.04.2020    5504    Flyerink    2    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    15065    informa1555    35    

Использование таблиц SQL Server в качестве очередей сообщений

Практика программирования Интеграция v8 Бесплатно (free)

Статья о событийно-ориентированной интеграции и об асинхронной обработке данных в контексте 1C под управлением SQL Server. Подробно разбирается вопрос использования таблиц СУБД в качестве очередей сообщений.

23.03.2020    4019    zhichkin    9    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

Интеграция Конфигурирование 1С v8 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    8292    RPGrigorev    3