Pull to refresh
5
0
Степан @wsf

Пользователь

Send message

Hardening Jenkins: как подать блюдо, чтобы оставили чаевые

Reading time15 min
Views3.1K

Привет! Я Лев Хакимов — техлид команды безопасности в Wildberries, а в прошлом — DevOps (хотя говорят, что бывших DevOps не бывает). А ещё я — организатор VrnCTF, CentralCTF, кубка CTF, MiaCTF, OmCTF. Автор дисциплин DevOps в ВГУ и ИТМО. В этой статье:

расскажу про Jenkins и его экосистему (для тех, у кого Jenkins нет, либо он мало с ним работал, это будет особенно полезно);

покажу, как мыслит и действует злоумышленник;. 

разберу проблемы безопасности и уязвимости в Jenkins;

научу, как защититься от угроз, выстроив тактику защиты; 

познакомлю с хорошими практиками по базовой конфигурации, если вы ещё не сталкивались с разворачиванием Jenkins;

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

Читать далее

Целеполагание и контроль деятельности на основе матрицы Эйзенхауэра

Reading time5 min
Views109K


Мы уже писали о том, как справиться с останавливающими нас на пути к достижению своих целей страхом и прокрастинацией. Однако после того, как мы вышли из “мёртвой зоны” бездействия и замотивировали себя на результат, мы можем впасть в другую крайность: после длинного 8-12 часового рабочего дня не получается сказать, что же, собственно, удалось сделать. И главное – какой результат от приложенных усилий мы получили? Продвинул ли он нас к поставленным целям?

В результате легко обнаружить себя в ситуации, когда “крутишься как белка в колесе”, а дела словно стоят на месте. Копится только усталость. Ощущения от достигнутых высот так и не появляется.
Читать дальше →

Из опыта обучения взрослых. Практические приёмы

Level of difficultyEasy
Reading time3 min
Views2.9K

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

Читать далее

Mount — ещё один способ уменьшения размера Docker-образа

Level of difficultyMedium
Reading time3 min
Views16K

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер

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

Level of difficultyHard
Reading time10 min
Views5.1K

На устройствах интернета вещей (IoT) зачастую слишком мало ресурсов, и их не хватает, чтобы подтягивать и использовать тяжеловесные образы Docker. В этой статье будет показано, как можно уменьшить образ Docker на 36-91% при помощи инструментов patchelf и strace, не перекомпилируя при этом контейнеризованные приложения. Также рассмотрим, как создавать минимальные образы для собственных приложений, написанных на Rust, Go, C/C++.

Читать далее

Python на вынос: PyInstaller и Nuitka

Level of difficultyEasy
Reading time11 min
Views3.5K

Недавно возникла необходимость предоставить нашему QA-отделу один из модулей на Python в виде автономного бинарика, который не требовал бы установки и настройки окружения. Следуя за необходимостью образовался интерес какие существуют для этого средства.

Один из вариантов был использовать Docker, но я от него отказался по причине того, что окружение для Docker тоже надо будет готовить. Потом надо будет правильно запуск этот образ и правильно с ним взаимодействовать. Конечно, для упрощения можно использовать docker compose, но это не сильно снижает сложность для конечного пользователя. Кроме того, образ будет достаточно большим.

Поэтому я после некоторых размышлений обратился к таким инструментам как Python Compilers, а именно - Nuitka и PyInstaller и провёл небольшое исследование на предмет

Оба инструмента упаковывают Python-приложение со всеми зависимостями в один пакет таким образом, что конечный пользователь приложения может обойтись без установки Python на свою машину.

Есть два варианта того, что мы получаем от их работы в качестве результата (кроме эмоциональных ощущений):

Читать далее

Форматирование строк в Python

Level of difficultyEasy
Reading time8 min
Views17K

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

Эти методы как раз и называются - форматированием строк.

Читать далее

Ansible + Grafana Loki: Настраиваем отправку уведомлений в чат после логина на сервер по SSH

Level of difficultyMedium
Reading time19 min
Views13K

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

В этой статье мы развёрнем через Terraform несколько серверов в Yandex.Cloud, а затем при помощи Ansible настроим необходимый софт на каждом сервере. У нас будет основной сервер c Loki (система агрегирования логов) и Grafana (инструмент для визуализации данных), на серверах, которые мы хотим отслеживать, будет установлен Promtail (агент для сбора и отправки логов). Мы разберёмся с тем, как отслеживать входы на сервер, а затем в удобном формате отправлять об этом уведомления в чат с помощью вышеуказанных сервисов.

Читать далее

Долго ли тикать часикам российского часпрома?

Level of difficultyEasy
Reading time6 min
Views27K

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

Читать далее

Jenkins: оптимизируя динамический пайплайн → распределённая сборка компонентов ОС

Level of difficultyMedium
Reading time12 min
Views4K


В процессе улучшения подходов к менеджменту зависимостей компонентов нашей Операционной Системы появилась необходимость перейти от монолитной статической сборочной системы на основе CI/CD инструментов к динамическому распределённому подходу с порождением сотен и тысяч автономных задач. Как выяснилось в процессе, это не самый радужный сценарий использования систем автоматизации, но вполне достижимый.


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


Также частично раскроем информацию о том, как мы выполняем распределённую сборку дистрибутивов.


Ожидается много текста и примеров кода.

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

Как лучше проводить one-to-one со своими сотрудниками: 5 лайфхаков из личного опыта

Level of difficultyEasy
Reading time5 min
Views21K

Если вы занимаете руководящую должность, очень важно регулярно проводить индивидуальные встречи с сотрудниками из своей команды. “Зачем, если я и так вижу их каждый день, и мы обсуждаем все, что происходит?”. Эти встречи не только помогают понимать, как чувствуют себя коллеги, но и дают возможность откровенно дать и получить обратную связь без посторонних. А также предполагают, что оба участника будут готовиться к собранию, рефлексируя насчет прошедшего периода после предыдущей встречи. 

Я Алексей Анисимов, в настоящий момент управляю юнитом разработки в hh.ru и уже 10 лет руковожу разными людьми и командами в области ИТ. За это время я провел большое количество встреч 1 на 1 с сотрудниками — попробовал различные варианты, сталкивался с трудностями и совершал ошибки. Все это в результате помогло мне выработать для себя определенные принципы проведения индивидуальных встреч, которыми я хочу поделиться в статье.

Читать далее

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Level of difficultyEasy
Reading time4 min
Views26K

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее

Брак, шлак, две утяжины. Как «построить» производство и не рехнуться. Серия 1

Level of difficultyEasy
Reading time8 min
Views7.1K

Как не дать производству тебя нагреть и заставить его сделать качественно. Инсайд от производственника и чек-лист от профессионального заказчика. 

Все про шлак и брак

Мультиплатформенные образы: что это такое и зачем они нужны

Reading time7 min
Views9.5K

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

Читать далее

От Ericsson к WhatsApp: история Erlang

Level of difficultyEasy
Reading time12 min
Views9.8K

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

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

Речь идёт о языке программирования Erlang.
Читать дальше →

Книга «Кодер с улицы. Правила нарушать рекомендуется»

Reading time13 min
Views9.5K
image Привет, Хаброжители!

Джунам и вчерашним выпускникам вузов катастрофически не хватает «уличного» опыта. Чтобы стать отличным разработчиком, понадобятся вполне конкретные навыки, позволяющие превратить теорию в практику, а также понимание того, в какие моменты можно нарушать казавшиеся незыблемыми правила. Эта книга — справочник по выживанию для начинающего разработчика.

«Кодер с улицы» научит вас справляться с реальными задачами. Седат Капаноглу честно делится советами, основанными на личном опыте, а не на абстрактной теории. Вы узнаете, как адаптировать знания, полученные из книг и курсов, к повседневным рабочим задачам.

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

Все это превратит вас в настоящего уличного бойца, готового в любой момент приступить к созданию эффективного программного обеспечения.
Читать дальше →

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Level of difficultyEasy
Reading time6 min
Views227K

--- Обновление статьи 9 Августа 2023 ---

В течении последнего полугода в сфере текстовых нейронок всё кипит - после слитой в сеть модели Llama, aka "ChatGPT у себя на пекарне" люди ощутили, что никакой зацензуренный OpenAI по сути им и не нужен, а хорошие по мощности нейронки можно запускать локально.

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее

Качество социальных отношений в ИТ-команде

Reading time14 min
Views5K

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

Но помимо hard-инструментов есть и soft-составляющая. Она не столь очевидна, но тоже помогает повысить качество сервиса. Меня зовут Николай Котов, я старший QA-инженер в Тинькофф и сегодня расскажу, как социальные связи влияют на качество проекта, и поделюсь советами по укреплению этих связей.

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

Читать далее

Как я ставлю задачу для сотрудника

Level of difficultyEasy
Reading time4 min
Views18K

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

Меня зовут Андрей Глушко. Я менеджер ИТ проектов, занимаюсь менторством, прошёл путь от разработчика до руководителя, в своих подходах опираюсь в первую очередь на людей, а потом уже на практики.

Читать далее

Почему подчиненные делают не то, что нужно

Reading time8 min
Views16K

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

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

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Registered
Activity