Pull to refresh
0
@tvoikoreshread⁠-⁠only

User

Send message

Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

Reading time25 min
Views125K
Привет, Хабр! Встала передо мной недавно задача: настроить максимально надежный кластер серверов PostgreSQL версии 9.6.

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

Планируя кластер я проштудировал много статей, как из основной документации к PostgreSQL, так и различных howto, в том числе с Хабра, и пробовал настроить стандартный кластер с RepMgr, эксперементировал с pgpool.

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

В итоге где-то (уже не вспомню точно где) нашел ссылку на прекрасный проект Zalando Patroni, и все заверте…
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments69

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5

Reading time8 min
Views11K

На прошлом уроке я рассказал о том, как повысить контрастность изображения и как выделить на изображении особе точки. Затем мы попробовали работать с найденными особыми точками. В частности, превратили эти точки в список  координат и попытались объединить близкие точки в одну, так как у нас получилось очень много точек рядом. В статье был предложен следующий алгоритм: при составлении списка, перед добавлением в список очередной точки проверять, находится ли она близко от последней, если да, то добавлять в тот же список, если нет, то начинать новый список.  Только проблема в том, что обход точек был через развертку, и могло получиться так, что близкие точки попадают в разные списки. Поэтому объединение точек получилось «криво».  Сегодня мы исправим этот недочет.

Для начала, почему мы вообще начали все эти хитрости с алгоритмом? Дело в том, что если решать задачу «в лоб», то время работы алгоритма у нас будет пропорционально квадрату размера списка. Собственно, давайте сначала проверим, насколько критично будет время работы алгоритма «в лоб» при разных ситуациях. И так, нам нужно перебрать все точки и сравнить их расстояния со всеми точками:

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments1

Как оплачивать зарубежные сервисы?

Reading time5 min
Views199K

Как известно, 10 марта Visa и Mastercard официально прекратили транзакции в РФ. Наши соотечественники, срочно выехавшие или уже проживающие в других странах попали в ситуацию, когда российские карты перестали работать (с них нельзя снять наличные, ими нельзя расплатиться). Внутри России, будут работать до конца срока действия, благодаря Национальной системе платежных карт, но платить с использованием Apple Pay и Google Pay нельзя. Банки предлагают альтернативу: кобейджинговые карты МИР / UnionPay, но с ними все так просто и оформление таких карт - еще тот бег с препятствиями. Как итог, проблема с оплатой зарубежных сервисов стоит остро, мы уже привыкли к удобным и доступным сервисам и теперь очень не хочется отвыкать...

Как же теперь оплачивать зарубежные сервисы?

Читать далее
Total votes 74: ↑62 and ↓12+50
Comments215

Иностранные хостеры с возможностью оплаты криптовалютой

Reading time4 min
Views61K

Всем привет! Меня зовут Леонид, я владелец сервиса Поиск VPS. Неделю назад я опубликовал статью, в которой рассказал о том, как можно оплатить зарубежный хостинг валютным переводом через SWIFT. Это один из альтернативных способов после отключения России от Visa и Mastercard. В комментариях некоторые пользователи попросили сделать обзор хостеров, принимающих криптовалюту.

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

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

Роутинг и policy-routing в Linux при помощи iproute2

Reading time6 min
Views254K
Речь в статье пойдет о роутинге сетевых пакетов в Linux. А конкретно – о типе роутинга под названием policy-routing (роутинг на основании политик). Этот тип роутинга позволяет маршрутизировать пакеты на основании ряда достаточно гибких правил, в отличие от классического механизма маршрутизации destination-routing (роутинг на основании адреса назначения). Policy-routing применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты на определенный интерфейс, причем пакеты определяются не по адресу назначения или не только по адресу назначения. Например, policy-routing может использоваться для: балансировки трафика между несколькими внешними каналами (аплинками), обеспечения доступа к серверу в случае нескольких аплинков, при необходимости отправлять пакеты с разных внутренних адресов через разные внешние интерфейсы, даже для отправки пакетов на разные TCP-порты через разные интерфейсы и т.д.
Для управления сетевыми интерфейсами, маршрутизацией и шейпированием в Linux служит пакет утилит iproute2.
Читать дальше →
Total votes 56: ↑51 and ↓5+46
Comments10

Кластер Elasticsearch на 200 ТБ+

Reading time14 min
Views23K


С Elasticsearch сталкиваются многие. Но что происходит, когда хочешь с его помощью хранить логи «в особо крупном объёме»? Да ещё и безболезненно переживать отказ любого из нескольких дата-центров? Какой стоит делать архитектуру, и на какие подводные камни наткнёшься?


Мы в Одноклассниках решили при помощи elasticsearch решить вопрос лог-менеджмента, а теперь делимся с Хабром опытом: и про архитектуру, и про подводные камни.

Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments20

Go Channels Internals

Reading time12 min
Views23K
На Go можно реализовать тысячи goroutine одновременно без больших требований к железу. При этом горутины могут легко и просто обмениваться данными между собой и синхронизироваться с помощью каналов. Но как устроены каналы внутри? Об этом написано не так уж много, а в условиях многопоточки и асинхронного кода хорошо бы не просто работать с каналами, а понимать, как их использовать более практично и эффективно.

Егор Гришечко, старший разработчик в Insolar, разрабатывает блокчейн для b2b сегмента (по сути, стартап), и у команды как раз большая многопоточка и много асинхронного кода. Егор не только разобрался на практике, как работают каналы, что это такое и как они вообще устроены внутри. Он еще рассказал о каналах внутри команды, а потом, увидев интерес, поделился на конференции Golang Conf 2019.

Сегодня мы публикуем расшифровку его доклада.


Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments2

Поиск нарушений на видео с помощью компьютерного зрения

Reading time7 min
Views5.9K

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

Читать далее
Total votes 2: ↑1 and ↓10
Comments0

Ещё один поиск Вк по фото

Reading time7 min
Views50K

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

Вдохновиться
Total votes 29: ↑28 and ↓1+27
Comments20

20 лет VideоLAN Client Player: 8 неочевидных возможностей программы

Reading time6 min
Views29K

20 лет — большой срок, даже Windows не сильно старше. Многие удачные проекты, сохраняющие популярность годами, не выдерживали испытания временем и сдулись: помните Winamp, бесспорного фаворита среди аудио-плееров? Или foobar2000 — универсальный, удобный, имеющий огромное количество возможностей… Настоящий медиа-комбайн, только не снискал большой популярности. Или не менее культовый Media Player Classic, заброшенный много лет назад.

VLC это универсальный медийный комбайн, который успешно пережил их всех. Но подавляющее большинство использует его на едва ли на 1% всех возможностей, исключительно как обычный плеер для видеофайлов. В этой статье я расскажу о интересных и неочевидных возможностях VLC: например, как использовать его с PornHub, торрентами, как рисовать ASCII-код и многое другое.
Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments40

Простой P2P сервер на python

Reading time13 min
Views20K


Одноранговая сеть или проще P2P сеть — это сеть в которой все пользователи равны и имеют равные права. Отличительная особенность таких сетей от обычных в том, что в ней нет единого сервера, к которому подключаются пользователи, вместо этого они подключаются друг к другу. Существуют гибридные варианты таких сетей, в котором присутствует сервер, выполняющий только координирующую работу.


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

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments5

NextCloud в качестве сервиса по созданию защищенных ссылок

Reading time9 min
Views23K
Привет, Хабр! Хочу поделиться немного нетривиальным кейсом по настройке NextCloud в качестве сервиса по созданию защищенных ссылок, для прямого скачивания данных с подключенного сетевого smb\cifs-диска. Опишу решения нюансов, с которыми столкнулся во время настройки.

Зачем это надо?


Удобная доставка контента конечному пользователю, минуя возню с FTP и невозможность (из-за NDA) воспользоваться публичными сервисами и облаками для передачи файлов (BTsync, Google-\Mail-\Yandex-Disk\Dropbox\etc).


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments12

Использование таймеров systemd вместо заданий cron

Reading time20 min
Views69K
Сейчас я занимаюсь заменой моих cron-заданий на таймеры systemd. Я пользовался таймерами несколько лет, но обычно в тонкости их применения особо не углублялся, разбираясь лишь с тем, что нужно было для выполнения интересующей меня задачи. Недавно я работал над серией материалов про systemd и узнал о том, что systemd-таймеры обладают некоторыми очень интересными возможностями.



Эти таймеры, как и задания cron, могут, в заданное время, вызывать выполнение различных действий в системе. Например — запуск скриптов командной оболочки или программ. Таймеры могут срабатывать, например, раз в день, причём — только по понедельникам. Ещё один пример — срабатывание таймера каждые 15 минут в рабочее время (с 8 утра до 6 вечера). Но таймеры systemd могут кое-что такое, что недоступно заданиям cron. Например, таймер может вызвать скрипт или программу через заданное время после некоего события. Таким событием может быть загрузка системы или запуск systemd, завершение предыдущей задачи или даже завершение работы сервиса, вызванного ранее по таймеру.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments16

Linux tuning to improve PostgreSQL performance. Илья Космодемьянский

Reading time19 min
Views17K

Расшифровка доклада 2015 года Ильи Космодемьянского "Linux tuning to improve PostgreSQL performance"


Disclaimer: Замечу что доклад этот датирован ноябрем 2015 года — прошло больше 4 лет и прошло много времени. Рассматриваемая в докладе версия 9.4 уже не поддерживается. За прошедшие 4 года вышло 5 новых релизов PostgreSQL вышло и 15 версий ядра Linux. Если переписывать эти места, то получится в итоге другой доклад. Но здесь рассмотрен фундаментальный тюнинг Linux для PostgreSQL, который актуален и сейчас.


Total votes 17: ↑17 and ↓0+17
Comments5

Автогенерация секретов в Helm

Reading time3 min
Views2.6K


Команда Kubernetes aaS от Mail.ru перевела короткую заметку о том, как автоматически генерировать секреты Helm при обновлении. Далее текст от автора статьи — технического директора Intoware, компании-разработчика SaaS-решений.

Контейнеры — это круто. Сначала я был противником контейнеров (стыдно признаться), но теперь я полностью поддерживаю использование этой технологии. Если вы читаете это, то, надеюсь, успешно плавали по морям Docker, осознали преимущества Kubernetes и сделали свою жизнь намного проще с Helm.

Тем не менее некоторые вещи явно сложнее, чем должны быть.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments1

Памятка «Улучшение качества связи Wi-Fi»

Level of difficultyEasy
Reading time4 min
Views26K

На Хабре уже есть много качественных статей с подробным объяснением того как работает Wi-Fi и как его настраивать. Однако у всех этих статей есть, как минимум, несколько недостатков мешающих их дать как руководство к действию условному соседу в многоэтажке или повесить распечатку на стену в подъезде.
Подробные причины создания памятки
1. понять и применить на практике большую часть материала простому пользователю сети затруднительно.

2. в статьях содержится «слишком много букв», чтобы не мотивированному что-либо делать человеку было интересно осиливать такой объём текста.

2.1. мотивация у людей отсутствует поскольку уже существующая ситуация такова: «зачем что-то вообще делать, если и так всё работает».

2.2. большинство уверены, что оно обязано работать само в формате «я его купил и воткнул в розетку».

2.3. люди даже не думают о том что Wi-Fi может работать лучше, просто воспринимают как данность ибо зачастую даже оборудование у них от провайдера.

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

3.1. «In the wild» у людей оборудование может стоять на полу антеннами «букетом» либо вообще валяться в углу.

4. для выбора каналов в диапазоне 2.4 ГГц даются рекомендации актуальные только для Северной Америки и неоптимальные для всего остального мира.

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

5.1. в подавляющем большинстве оборудования, особенно в бюджетном сегменте, всё очень плохо с настройками, можно выбрать канал, иногда режим 20/40 и, зачастую, это все доступные настройки.

Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments106

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

Reading time12 min
Views134K

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


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


Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments66

Неизвестный «Сапсан»: часть 1 — общий обзор конструкции электропоезда

Reading time16 min
Views46K
Как-то, давным-давно, обещал я рассказать об электропоезде «Сапсан». Пришло время выполнить свое обещание.



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

1. Немного общих цифр


Электропоезд «Сапсан» является локализованной версией семейства высокоскоростных поездов Velaro, на базе которого Siemens производит высокоскоростные поезда как для Deutsche Bahn (немецких железных дорог), так и много ещё для кого. У нас поезду дали обозначение ЭВС — Электропоезд Высокоскоростной Сименс. Дорога эксплуатирует два его варианта: ЭВС1 для участков, работающих на постоянном токе 3 кВ и ЭВС2 — двухсистемый электропоезд для сетей постоянного тока 3 кВ и переменного тока 25 кВ.
Total votes 58: ↑58 and ↓0+58
Comments52

О смерти двойной загрузки и о единстве Windows и Linux

Reading time6 min
Views92K
Раньше моей рабочей машиной был ноутбук, созданный Apple. Я мог делать на нём практически всё что угодно: разрабатывать программы, писать тексты, сочинять музыку, да и много чего ещё. Но мне не давали покоя мысли о том, что я привязан к экосистеме Apple, о том, что я зависим от прихотей этой компании. Поэтому я приступил к поискам чего-то нового.

Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.



Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.
Читать дальше →
Total votes 104: ↑71 and ↓33+38
Comments573

Долгосрочное хранение данных в Elasticsearch

Reading time11 min
Views20K


Меня зовут Игорь Сидоренко, я техлид в команде админов, поддерживающих в рабочем состоянии всю инфраструктуру Домклик.


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

Много грязных технических подробностей
Total votes 29: ↑29 and ↓0+29
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Тверь, Тверская обл., Россия
Registered
Activity