Как стать автором
Обновить
Сначала показывать

Наш опыт интеграции с Диадок — архитектура исходящего процесса

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.3K

АльфаСтрахование взаимодействует с контрагентами, партнёрами, агентами и другими через различные системы документооборота, включая Диадок. Поскольку электронный документооборот (далее ЭДО) с контрагентами в системе Диадок хорошо соответствовал процессам, разработкой которых команда уже занимается, и у нас имеется опыт взаимодействия с другими внешними системами, решили создать интеграцию между системой электронного документооборота АльфаСтрахование (далее СЭД-АС) и системой Диадок. Об этой интеграции и пойдет речь в данной статье.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии4

Как мы OpenAPI в приложениях используем (Spring Boot, Typescript)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2K

Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.

Контракты OpenAPI — спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.

Вдаваться в историю появления спецификации и ее развития не буду. Если кратко — эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml‑синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент‑серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI — 3.1.0 — является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Настраиваем TLS контекст. КриптоПро в помощь

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров2.5K

Эта публикация – практический кейс c кратким туториалом по реализации TLS-соединения, на основе российских стандартов шифрования, основанных на компонентах КриптоПро (CP). Статья не содержит рекламы или попытки сподвигнуть к выбору конкретных компонентов. Я столкнулся с задачей реализации шифрованного подключения к системам бюро кредитных историй (БКИ) в части оценки платежеспособности физических лиц. У меня было ограничение - необходимо было использовать КриптоПро (CP). В процессе реализации задачи открыл для себя несколько интересных моментов. Процесс их "открытия" был чарующим и загадочным. Чары мне обеспечил CP, а с загадками помогали службы поддержки БКИ и CP. Этой статьей хочу помочь сэкономить время и сделать прозрачным процесс реализации шифрованного подключения. В начале статьи дам небольшой теоретический экскурс. Если Вас интересуют детали реализации, то сразу переходите к разделу "Установка и настройка CP компонентов", код, приведенный в статье выложен тут. Приятного чтения.

Читать
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров6.7K

Всем привет. Решил поделиться опытом тестирования логики консьюмеров и продюсеров в стандартном Spring Boot приложении. Я несколько раз подходил к этой задаче с различными вариантами и находил разные подводные камни, которые стимулировали меня искать дальше - более лучшее решение. И вот, в очередной раз прошерстив накопленный опыт человечества (stackoverflow), я реализовал очередной вариант, в котором пока не нашел минусов предыдущих реализаций. В любом случае, поделюсь с вами как я к этому пришел и почему для моих кейсов не сработали другие варианты (или показались хуже последнего).

Дисклеймер. Я сторонник интеграционных тестов при запуске сборки проекта с тестами. То есть это когда для unit-тестов поднимается контекст Spring со всеми плюсами (окружение, максимально похожее на боевое) и минусами (это ДОЛГО запускается и ДОЛГО описывается).

Часть 1. А разве это проблема вообще?

Коротко: ...

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии8

Нагрузи меня, Gatling

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров4.3K

Привет. Это статья-туториал про выбор технологии и реализацию проекта нагрузочных тестов для API REST микросервисов. Про себя и специфику продукта, над которым работаю, я подробно описывал тут, когда рассказывал о интеграционных тестах. Здесь этому уделять внимание не буду. Если решитесь продолжать, то Вас ждет длинное чтиво. Результатом потраченного времени и внимания будет понимание того, зачем нужно нагрузочное тестирование, с чего начать, куда двигаться дальше и шаблонный проект нагрузочных тестов, который Вы сможете адаптировать под себя. Все используемые мной технологии в этой статье несут печать Java экосистемы. Это тоже может повлиять на то, решитесь ли Вы продолжать. Поехали ...

Читать
Всего голосов 4: ↑4 и ↓0+5
Комментарии2

Создание Chat-Ops бота в Mattermost на python

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4K

Привет, Хабр!

Компания АльфаСтрахование, как и многие другие, столкнулась с необходимостью замены используемых инструментов в связи с санкциями. За последний год мы отказались от Slack в пользу open-source аналога Mattermost, а Jira не без сложностей была заменена на Kaiten.

В нашей команде, которая занимается системой электронного документооборота в части операционных процессов, часто на голосовых встречах и при обсуждении в мессенджере Mattermost возникала необходимость накидать черновики задач в таск-трекер, чтобы потом их дозаполнить. Эта потребность наложилась на мое желание попробовать написать что-то на python, связанное с Chat-Ops.

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Простой, полезный проект интеграционных тестов

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров5.7K

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

По отзывам моих ревьюеров, эта статья ‑ «Инструкция по входу в автоматизированное тестирование и настройка фрейма».

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии7

Наш опыт мультиаутентификации в приложениях ASP.NET Core

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7K

Привет, Хабр! На связи разработчик АО АльфаСтрахование. В этой статье я хочу рассказать о мультиаутентификации в ASP.NET Core приложениях.

Нам довольно часто нужно писать .NET Core приложения. Нередко они используются для интеграции крупных систем. А в этих системах частенько свой собственный набор учетных записей (далее УЗ) и инструментов по управлению доступа к ним.

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

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии3

Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров9.1K

Рассмотрим вариант добавления трейсов в Spring Boot 3 приложение с использованием Kafka в качестве транспорта и Zipkin в качестве инструмента для трассировки.

Функциональность соберем в автоконфигурацию для подключения к Spring Boot приложениям.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии6

Аналитика. Обзор, рекомендации, акценты применения

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров5.4K

Всем, привет.  Для самых жаждущих и нетерпеливых эта в этой статье будет про:

Типы анализа, используемые для/около информационных технологий;

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

Специальные артефакты для каждого типа анализа;

То, как понять, что в компании/процессе/проекте нужно использовать конкретный тип анализа;

Акценты и навыки, нужные при использовании каждого типа анализа;

Для тех, кому интересно и хочется сложить причинно-следственные связи, проследить нить рассуждений, то давайте это сделаем. Я Иван. Люблю сферу информационных технологий и стремлюсь развиваться в дисциплинах, задействованных для создания информационных продуктов – анализе, проектировании, разработке. Эти дисциплины влияют друг на друга и на конечный результат - создаваемую информационную систему.

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

Читать
Всего голосов 3: ↑2 и ↓1+1
Комментарии9

Опыт интеграции .NET Core+ приложений с HashiCorp Vault

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.7K

Привет, Хабр! В этой статье я хотел бы поделиться опытом нашей команды в части интеграции .NET Core и выше приложений с корпоративным хранилищем секретов HashiCorp Vault.

Наши приложения, как и большинство приложений в компании, используют в процессе работы различные секреты (пароли, токены и т.д.). Их, с точки зрения информационной безопасности, нельзя хранить в коде или на компьютере, на котором запущено приложение. Поэтому в компании используется специальное ПО – хранилище секретов HashiCorp Vault.

В чем суть проблемы, с которой мы столкнулись: решение, используемое ранее для получения секретов из HashiCorp Vault в приложение, было не очень удобным и очевидным

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии11

5 «Почему» для понимания архитектурных концептов при создании информационных продуктов

Время на прочтение16 мин
Количество просмотров5.8K

По традиции, для самых жаждущих и нетерпеливых, эта статья будет о:

С чего начинается построение любой архитектуры?

За счет чего реализуются потенциальные бизнес возможности?

Кто нужен для реализации намеченных возможностей?

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

Из чего должна складываться структура продукта и как он должен реализовывать функциональные требования?

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

К эссе
Всего голосов 10: ↑6 и ↓4+2
Комментарии12

Spring Boot. Настройка профилирования времени выполнения

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6.9K

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

Т.к. речь шла о сервисе, который был написан довольно давно, и в него многие месяцы не вносились изменения, повинуясь принципу “работает - не трогай”, я решил постараться сделать это, не прикасаясь к самому коду сервиса.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии13

Retry or No?

Время на прочтение17 мин
Количество просмотров7.9K

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

Читать
Всего голосов 5: ↑4 и ↓1+4
Комментарии33

Наш опыт в распознавании наличия подписи на .NET + EmguCV (OpenCV). Ч. 2

Время на прочтение8 мин
Количество просмотров2K

Привет, Хабр! Это продолжение статьи о нашем опыте распознавания подписей. В ней мы рассказывали о первой итерации нашего алгоритма распознавания, полагающегося на поиск контуров прямоугольника, в котором должна была располагаться подпись. Запущенный на бою алгоритм успешно обрабатывал немногим меньше 80% документов. Однако мы на этом не остановились, так как одним из предъявляемых к нам требований была отметка в 95%.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO

Время на прочтение19 мин
Количество просмотров7.9K

Когда пишешь тесты на обширную модель (DTO), ловишь себя на мысли, что сосредоточен не на тестовых данных, а на том, как ловчее избавить себя от написания boilerplate-кода.

Как это сделать? Поискать готовое решение (плагин).

А если его нет? Тогда – написать плагин.

А если не умеешь? Стоит хотя бы начать :)

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии14

Архитектура и решения безопасности в облаке часть 2

Время на прочтение5 мин
Количество просмотров2.2K

В первой части статьи мы обсудили стоп-факторы, которые блокировали возможность встраивания методологии CI/CD в процесс облачной разработки, а также способы, которыми они были устранены. Возможность безопасного и прозрачного управления Группами Безопасности командами разработки и используемые решения для осуществления контролей ИБ из библиотеки безопасности.

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Как избавиться от старого продукта, не удаляя продукт?

Время на прочтение5 мин
Количество просмотров2.9K

image


Привет! Согласитесь, во многих крупных компаниях рано или поздно возникает проблема — какой-то прибыльный продукт превращается в legacy. Причем обычно менеджмент это осознает, когда хочет "просто" поменять одну цифру на другую к вечеру, а разработчики оценивают это в два спринта. Или когда разработчики один за другим теряют мотивацию и покидают продукт, а новые кандидаты выбирают другие офферы.


Часто эту проблему пытаются решить переписыванием продукта с нуля. Но переписывание с нуля кроет в себе отложенную проблему, так как можно потерять мелкие нюансы и в итоге переписанный продукт будет поначалу болеть "детскими болячками", которые много лет назад были вылечены в legacy. Мы, в АльфаСтраховании считаем, что все члены команды разработки должны понимать, что их материальный успех зависит от того, сколько компания зарабатывает, используя написанный ими продукт. А сколько денег принесет продукт, который постоянно спотыкается и плюется ошибками? И клиентов не удовлетворить ответами из серии: "Ну зато у нас тут микросервисы и неблокирующие стримы". Им важно, чтобы продукт работал быстро и стабильно. А написан ли он в виде скрипта на bash или в виде микросервисов на Scala, потребителям наплевать. Конечно, разработчикам не нужно забывать и о своём развитии — регулярно изучать новые технологии, получать опыт использования их в продуктиве, но не в ущерб бизнесу.


Что с этим делать? Мы нашли для себя ответ, успешно применили на одном продукте и надеемся что этот подход или его части помогут и другим.

Читать дальше →
Всего голосов 3: ↑2 и ↓1+2
Комментарии20

Наш опыт в распознавании наличия подписи на .NET + EmguCV (OpenCV). Ч. 1

Время на прочтение12 мин
Количество просмотров6.5K

Привет, Хабр! Я работаю разработчиком в АльфаСтрахование – в команде, которая занимается электронным документооборотом

В чем суть проблемы, с которой мы столкнулись: несмотря на то, что документооборот внутри компании полностью электронный, на «входе» документы могут поступать к нам в самых разных форматах: отсканированные с бумажных носителей, в «цифре» с ЭЦП или без электронной подписи – чтобы обеспечить сквозную обработку таких документов, в ряде процессов нам требуется распознавать наличие подписи.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

Как backend разработчики frontend писали (Vue + TS + Webpack)

Время на прочтение10 мин
Количество просмотров7.9K

У нас в команде есть пару проектов, для которых есть старые frontend. Написаны все они на разных технологиях, но объединяет их одно: нежелание кого-либо туда лезть и что-то править. Команде там кажется страшно, непонятно и неудобно. Любая доработка превращается в головную боль. В очередном проекте нам хотелось не допустить такого развития событий, и, кажется, у нас получилось.

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

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии22
1

Информация

Сайт
alfastrah.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия