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

Введение в Apache Flink: архитектура и основные концепции. Часть 2

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

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

Вы поймёте, как можно улучшить и оптимизировать работу с Apache Flink. В частности, мы разберём важную концепцию водяных знаков (watermark), которая играет ключевую роль в обработке потоковых данных с временными метками.

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

Введение в Apache Flink: архитектура и основные концепции. Часть 1

Уровень сложностиСложный
Время на прочтение23 мин
Количество просмотров3K

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

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

Ещё мы подробно рассмотрим использование Apache Flink в задачах, где требуется высокая скорость обработки и точность управления данными. Особое внимание уделим изучению архитектурных основ и методов разработки высокоэффективных потоковых систем.

Материал объёмный, и поэтому я разделил его на две части. Запаситесь чаем и печеньками =)

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

XJProfessor — помощник аналитика: преобразуем форматы данных легко и с улыбкой

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

Привет, Хабр! По нашему опыту, при разработке интеграционного взаимодействия труднее всего даётся сопоставление различных форматов данных интегрируемых систем — «маппинг». Для этого нужно проанализировать много форматов, выявить корректные связи между элементами XSD- или JSON-схем и описать правила преобразования. Работа кропотливая, трудозатратная и не самая интересная. Раньше нам приходилось вручную сводить в таблицах поля, сидеть ночами. Думаю, все аналитики с этим сталкиваются и понимают, о чём я говорю.

Меня зовут Ярослав, я техлид в Т1 Иннотех. Наша команда занимается интеграцией всевозможных систем и разработкой ядра интеграционной платформы. За последние три года мы успешно заменили решение на стеке IBM MQ и IBM App Connect (бывший IBM Integration BUS) на open-source решение на основе ActiveMQ Artemis в качестве транспорта, с использованием Java и Kubernetes, и перенесли более 1500 различных способов взаимодействий на новую платформу. Хочу поделиться с вами нашим опытом по автоматизации этой работы и обсудить получившийся инструмент.

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

Есть ли жизнь после Exchange?

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

Привет, меня зовут Яков, я инженер-проектировщик в компании Т1 Интеграция. Мы с командой интегрируем у заказчиков новые почтовые системы — CommuniGate Pro, RuPost, VK WorkMail — и помогаем с миграцией данных (преимущественно из Exchange).

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

Так есть ли жизнь после Exchange? Есть! И довольно счастливая. Мы выяснили это на своём опыте: протестировали несметное количество российских почтовых систем, которые появляются как грибы после дождя, а также выполнили несколько проектов по миграции тысяч пользователей.

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

Причины и пути устранения квантовых ошибок

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

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

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

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

Архивация сегментов WAL с помощью Pgbackrest

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

Добрый день, меня зовут Андрей, я специалист по администрированию баз данных в компании «Сервионика». За 2,5 года под моим контролем побывало около 700 кластеров баз данных, из которых 80 % — High Avaiability, треть из них — это трёхнодовые полноценные кластеры, где есть мастер, синхронная и асинхронная реплики. Также были успешно проведены проекты по миграции с Oracle и MSSQL на PostgreSQL.

Резервное копирование — один из важнейших процессов администрирования баз данных. К сожалению, никто не застрахован от сбоев оборудования или логических ошибок. Однажды мы столкнулись с ошибкой резервного копирования PostgreSQL, которая возникает у многих пользователей Pgbackrest. В сети нет единого описания её исправления. Расскажу о том, к какому решению мы пришли, и как в компании реализовано резервное копирование PostgreSQL.

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

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

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

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

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

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

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

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

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

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

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

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

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

В моей роли 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.4K
image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение21 мин
Количество просмотров16K
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.5K
image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

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