Как стать автором
Обновить
4
0

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

Отправить сообщение

Что делать, чтобы эксплуатация не превратилась в бесконечное тушение пожаров

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

Меня зовут Владимир Медин, я работаю в подразделении SberWorks, которое внедряет практики DevOps и MLOps. Хочу поделиться нашим опытом повышения надёжности enterprise-систем, вводимых в эксплуатацию, особенно впервые. Для кого-то эта статья будет в большей степени спасательным кругом, но с напутствием. Многие подходы к обеспечению надёжности у нас регламентированы, но есть и «неуставные» решения, которые вырабатываются только с опытом. Кому-то могут бы непонятны некоторые тонкости, диктуемые условиями крупной компании, поэтому по мере рассказа буду объяснять, почему это важно. Впрочем, на мой взгляд, эти правила применимы в работе компании любого размера, дорожащей стабильностью качества своих услуг.

Читать далее
Всего голосов 15: ↑16.5 и ↓-1.5+18
Комментарии2

Безопасная разработка: обзор основных инструментов

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

Привет! Меня зовут Иван, я инженер по кибербезопасности в достаточно крупной компании и автор курса «Специалист по информационной безопасности: веб-пентест». В этой сфере я уже около шести лет. 

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

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

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

Увольнение без компенсаций: как этого избежать и что вам положено по закону

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

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

Ситуация тут часто такая – уволить сотрудника против его желания по закону не так просто. Для этого нужно выполнить ряд сложных условий. Часто работодатель не может и не очень хочет стараться, зато готов пугать сотрудника или пользоваться его незнанием.

Происходит так вот почему.

Читать далее
Всего голосов 37: ↑35.5 и ↓1.5+34
Комментарии11

Вызволяем увлажнитель из сетей Xiaomi

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

Вероятно, вы слышали о том, что сухость воздуха — одна из частых причин появления статического электричества. Вот и я решил обзавестись увлажнителем, когда заметил, что кошка бьется током почти при каждом прикосновении. И нет, ее зовут не Электро или Шторм Спирит. Знакомьтесь, Амидала (в честь персонажа вселенной «Звездных войн»).

Время шло, потребности в комфортном использовании техники росли, а вот ее функциональность и стабильность оставляли желать лучшего. После очередного сбоя серверов Xiaomi в октябре прошлого года в голове окончательно закралась мысль: почему дом — мой, а серверы — чужие? Так я познакомился с Home Assistant, MQTT, zigbee2mqtt и селфхостингом, о чем расскажу под катом!
Читать дальше →
Всего голосов 67: ↑67.5 и ↓-0.5+68
Комментарии46

Как мы переехали с Oracle на PostgreSQL в нагруженном сервисе без даунтайма

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

Всем привет! Я Сергей, работаю в B2B-команде Яндекс Маркета последние 3,5 года. Как уже понятно из заголовка, сейчас я вам расскажу про yet-another-миграцию с базы на базу, которая началась в середине 2021 года и заняла почти год. Получается, мемуары.

Вас ждёт рассказ о том, как мы:

- несколько месяцев чинили тесты и делали трансформер;

- десятки раз переливали данные;

- чинили баги незаметно для пользователей;

- заставили сервис работать на PostgreSQL быстрее, чем он работал на Oracle.

Читать далее
Всего голосов 88: ↑89.5 и ↓-1.5+91
Комментарии15

Бьемся с индексацией парных неравенств в PostgreSQL

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

Я уже не раз писал, что условия с несколькими неравенствами (<, <=, >=, >) обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различные нетривиальные подходы в PostgreSQL, чтобы добиться хорошей производительности подобного запроса.

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

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

DIY: Ваше собственное облако на базе Kubernetes (часть 1)

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

Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.

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

Да, вы могли бы возразить что Kubernetes для этого не предназначен и почему бы не использовать OpenStack для Bare Metal-серверов а внутри него запускать Kubernetes как положено. Но поступив так, вы просто переложите ответственность с ваших рук на руки OpenStack администраторов. Что добавит как-минимум ещё одну сложную и неповоротливую систему в вашу экосистему.

Зачем так всё усложнять? - ведь на данный момент Kubernetes уже имеет всё необходимое для запуска Kubernetes кластеров.

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

Электронные подписи. Но что мы знаем о мультиподписях?

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

Небольшое введение в технологии MPC и мультиподписей.

Краткое описание набора протоколов и используемой реализации мультиподписи.

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

Итак, вы думаете, что знаете Git? Часть третья: реально большие репозитории

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


Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.

Вам хочется использовать ванильный Git, чтобы управлять репозиторием с объёмом 300 ГБ в 3,5 млн файлов, которые без проблем получают пуш каждые 20 секунд от 4000 разработчиков? Тогда читайте дальше!


Вот агенда блога — наша блогенда:


Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии30

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

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

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

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

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров54K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →
Всего голосов 204: ↑201 и ↓3+198
Комментарии49

Как работает протокол X11 на самом нижнем уровне

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

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


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


А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.


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


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Всего голосов 201: ↑199 и ↓2+197
Комментарии182

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

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


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


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


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


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

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии11

Производственный календарь в PostgreSQL

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

Новый Год уже совсем на носу, а значит нужен свежий производственный календарь в базе данных PostgreSQL. Но как совершенно обленившийся IT-шник, заводить его руками не хочется. Хочется, чтобы вызовом одной функции он сразу появился. Ну а уж из этой функции можно его сохранить в табличку и спокойно использовать до следующего Нового Года. А тогда опять просто вызвать вызвать функцию и с чистой совестью отрапортовать о выполненной работе. Цель статьи - показать возможности COPY ... FROM PROGRAM и простейшие приемы парсинга XML в PostgreSQL.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии20

Протектор и LLVM-обфускатор. Сравнение двух подходов к решению задачи запутывания кода

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

Добрый день, Хабр! 

В данной заметке я постараюсь сравнить два разных подхода к задаче запутывания машинного кода – это протектор и обфускатор, построенный на базе LLVM-фреймворка. Нам пришлось с этим столкнуться, когда возникла задача защиты библиотек Guardant под разные операционные системы и разные ARM-архитектуры. Для x86/x64 мы используем протектор Guardant Armor, который является полностью нашей разработкой. В случае ARM-архитектуры было принято решение параллельно посмотреть в сторону открытых обфускаторов на базе LLVM с целью их модификации и использования для защиты своих продуктов.

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

Как я перестал бояться и вышел в Интернет со своей IPv6-сетью

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

Для личных нужд я использую bare-metal сервер от Hetzner, порезанный на виртуалки и, с недавних времен, VPS на HostHatch для мониторинга и резервирования. Также есть маленькая ВМка у TietoKettu (для ВПН, экспериментов и прочее).

Так как IPv4-адресов мало, то хостинги обычно дают дополнительные айпишки за дополнительные деньги, а вот IPv6-сети выделяют щедро. Изначально, я объединил все виртуалки, у которых был публичный IPv4-адрес в Wireguard mesh сеть, но потом когда выяснилось, что надо бы присоединить ещё одну ВМку, пришлось переделать mesh на IPv6-адреса и тут понеслось...

Сначала выяснилось что у HostHatch нет связности с ElmoNet (TietoKettu использует их адреса), после недели-двух бодания с техподдержкой HostHatch-a связность появилась. Однако недели две назад от них приходит письмо, о техобслуживании нод, где живут мои ВМки. И что вы думаете? После обслуживания туннель до этих ВМок так и не восстановился. В итоге, оказалось что обе вмки исчезли их IPv6-интернета. На этот раз связность починили только через 3 дня, хотя я создал срочный тикет.

В итоге, я перевёл туннели обратно на IPv4 и переключился на DN42, но в один выходной мне на глаза попалась статья на Reddit и я решил воскресить идею о "своем" куске Интернета. Масла в огонь подбавил Vultr, который наглухо заблокировал доступ на свои ресурсы (даже IP calculator) с Hetzner.

В одном из комментов, к вышеупомянутой статье, была ссылка на IPv6-сообщество в Discord. Я присоединился и стал задавать много вопросов в канале #asn-newbies.

Думаю, что кому-нибудь мой опыт и набитые шишки будет полезен. Если это так, то прошу под кат.

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

Проектный менеджмент. Новогодние тезисы

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

Немного вступления (не самореклама): в далёком 2003 году я пришёл работать юным программистом в бухгалтерию, пришлось изучать матчасть области в которой нужно кодить и спустя 2 бухгалтерия поглотила меня. Минуло лет 15, я уже успел вырваться из лап бух.учёта, вызывает меня как то руководитель и начинает говорить про модные слова: цифровую трансформацию, проектное управление, Agile и прочее. Выяснилось, что мне предстоит собирать команду и развивать это направление в компании.

Прошли годы, было перечитано тонны статей, часы видеоуроков, обсуждено с коллегами сотни митингов, набито много шишек на практике. Но пришёл опыт, того, что работает и не работает в проектном управлении. А также осознание, что каждый этап нашей жизни и каждая работа проект, а не процесс.

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

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

Кастомизируем VS Code для веб-разработки

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

Visual Studio Code — это бесплатный, шустрый (что важно на больших проектах) и глубоко кастомизируемый редактор кода.

В статье расскажу, какие настройки и плагины VS Code использует наша команда фронтенда в KTS. Материал может быть полезен для JavaScript- и React-разработчиков, а ещё для тех, кто уже давно пользуется VS Code, но не знает о некоторых полезных плагинах и фичах для повседневного использования. 

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

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

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

Разработка простого DNS сервера на Go, согласно RFC

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

Привет, Хабр!

В этой статье я хочу рассказать о своем опыте создания DNS сервера. Разрабатывал я его "чисто повеселиться", при разработке будем придерживаться спецификации RFC.

Читать далее
Всего голосов 42: ↑39 и ↓3+36
Комментарии10

Современные open-source BI-решения в условиях санкций

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

 

С развитием Data-driven подхода к принятию управленческих решений в современных организациях, возросла роль BI-инструментов как основного инструмента внедрения такого подхода. На сегодняшний день выбор BI-продуктов на рынке сводится к трем большим категориям:

- Лидеры (Power BI, Tableau, Qlik).
- Отечественные BI (Модус, Luxms, Yandex Lens, Visiology).
- Open-sourse (Apache Superset, Metabase, Plotly Dash).

Использование BI с открытым исходным кодом имеет ряд преимуществ и в условиях ухода западных игроков с российского рынка, такой выбор дает пользователю свободу и независимость от конкретного вендора.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность