Как стать автором
Обновить
135.71
Холдинг Т1
Многопрофильный ИТ-холдинг
Сначала показывать

Решение проблем общего кода в микросервисах Spring Boot и не только

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

Привет, Хабр! Меня зовут Александр Митин, я работаю в Т1 на проектах одного крупного банка. Занимаюсь развитием продкутовых сервисов компании (проект по обслуживанию и проведению ЧДП/ПДП клиентов). Опыт разработки 13 лет, последние 5 лет — в финтехе.

Сегодня микросервисная архитектура используется во многих проектах. Зачастую в таких системах применяют журналирование, авторизацию и прочие служебные сервисы, общие для всех приложений. А при разработке возникает огромное желание не дублировать одну и ту же логику, а вынести её в отдельную библиотеку, тем самым переиспользовав код. Что мы имеем в итоге? В лучшем случае одну библиотеку «common», которая разрастается до огромных размеров и становится ядром распределённого монолита. В дальнейшем новые версии этой библиотеки теряют обратную совместимость, а каждое её обновление в проектах сильно осложняет поддержку. Более того, становится невозможным разобраться, где и какие классы используются, что делает архитектуру хрупкой и уязвимой.

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

Нагружать может каждый

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

Как понять, что нам нужно нагрузочное тестирование? Как быть, если при этом у нас мало опыта и ресурсов? Сегодня обсудим, насколько трудоёмок этот процесс, как не получить гору проблем и не сжечь больше ресурсов, чем хочется.

Меня зовут Ксения Бирюкова, я владелец продукта Платформы Сфера, разработанной холдингом Т1. В одном из моих проектов мы с командой пытались проводить нагрузочное тестирование. Тогда это казалось очень сложным: пробовали тестировать каждый модуль отдельно, связь с legacy-монолитом не помогала, возникали проблемы с написанием генератора псевдо-уникальных персональных данных и многое другое. И хотя результат был достигнут, ресурсов мы потратили гораздо больше, чем планировали. В итоге собрали список ошибок и задумались, как сделать нагрузочное тестирование менее болезненным. Разберём на своих и чужих примерах.

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

Основы безопасности в Kubernetes

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

В моей роли DevOps-инженера, специализирующегося на Kubernetes, я регулярно сталкиваюсь с задачами, требующими глубокого понимания множества аспектов этой технологии. Особое внимание уделяется безопасности — критически важному условию для эффективного функционирования и защиты приложений в Kubernetes. Хотя безопасность часто может оставаться вне поля зрения при рассмотрении других операционных задач, её роль в успешном развёртывании и поддержке приложений нельзя недооценивать. Мой опыт и знания в этой области легли в основу данной статьи.

Мы сосредоточимся на двух ключевых элементах безопасности в Kubernetes: Role-Based Access Control (RBAC) и Pod Security Admission. Эти механизмы играют важную роль не только в обеспечении безопасности приложений и данных в кластере, но и в управлении доступом и сетевыми взаимодействиями.

Элементы безопасности, такие как RBAC и Pod Security Admission, играют ключевую роль в обеспечении стабильности и эффективности работы приложений в Kubernetes, особенно при обработке больших объёмов данных и высокой нагрузке. Например, в ситуации с масштабируемым веб-приложением, которое управляет значительными объёмами пользовательских данных и транзакций, настройка этих механизмов может существенно улучшить управление доступом и сетевую безопасность. Это, в свою очередь, помогает предотвратить потенциальные угрозы и атаки, что критически важно для поддержания производительности и доступности данных. Таким образом, эффективно настроенные компоненты безопасности обеспечивают надёжный доступ к данным и минимизируют риски, связанные с увеличением нагрузки на приложение, улучшая общий пользовательский опыт.

Теперь давайте рассмотрим каждый из этих элементов более подробно.

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

Особенности национального DevOps: йети, опенсорс и тяга к облакам

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

Привет, Хабр! Меня зовут Марат Цконян, я из солнечной Испании, университет Аликанте. Компьютерный инженер по образованию, по опыту работы — системный администратор.

В прошлом году я наткнулся на исследование отечественного DevOps-рынка за 2022 год: там Холдинг Т1 проводил аналитику трендов, а также формализовал проблематику индустрии. Теперь же благодаря Хабру мне предоставилась возможность обсудить накопившиеся вопросы непосредственно с авторами этой работы. 

Я поговорил с Евгением Калашниковым, соавтором исследования и директором по продуктам инженерных инструментов платформы «Сфера». Мы обсудили исследование, поняли, что такое DevOps и кто такие девопсеры, порассуждали, существуют ли DevSecOps и зачем компаниям облака. Заодно заглянули в будущее, узнав, что нас ждёт в исследовании за 2023 год.

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

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

Звоните Кузе: как мы записали FAQ для инженеров

Время на прочтение7 мин
Количество просмотров2.3K
image

Каждый месяц мы получаем 20–50 тысяч звонков с вопросами по обслуживанию банкоматов. Чаще всего звонят инженеры: узнать статус заявки, получить доступ, проверить версии ПО и т.п. Или инкассаторы — чтобы понять, есть ли на препарируемом ими банкомате неисправности. Вопросы в 90% случаев одни и те же.

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

Функционал был тот же, что и у оператора, но инженеры принципиально не хотели общаться с роботом. Даже если это был типовой вопрос «всё ли хорошо с банкоматом?». Потом мы поменяли голос на приятный женский, протестировали в АБ с мужским — и количество переключений на оператора с робота-женщины упало: 24% обработок с Денисом и 65% с Джулией.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии12

Релизная политика против хаоса

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

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

Нельзя сказать, что без этого всё работало плохо. Работало хорошо. Но достаточно долго. Новые фичи выходили не чаще раза в месяц, но в какой-то момент мы поняли, что нужно укладываться в две недели максимум. У нас появились такие важные показатели, как частота поставок и Time to Market.

А потом начала работать омниканальная платформа, на которой двенадцать команд одновременно разрабатывали одно приложение, каждая — свою часть. Тогда появился запрос на стандартизацию процесса.

Меня зовут Михаил Щеголев, мы вместе с Константином Дерешевым занимаемся релизной политикой в одном из крупных российских банков. Мы любим свою работу, а дедлайны не любим.

Особенно, если дело касается еженедельных релизов.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+19
Комментарии5

Горизонтальные связи и ролевая модель большой команды

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

Когда коллега уходит в отпуск или увольняется — работа часто буксует или останавливается даже в большой команде. Происходит это, так как внезапно выясняется, что ушедший был «узким местом» или «критичным звеном».

Мне удалось снизить влияние этих «узких мест» и «критичных звеньев» за счёт налаживания горизонтальных связей, построения ролевой модели большой команды и ещё нескольких приёмов.

Меня зовут Татьяна Сеземина, я директор по управлению проектами Холдинга Т1.

Я вырастила команду с 40 до более чем 150 человек и не потеряла управляемости.

Сейчас расскажу, как мне удалось этого добиться.

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

Безопасность — это процесс, а не результат

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

Типичный ИБ-инцидент, ломающий корпоративную защиту, зачастую выглядит очень по-бытовому.

Конструктор решил взять работу на дом и скидывает на флешку всю необходимую ему для этого документацию. Дома он вставляет ее в компьютер, на который ранее скачал кучу торрентов, не подозревая, что примерно 99 % из них содержит в себе backdoor. И вот уже компания, использующая самые современные (как она думает) способы защиты, оказывается под ударом.

Есть ли реальный способ защиты от вольного или невольного инсайдера? Самым актуальным выглядит метод построения эшелонированной защиты. С ее помощью можно поднять планку гарантированной защиты очень высоко — почти до 99 %. Надо отдавать себе отчет, что 100-процентная защита недостижима в принципе: злоумышленники все время придумывают новые способы атак, и мы как будто играем с ними в шахматы, обмениваясь ходами.
Читать дальше →
Всего голосов 28: ↑22 и ↓6+17
Комментарии17

Учить или не учить: почему внедрение даже простого ПО не работает без погружения сотрудников

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

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

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

Например, часто в компаниях недооценивают сложность трансформационных процессов: «пересадить» людей на новый программный продукт вовсе не так просто, даже если его функции аналогичны привычному ПО. 

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

Опять починяем банкоматы

Время на прочтение9 мин
Количество просмотров6.7K
image
Источник

Банкоматы периодически ломаются. Иногда — сами, просто из-за износа механических частей, чаще — с помощью клиентов банка. В них могут застрять мятые деньги, скрепки, скотч. Может в который раз упасть винда, на которой они работают. В общем, они ломаются. Но вовремя поднятая вещь не считается упавшей, поэтому мы их быстро-быстро чиним.

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

Если нужен физический ремонт, то робот после диагностики пишет отчёт и говорит, какие запчасти надо брать.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии11

Работа с хранилищами в Kubernetes: руководство для инженеров

Время на прочтение21 мин
Количество просмотров15K
image

Как DevOps-инженер я часто сталкиваюсь с необходимостью глубокого понимания тонких аспектов Kubernetes. Одним из таких ключевых элементов является управление хранилищем данных. Хотя этот элемент иногда остаётся в тени других задач, его важность для успешного развёртывания и поддержки приложений велика.

Накопленный мною опыт в этой области стал основой для этой статьи.

Я сфокусируюсь на трёх ключевых элементах управления хранилищем в Kubernetes:

  • PersistentVolumes (PV).
  • PersistentVolumeClaims (PVC).
  • Storage Classes.

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

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

Например, у нас была задача обеспечить надёжное и масштабируемое хранение данных в веб-приложении для управления клиентскими заказами. Мы настроили в Kubernetes Storage Class на основе SSD для базы данных (что не является хорошей практикой): это помогло обеспечить быстрый доступ и обработку транзакций. А для логов и нечасто применяемых данных использовали отдельный Storage Class с HDD, и это позволило снизить затраты.

А главное, Storage в Kubernetes — это такая штука, которую ты сделал и забыл, дальше оно там само работает.

Рассказываю детально.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии4

Починяем банкоматы: чиним железо и софт

Время на прочтение9 мин
Количество просмотров7.4K
image

Ошибки софта — частый случай, почему банкомат может встать. Софт постоянно дорабатывается и развивается. Например, много всего мы узнали после обновления для работы с NFC, когда вместо карт стали использоваться телефоны. Очень интересно было при биометрических апдейтах, когда деньги снимали не с карты, а с лица. Например, там накатывали хотфикс по измерению расстояния (клиент выбрал снятие денег, наклонился завязать шнурок, деньги сняли со счёта следующего в очереди).

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

И третья история, которая вызывает неисправность, — это внешние обстоятельства, в том числе клиенты. Положить пачку банкнот с резинкой или пробитых скрепкой от степлера — это каждый день. Погнутые и склеенные скотчем карты тоже часто встречаются.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии21

За одного битого двух небитых дают: как мы переобучили ручных тестировщиков на Java-автотестеров

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

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

За счёт тестирования можно снизить стоимость продукта, потому что баги будут обнаружены до того, как компания потратит много времени и ресурсов на разработку. Кроме того, тестирование косвенно влияет на лояльность потребителей к компании и продукту, так как любой обнаруженный дефект негативно сказывается на доверии пользователей.

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

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

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

Ставим банкоматы в лютый мороз, жару, метро и на вездеходы

Время на прочтение7 мин
Количество просмотров9.3K
image
Банкомат на вездеходе для вахтового посёлка в Якутии

Мы обслуживаем банкоматы по всей стране. В практике были детективы с пылью в метро, морозы за полярным кругом, скачки напряжения на железной дороге и так далее. Где-то — сухо, где-то — влажно, где-то — мошки, где-то — спор про то, может ли «буханка» вытащить банкомат из стены.

Кстати, из тонкой стены временного здания может, из толстой капитальной — нет, не проверяйте больше, пожалуйста!

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

Банкоматы очень зависят от температуры, поэтому в холодных регионах нужна дополнительная защита. Например, первые аппараты были без опции «русская зима», и они замерзали. Тогда наши коллеги стали устанавливать простые печки без электронного управления. В первом релизе этих печек внутри банкомата плавились пластиковые и резиновые запчасти.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+45
Комментарии20

Это мы пишем и обслуживаем банковский процессинг, нам надо серьёзно поговорить

Время на прочтение11 мин
Количество просмотров22K
В марте-22 внезапно отключились Visa и MasterCard. Это посредники передачи информации между разными банками. По сути, системы обеспечивают маршрутизацию сообщений между банками и позволяют вам использовать карту любого банка с банкоматом или платёжным терминалом другого, а заодно проверяют операции на фрод и делают ещё много чего.

Потом было 2–3 дня, когда мы не спали. Мы — это разработчики компании Мультикарты (входит в Холдинг T1) — одного из самых крупных процессингов в России, да и в мире, пожалуй.

Потом система восстановилась (не сама собой, конечно), и конечные пользователи (вы) практически не почувствовали проблем с сервисом.

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

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

Поэтому ниже — общий рассказ про принципы процессинга. Пойдёмте ковыряться под капотом.

image
Читать дальше →
Всего голосов 78: ↑71 и ↓7+74
Комментарии37

Как мы растим своих джунов

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

Рынок труда изменился. Ещё недавно он был ориентирован на работодателя. Сейчас, особенно в ИТ-области, это рынок соискателей. Поиск нужных специалистов становится всё более трудным, а конкуренция на этом поле — всё более жёсткой.

Внешний рекрутинг — это чаще всего долго и довольно дорого. Есть альтернатива — профессиональное развитие сотрудников внутри организации.

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

Например, сэкономили 10 млн рублей при наборе полутора десятков дата-инженеров, притом что на рынке их вообще немного, а из 200 кандидатов нам подходил один. Но благодаря новому подходу к поиску мы решили задачу за месяц, сохранив при этом внушительную сумму.
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии14

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

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

Привет, Хабр! На связи Т1 Цифровая Академия из Холдинга Т1. Сегодня мы порассуждаем о едином производственном процессе в большой компании: почему он нужен и как его внедрить, если все команды уже работают по-своему. 

Проектный менеджмент в больших компаниях: почему необходим единый подход?

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

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

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

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

Kubernetes Networking: сервисы, Ingress и Network Policies

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

Когда я впервые столкнулся с задачей масштабирования сложного приложения в Kubernetes, то был полон оптимизма. Однако вскоре стало ясно, что управление сетевым трафиком и безопасностью в такой динамичной среде — это непросто. Наше приложение начало страдать от потерь пакетов данных и сетевых задержек, что сказывалось на общей производительности и пользовательском опыте. Из-за этого возникла потребность в глубоком понимании сетевых возможностей Kubernetes, таких, как сервисы, Ingress и Network Policies, чтобы эффективно управлять трафиком, обеспечивать безопасность и максимизировать производительность. Этот опыт стал для меня настоящим откровением и подтолкнул к написанию данной статьи.

Меня зовут Дмитрий, и я старший DevOps-инженер в ГК Иннотех. В моей работе я часто сталкиваюсь с задачами, которые требуют глубокого понимания сетевых аспектов в Kubernetes.

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

Когда дело доходит до экспозиции наших приложений наружу, я применяю Ingress для управления входящим трафиком. Это не только упрощает настройку SSL/TLS, но и предоставляет гибкие возможности для маршрутизации. И, конечно же, безопасность стоит не на последнем месте. С помощью Network Policies можно тонко настроить сетевые правила, определяя, какие поды могут взаимодействовать друг с другом, что значительно повышает уровень безопасности нашей инфраструктуры.

Данная статья будет особенно полезна для DevOps-инженеров, системных администраторов и архитекторов, которые хотят глубже понять механизмы сетевого взаимодействия в Kubernetes.

Сосредоточимся на критически важных элементах, таких, как сервисы, Ingress и Network Policies. Освоение этих базовых принципов не только упростит вашу работу с Kubernetes, но и даст вам уверенность в управлении сложными системами. Надеюсь, это будет полезно!
Читать дальше →
Всего голосов 52: ↑50 и ↓2+51
Комментарии6

Самый маленький Docker образ Rust приложения

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

Привет %username%, эта статья про то, как поместить Rust приложение в Docker и получить образ размером с бинарный файл (6 Мб). А также про причины, которые привели к переходу с NodeJS на Rust. Отдельная пара слов о проблемах вначале, переходе на Go, и том, как команда Rust устранила эти проблемы за пол года.

TL;DR Dockerfile в конце статьи и ссылка на example репозиторий

Читать далее
Всего голосов 36: ↑35 и ↓1+43
Комментарии16

Как мы решили вопрос нехватки кадров, обучив соискателей работе с Apache Spark

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

Привет, Хабр! На связи Т1 Цифровая Академия из Холдинга Т1. Сегодня расскажем о
том, как мы помогали клиенту справиться с нехваткой data-инженеров и увеличить темпы найма, дообучая кандидатов навыкам работы с Apache Spark на реальных задачах компании.

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

Информация

Сайт
t1.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Холдинг Т1