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

Публикация № 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 30 16.06.20 09:28 Сейчас в теме
В части автобизнеса неплохой подход.
Но у меня никогда даже мысли не было выносить запись) Вместо Ганта написан ActiveX (Альфа-Авто 4 и 5). Вопросы производительности в 1С решаются так или иначе.
Видимо просто масштаб бизнеса побольше в Вашем случае.
4. dmarenin 281 16.06.20 11:51 Сейчас в теме
(3) журнал используется не только в альфе. этот же фронт используется в кол центре, бэк еще используется в записи с сайта
5. papami 30 16.06.20 11:57 Сейчас в теме
(4) ну я понял, что обусловлено задачей. У нас запись с сайта импортера. У них там свой API. Таймлайна нет.
6. lmnlmn 61 16.06.20 12:59 Сейчас в теме
Это, несомненно, чудесное веяние, господа!
7. Darklight 22 17.06.20 16:12 Сейчас в теме
Монументально для статьи по докладу! Респект автору!
8. comol 4321 22.06.20 12:43 Сейчас в теме
В этой статье/докладе всё прекрасно, кроме названия :).
И правильное использование сторонних сервисв с 1С и "нерешаемых задач нет" даже в толстом клиенте.

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

См. также

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

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

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

03.09.2019    11259    0    m-rv    1    

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

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

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

сегодня в 10:30    145    0    Infector    4    

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

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

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

30.06.2020    589    0    malikov_pro    4    

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

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

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

30.06.2020    711    0    Koder_Line    2    

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

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

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

28.06.2019    9430    0    comol    36    

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

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

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

24.06.2020    709    0    direwest    4    

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

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

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

23.06.2020    1499    0    IssakN    8    

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

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

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

17.06.2020    2066    0    John_d    1    

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

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

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

17.05.2013    58692    0    avhrst    295    

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

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

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

01.06.2020    9215    0    zhichkin    33    

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

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

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

31.05.2020    2092    0    barelpro    58    

Нейроконструктор

Интеграция Искусственный интеллект (AI) Прочие инструменты разработчика v8 Бесплатно (free)

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    5409    19    user1404129    18    

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

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

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

05.01.2013    44988    0    venger    19    

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

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

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

12.05.2020    2472    0    zhichkin    19    

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

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

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

12.05.2020    4314    0    SergeyN    3    

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

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

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

08.05.2020    4228    0    chernenko_vv    25    

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

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

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

08.05.2020    1619    0    vostok1.dz    2    

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

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

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

04.05.2020    3338    0    RPGrigorev    0    

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

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

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

02.05.2020    3624    0    maxlab    15    

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

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

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

26.04.2020    4351    0    RPGrigorev    0    

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

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

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

06.04.2020    3416    0    Flyerink    0    

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

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

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

31.03.2020    10971    0    informa1555    21    

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

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

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

23.03.2020    2338    0    zhichkin    6    

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

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

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

02.03.2020    4177    0    RPGrigorev    3    

Бесшовная интеграция через обмен по правилам - миссия выполнима

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

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

24.01.2020    4228    0    e-9    2    

Облачные кассы и 1С. Интеграция, которой не было

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

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

24.09.2019    5854    0    antonovintervolga    15    

Передача данных с сервера на клиент через WebSocket NativeAPI и Centrifugo

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

В статье описываю реализацию обмена для замены передачи сообщений через 1С Сервер взаимодействия.

23.09.2019    6500    0    malikov_pro    11    

Оповещения боту из 1С за 31 минуту

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

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    15743    4    feva    37    

Подбор оборудования для информационных систем на платформе 1С

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

При подборе оборудования по рекомендациям с сайта ИТС возникает противоречие: проводить ли нагрузочные тесты, чтобы определить возможную нагрузку, или достаточно просто взять данные из таблиц статистики? О том, какую тактику применить в том или ином случае, на конференции INFOSTART EVENT 2018 Education рассказал начальник отдела разработки компании IBS Филиппов Евгений.

09.09.2019    8523    0    jf2000    8    

Интеграция 1С с промышленным оборудованием

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

Эффективность управленческой информации в производственном процессе зависит от данных, собираемых на нижних уровнях. Про автоматизацию получения этих данных с использованием технологии OPC (OLE for process control) на конференции Infostart Event 2018 Education рассказал Юрий Коноваленко.

06.09.2019    8271    0    user642664_yurkeshk    12    

Poka-yoke. Оператор производственной линии – пользователь 1С. Кто сказал, что 1С только для финансов?

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

Что такое Poka-yoke системы, зачем они нужны и как меняется работа на предприятии при их внедрении рассказал руководитель проектного отдела компании «Информационные технологии» Дмитрий Макаров на конференции INFOSTART EVENT 2018 EDUCATION.

04.09.2019    3721    0    pro-rok    16    

Как должна выглядеть правильная интеграция. Использование Mule ESB и RabbitMQ с 1С

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

Чем масштабнее проект, тем сложнее настроить все связи. Каждый решает эти проблемы по-своему: кто-то пользуется конвертацией, кто-то пользуется xml и json. Руководитель управления ИТ компании WiseAdvice Олег Филиппов рассказал, как можно применить такие инструменты, как Mule ESB и RabbitMQ.

02.09.2019    9089    0    comol    3    

Как организовать консолидацию данных из трех десятков предприятий, не привлекая программистов на местах?

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

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

15.07.2019    4234    0    ShurikDM    4    

Бизнес-аналитика с помощью Power BI

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

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

11.07.2019    12519    0    pbazeliuk    18    

Тестирование интеграций между системами

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

Как начать разрабатывать интеграцию без реальной «второй стороны»? Как быть уверенным, что обмен не «сломается» при следующем обновлении? О том, какие подходы можно применять при тестировании интеграций и как такое тестирование может выглядеть в целом – в докладе Никиты Грызлова на конференции INFOSTART EVENT 2018 EDUCATION.

01.07.2019    9777    0    nixel    3    

Система питания в офисе: как совместить вендинговые автоматы, 1С, облачную кассу и веб-технологии

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

В начале 2019 года тенденция развития автоматов питания в России привела к появлению проекта нового формата питания на работе — МикроМаркета “Го!Поедим”. Потребовалось создать новый формат зоны питания сотрудников: интегрировать в офисные кухни полноценные МикроМаркеты с бесконтактной оплатой, кофе-машинами, лаунж-зоной. Если правильно совместить вендинговые автоматы, облачную кассу, 1С и веб-технологии, то в результате будут не только сытые сотрудники, но и корректная работа всей системы офисного питания.

22.06.2019    5934    0    antonovintervolga    6    

По следам публикаций 1С + микроконтроллер, или 1С в железе

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

Несколько примеров удачного применения связки микроконтроллер и 1С, в производстве. Результат - исключение человеческого фактора, экономия средств на АСУ, повышение культуры производства ))), и др...

12.06.2019    7057    0    vostok1.dz    13    

1С + TecDoc + CMS Битрикс. Трудности перевода

Интеграция Оптовая торговля Оптовая торговля v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

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

12.04.2019    6164    0    n.saltsina    11    

RabbitMQ + Конвертация Данных 3.0

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

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

21.03.2019    24289    0    barelpro    82    

Переход на "Зарплату и управление персоналом 3.1"

Интеграция Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

Сменила я тут работу и уже после того, как я приступила к исполнению обязанностей, мой новый начальник мне призналась, что выбор пал на меня только из-за того, что я знаю программу. Справедливости ради, эта уверенность была основана только на том, что я прошла тестирование, включающее только основные операции кадрового делопроизводства. Так или иначе, а работодатель попал в точку, нанимая меня в надежде, что я решу проблему: нужно перейти «с 8.2 на 8.3». Ничего сложного, скажет большинство, я тоже так говорю, но ситуация осложнялась некоторым количеством предшественников, которые уже «нафеячили» в программах до меня. Взять и сделать все заново мне не разрешили, так что пришлось исходить из того, что есть, и именно это дало пищу для размышлений и, в конце концов, привело к написанию этих рекомендаций. Если перед Вами стоит задача перехода с ЗУП 2.5 на ЗУП 3.1, я попробую облегчить Вам жизнь этой статьей.

01.02.2019    12410    0    VKuser24804875    33    

Выбор программы 1С

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

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

16.01.2019    8664    0    itworks    22    

Почему внедрение ERP-системы не приносит пользы бизнесу?

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

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

15.11.2018    22221    0    rossoxa    65