Всем привет! С вами команда X5 Tech. Сегодня мы решили показать наш Tech Radar — сборник инструментов, языков и сервисов, которые мы используем при разработке продуктов. Мы долго к этому шли и наконец-то готовы рассказать о своём опыте публично.
Что такое Tech Radar и зачем он нужен?
Tech Radar — инструмент, который помогает компании держать фокус в технологиях. С его помощью любой сотрудник компании может выбрать язык или решение, которое сможет использовать при разработке.
Когда компания большая и с множеством продуктов, начинается каша. Кто-то хочет писать код на Ruby, кто-то использовать сервисы MySQL, MSSQL или Oracle. В итоге может случиться так, что база используемых инструментов разрастётся до невообразимых размеров и все начнут в них путаться.
Кроме того, есть решения, на которых работают только узкоспециализированные специалисты. Например, VictoriaMetrics. Кто-то в команде хорошо его знает и использует, но когда этот человек получит повышение или перейдёт в другую компанию, то поддерживать работу инструмента будет некому.
Та же проблема возникает и с подрядчиками. Контракт может истечь, компания исполнителя закрыться. Тогда если у заказчика изначально не было компетенций по какому-то решению, то работа вновь встанет.
С этим всем помогает справиться Tech Radar — карта инструментов, которые допустимы в работе. С его помощью компания понимает свои компетенции, может отслеживать актуальные решения на рынке, строить сфокусированную архитектуру и искать специалистов по нужным компетенциям.
У нас самих была своего рода неразбериха в инструментарии. Возможно,
стоило пораньше заняться радаром. Тем не менее главное, что мы к нему пришли и
теперь наша работа станет структурированнее.
Откуда взялась концепция Tech Radar и как она выглядит
Один из родоначальников формата Tech Radar — агентство по технологическому консалтингу ThoughWorks.
Внешне он выглядит как обычный радар, разделённый на четыре области: технологии, инструменты, платформы, языки&фреймворки.
От центра к периферии радара идут четыре круга:
Adopt — технологии и инструменты, которые внедрены и активно используются командах. Технологии, по которым в X5Tech есть экспертиза.
Trial — технологии и инструменты, которые уже прошли этап тестирования и готовятся к тому, чтобы работать в продакшн (или даже уже работают там).
Assets — пробные технологии и инструменты, которые в данный момент оцениваются. С их участием реализуются только тестовые проекты, и они не используются в реальных задачах.
Hold — в этой категории у нас есть экспертиза, но упомянутые инструменты используются только при поддержке существующих систем — новые проекты на них не запускаются.
Мы за основу взяли Tech Radar европейской компании Zalando. Он также есть у ThoughWorks. В России концепцию радара используют, к примеру, Avito и Lamoda.
Как мы делали Tech Radar?
Ранее у нас был технический стэк в виде файла Excel. Это была большая простыня-таблица без внятной структуры со списком используемых в компании языков, инструментов, платформ и фреймворков. Этот перечень стал отправной точкой.
Далее мы поговорили с командами разных направлений: разработка, поддержка, продукты, SAP и так далее. Всем мы показывали куски таблицы по их сфере и обсуждали, какие инструменты из списка они используют, как часто, чего не хватает. После этого мы синхронизировались с офисом CDO и департамента инфраструктуры по поводу баз данных, платформ и инфраструктурных компонентов.
Самым сложным было то, что у каждой команды своё видение, каким должен быть Tech Radar. У всех разные инструменты, кто-то чаще использует Airflow, кто-то NiFi или даже Talend. Поэтому, главная задача при создании радара — всё усреднить, вывести общие закономерности.
Мы искали самые актуальные закономерности. Как пример, недавно стали активно использовать язык Go. Нагрузка на инфраструктуру и продукты растёт, мы начинаем обрабатывать данные в реальном времени, и Go позволяет с этим справляться. На нём можно быстро и компактно писать микросервисы, включая многозадачные. Из-за своей актуальности Go внесён в Trial.
Или ClickHouse — одно из лучших решений для поколоночных баз данных. Оно стабильное, быстрое и позволяет очень большие массивы данных хранить компактно. ClickHouse у нас тоже в Trial.
Второй трудностью стало то, что каждый хотел добавить, как можно больше инструментов. Но тогда радар ничем не отличался бы от таблицы в Excel — в нём были бы сотни инструментов, он был бы массивным и сложным для восприятия. Отсечь лишнее — отдельная работа. Так, к примеру, мы не добавили Selenium.
А ещё у нас не прижился Apigee. Хотя сам по себе инструмент крутой, нам он показался неповоротливым. Взамен мы используем Gravitee.
В итоге чтобы держать фокус, мы сделали радар чисто по разработке. В будущем, очевидно, нужны будут отдельные Tech Radar для крупных направлений. Например, свой радар может быть у направления Big Data, SRE команды, DevSec Ops и других более узких специализация.
В целом работа над Tech Radar заняла у нас около месяца.
Как только он был завершён, мы занесли радар в департамент разработки и продукты, а они поделились ими со своими командами.
Сейчас разработчики продуктовых команд уже пользуются нашим радаром. Они
ориентируются на инструменты из списка и не распыляются на решения, в которых у
компании нет компетенций, чтобы в будущем помогать с разработкой.
Что дальше?
Раз в 4-6 месяцев Tech Radar будет пересматривать архитектурный комитет. Это нужно для того, чтобы его актуализировать.
Рядом с каждым инструментом, языком, платформой у нас на радаре может появиться стрелочка вниз или вверх. Она будет означать тренд. Так если фреймворк станет использоваться реже, то он перейдёт, как вариант, из Assets в Hold, и напротив него появится стрелка вниз.
Кроме того, периодическое обновление радара — показатель гибкости. Мы следим за тем, что происходит у наших коллег в других компаниях и корпорациях. Какие-то языки устаревают, какие-то наоборот становятся актуальнее. Tech Radar — карта рынка, по ней можно даже ориентироваться тем, кто думает, какие компетенции будут актуальны через год или два.
Конечно, у каждой компании Tech Radar свой. Он зависит не только от трендов, но и от того специфики бизнеса. В нашем 94 инструмента, и у каждого своё точное место.
Комментарии (5)
gagarinas
24.01.2022 13:12" Рядом с каждым инструментом, языком, платформой у нас на радаре может появиться стрелочка вниз или вверх. Она будет означать тренд. Так если фреймворк станет использоваться реже, то он перейдёт, как вариант, из Assets в Hold, и напротив него появится стрелка вниз. "
Может стоит и мировой тренд добавить для наглядности.
gecube
24.01.2022 13:46Как разделяете технологии разных версий? Скажем, python - это одна технология? Или отдельно Python2 и Python3? Или Java - 8, 9, 10 и прочее
Кроме того, периодическое обновление радара — показатель гибкости. Мы следим за тем, что происходит у наших коллег в других компаниях и корпорациях. Какие-то языки устаревают, какие-то наоборот становятся актуальнее. Tech Radar — карта рынка, по ней можно даже ориентироваться тем, кто думает, какие компетенции будут актуальны через год или два.
это не решает проблему, озвученную выше:
Та же проблема возникает и с подрядчиками. Контракт может истечь, компания исполнителя закрыться. Тогда если у заказчика изначально не было компетенций по какому-то решению, то работа вновь встанет.
Потому что в каждый момент времени актуальность технологий своя. То что подрядчик сдал в инфру вчера, могло уже стать сегодня неактуальным. И что делать - срочно бежать и переписывать на актуальный стек? Вряд ли, правда? В результате получается, что радар-то не особо и нужен, как считаете?
denaspireone
24.01.2022 13:53Отсечь лишнее — отдельная работа. Так, к примеру, мы не добавили Selenium.
Сделайте этот радар в SVG который можно увеличивать и проблем не будет.
ProstakovAlexey
Прямо модная тема, радар. Но если присмотрется, то на приведенное картинке есть неоднозначность (или ошибка) в сортировке, в разделе Data Managment. А почему кстати радар, а не просто таблица с технологиями в порядке? Ведь таблица удобнее в использовании.
X5RetailGroup Автор
Сортировка в «правильном» порядке, просто сначала цифры, если речь про S3.
Нам кажется, что в форме радара информация более читаема и структурна) + в оригинале радар интерактивный.