Как стать автором
Поиск
Написать публикацию
Обновить

Технотекст

«Иногда лучше написать велосипед»: как тестировать кластеры Kubernetes с помощью Python

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

Сегодня Kubernetes — это основное средство для оркестрации контейнеров на рынке, поэтому их тестирование занимает особую позицию в перечне задач. Большинство тривиальных тестов можно запустить через команду kubectl, либо фреймворк Sonobuoy для тестирования сертификации версий.

Однако для сложных интеграционных тестов, которые завязаны на Kubernetes API, необходимо реализовать что-то свое. Я воспользовался клиентской библиотекой Python для Kubernetes, которая позволяет работать со всеми прелестями его интерфейса, соединил ее с PyTest и API нашего продукта — Managed Kubernetes. Что из этого вышло, показываю в статье.
Читать дальше →

Press F, чтобы рассчитать использование облачных ресурсов

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

Привет, Хабр! Меня зовут Эд, я менеджер биллинга в Selectel. Сегодня хотел бы рассказать про подход FinOps, который объединяет продуктовое мышление, мониторинг и управление облачными ресурсами. А еще показать графики и разобрать, кому и зачем это вообще нужно. Спойлер: не только кросс-командным проектам. Приглашаю за подробностями под кат.
Читать дальше →

Пристальный взгляд на отладку JavaScript приложений

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

Всем привет!


Меня зовут Паша Востриков, я делаю на JS/TS много разного в «Лаборатории Касперского»: фронт, облачные сервисы (Node.js), штуки для коробочной поставки (OnPrem), платформенные компоненты и библиотеки. И, конечно же, Open Source.


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


Итак, как отлаживаться? Как-как? console.log(1)


Читать дальше →

Как потратить дни, чтобы сэкономить секунды: продвинутые коммиты в GitLab

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

Коммит изменения в GitLab — фоновый и рутинный процесс, на который никто не закладывает рабочего времени. Но в нем есть действия, которые съедают 18 секунд при каждом коммите. 10 коммитов — уже 3 минуты за день и 15 — за неделю. Да, немного, но на это тратится внимание. К тому же, за эти 15 минут можно сделать что-то полезное или просто выпить кофе и дать мозгу отдохнуть.

Мы в Selectel нашли способ, как упростить коммиты в GitLab и добавить им информативности — описания прямиком из Jira. Любите автоматизировать рутинные задачки? Тогда добро пожаловать под кат.
Читать дальше →

От многофункциональной платформы до кнопки на сайте: как и почему изменились функции продакт-менеджера

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.6K
Еще несколько лет назад продакт-менеджер был мастером на все руки. Придумать продукт, разработать, спозиционировать, выпустить — все он. Или она. Главное — в одиночку. Либо с кучкой единомышленников, которые делят с тобой эти задачи. А потом пришел технологический прогресс. И все заверте…

Меня зовут Маргарита Мирошниченко, я — Recruitment Manager в «Лаборатории Касперского» и занимаюсь наймом продактов. Занимаюсь плотно — нельзя нанять специалиста, который будет вести продукт, не вникнув в работу этого специалиста. Поэтому я и мой коллега-продакт-менеджер многое можем рассказать о продактах. И мы расскажем! :)



Моя статья будет интересна тем, кто рассматривает должность продакт-менеджера для карьерного перехода, кто уже трудится в ней или кто, как я, взаимодействует с продактами по работе. Я поведаю, как изменилась работа за последние несколько лет, что теперь может входить в их задачи и что будет дальше.
Читать дальше →

«Берегите платье снову, а персональные данные смолоду»: рассуждения и советы по цифровой гигиене

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

Всем привет! Меня зовут Андрей, я специалист по информационной безопасности в Selectel. За время своей работы я понял, что часто люди используют правила цифровой гигиены в профессиональной деятельности, но совсем забывают про них в обычной жизни. По данным компании RTM Group, за 2021 год в России зарегистрировано более 249 тыс киберпреступлений, связанных с мошенническими схемами, — и это только известные правоохранительным органам инциденты.

Не хотите подкрепить эту статистику? Тогда давайте вспомним, почему важно соблюдать правила цифровой гигиены, и найдем тот самый «баланс» между комфортом и шапочкой из фольги. Подробности под катом!
Читать дальше →

Как мы проводим миграцию оборудования, пока наши клиенты спят

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

Привет, Хабр! Меня зовут Василий, я инженер по диагностике оборудования в Selectel. Мы постоянно работаем над шерингом знаний в командах, чтобы ускорять процессы установки и замены оборудования. Сегодня хочу рассказать, как устроена миграция серверов в контуре провайдера, и что при этом чувствует клиент.

Миграция серверов необходима для утилизации мощностей, оптимизации охлаждения и упорядочивания конфигураций, поскольку мы стремимся размещать новые стойки рядом с парком, который уже арендован клиентом. Наша главная цель при переезде — повысить качество сервиса, минимизировать риски и даунтаймы. Положения о качестве предоставляемых услуг фиксируются в SLA, поэтому мы также делаем процессы прозрачнее для всех. За историей о том, как это работает, — приглашаю под кат.
Читать дальше →

Частотный vs байесовский подходы: оцениваем True Positive Rate при неполной разметке данных

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

Привет, Хабр! Меня зовут Алан Савушкин (@naive_bayes), я — дата-сайентист в команде Data Science & Big Data «Лаборатории Касперского», и мы отвечаем в том числе за фильтрацию нерелевантных алертов при телеметрии киберугроз в проекте Kaspersky Managed Detection and Response (MDR). 

В данной статье хочу с вами поделиться, как мы решали задачу построения оценки TPR (True Positive Rate) в условиях неполной разметки данных. Может возникнуть вопрос: а что там оценивать? TPR по своей сути всего лишь доля, а построить доверительный интервал на долю легче простого.

Спорить не буду, но добавлю, что из статьи вы узнаете:

— Что даже в использовании такого интервала есть свои условия.

— Как на основе серии проверки гипотез получить доверительный интервал, используя под капотом гипергеометрическое распределение. А можно ли использовать биномиальное? Спойлер: можно, но тогда важно понимать, на какой вопрос вы отвечаете, пользуясь такой оценкой. Здесь мы рассмотрим задачу с частотной точки зрения.

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

— И, собственно, в чем прикол этой неполной разметки данных, и как мы докатились до всего перечисленного выше.

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

Читать далее

Планировать нельзя сойти с ума: как не забыть ни про проекты, ни про людей

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

Привет, я Вика Синельникова — руководитель отдела спецпроектов в KTS.

Рассказываю, как еженедельно планировать команду на большой объем проектов и не сойти с ума.

Читать далее

Делаем простые отчеты в CI с помощью GitLab Pages для Playwright

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

Привет, Хабр! Я Саша Алексеев, старший инженер по тестированию в Selectel. Некоторое время назад мы столкнулись с необходимостью реорганизовать отчеты end-to-end-тестов. Их прогон стал занимать слишком много времени, мы искали способы распределить их еще больше. Под катом я поделюсь вариантом, к которому мы в итоге пришли.

Сейчас у нас параллельное выполнение тестов в разных джобах с использованием shard=x/y, а общий репорт мы научились склеивать из отчетов разных прогонов. Хотел бы обсудить это решение в комментариях. Возможно, вы решаете подобную проблему иначе. Выбранный вариант описал в виде инструкции на тестовом стенде, так что сможете легко повторить его в собственных целях.
Читать дальше →

Подводные камни компараторов в С++

Время на прочтение9 мин
Количество просмотров11K
При использовании компаратора в алгоритмах boost::sort и std::sort важно учитывать некоторые особенности работы этих алгоритмов, игнорирование которых может привести к неожиданным последствиям, в том числе к segmentation fault.

image

Чаще всего при сортировке объектов пользовательских типов написание кода сравнения элементов коллекции не вызывает вопросов. Компаратор должен возвращать true, если первый аргумент меньше второго, то есть в отсортированном массиве первый аргумент должен идти перед вторым. Алгоритмы сначала вызывают компаратор для пары элементов x и y. Если компаратор вернул true, значит, элемент x меньше y и он должен идти в коллекции перед элементом y, если false, то компаратор вызывается повторно для пары y и x. Если компаратор опять вернул false, значит, элементы равны, иначе порядок определен.

Меня зовут Олег Игнатов, я — Development Team Lead в команде KICS (Kaspersky Industrial CyberSecurity) «Лаборатории Касперского». Мы защищаем промышленные инфраструктуры и сети от специализированных киберугроз. В этой статье расскажу о некоторых особенностях использования компараторов в С++, знание которых позволит не наступить на различные грабли и сэкономить время при разборе багов.
Читать дальше →

Бардак в main, стандартизация и uber.fx. Как сделать структуру кода понятнее для всех

Время на прочтение20 мин
Количество просмотров18K
Привет, Хабр! Меня зовут Данила Проценко. Я — Lead Software Architect в «Лаборатории Касперского», занимаюсь архитектурой микросервисов и монолитов на Go.

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

image
Читать дальше →

MDM в Android: плюсы, минусы, подводные камни

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

Как только у сотрудника какой-либо компании появляется необходимость выполнять задачи на мобильных устройствах (пусть даже элементарно читать рабочую почту) и, соответственно, получать с них доступ к данным компании, появляются риски. Мобильные устройства (как и все эндпоинты) подвержены ряду уязвимостей — приложения, установленные не через официальные магазины, могут оказаться вредоносными; подключение к незащищенной Wi-Fi-сети может привести к утечке данных; устройство может быть утеряно или украдено… Отсюда возникают самые популярные сценарии управления устройствами — удаленное стирание данных, ограничение на источники установки приложений, требования к используемым сетям, запрет копирования конфиденциальных данных (например, на внешний носитель) и другие.

Тут-то и появляется необходимость в MDM, или Mobile Device Management, — наборе сервисов для защиты мобильных устройств сотрудников компании.

Меня зовут Мария Глущенко (@mglushchenko), я —— Android-разработчик. В этой статье расскажу, какие режимы доступны для ОС Android и как реализовывать их функционал, в чем преимущества и недостатки этих решений и как мы их используем в мобильной команде «Лаборатории Касперского».

Читать далее

Как мы улучшили самозащиту приложения благодаря KNOX

Время на прочтение9 мин
Количество просмотров3.9K
Привет! Меня зовут Сергей Занкин, я старший разработчик в мобильном штабе «Лаборатории Касперского» на проекте Kaspersky Safe Kids — это программа родительского контроля и защиты ваших детей в режиме 24/7.

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

image

Статья будет полезна тем, кто связан с MDM-технологиями, для управления мобильными устройствами, в частности через Samsung KNOX. А также тем, кто хочет узнать, какие возможности предоставляет KNOX для управления устройствами и как внедрить его в собственное приложение, и интересуется, какие могут быть сложности при внедрении и как подобрать нужный тип лицензии.
Читать дальше →

Удобства и боли рендеринга с React-pdf: опыт использования

Время на прочтение8 мин
Количество просмотров8.9K
Привет, Хабр! Меня зовут Алексей Сингур, я — фронтенд-разработчик в проекте KICS (Kaspersky Industrial CyberSecurity) for Networks «Лаборатории Касперского». Если коротко, то наш продукт защищает промышленные инфраструктуры и сети от киберугроз: анализирует трафик для выявления отклонений и обнаружения признаков сетевых атак, чтобы обеспечивать предприятию непрерывность процессов.

image

Одной из фичей KICS for Networks является генерация отчетов о сканировании инфраструктуры в формате PDF. При разработке этой фичи пришлось погрузиться в вопрос верстки и рендеринга PDF на Node.js. Речь пойдет об использовании для этих целей библиотеки React-pdf (в нашем проекте мы пока используем версию 2.1.1.), которая может показаться весьма экзотичной, если судить по количеству статей и отзывов в Интернете :)

Пост будет полезен веб-разработчикам для расширения кругозора в области инструментов рендеринга PDF, а также заинтересованным в генерации PDF-документов на стороне клиента или сервера.
Читать дальше →

Универсальный дирижер проекта: что стало с ролью Solution Architect и как она меняет IT

Время на прочтение11 мин
Количество просмотров7.6K
Привет, Хабр! Меня зовут Роман Логинов, и я — Solution Architect Team Lead в «Лаборатории Касперского». Этот пост — отражение моего опыта и погружение в тонкости работы Solution Architect. На мой взгляд, эта роль реально развивает людей и меняет индустрию, заставляя специалиста по-новому смотреть на вещи, а саму отрасль IT — эволюционировать.



Если вам интересно, как это происходит, почему с появлением Solution Architect’ов ведение проектов стало удобнее и продуктивнее, а также как в роли SA можно развернуться на полную и сделать крутой, нестандартный продукт — приходите под кат.

Может быть, после этого поста вы сами захотите стать Solution Architect’ом: в конце я поделюсь своими наводками и советами, как этого добиться.
Читать дальше →

Кажется, вы больше не должны давать тестовые задания кандидатам на дом

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

В 2023 году, в эпоху взрывного роста нейросетей, вся IT-отрасль продолжает давать кандидатам в стажёры (и не только) домашние тестовые задания. Компании тратят время на то, чтобы придумать эти задания, студенты тратят время на то, чтобы их сделать, потом компании снова тратят время на проверку… В этой небольшой заметке я продемонстрирую, что все задачи последних лет решаются за несколько минут при использовании нейронки, доступ к которой может получить каждый.




Я возьму тестовые задания на Python, C++, Go и C#  и буду использовать только открытые источники, убрав названия компаний и прямые ссылки, чтобы исключить любые подозрения в предвзятости.


А в качестве нейронки использую ChatGPT Plus (GPT 4). Она всё еще очень глупа, много выдумывает и постоянно смешно ошибается, но как раз для таких задач годится хорошо.


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

Читать дальше →

Волшебный шкаф тестировщика: как мы победили человеческий фактор в учёте девайсов

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.3K
Уследить за собственным девайсом иногда бывает сложно: все мы хоть раз да ходили по дому в поисках непонятно где забытого смартфона или планшета. А когда мобильных девайсов тысяча, и они нужны не только тебе, но и коллегам по команде (причем как в офисе, так и дома — у нас же гибридный рабочий график)? Это огромная головная боль, причем заболеть голова может в любой момент и с непредсказуемой силой…

image

Меня зовут Владимир Власов, я — Senior Testing Engineer в Мобильной команде «Лаборатории Касперского». И под катом я расскажу, как мы создали решение, благодаря которому все устройства для тестирования в нашем офисе теперь учтены, а их поиск стал в разы быстрее и проще.
Читать дальше →

Kiosk (Lock task mode) для Android: польза, кейсы применения и кастомизация

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров11K
Привет, Хабр! Меня зовут Светлана Палицына, я — Android-разработчик в мобильной команде «Лаборатории Касперского», где мы создаем решения для защиты мобильных устройств.

Мои коллеги из Kaspersky уже рассказывали о наборе решений и технологий для управления поведением устройств, известном как Mobile device management (про ее применение в iOS можно прочитать здесь, а про использование в Android — здесь). Я же подробно рассмотрю один из режимов этого механизма — Lock task mode, также известный как Kiosk-режим.



Статья будет полезна Android-разработчикам, которые хотят дать своим пользователям возможность работы их устройств в режиме одного или нескольких приложений и пополнить копилку знаний информацией о возможностях MDM.
Читать дальше →

Как тестировщики с помощью пользовательского десктопа и видеокарты инфраструктуру строили

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.3K
Тестировать андроид — сложно. Автоматизированно тестировать андроид — очень сложно. А если автоматизированно тестировать 6 очень разных приложений на 10 разных версиях ОС Android с использованием 3 языков программирования, используя внутреннюю систему CI/CD, которая написана для десктопных платформ, то это проходит по разряду «медленно и за очень много денег».



Меня зовут Сергей Павлов, и я работаю в команде Mobile Solutions Testing «Лаборатории Касперского» на позиции Senior Software Development Engineer in Test (SDET), где совмещаются навыки разработчика, тестировщика и DevOps. Я расскажу, как у нас получилось создать инфраструктуру на пользовательских десктопах, способную относительно стабильно и быстро запускать до 8 эмуляторов Android на машине. А также как мы запаковали практически все в Docker и научились грамотно разделять потоки тестов.
Читать дальше →