Обновить
16K+
KTS
Создаем цифровые продукты для бизнеса
106,43
Рейтинг
65 450
Подписчики
Сначала показывать

Мы нашли самых быстрых девопсов. Пора поздравить их

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

Привет! Я Саша Хренников, руководитель DevOps-юнита в KTS.

Неделю назад мы запустили DevOps-челлендж в честь 5-летия нашего блога на Хабре. Участникам нужно было разобраться, почему приложение не может синхронизироваться в ArgoCD, найти ошибку в конфигурации и довести деплой до зеленого статуса.

Челлендж завершен, а значит, пришло время подвести итоги и пошагово разобрать решение.

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

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

В конце статьи, как и обещал, будет таблица с десятью победителями, которые справились с задачей быстрее остальных и получат СДЭКом наши футболки.

Читать далее

Проверяем навыки DevOps-инженеров. Проверим ваши?

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели10K

Привет, я Александр Хренников, руководитель DevOps-юнита в KTS.

Нам тут, оказывается, 5 лет стукнуло. Точнее, нашему блогу на Хабре. Подарков мы не дождались, так что решили сами вручить их вам. Дарить будем футболки с нашим фирменным принтом — Котзиллой. Это как Годзилла, только кот.

Но подарок получат не все, а десять DevOps-инженеров, которые справятся с нашим испытанием быстрее остальных. Суть проста: мы даем вам тестовый стенд с кластером Kubernetes с ArgoCD и отдельный GitLab-сервер. В ArgoCD добавлено приложение — простой Nginx, обернутый в Helm-чарт. И оно не запускается. Надо запустить.

DevOps-челленджи мы проводим не впервые: уже были этот, этот и еще несколько до них. Опытные участники уже знают механику, а для новых энтузиастов я расскажу ниже, как все устроено.

Читать далее

Программисты больше не нужны. А я?

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

Привет, я Виталий, и я управляю проектами в KTS. Это должна была быть третья завершающая статья, где я делюсь своим опытом об обучении в Стратоплане на курсе CTO.

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

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

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

Читать далее

Как мы проводим IT-аудит: живой кейс, инженерный подход и надежность без фанатизма

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

Привет, меня зовут Станислав Пьянов, я DevOps-техлид в KTS.

За годы работы мы сформировали свою практику для аудита инфраструктуры. Мы не придумали для нее громкого цепляющего названия, но это не мешает ей приносить пользу. Она стабильно помогает нам выявлять и устранять недостатки в «подкапотном пространстве» совершенно разных бизнесов.

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

Читать далее

MLOps-пазл: как мы собрали единый конвейер для ML-моделей из разрозненных инструментов

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

Привет, Хабр! Меня зовут Андрей Качетов, я эксперт и партнер по ML-платформам.

Пару лет назад я писал статью о ‭«молодом и подающем надежды» подходе MLOps, и по сей день продолжаю внедрять его в жизнь наших дата-сайентистов. С тех пор ландшафт в мире машинного обучения заметно изменился. Многие компании уже понимают ценность MLOps и внедряют у себя MLflow, Airflow и другие подобные решения. Сегодня я расскажу о практическом кейсе одной из таких компаний.

Читать далее

Grafana Operator — дорога к IAC или путь в никуда?

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

Привет! Я Сергей Истомин, DevOps-инженер в KTS.

Хотите удобно деплоить дашборды и датасорсы в концепции IAC? Я тоже. 

Услышав про Grafana Operator, я, окрыленный надеждами, пошел к нему за решением. Но у Grafana Operator оказалось свое представление о деплое, о провижининге и о том, как он вообще должен работать.

Читать далее

Как мы сократили объем данных в 10 раз, не повредив пользовательскому опыту, или переезд Postgres → ClickHouse

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

Всем привет, меня зовут Алексей Леонтьев, я техлид и архитектор на проекте Smartbot в компании KTS. Smartbot — это nocode-платформа для настройки сценариев чат-ботов, которые могут работать в нескольких соцсетях и мессенджерах одновременно.

Мы храним много данных о событиях, которые обрабатывает наша платформа. Раньше для этого мы использовали Postgres. Но возникла задача сократить потребляемые кластером ресурсы.

В этой статье я расскажу о том, как мы бесшовно перенесли данные из Postgres в ClickHouse. И при этом сократили оперативную память в 4 раза, а размер потребляемого дискового пространства — на порядок.

Читать далее

Стать CTO непросто, но я попробую

Время на прочтение18 мин
Охват и читатели11K

Привет! Меня зовут Виталий, и я управляю проектами в KTS

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

По счастливому совпадению в прошлом феврале я попал на курс СТО от Стратоплана, о чем рассказывал на Хабре в своей предыдущей статье. На курсе я взаимодействовал с бывшими и действующими техдирами крупных компаний, работал с ними в командах, обменивался с ними опытом.

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

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

Читать далее

Джедайские техники мотивации: как ментору сохранять силу команды

Время на прочтение7 мин
Охват и читатели7.7K

Привет! Меня зовут Михаил Остапинский, я Старший QA Engineer в KTS, где занимаюсь не только тестированием, но и менторством младших специалистов.

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

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

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

Читать далее

Единый вход для ML-стека на примере Keycloak

Время на прочтение12 мин
Охват и читатели7.1K

Привет! Я Саша Абакумов, DevOps-инженер в KTS.

Нашей команде часто приходится поднимать инфраструктуру под ML-проекты. Со временем число ML-инженеров и разработчиков на таких проектах росло, и логиниться в каждый по отдельности становилось все больнее. Чтобы упростить коллегам жизнь, мы интегрировали Single Sign-On (SSO) в стек одного из наших проектов, состоящий из JupyterHub, Airflow и MLflow.

SSO позволяет единообразно аутентифицироваться во всех инструментах под одной учетной записью. Помимо очевидного удобства, нам это также дало возможность централизованно управлять доступом и внедрить RBAC — сопоставление ролей в инструментах с группами или ролями в IdP.

В качестве инструмента для реализации SSO я использовал OIDC-провайдер Keycloak, наверняка многим хорошо знакомый. Ниже я расскажу о том, как с его помощью настроить SSO для JupyterHub, MLflow и Airflow (все компоненты разворачиваются с помощью Helm-чартов).

Читать далее

Тонкости обновления драйверов NVIDIA в Yandex Managed Kubernetes

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.8K

Привет! Я Алиса, DevOps-инженер в KTS.

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

Проблема: когда контейнеры и ML-библиотеки обновляются чаще, чем системные образы GPU-нод, версия драйвера быстро перестает соответствовать версии CUDA в контейнере. В итоге при вызове  nvidia-smi возвращает ошибку Driver/library version mismatch, а CUDA просто не видит драйвер на хосте.

Нам нужно было обновить Jupyter с ML-стеком, зависящим от CUDA. Как следствие, встал вопрос обновления драйверов NVIDIA на GPU-нодах. Можно было выполнять его руками на каждой ноде, но такой способ нам не подходил, и мы выбрали автоматизацию, которой и посвящена моя статья. Ниже я разберу и ручное обновление, и варианты автоматизации, а также объясню, как мы решали проблему конфликта GPU Operator с предустановленными драйверами.

Читать далее

BuildKit в Kubernetes: мануал по быстрой и автомасштабируемой сборке проектов

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

Всем привет! Я Алексей Босенко, DevOps-инженер в компании KTS. В этой статье я покажу, как комплексно настроить быструю и эффективную сборку проектов в Kubernetes с использованием BuildKit, которая учитывает не только производительность, но и стоимость ресурсов.

Под этой громкой фразой я подразумеваю целый комплекс решений: как создать и настроить экономичный кластер Kubernetes для сборок (ведь цена вопроса всегда важна), как настроить GitLab Runners и как сделать эффективное масштабирование сборок. Особый акцент будет на том, почему мы выбрали BuildKit, какие варианты использования он предлагает, и как непосредственно настроить один из них.

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

Читать далее

За 3 дня запустить Android приложение на iOS: опыт адаптации приложения под CMP

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели10K

Привет! Я Тимур, разработчик мобильных приложений в KTS.

В прошлом году мы решали любопытную задачу. Нам нужно было вдвоем за одну рабочую неделю собрать прототип мобильного приложения для сервиса бронирования отелей.

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

Да, тема довольно холиварная, и в статье я не заявляю, что KMP лучше Flutter’а во всем. Каждая технология хороша под свои задачи. Вместо этого я расскажу о конкретном проекте, на котором KMP оказался более удачным выбором. Также коснусь вопросов архитектуры и миграции Android-приложения на iOS с помощью CMP, а заодно подсвечу подводные камни, с которыми пришлось разбираться в процессе.

Читать далее

Requestly: гайд для тестировщиков

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

Привет! Я Ева, тестировщик в KTS.

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

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

Читать далее

Собрать звуковую спектрограмму на React и MobX

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели7.2K

Привет!

Я Таня, фронтенд-разработчик в KTS и студент магистратуры МГТУ им. Баумана. На одном из недавних проектов я работала над интересной фичей — визуальным представлением аудиоданных, a.k.a. звуковой спектрограммой. Казалось бы, штука нехитрая: кто не видел график, прыгающий в такт с музыкой на разных частотах? Он есть в любом секвенсоре, на любом диджейском пульте и даже в динамическом островке последних айфонов.

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

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

Читать далее

GitOps для Airflow: как мы перешли на лёгкий K8s-native Argo Workflows

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.7K

Привет! Меня зовут Александр Егоров, я MLOps-инженер в Альфа-Банке, куда попал через проект компании KTS.

За свою карьеру я построил четыре ML-платформы (одна из которых сейчас в Росреестре) и развиваю с командой пятую. Параллельно учусь в ИТМО по направлению «Безопасность искусственного интеллекта».

В этой статье я немного покритикую Airflow и поделюсь нашей историей миграции на связку Argo Workflows и Argo CD. Spoiler alert: технические подробности и результаты в наличии.

Читать далее

Infrastructure as Code на практике: как мы рефакторили сложный Ansible-репозиторий

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

Привет. Я Сергей Истомин, DevOps-инженер в KTS.

Это статья о том, как сделать так, чтобы заказчику было легко пользоваться Ансиблом. Сразу оговорюсь: речь пойдет о кейсе, когда на вашей ферме 100 голов, и всех вы знаете по именам (да, так тоже бывает).

Ниже будет спорный материал. Результат описанного рефакторинга — компромисс между практикой IAC и людьми. Последняя составляющая этого компромисса требует тонкой настройки и деликатного подхода, поскольку люди в любой момент могут неосознанно начать отдаляться от IAC. Причина всегда одна — когнитивная нагрузка. Как только она начнет доставлять дискомфорт, IAC потихоньку двигают в сторону.

Читать далее

Я управляю тестированием ИИ-моделей 4 года. Что я понял за это время?

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

Привет!

Меня зовут Валентин, я — руководитель направления тестирования моделей машинного обучения в Альфа-Банке. Моя команда занимается тестированием ML-моделей и модельных сервисов для наших клиентов уже более четырех лет, и более трех из них я погружен в наши процессы QA.

Я попал в Альфу через проект компании KTS, над которым работал раньше, и первое время занимался ручным тестированием. За несколько лет прошел путь от линейного тестировщика до руководителя команды из 8 человек, и в этой статье рассказываю о своем опыте и делюсь советами, которые дал бы самому себе несколько лет назад.

Эта статья будет полезна:

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

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

Читать далее

Зачем менеджеру DevTools

Время на прочтение9 мин
Охват и читатели11K

Привет! Меня зовут Ваня Тришкин, я тестировщик в KTS.

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

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

Читать далее

Как написать bzip2-архиватор на Python: разбираем преобразование Барроуза-Уилера

Уровень сложностиСложный
Время на прочтение25 мин
Охват и читатели16K

Привет! Я Рома, бэкендер-питонист в KTS.

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

Читать далее
1
23 ...

Информация

Сайт
kts.tech
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия