Search
Write a publication
Pull to refresh
3
0.9

User

Send message

Как устроено автоматическое удаление мёртвого кода в Meta*

Level of difficultyMedium
Reading time7 min
Views9.7K

В фреймворке Systematic Code and Asset Removal Framework (SCARF) компании Meta* есть подсистема выявления и удаления мёртвого кода.

SCARF использует статический и динамический анализ программ для выявления кода, мёртвого с точки зрения как бизнеса, так и языков программирования. Этот фреймворк автоматически создаёт запросы изменений, удаляющие мёртвый код, выявленный при помощи анализа программ, таким образом, минимизируя трудозатраты разработчиков.

В своём предыдущем посте об автоматическом выводе из эксплуатации продуктов мы говорили о сложностях этого процесса, а также о созданном Meta* решении под названием Systematic Code and Asset Removal Framework (SCARF). В качестве примера мы рассмотрели Moments — приложение обмена фотографиями, запущенное Meta в 2015 году и закрытое в 2019 году. В статье говорится о том, как SCARF помогает в проведении процесса вывода из эксплуатации благодаря его функциям управления рабочим процессом. Мы сказали, что SCARF экономит время разработчиков, выявляя правильный порядок задач для очистки продукта, и указали, что можно заблокировать автоматическую очистку при наличии межсистемных зависимостей. Это естественным образом приводит нас к следующему вопросу: как автоматически разблокировать SCARF при наличии кода, ссылающегося на ресурс?
Читать дальше →

Взлом YouTube для быстрого скачивания видео

Reading time9 min
Views83K
Мы неоднократно рассказывали о специальном софте, который позволяет скачивать видео с YouTube. Это в первую очередь youtube-dl (yt-dl) и его клоны, такие как yt-dlp и yt-dlc. С ними воюют могучие копирасты, пытаются удалить их из поисковой выдачи, с хостингов, с Github и так далее, по известной схеме «тотальная война».

Но главным врагом для этих программ остаются даже не правообладатели, а злобная корпорация Google, которая постоянно вносит изменения в YouTube API, чтобы прекратить злоупотребления сервисом помешать людям скачивать файлы, ведь от этого Google никакой прибыли.

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

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

Reading time7 min
Views11K

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

Читать далее

Как падает и поднимается Proxmox

Level of difficultyMedium
Reading time11 min
Views36K

Proxmox — это специализированный дистрибутив для виртуализации и контейнеризации на базе Debian Linux.


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


С ним мы уже больше двух лет, и очень довольны: он сильно упрощает очень многое: нарезку и резервирование ресурсов, живую миграцию (qemu VM's only), централизованный сбор метрик (без необходимости впихивать экспортер/агент в каждого гостя), управление (через WebUI, api и ssh).


Наша сеть разрослась от трех серверов до дюжины, из них количество хостов Proxmox выросло от нуля до восьми, на текущий момент. Но иногда ломается и он.

Взять щепотку лунного сахара и продолжить

Детектируем горизонтальное перемещение с WMIExec

Level of difficultyMedium
Reading time10 min
Views5.5K

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

Ранее мы рассказывали о возможных способах выявления горизонтального перемещения (Lateral Movement) с помощью таких инструментов, как PsExec, SMBExec и AtExec. Сегодня мы продолжим "работать" с данной техникой и рассмотрим еще один инструмент - WMIExec. В статье мы разберем его принципы работы, а также покажем возможный способ детектирования инструмента как в теории, так и на практике.

Читать далее

Обращение к издательствам: пожалуйста, не переводите термины

Level of difficultyEasy
Reading time2 min
Views35K

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

Читать далее

12 лучших инструментов аннотирования изображений на 2023 год

Reading time11 min
Views4.4K

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

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

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

Habr postmortem report: на газетку упало

Reading time3 min
Views19K
Конец первого и начало второго месяца лета 2019 года выдались непростыми и ознаменовались несколькими крупными падениями мировых IT-сервисов. Из заметных: два серьёзных инцидента в инфраструктуре CloudFlare (первый — с кривыми руками и халатным отношением к BGP со стороны некоторых ISP из США; второй — с кривым деплоем уже самих CF, повлияло на всех, пользующихся CF, а это многие заметные сервисы) и нестабильная работа инфраструктуры Facebook CDN (повлияло на все продукты FB, включая Instagram и WhatsApp). Под раздачу пришлось попасть и нам, хотя наш outage был куда менее заметен на мировом фоне. Кто-то стал уже приплетать чёрные вертолёты и «суверенные» заговоры, посему выпускаем публичный post mortem нашего инцидента.


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

Kubernetes Networking: сервисы, Ingress и Network Policies

Reading time16 min
Views24K
image

Когда я впервые столкнулся с задачей масштабирования сложного приложения в Kubernetes, то был полон оптимизма. Однако вскоре стало ясно, что управление сетевым трафиком и безопасностью в такой динамичной среде — это непросто. Наше приложение начало страдать от потерь пакетов данных и сетевых задержек, что сказывалось на общей производительности и пользовательском опыте. Из-за этого возникла потребность в глубоком понимании сетевых возможностей Kubernetes, таких, как сервисы, Ingress и Network Policies, чтобы эффективно управлять трафиком, обеспечивать безопасность и максимизировать производительность. Этот опыт стал для меня настоящим откровением и подтолкнул к написанию данной статьи.

Меня зовут Дмитрий, и я старший DevOps-инженер в ГК Иннотех. В моей работе я часто сталкиваюсь с задачами, которые требуют глубокого понимания сетевых аспектов в Kubernetes.

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

Когда дело доходит до экспозиции наших приложений наружу, я применяю Ingress для управления входящим трафиком. Это не только упрощает настройку SSL/TLS, но и предоставляет гибкие возможности для маршрутизации. И, конечно же, безопасность стоит не на последнем месте. С помощью Network Policies можно тонко настроить сетевые правила, определяя, какие поды могут взаимодействовать друг с другом, что значительно повышает уровень безопасности нашей инфраструктуры.

Данная статья будет особенно полезна для DevOps-инженеров, системных администраторов и архитекторов, которые хотят глубже понять механизмы сетевого взаимодействия в Kubernetes.

Сосредоточимся на критически важных элементах, таких, как сервисы, Ingress и Network Policies. Освоение этих базовых принципов не только упростит вашу работу с Kubernetes, но и даст вам уверенность в управлении сложными системами. Надеюсь, это будет полезно!
Читать дальше →

Разработка высокопроизводительного кеш-слоя на основе Redis в телеграм-боте

Level of difficultyMedium
Reading time14 min
Views7.3K

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

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

Redis - это молниеносная, высокопроизводительная система управления данными в памяти, которая идеально подходит для кеширования в телеграм-ботах. Эта in-memory база данных спроектирована с учетом скорости и эффективности, позволяя разработчикам хранить и получать данные практически мгновенно. С Redis, вы можете сохранять разнообразные данные, такие как текстовые ответы, изображения, аудиофайлы, и даже более сложные структуры данных, все это с невероятной скоростью доступа.

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

Читать далее

История одной миграции из западного частного облака в публичное российское

Level of difficultyMedium
Reading time5 min
Views2.7K

Многие глобальные компании ушли с российского рынка, но российские подразделения остались. «Дочкам» пришлось искать замену ресурсам, которыми раньше обеспечивало головное предприятие. За последние два года в Linx обратилось несколько таких заказчиков, перед которыми встала задача самостоятельно развернуть сервисы в сжатые сроки. Делимся интересным кейсом о миграции из западного частного облака в наше публичное.

Читать далее

I2P + OpenFire

Level of difficultyEasy
Reading time4 min
Views4.8K

Собственный мессенджер в скрытой сети

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

Читать далее

Бесшовный апгрейд ПО для системы хранения данных: как организовать и улучшить

Reading time14 min
Views4.4K

Любое программное обеспечение необходимо обновлять — ПО для систем хранения данных (СХД) не исключение. Логика апгрейда в СХД не тривиальна. В системе есть несколько контроллеров хранения, обновлять которые нужно последовательно, учитывая все возможные риски — потерю отказоустойчивости, конфликт версий и другие. При этом даунтайм сервиса или миграция данных на другую систему — варианты, которые не устроят ни одну компанию.

Я Владимир Приходько, руководитель отдела разработки подсистем управления в компании YADRO. Вместе с командой мы развиваем пользовательский функционал СХД. В тексте расскажу о специфике бесшовного обновления ПО в системах хранения данных и дам рекомендации, как выстроить этот процесс с учетом лучших практик. Все описанные подходы мы с командой успешно используем в обновлении СХД TATLIN.UNIFIED

Читать далее

Keycloak ― построение отказоустойчивого кластера

Reading time6 min
Views9.7K

Разворачивая у нас в Туту Keycloak мы столкнулись с необходимостью создания отказоустойчивого кластера. И если с БД всё более менее понятно, то вот реализовать корректный обмен кэшами между Keycloak оказалось довольно непростой для настройки задачей.

Мы упёрлись в то, что в документации Keycloak описано как создать кластер используя UDP мультикаст. И это работает, если у вас все ноды будут находиться в пределах одного сегмента сети (например ЦОДа). Если с этим сегментом что‑то случится, то мы лишимся Keycloak. Нас это не устраивало.

Необходимо сделать так, чтобы ноды приложения были географически распределены между ЦОД, находясь в разных сегментах сети.

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

Бонусом приложу shell скрипт, написанный для Consul, который предназначен для снятия анонсов путём выключения bird и попытки восстановления приложения.

Читать далее

Как сделать приложение для мобильного стриминга на Android с помощью опенсорс-инструментов и EdgeStreaming

Level of difficultyMedium
Reading time10 min
Views5.5K

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

В прошлый раз я рассказывал, как сделать приложение для показа VOD. А сегодня поделюсь, как с помощью опенсорс-инструментов сделать полноценный сервис для онлайн-стриминга на Android и интегрировать его с EdgeStreaming.

Читать далее

От Kubernetes в мечтах к Kubernetes в проде. Часть 3. Доставка кода, GitOps, ArgoCD

Reading time12 min
Views8.2K

В серии статей по теме DevOps мы вместе с Lead DevOps инженером департамента информационных систем ИТМО Михаилом Рыбкиным рассказываем о проверенных инструментах выстраивания инфраструктуры, которыми с недавнего времени пользуемся сами. В предыдущих статьях мы уже рассмотрели предпосылки перехода на новую инфраструктуру и познакомились с азами Kubernetes, теперь пора перейти к следующему шагу – доставке кода. В рамках этой статьи мы подробно рассмотрим методологию GitOps и ее реализацию на примере ArgoCD.

Читать далее

Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 4 —добавление отражения и преломления

Reading time5 min
Views2K

В этой статье мы добавим в наш рейтрейсер поддержку отражения и преломления света. Приятного чтения!

Предыдущая глава

Другим преимуществом трассировки лучей является то, что, расширяя идею распространения лучей, мы можем очень легко имитировать такие эффекты, как отражение и преломление, которые удобны при моделировании стеклянных материалов или зеркальных поверхностей. В статье 1979 года, озаглавленной "Улучшенная модель освещения для затененного дисплея", Тернер Уиттед был первым, кто описал, как расширить алгоритм трассировки лучей Аппеля для более продвинутого рендеринга. Идея Уиттеда расширила модель испускания лучей Аппелем, включив в нее расчеты отражения и преломления.

Зарендерить статью

Как развернуть свой собственный ChatGPT, только лучше

Level of difficultyEasy
Reading time3 min
Views90K

Бесплатная версия ChatGPT не включает в себя доступ к языковой модели GPT-4 -  самой современной и продвинутой модели от OpenAI. Хотя платная версия снимает эти ограничения за $20 в месяц, однако оплатить её с помощью карты Российского банка тоже не получится

К тому же интерфейс ChatGPT не менялся уже почти год, в то время как сторонние решения предоставляют набор полезных и удобных инструментов уже сейчас.

Читать далее

Дефицит в IT закончился? Или нет? Что происходит на рынке труда?

Level of difficultyEasy
Reading time10 min
Views29K

По данным HeadHunter за первое полугодие 2023 года российские работодатели разместили 71 000 вакансий в сфере «Информационные технологии и телеком». Кажется, что это большая цифра. Но за первые 6 месяцев прошлого года вакансий было на 9% больше. При этом за это же время активными было 480 000 резюме, что на 11% больше, чем в прошлом году в первые полгода.

Еще пару лет назад ситуацию можно было описать как кадровый голод — вакансий много, а активных соискателей мало. Сейчас вакансий становится меньше, а тех, кто ищет работу — больше. Получается, что все ровно наоборот? И голод закончился, все сыты? Попробуем разобраться.

Читать далее

Information

Rating
2,008-th
Registered
Activity