Технологический стэк

Мы постоянно обновляем, улучшаем и меняем стэк технологий WiseAdvice.Tech, ведь IT — самая быстроразвивающаяся отрасль в мире, и только так можно оставаться востребованными на рынке.
ОС
Windows
Ubuntu
В основном используем Windows, потому что у нас есть сервисы криптографии, которые работают только под управлением этой ОС. От распределенной ФС пришлось отказаться в пользу дисковых полок и SAN, в силу того что основной профиль нагрузки - OLTP (финансовые данные), Latency Ceph были неприемлемы.
Система управления базами данных
PostgreSQL
Elasticsearch
В качестве RDBMS мы предпочитаем PostgreSQL, хотя большая часть нагруженных реляционных систем у нас пока на MS SQL. Часть сервисов выносим в Яндекс.Cloud. Конечно каждый элемент стэка, включая СУБД, у нас оброс некоторым количеством вспомогательных библиотек, что естественно за годы эксплуатации. ElasticSearch используется для корпоративного и клиентского поиска, а также частично для хранения логов. Хотя большинство логов переезжает в ClickHouse – мы коммерческая компания, и пытаемся экономить ресурсы, а для ElasticSearch их нужно немало.
MS SQL
Redis
BigQuery
ClickHouse
Backend
node.js (nest.js);
Поскольку основные задачи, с которыми мы сталкиваемся, так или иначе связаны с учетом, а что-то «костылить своими руками» мы не любим, то основой стэка продолжает быть 1С. 1С обеспечивает большинство функций хранения, бэкенда, и бэкофиса. Из 1С мы выносим сервисы, которые требуют нереляционных систем хранения, либо к которым предъявляются повышенные требования по скорости ответа или отказоустойчивости. Также для большинства клиентских сервисов мы пишем свой фронт.
.NET
Код
GitLab
Gitlab в компании используется активно и как удобный интерфейс к хранилищу кода, и как Gitlab CI для автоматизации процессов сборки и развертывания приложений (как в классических стэках, так и 1С). Практически весь код, да и не только код, а также скрипты администрирования и большинство настроек, у нас хранится в GitLab. Почти в каждом репозитории настроен CI. Он пока не статичен, конечно, ещё есть над чем поработать, но уже экономит нам сотни трудочасов ежемесячно.
Frontend
Angular
PrimeNG
Необходимо создавать продукт, который близок пользователю, однако в то же время поддерживает сложные процессы. Не стоит забывать и о разработчиках – каждый член команды должен быть обеспечен лучшими и самыми современными инструментами. За последние три года стэк WiseAdvice.Tech претерпел громадные изменения.

Angular – Основной фреймворк разработки фронта. Все приложения, разрабатываемые в рамках WiseAdvice.tech являются достаточно сложными и нагруженными различной логикой, поэтому мы на старте закладываем определенные архитектурные паттерны. Angular позволяет нам изначально корректно организовывать код фронтенда для масштабирования приложений. Естественно мы используем только TypeScript. Мы также используем state manager NGXS для управления состоянием в наших приложениях.

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

Storybook — мы придерживаемся компонентного подхода для разработки Web приложений. В идеале уложить приложение в UiKit, и для этого у нас есть PrimeNG. Но если мы пишем свой компонент с какой-то более-менее сложной логикой, то мы сразу описываем и тестируем поведение компонента отдельно. Для того, чтобы упростить разработку, уменьшить количество багов и дать возможность переиспользовать реализованный компонент в других наших Web-проектах.

WebStorm – мы используем единую IDE, чтобы проще было обучать новых членов команды, делиться какими-либо настройками, рекомендованными плагинами. Мы выбрали WebStorm от компании JetBrains. Всем разработчикам мы конечно предоставляем лицензии на WebStorm.
Storybook
NgXs
WebStorm
Material
Middleware
Mule ESB
RabbitMQ
Скорее всего, еще появится ещё GrahpQL, но пока его нет. Mule ESB мы используем как некоторую «прослойку» между интернетом с cloud-сервисами и Incorporate 1С, в простонародии API Gateway. Впрочем, MuleESB существенно гибче, чем классические API Gateway решения, поэтому при необходимости мы используем и её функционал и для решения задач классической ESB, и для ETL задач.

RabbitMQ – позволяет нам организовывать асинхронные обмены как с внешними так и с внутренними сервисами. Протокол AMQP оборачивается в http в нашем случае, соответственно мы не используем все преимущества RabbitMQ. Но в большинстве сервисов хотя бы не «костылим» свои реализации очередей сообщений на таблицах реляционных БД.
API
Postman
OpenAPI
Все наши API мы описываем, Mock-аем и тестируем с использованием Postman. Большая часть наших API уже описана в формате OpenAPI 3. Postman очень удобен для тестирования API. Собственно, об этом, пожалуй, знают все. Но мы пошли дальше – тестирование API прогоняется как часть CI процесса с использованием утилиты Newman. Более того, часть тестов регистрируется как регулярные и добавляется в Postman мониторинг. Использование Mock-серверов позволяет не привязывать жестко разработку фронта к разработке бэка.
Тестирование
Postman
Katalon Studio
Юнит-тестов у нас нет и не планируется. Мы, к счастью, не банк, и можем себе позволить иногда (но очень редко) ошибиться, не тратя миллионы трудочасов разработчиков на покрытие тестами каждой строчки кода. Хотя и те, кто тратят, как показывает практика, тоже ошибаются. Katalon – отличный стэк для автоматизированного тестирования, который позволяет «ручного» QA превратить в «автоматизированного» за пару дней, абсолютно для него незаметно. Тесты Katalon, конечно, тоже интегрированы в CI на некоторых проектах. Ну а про Postman я уже кратко рассказал выше.
Vanessa Behavior
BI
Google Data Studio
Google Big Query
Основа нашего BI стэка – продукты Google. Это обеспечивает нам достаточно низкую стоимость владения и очень неплохую интеграцию с маркетинговой аналитикой.
Мониторинг
Zabbix
Prometheus
Мы используем оба продукта. Prometheus оброс достаточно большим числом коннекторов, позволяет собирать некоторые метрики, которые не может Zabbix.

Zabbix считают несколько устаревшим продуктом, однако и в нем есть свои плюсы. Например, законченность и визуализаци из коробки, которые снижают стоимость вложения, по крайней мере на начальном этапе.
Организационная среда
Jira
Confluence
Jira и Confluence – основа орг. среды, контроля задач и база знаний. Slack мы используем не во всех командах, а вот Telegram, Zoom и Miro – гигиенический набор. В какой-то момент мы четко поняли, что для ретроспективы необходим Miro, где каждый участник команды может разместить свой стикер. Все делают по стандартизированному формату. Что хорошо, что плохо идеи, предложения – каждый сотрудник накидывает стикеры, и мы их дружно обсуждаем.
Slack
Zoom
Miro
Telegram

Посмотрите наши вакансии

Смотреть все вакансии