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

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

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

Как я обработал один миллиард строк в PHP

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

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

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

Читать далее

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

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

Для личных нужд я использую 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.

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

Читать далее

В поисках ПАК: импортозамещаем немецкое «железо» в российском ЦОД

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

Привет, Хабр! Меня зовут Артем, я инженер по виртуализации в Oxygen Data Centres & Clouds. Любой облачный провайдер и оператор ЦОД может столкнуться с задачей проброса USB-портов виртуальным машинам, которым нужен доступ к определенным устройствам. И чем серьезнее требования к безопасности этих флешек – тем сложнее реализовать такое решение на практике. Сегодня я расскажу о нашем пути к выбору ПАК (программно-аппаратного комплекса) для решения задач с флешками и чем нас обрадовало найденное российское решение, когда немцы решили больше не поставлять свою технику.

Читать далее

Премиальные тарифы банков в 2024 году. Большой обзор

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

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

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

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

Читать далее

Введение в сетевую часть облачной инфраструктуры

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


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

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

Выжимаем все соки из WebRTC для стриминга камер на примере go2rtc

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

Go2rtc — это open source приложение для стриминга видео в реальном времени. Оно весит всего 5 мегабайт, не имеет внешних зависимостей и работает на всех популярных ОС. Поддерживает технологии ​​RTSP, RTMP, DVRIP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit и многие другие. Последний релиз получился настолько масштабным, что все нововведения пришлось оформлять в статью на Хабре.

Читать далее

Превентивные методы защиты от скликивания рекламы в Яндекс Директе

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

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

Читать далее

Terraform: от незнания к best practices

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

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.

Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?

Читать далее

Гибридный Kubernetes-кластер из bare metal и динамически подключаемых облачных виртуальных машин

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

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

Мы решили сделать гибридный кластер Kubernetes на базе существующего bare-metal-кластера, чтобы на лету заказывать узлы у облачного провайдера, когда в основном кластере заканчиваются ресурсы; разворачивать на этих узлах нужные окружения для тестов; сворачивать окружения после выхода изменений в production и отключать узлы. Для этого мы воспользовались модулем cloud-provider-openstack, который входит в состав Kubernetes-платформы Deckhouse.

Читать далее

Гуёвая автоматизация управления кластерами

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

Если вы активно используете kubernetes в своей инфраструктуре, при этому у вас небольшая команда или она состоит в основном из разработчиков, то у меня к вам вопрос: ну как вам — стала жизнь легче? Наверное те, кто используют managed‑решения в некотором роде покивают головой, продавцы этих решений скажут «да!», с особенно довольным лицом, а бизнес, пуская скупую слезу, просто согласятся с большинством (ну бизнес же растёт).

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

Читать далее

Его величество Пайп, или как заставить ssh tunnel открыть RDP на другом конце через альтернативный IP

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

Для начала, вспомним некоторые базовые вещи ОС Unix.

Любой процесс в Unix имеет три открытых файла по умолчанию (он конечно может их потом закрыть):

Читать далее

eBPF в production-условиях

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

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

Данный материал подготовлен на базе выступления “eBPF в production-условиях” от Дмитрия Евдокимова и Александра Трухина из компании Luntry с конференции HighLoad++ 2022. Он будет полезен как компаниям, что используют внутри себя решения на базе eBPF, так и разработчикам, которые что-то пишут или планируют писать с использованием данной технологии.

Читать далее

Википедия изнутри

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

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

Но меня каждый раз поражает, насколько фантастические представления о Википедии у людей, которые её не пишут. (Надо сказать, у людей, которые её пишут, — тоже.)

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

А я вам скажу, что правила как раз очень даже естественные, и Википедия — весьма устойчивый организм, переживший войны, кризисы, блокировки Роскомнадзором и существующий уже более 20 лет.

Открыть тайны нашей секты?

Итак, меня зовут Lesless, и я админ.

Читать далее

Простой подход к работе с отзывчивыми изображениями

Время на прочтение10 мин
Количество просмотров20K
Спецификация по отзывчивым изображениям — это фантастический документ, в котором описано множество вариантов использования таких изображений. Но опыт подсказывает мне, что чаще всего при работе с ними нужно знать лишь о том, как отдавать клиенту копии одного и того же изображения разного размера, выбирая их в зависимости от ширины области просмотра страницы. Мы называем это «переключением разрешения». Для решения этой задачи можно воспользоваться атрибутами srcset и sizes.

Вывод отзывчивых изображений предусматривает применение достаточно сложной логики. Сюда, кроме прочего, входит определение того, изображение какого размера будет выведено, а также выяснение того, работает ли пользователь с экраном высокого разрешения. К счастью, браузеры лучше, чем люди, умеют определять то, какие именно изображения лучше всего подходят каждому конкретному пользователю. Всё, что нам нужно — это дать им некоторые подсказки. Атрибут srcset даёт браузеру список графических ресурсов, из которых он может выбирать наиболее подходящее изображение. Атрибут sizes позволяет сообщить браузеру о том, изображение какого размера нужно показать в том или ином случае.



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

Фулвью ор нот фулвью: о пользе и вреде полной BGP-таблицы

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

На любом околосетевом форуме легко найти с десяток веток о выборе оборудования для BGP-пиринга с возможностью «держать две, три, пять, двадцать пять фулвью». Большинство таких веток выливается в холивары на тему Cisco vs. Juniper или еще чего похуже. Офлайновое же их развитие нередко напоминает мультфильм о шести шапках из одной овичины. В общем, бывает смешно.




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



Давайте попробуем разобраться.

Бюджетные петабайты: Как построить дешевое облачное хранилище

Время на прочтение3 мин
Количество просмотров34K
Познакомьтесь с Backblaze Pod: 67 терабайт за $7867

Мы в Backblaze предлагаем нашим клиентам неограниченное хранилище всего за $5 в месяц, поэтому нам пришлось выяснить, как хранить сотни петабайт клиентских данных надёжным масштабируемым образом, при этом сохраняя цены низкими. Посмотрев на несколько коммерческих решений с неоправданно высокими ценами, мы решили строить наши собственные нестандартные контейнеры хранилища Backblaze (Backblaze Storage Pods): 67-терабайтные 4U-серверы за $7867.

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

Легализация хостинга

Время на прочтение1 мин
Количество просмотров8.9K
Сразу скажу – 100% легально оказывать услуги хостинга в РФ сложно. Сразу отметаются, как не законные, следующие схемы работы:
— реселинг
— размещение серверов за пределами РФ
прием платежей по webmoney/яндекс.деньги (тут меня могут поправить финансисты – но я не знаю легальных способов вывода денег из WM/Я.Д на расчетный счет юрлица) upd. уже поправили

Для легального оказания услуг вам необходимо будет:
Читать дальше →

Вебсервер на bash+inetd

Время на прочтение1 мин
Количество просмотров1.2K
Понадобилось мне отвечать на http запросы извне и неким образом их обрабатывать (подключались к терминалам экспресс-оплаты). Первое решение было на Nginx+FastCGI(PHP), что было несколько неоправданно тяжеловесно. И тут меня посетили старые воспоминания и благодаря ru_root в ЖЖ и Гуглю было сделано следующее:

[root@mysql-02 /etc]# cat services | grep freecashpayment
freecashpayment 433/tcp
freecashpayment 433/udp

Этим мы объяснили серверу, что на порту 433 у нас теперь живет сервис по фамилии freecashpayment

[root@mysql-02 /etc]# cat inetd.conf | grep freecashpayment
freecashpayment stream tcp nowait root /usr/home/firefly/freecashpayment.sh freecashpayment.sh

Так мы заставляем слушать порт 433 и отвечать на нем скриптом freecashpayment.sh

[root@mysql-02 /usr/home/firefly]# cat freecashpayment.sh
#!/usr/local/bin/bash
read request
while /usr/bin/true; do
read header
[ "$header" == $'\r' ] && break;
done
url="${request#GET }"
url="${url% HTTP/*}"
echo $url


В результате в скрипте в переменной $url у нас имееются все параметры, которые нам прислали в GET-запросе. echo же нам выведет все что надо в ответ.

Мы счааааасливы :)

Строчка кода, убивающая IE6 :)

Время на прочтение1 мин
Количество просмотров599
Японский блогер Hamachiya2 «придумал» короткую строчку HTML кода, которая некорректно понимается IE6 и он выдает критическую ошибку :-)
<style>*{position:relative}</style><table><input></table>

Не верите? Проверьте! В остальных браузерах все хорошо.

Источник — immike.net

Обновлено: Чтобы крушить IE7 нужно просто добавить доктайп :) О, великие борцы со стандартами!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" «www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<style>*{position:relative}</style><table><input></table>
Читать дальше →

LUA в nginx: слегка интеллектуальный firewall

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

Данный пост является продолжением применения lua в nginx.

Там обсуждалось кеширование в памяти, а тут lua будет использоваться для фильтрации входящих запросов в качестве этакого фаервола на nginx-балансере. Нечто подобное было у 2GIS. У нас свой велосипед :) В котором разделяем динамику и статику, стараемся учесть NAT и белый список. И, конечно же, всегда можно навернуть еще специфичной логики, что не выйдет при использовании готовых модулей.
Данная схема сейчас спокойно и ненапряжно (практически не сказывается на использовании cpu) обрабатывает порядка 1200 запросов/сек. На предельные величины не тестировалось. Пожалуй, к счастью :)
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность