Search
Write a publication
Pull to refresh
5
5
Владислав Щапов @phprus

Манул

Send message

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6

Reading time12 min
Views22K
Многие помнят публикацию о «Рэйдикс» на Хабре «Как разработчики сидели в Петербурге и тихо ели грибы», в которой партнеры кратко изложили историю появления нашего продукта. Поэтому в первой статье своего Хаброблога мы бы хотели погрузиться в математические основы технологий RAIDIX.


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

«Теперь обязательно»: выдача SSL-сертификатов с учетом DNS-записи

Reading time2 min
Views17K
В этом году публичные организации, отвечающие за распределение сертификатов, в обязательном порядке начнут учитывать специальные DNS-записи. Эти записи позволяют владельцам доменов определять «круг лиц», которым дозволено выдавать сертификаты SSL/TLS (о них мы писали в нашем предыдущем посте) для их домена.

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

Похоже, я не предприниматель

Reading time7 min
Views47K
Для того, чтобы это понять, мне потребовалось четыре миллиона рублей (половина из которых — мои) и четыре года.

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

В этой статье я хотел бы

— поделиться сделанными выводами
— порекомендовать проект, если вы хотите присоединиться к нему в качестве разработчика/инвестора
— выложить техническую документацию, если вы захотите сделать форк

image

Введение в Storage Performance Development Kit (SPDK)

Reading time8 min
Views9.4K
Клиентам, внедряющим твердотельные накопители текущего поколения, такие как Intel DC NVMe серии P3700, приходится справляться со сложной проблемой: поскольку пропускная способность гораздо выше, чем у дисковых накопителей, а задержки гораздо ниже, большая часть общего времени транзакций теперь приходится на работу программного обеспечения хранилища. Другими словами, производительность и эффективность всей системы хранения данных все сильнее зависят от производительности и эффективности используемого программного набора. При этом носители данных постоянно совершенствуются, в ближайшие годы их мощность превзойдет возможности программных архитектур, используемых в системах хранения данных.



Для помощи ОЕМ-производителям и поставщикам программного обеспечения в интеграции такого оборудования корпорация Intel создала набор драйверов и разработала полную архитектуру хранилища под названием Storage Performance Development Kit (SPDK). Цель SPDK — подчеркнуть высокую эффективность и производительность, достигаемые совокупностью технологий Intel в области сетей, вычислений и хранения данных. С помощью SPDK удалось продемонстрировать, что можно достичь великолепных показателей в миллионы операций ввода-вывода в секунду, используя несколько процессорных ядер и несколько накопителей NVMe без какого-либо дополнительного оборудования для разгрузки. Intel предоставляет полный исходный код эталонной архитектуры для Linux на условиях более широкой и либеральной лицензии BSD, он распространяется в сообществе через GitHub. По адресу spdk.io находятся блог, список рассылки и дополнительная документация.
Читать дальше →

Подводные камни для самодельной распределенности «из коробки» в С++ном акторном фреймворке

Reading time9 min
Views6.8K

В комментариях к последней статье про шишки, которые нам довелось набить за 15 лет использования акторов в C++, вновь всплыла тема отсутствия в SObjectizer-5 распределенности «из коробки». Мы уже отвечали на эти вопросы множество раз, но очевидно, что этого недостаточно.


В SObjectizer-5 нет распределенности потому, что в SObjectizer-4 поддержка распределенности была, но по мере того, как расширялся спектр решаемых на SObjectizer задач и росли нагрузки на SObjectizer-приложения, нам пришлось выучить несколько уроков:


  • Под каждый тип задачи желательно иметь свой специализированный протокол. Потому что обмен большим количеством мелких сообщений, потеря части которых не страшна, сильно отличается от обмена большими бинарными файлами;
  • Реализация back-pressure для асинхронных агентов — это сама по себе непростая штука. А когда сюда еще и примешивается общение по сети, ситуация становится гораздо хуже;
  • Сегодня какие-то куски распределенного приложения обязательно будут написаны на других языках программирования, а не на C++. Поэтому требуется интероперабильность и наш собственный протокол, заточенный под C++ и SObjectizer, мешает разработке распределенных приложений.

Далее в статье попробуем раскрыть тему подробнее.

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

Железо для ядерной зимы – с защитой от холода, тумана и дыма

Reading time5 min
Views17K

image alt text


Обычно военное железо окутано ореолом невероятной надежности и живучести. Впрочем, это не помешало американскому эсминцу «Дональду Куку» в апреле 2014 года «ослепнуть» и «оглохнуть» после применения против него комплекса радиоэлектронной борьбы «Хибины». А ведь на борту было немало и компьютерной техники, хоть и специализированной – неужели нет никакой защиты от ЭМИ?


В общем, если вам тоже интересна военная ИТ-тематика, то предлагаю небольшой экскурс в сферу «боевого» и просто защищенного железа.

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

Защита от DDoS-атак с точки зрения оператора связи. Часть 1

Reading time10 min
Views22K
Мы активно следим за всеми статьями по теме DDoS, которые публикуются на Хабрахабре, и несмотря на то, что поиск по всем потокам на момент написания статьи показывал 820 публикаций, решили, что было бы неплохо от лица оператора связи поделиться видением проблематики выявления и борьбы с DDoS-атаками.



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

Docker и определение доступных ресурсов внутри контейнера

Reading time2 min
Views28K

Как объяснить контейнеру docker-а сколько у него есть ресурсов?


К написанию этой небольшой заметки меня подтолкнула статья-перевод Java и Docker: это должен знать каждый и скудный на результаты поиск информации по теме. Я давно использую LXC, который тоже ограничивает ресурсы контейнеров средствами cgroup, и там эта проблема уже решена.


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

Микрооптимизации важны: предотвращаем 20 миллионов системных вызовов

Reading time7 min
Views13K

Эта публикация — логическое продолжение поста «Как настройка переменной окружения TZ позволяет избежать тысяч системных вызовов». Здесь мы рассмотрим характерную ситуацию, когда микрооптимизации (например, удаление системного вызова) очень сильно влияют на производительность.

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

Luna. Высокоскоростная установка операционных систем

Reading time5 min
Views18K

Всем привет. Представляю на суд общественности новую утилиту для высокоскоростного bare-metal provisioning-а северов.


TL;DR


Конкурент xCAT/Warewulf/Rocks. Использует BitTorrent для раздачи образов OC. Поддерживаемые ОС — RHEL-семейство. Debian/Ubuntu — в работе. Самый масштабный тест на данный момент: холодная загрузка HPC кластера из 512 нод производится за 4 минуты. Автоматическое определение имени ноды на базе switch-port пар.


Линк: https://github.com/dchirikov/luna


Чуть больше деталей

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

Windows hook: просто о сложном

Reading time8 min
Views53K
imageЧто такое хук?
Что такое хук функций и для чего он нужен? В переводе с английского «hook» — ловушка. Поэтому о назначении хуков функции в Windows можно догадаться — это ловушка для функции. Иными словами, мы ловим функцию и берем управление на себя. После этого определения нам открываются заманчивые перспективы: мы можем перехватить вызов любой функции, подменить код на свой, тем самым изменив поведение любой программы на то, которое нам нужно (конечно, в рамках определенных ограничений).

Целью данной статьи является демонстрация установки хука и его непосредственная реализация.
Читать дальше →

Исключения в Windows x64. Как это работает. Часть 3

Reading time23 min
Views13K
Опираясь на материал, описанный в первой и второй частях данной статьи, мы продолжим обсуждение темы обработки исключений в Windows x64.

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

Intel и Google — дружим «облаками»

Reading time1 min
Views2.8K
На проходившей в Сан-Франциско конференции Google Cloud Next ‘17 объявлено о программе стратегического партнерства «Better Together» («Вместе лучше») между компаниями Google и Intel в области облачных технологий и «Интернета вещей». Цель программы — предоставить разработчикам программные и аппаратные компоненты, инструменты и учебные материалы для ускорения процесса создания приложений. При этом Google открывает доступ к своему «облаку» и его функционалу, а Intel обеспечивает программными средствами разработки, такими как Intel IoT Developer Kit и предоставляет шлюзы «интернета вещей» в лице Intel NUC.


Планируется запустить совместные он-лайн ресурсы для разработчиков — главная страница проекта на сайте Intel Developer Zone уже работает — а также провести тренинги и другие мероприятия. В свою очередь, специалисты компаний будут проводить интеграцию между участвующими в программе Intel IoT Developer Kit, Intel NUC и Google Cloud Platform.
Читать дальше →

Iptables: немного о действии REDIRECT, его ограничениях и области применения

Reading time2 min
Views55K

Данная заметка повествует о действии REDIRECT в iptables, его ограничениях и области применения.

Iptables и REDIRECT


Действие REDIRECT предназначено для перенаправления пакетов с одного набора портов на другой внутри одной системы, не выходя за пределы хоста.
Читать дальше →

Я написал самую быструю хеш-таблицу

Reading time29 min
Views72K

image


В конце концов я должен был к этому прийти. Когда-то я опубликовал статью «Я написал быструю хеш-таблицу», а потом ещё одну — «Я написал ещё более быструю хеш-таблицу». Теперь я завершил работу над самой быстрой хеш-таблицей. И под этим я подразумеваю, что реализовал самый быстрый поиск по сравнению со всеми хеш-таблицами, какие мне только удалось найти. При этом операции вставки и удаления также работают очень быстро (хотя и не быстрее конкурентов).


Я использовал хеширование по алгоритму Robin Hood с ограничением максимального количества наборов. Если элемент должен быть на расстоянии больше Х позиций от своей идеальной позиции, то увеличиваем таблицу и надеемся, что в этом случае каждый элемент сможет быть ближе к своей желаемой позиции. Похоже, такой подход действительно хорошо работает. Величина Х может быть относительно невелика, что позволяет реализовать некоторые оптимизации внутреннего цикла поиска по хеш-таблице.


Если вы хотите только попробовать её в работе, то можете скачать отсюда. Либо пролистайте вниз до раздела «Исходный код и использование». Хотите подробностей — читайте дальше.

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

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

Reading time4 min
Views13K


Объем генерируемых человеком данных растет с каждым годом. Соответственно, увеличивается и объем трафика, передаваемого по интернет-каналам всего мира. Больше всего информации передают и принимают телекоммуникационные гиганты вроде Google, Microsoft, Facebook, Amazon. Этим компаниям уже недостаточно текущей пропускной способности большинства каналов связи, поэтому они инвестируют средства в создание новых магистралей, часто — подводных.

Поскольку проекты такого рода достаточно сложные и дорогие, компании объединяются. Собственно, причина партнерства часто даже не в деньгах, а в том, что ряду компаний нужен надежный канал для приема и передачи трафика в одни и те же регионы. Наиболее недавний пример такого партнерства — совместный проект Facebook и Google. Компании выступили инициаторами создания подводной магистрали, соединяющей Лос-Анжелес и Гонконг.
Читать дальше →

Монитор качества воздуха в помещении

Reading time6 min
Views64K
image

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

Для этого в первую очередь надо видеть и понимать, что нас окружает? Каким воздухом мы дышем? Нам уже стали привычны термометры, барометры, приборы показывающие влажность. Но эти приборы ничего нам не говорят о качестве окружающего воздуха. А значит мы будем слушать советы, которые не всегда верны, руководствоваться слухами, не зная наверняка, правильно ли мы поступаем.

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

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

Но этого недостаточно. Нужен прибор которым вы могли-бы непосредственно померять качество воздуха в вашем доме. Что бы Вам было понятно и очевидно чем Вы дышите. Как температура на градуснике.
Читать дальше →

Оформляем внутреннюю разработку как программный актив в пять шагов

Reading time7 min
Views25K
Привет, Хабр. Меня зовут Владимир Разуваев, я руководитель департамента бизнес-консалтинга. Наша команда занимается тем, что помогает клиентам понимать значимость программных активов и управлять ими. В этом посте я предлагаю поговорить о внутренних разработках, которые в той или иной мере есть практически в любой компании.

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

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

Страх и ненависть в распределённых системах

Reading time21 min
Views81K


Роман Гребенников объясняет сложность построения распределённых систем. Это — доклад Highload++ 2016.

Всем привет, меня зовут Гребенников Роман. Я работаю в компании Findify. Мы делаем поиск для онлайн-магазинов. Но разговор не об этом. В компании Findify я занимаюсь распределенными системами.

Что же такое распределённые системы?

Выбор правильной стратегии обработки ошибок (части 3 и 4)

Reading time15 min
Views12K

image


Части 1 и 2: ссылка


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


Для проверки условия библиотека С предоставляет макрос assert(), но только если не определён NDEBUG. Однако, как и в случае со многими другими вещами в С, это простое, но иногда неэффективное решение. Главная проблема, с которой я столкнулся, — глобальность решения: у вас есть утверждения либо везде, либо нигде. Плохо это потому, что вы не сможете отключить утверждения в библиотеке, оставив их только в собственном коде. Поэтому многие авторы библиотек самостоятельно пишут макросы утверждений, раз за разом.

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

Information

Rating
380-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity