Pull to refresh
19
Karma
2
Rating

Межкластерная репликация Apache Kafka между тремя дата-центрами

AvitoTech corporate blog Database Administration *Apache *Data storages *Microservices *

Я Роман Ананьев, NoSQL/Kafka-инженер в Авито. В этом материале расскажу, как мы попробовали использовать брокер сообщений Apache Kafka в трёх дата-центрах и что из этого получилось.

Сначала пробегусь по архитектуре Kafka, потому что она играет роль в репликации между кластерами. Затем коснусь самих способов репликации и расскажу о двух инструментах для неё: MirrorMaker и uReplicator. Основная часть статьи — про нашу реализацию Kafka cluster federation и то, как Kafka размазана на несколько дата-центров.

Читать далее
Total votes 23: ↑23 and ↓0 +23
Views 8.8K
Comments 7

Расчет импульсного трансформатора для двухтактного преобразователя и согласующих устройств

Physics Electronics for beginners

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

Читать далее
Total votes 21: ↑21 and ↓0 +21
Views 12K
Comments 8

Псориаз: что бывает при слишком быстрой регенерации

Гельтек-Медика corporate blog Popular science Health

При псориазе страдает верхний слой — эпидермис. Именно в этой зоне формируются патологические элементы в виде папул и гиперкератотических бляшек.

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

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

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

Disclaimer: часть фото я положу под спойлер, если вдруг кого-то такое может тревожить.
Читать дальше →
Total votes 71: ↑61 and ↓10 +51
Views 21K
Comments 38

Железа и баек ностальгии пост

КРОК corporate blog IT Infrastructure *Computer hardware Old hardware
Ходил я тут как-то по нашему складу, искал одну железку для заказчика. Смотрю, знакомая старая железяка — кэш.

image
Точнее, это ячейка хайэндового дискового массива, представляющая нечто вроде оперативной памяти, но в центре архитектуры Симметрикса

Еще увидели знакомую старую железяку — VNX1. Она интересна не столько гениальной по тем временам архитектурой, сколько тем, как мы однажды разбирали последствия переезда такого массива с этажа на этаж по офису заказчика. Представьте ситуацию: они там четыре года делали проект по госконтракту, который хранился в виде единственной копии на массиве. И решили перевезти железку, не позвав админа, потому что железяка была старая (на три поколения древнее, чем та древность, от которой кеш-плата на фотографии) и сошла с поддержки. Для упрощения переезда решили вынуть все диски, потому что без них стойка получалась легче. Как вы догадываетесь, вопрос только один: что вообще могло в этой истории пойти ТАК?

Железяка имеет физическую адресацию дисков по номеру слота. Слоты для дисков бывают двух типов: рейд-группы массива (большая часть) и диски горячей замены. Массив при втыкании дисков обратно увидел, что это его диски, но начал ругаться на нарушенную адресацию красными лампочками. Местный админ начал подбирать комбинацию из дисков, надеясь, что если угадать с перестановками, лампочки погаснут и всё заведётся. Потому что про многомиллионный проект уже начали задавать неудобные вопросы.

Подстава заключалась только в том, что при втыкании диска в слот горячей замены массив не ворчал на него, а говорил: «О, новый жёсткий диск» и молча его форматировал, и начинал в него что-то писать.

Всего заказчик успел попробовать около 20 рекомбинаций из 200 дисков, из которых девять пришлось на установку новых дисков с данными в слоты горячей замены.
Читать дальше →
Total votes 185: ↑185 and ↓0 +185
Views 33K
Comments 89

Основные инструменты Kubernetes в 2021 году

JUG Ru Group corporate blog System administration *DevOps *Kubernetes *
Translation

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее
Total votes 40: ↑40 and ↓0 +40
Views 20K
Comments 5

Читаем статьи с Хабра с помощью Slack-бота

SkillFactory corporate blog Habr Python *Programming *Studying in IT

Привет, Хабр! Сегодня расскажу, как на хакатоне для студентов SkillFactory я сделал Slack-бота, который оповещает студентов разных курсов о выходе статей на Хабре по интересующей их тематике. На КДПВ вы видите тестирование внедрённого бота; ссылку на его код вы найдёте в конце статьи.

Читать далее
Total votes 19: ↑16 and ↓3 +13
Views 2.7K
Comments 3

Энергонезависимое решение

Professional literature *


Понедельник. Постановка задачи


Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
Читать дальше →
Total votes 371: ↑359 and ↓12 +347
Views 65K
Comments 148

DBA: прибираем «мертвые души»

Тензор corporate blog System administration *PostgreSQL *SQL *Database Administration *

Иногда при выполнении длительных или плохо написанных запросов в PostgreSQL происходят разные неприятные вещи типа внезапного сбоя процесса или краша всего сервера.

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

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

Читать далее
Total votes 17: ↑17 and ↓0 +17
Views 6.1K
Comments 3

Самодельный ламповый стереофонический усилитель из доступных деталей

Circuit design *Manufacture and development of electronics *Sound

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

Читать далее
Total votes 62: ↑62 and ↓0 +62
Views 70K
Comments 72

Использование недорогих 10/40 Гбит/с сетевых адаптеров с интерфейсом HP FlexibleLOM

Network technologies *Old hardware Network hardware

Для соединения пары домашних серверов мне захотелось выйти за пределы привычных 1Гбит/с и при этом сильно не переплачивать за сетевое оборудование. На известном сайте были приобретены недорогие серверные адаптеры HP 764285-B21, по сути являющиеся ОЕМ аналогами Mellanox ConnectX-3 Pro, и QSFP+ медный кабель (DAC). Эти двухпортовые адаптеры могут работать на скоростях 10 и 40 Гбит/с в режиме Ethernet портов и до 56 Гбит/с в режиме InfiniBand. Низкая цена на вторичном рынке обусловлена нестандартным интерфейсом HP FlexibleLOM, разъем которого хотя и похож на стандартный PCIe x8, но имеет иное расположение линий PCIe и поэтому может использоваться только в совместимых серверах HP. Тем не менее выход есть

Читать далее
Total votes 28: ↑28 and ↓0 +28
Views 11K
Comments 28

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

RUVDS.com corporate blog System administration *Development for Linux *
Translation
Раньше моей рабочей машиной был ноутбук, созданный 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
Views 78K
Comments 573

Управление высокодоступными PostgreSQL кластерами с помощью Patroni. А.Клюкин, А.Кукушкин

System administration *PostgreSQL *SQL *Database Administration *DevOps *
Tutorial

Расшифровка доклада/tutorial "Управление высокодоступными PostgreSQL кластерами с помощью Patroni". А.Клюкин, А.Кукушкин


Patroni — это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary — replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.


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


  • область применения: какие задачи HA успешно решаются Patroni
  • обзор архитектуры
  • создание тестового кластера
  • утилита patronictl
  • изменение конфигурации PostgreSQL для кластера, управляемого Patroni
  • мониторинг с помощью API
  • подходы к переключению клиентов
  • дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
  • настройка синхронной репликации
  • расширяемость и универсальность
  • частые ошибки и их диагностика

Total votes 17: ↑16 and ↓1 +15
Views 55K
Comments 9

Заметки о разработке МРРТ контроллера

Programming microcontrollers *Circuit design *Manufacture and development of electronics *DIY Electronics for beginners

Приветствую! Ранее я уже рассказывал в статье о своем проекте контроллера заряда для небольшой СЭС с алгоритмом поиска ТММ. Сей проект вялотекущий из-за нехватки времени и порой отcутствия настроения, но все же он развивается. С момента последней статьи я сделал еще 2 ревизии железа, проверил разные схемотехнические решения, например, способы измерения тока и как итог — пришел к финальной версии аппаратной части, о которой сегодня и пойдет рассказ.


Все исходники на железную часть проекта открыты и доступны на github — тут.


Фото МРРТ контроллера


Фото МРРТ контроллера

Читать дальше →
Total votes 61: ↑61 and ↓0 +61
Views 18K
Comments 74

'Hello World' вам в облако

Java *DevOps *
Tutorial

Мир сходит с ума, заталкивая калькулятор для 2+2 в облака. Чем мы хуже? Давайте Hello World затолкаем в три микросервиса, напишем пару-тройку тестов, обеспечим пользователей документацией, нарисуем красивый пайплайн сборки и обеспечим деплой в условный облачный прод при успешном прохождении тестов. Итак, в данной статье будет показан пример того, как может быть построен процесс разработки продукта от спецификации до деплоя в прод. Инетересно? тогда прошу под кат

Total votes 66: ↑65 and ↓1 +64
Views 23K
Comments 47

Флеш-ускорители PCI-E от 800GB до 6.4TB: от рассвета до жизни в обычном ПК/сервере

RUVDS.com corporate blog Data storage *Computer hardware Old hardware Data storaging


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

Наверное, тогда маркетологи и придумали такое название как Flash Accelerator (флеш-акселератор или флеш-ускоритель).

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

Мотивация


  • Хотелось ли вам за разумные деньги купить SSD размером в несколько терабайт?
  • Чтобы ресурс был на десятки петабайт?
  • Такой, что что бы вы ни делали, вы бы не смогли его исчерпать?
  • При этом с защитой по питанию и сделанный из самых качественных деталей и самой стойкой памяти?

Поехали!
Total votes 82: ↑80 and ↓2 +78
Views 43K
Comments 97

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Configuring Linux *System administration **nix *UEFI *
Tutorial

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →
Total votes 52: ↑46 and ↓6 +40
Views 488K
Comments 93

Установка CentOS 8 на VDS 256

Configuring Linux *System administration *
CentOS 8 наконец-то увидела свет и, хотим мы этого или нет но, в ближайшей перспективе адептам корпоративной операционной системы от коммьюнити придется с ней подружиться.

Решив испытать восьмерку в «дикой природе», я обнаружил, что мои хостинг провайдеры не спешат с изготовлением образа виртуального сервера на CentOS 8. А идея с «собственным ISO» и «VNC консолью» не вселяла уверенности из-за скромных характеристик VDS и прожорливости современной анаконды (anaconda).

Оставалось скопировать развернутый образ новой CentOS сразу на жесткий диск VDS, загрузив сервер «по сети». Способ не блещет новизной, однако найти подробную и законченную инструкцию по его реализации я, например, не смог. Поэтому захотелось поскорее восполнить этот пробел и рассказать об установке CentOS 8 на такой VDS:
KVM, 256MB RAM, 2GB HDD, без консоли и ISO


Читать дальше →
Total votes 33: ↑27 and ↓6 +21
Views 14K
Comments 23

Как запускается сервер

Selectel corporate blog Computer hardware

Запуск сервера — длинная и сложная последовательность действий, зависящая от аппаратной составляющей, настроек и используемого программного обеспечения. Многие, даже опытные и квалифицированные системные администраторы, плохо себе представляют, что именно происходит в процессе запуска сервера, поэтому мы решили разобрать этот процесс детально.
Читать дальше →
Total votes 85: ↑74 and ↓11 +63
Views 64K
Comments 76

Локальный запуск юнит-тестов в STM32CubeIDE под Windows

C *Programming microcontrollers *
Sandbox

Введение


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


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


Существует три способа запуска юнит-тестов для встраиваемых платформ:

Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Views 10K
Comments 4

Information

Rating
951-st
Registered
Activity