Pull to refresh
2
0.1

User

Send message

Мы хотим, чтобы серверы падали одновременно

Level of difficultyEasy
Reading time6 min
Views12K

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

Сервера, которые смущали заказчика работали в роли бэкенда для хранения видеофайлов. По сути, это было множество узлов, содержащих десятки терабайт видеофайлов, которые предварительно были нарезаны в разном разрешении конвертерами. Затем, все эти миллионы файлов отдавались во внешний мир с помощью nginx + kaltura, что позволяло перепаковывать на лету mp4 в сегменты DASH/HLS. Это позволяло хорошо переносить даже высокие нагрузки, отдавая плеером только нужные сегменты без резких всплесков.

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

Читать далее
Total votes 33: ↑38.5 and ↓-5.5+44
Comments31

Как дальнобойщик в 38 лет стал разработчиком на Ruby on Rails

Level of difficultyEasy
Reading time8 min
Views5.3K

Недавно мне представилась возможность взять интервью у Педро Давида Гарсии Лопеса, разработчика на Ruby on Rails из Великобритании, который до этого работал дальнобойщиком. Интересно то, что он решил стать программистом в 38 лет. В этой статье я расскажу его историю, которая, надеюсь, покажется вам такой же вдохновляющей, какой она показалась мне.
Читать дальше →
Total votes 22: ↑28 and ↓-6+34
Comments16

Создание графического бота для EVE Online

Level of difficultyMedium
Reading time34 min
Views18K

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

Выводить в консоль «Привет, мир!» я уже умел.
Теоретическое представление, что нужно делать, так же имелось.
Оставалось дело за малым - реализовать задумку.

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

Включить варп-двигатель!
Total votes 22: ↑22 and ↓0+22
Comments36

Суслик и пингвин: кодим на Go под Linux

Level of difficultyMedium
Reading time9 min
Views6.7K

Язык ядра Linux, его модулей и утилит написаны на языке C. Хоть он и является старым языком и прародителем многих других, но его до сих пор используют. В экосистему линукса постепенно проникают и более молодые языки — например, Rust. Но сегодня мы поговорим об детище Google — GoLang. Я много пишу про этот замечательный язык и в этой статье предлагаю изучить основы системного программирования на Go, мы изучим как работать с ядром, юзерспейсом линукса. Расскажу об стандарте POSIX, а также узнаем, как сочетать C и Go-код.

Читать дальше →
Total votes 21: ↑14.5 and ↓6.5+8
Comments15

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views67K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 210: ↑221.5 and ↓-11.5+233
Comments360

Как выбрать быстрый виртуальный сервер

Level of difficultyEasy
Reading time2 min
Views4.2K

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

Для одного небольшого проекта нам понадобилось выбрать быстрый VPS, в статье расскажем, как мы его искали.

Читать далее
Total votes 10: ↑5 and ↓50
Comments7

«Хакер»: Дмитрий Артимович о DDoS, scareware и изнанке жизни хакера

Reading time8 min
Views8.1K

Дмитрий Артимович — один из самых известных на Западе русских хакеров. Именно он устроил DDoS-атаку платежного шлюза Assist, в результате которой «Аэрофлот» полторы недели не мог принимать оплату. Недавно Артимович написал книгу «Я — хакер! Хроника потерянного поколения», где раскрыл множество инсайдов. Даня Шеповалов прочитал ее, слегка ужаснулся некоторым скандальным подробностям и поговорил с Дмитрием о его непростом опыте.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments7

Б/У ThinkPad может быть лучше, чем новый дешёвый ноутбук

Reading time5 min
Views35K

Технологическая индустрия, СМИ, якобы независимые эксперты, как правило, рекомендуют покупать самые новые, самые продвинутые гаджеты: смартфоны, телевизоры, ноутбуки. А что делать, если обновиться нужно, а денег на топовое устройство нет? Ну, или просто не хочется тратить слишком много денег.

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

Читать далее
Total votes 60: ↑58 and ↓2+56
Comments106

Домашняя лаба. Как собрать домашнюю инфраструктуру мечты

Level of difficultyEasy
Reading time10 min
Views22K

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

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

Читать далее
Total votes 18: ↑12 and ↓6+6
Comments40

Как сделать и настроить свой CDN

Level of difficultyMedium
Reading time7 min
Views9.8K
CDN (сеть доставки контента) представляет собой группу серверов, размещаемых в разных географических регионах с целью обеспечить быструю загрузку контента для пользователей из этих регионов. Чаще всего сети доставки контента используются для ускорения загрузки статических файлов: картинок, видео, скриптов, zip-архивов. Каждый из CDN серверов просто хранит одни и те же файлы, а пользователь получает их с ближайшего сервера.

Хранение контента у большинства сетей доставки контента организовано так: CDN сервер, получив в первый раз от пользователя запрос на отдачу файла, загружает его с оригинального сервера к себе, кэширует и тут же отдает пользователю. Для всех последующих запросов файл уже выдается из кэша. Некоторые сервисы позволяют настраивать длительность хранения кэшируемых данных, а также их предварительную загрузку (прекэш).

Иногда может понадобиться настроить собственную сеть доставки контента. Давайте рассмотрим, для чего это нужно и как это сделать.


Это наша будущая CDN из 5 серверов, которая будет раздавать контент на весь мир
Читать дальше →
Total votes 23: ↑27.5 and ↓-4.5+32
Comments13

Почему безопасник должен расти из программиста

Level of difficultyEasy
Reading time9 min
Views8.7K

По каждому из направлений в ИТ есть свои так называемые «приколы» и особенности в части поиска и обучения сотрудников, взаимодействия с софтом, заказчиками и так далее. В моей области, то есть в области информационной безопасности, все еще обсуждают такой вопрос: «Должен ли безопасник расти из программиста?». Имея 25+ лет в области ИТ и ИБ ответственно заявляю — должен. Для меня это не вопрос, но многие со мной не согласятся. Сегодня раскрою свою позицию и объясню, почему безопасникам жизненно необходимо быть программистами.

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

Читать далее
Total votes 16: ↑16.5 and ↓-0.5+17
Comments28

Docker — не то, чем кажется

Level of difficultyEasy
Reading time6 min
Views34K

Привет, Хабр! Меня зовут Матвей Мочалов, я — компьютерный инженер и один из авторов корпоративного блога cdnnow! Мы с вами познакомились в этом посте про историю DRM для видеоконтента. Сегодня я хочу поговорить с вами про Docker, а точнее про то, о чём многие забывают: различиях в нём для разных систем. Нам, как CDN-провайдеру Docker, все его 50 оттенков близки и знакомы. И, к счастью, наше взаимодействие с ним происходит из-под Linux, но, увы, не всем так везёт.

Как это часто бывает, с мультиплатформенностью и прочими «красивыми» словами в IT, всё не так однозначно. У всего своя цена, и под капотом один и тот же инструмент на разных системах, по сути своей может представлять из себя несколько разных вещей с различными принципами работы и производительностью. А обещания революции скрывают за собой эволюцию, либо вовсе регресс и топтание на месте.

Читать далее
Total votes 62: ↑63 and ↓-1+64
Comments85

Безопасность памяти меня не волнует

Level of difficultyMedium
Reading time6 min
Views8.4K
Фото с сайта платформы CHERIoT, проекта Microsoft по решению проблем с доступом к памяти IoT-устройств на аппаратном уровне

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

То же касается и безопасности памяти. Для меня тот факт, что 70% уязвимостей возникают в результате её отсутствия, не говорит о важности этого аспекта. Важность безопасности памяти в том, что один связанный с ней баг может полностью подорвать все гарантии, на которые я опираюсь.
Читать дальше →
Total votes 27: ↑30.5 and ↓-3.5+34
Comments7

Unchartevice 3310 — обзор ноутбука для работы

Level of difficultyEasy
Reading time10 min
Views4.2K

Задумавши поменять ноутбук, я первый раз в жизни попытался выбрать ноутбук именно для Linux подобных систем - в итоге купил Unchartevice 3310. Далее предлагаю вам поразмышлять на тему ноутбуков под Linux.

Читать далее
Total votes 4: ↑4.5 and ↓-0.5+5
Comments46

Цифровые подписи в Ethereum: как с ними работать?

Level of difficultyMedium
Reading time11 min
Views1.2K

Всем привет! Что значит подписать сообщение? Что для этого нужно? В этой статье расскажу про механизм цифровых подписей в сети Ethereum: как работает, какие стандарты существуют и как их использовать.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments4

Вы должны перестать вручную писать Dockerfile'ы

Level of difficultyMedium
Reading time3 min
Views52K

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Total votes 74: ↑75 and ↓-1+76
Comments66

Простейшая нейронная сеть, мой опыт и выводы

Level of difficultyEasy
Reading time6 min
Views6.8K

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments14

Как проанализировать риски: 4 шага

Reading time5 min
Views2K

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

Читать далее
Total votes 13: ↑11.5 and ↓1.5+10
Comments2

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

Level of difficultyEasy
Reading time6 min
Views7.6K

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

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

Погнали!
Total votes 39: ↑40 and ↓-1+41
Comments3

Шардирование (sharding). Эпизод 1: Начало и шардирование по идентификатору

Level of difficultyMedium
Reading time11 min
Views6.1K

Divide et impera (разделяй и властвуй) – древний принцип для управления чем-то большим и сложным.

Многие из нас программируют. Многие из нас делают системы, сложные системы. Но некоторым повезло работать в ситуации, когда объёмы по-настоящему огромны и требования кажутся невыполнимыми. Шардировние – один из излюбленных счастливчиками, которых зовут приключения, приемов.

Что-нибудь разбить на кусочки – это круто! Переходите на сторону шардирования у нас есть печеньки!

За кусочками!!!
Total votes 23: ↑23 and ↓0+23
Comments7

Information

Rating
2,672-nd
Registered
Activity

Specialization

Security Architect
Lead
From 12,000 $
Negotiation
C++
Qt
OOP
Linux
Git
PHP
SQL
Nginx
High-loaded systems