Pull to refresh

Technotext

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

Level of difficultyMedium
Reading time8 min
Views7.4K

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

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

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

Reading time7 min
Views2.9K

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

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

Level of difficultyMedium
Reading time8 min
Views6.8K

Всем привет!


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


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


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


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

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

Level of difficultyMedium
Reading time6 min
Views9.5K

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

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

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

Level of difficultyMedium
Reading time9 min
Views3.6K
Еще несколько лет назад продакт-менеджер был мастером на все руки. Придумать продукт, разработать, спозиционировать, выпустить — все он. Или она. Главное — в одиночку. Либо с кучкой единомышленников, которые делят с тобой эти задачи. А потом пришел технологический прогресс. И все заверте…

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



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

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

Level of difficultyEasy
Reading time12 min
Views15K

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

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

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

Level of difficultyEasy
Reading time6 min
Views4.7K

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

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

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

Level of difficultyHard
Reading time21 min
Views4.3K

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

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

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

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views5.3K

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

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

Читать далее

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

Level of difficultyMedium
Reading time10 min
Views9.1K

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

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

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

Reading time9 min
Views11K
При использовании компаратора в алгоритмах 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. Как сделать структуру кода понятнее для всех

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

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

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

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

Reading time15 min
Views17K

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

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

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

Читать далее

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

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

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

image

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

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

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

image

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

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

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

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



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

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

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

Level of difficultyEasy
Reading time24 min
Views33K

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




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


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


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

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

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

Level of difficultyMedium
Reading time6 min
Views4.3K
Уследить за собственным девайсом иногда бывает сложно: все мы хоть раз да ходили по дому в поисках непонятно где забытого смартфона или планшета. А когда мобильных девайсов тысяча, и они нужны не только тебе, но и коллегам по команде (причем как в офисе, так и дома — у нас же гибридный рабочий график)? Это огромная головная боль, причем заболеть голова может в любой момент и с непредсказуемой силой…

image

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

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

Level of difficultyEasy
Reading time11 min
Views10K
Привет, Хабр! Меня зовут Светлана Палицына, я — Android-разработчик в мобильной команде «Лаборатории Касперского», где мы создаем решения для защиты мобильных устройств.

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



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

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

Level of difficultyMedium
Reading time11 min
Views3.3K
Тестировать андроид — сложно. Автоматизированно тестировать андроид — очень сложно. А если автоматизированно тестировать 6 очень разных приложений на 10 разных версиях ОС Android с использованием 3 языков программирования, используя внутреннюю систему CI/CD, которая написана для десктопных платформ, то это проходит по разряду «медленно и за очень много денег».



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