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

Сеньор эникей

Apache Kafka. Безопасность, мониторинг и управление кластером

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

Мы расскажем, как настроить безопасность кластеров Kafka и Zookeeper, какие инструменты можно использовать для мониторинга и управления кластером, а также про особенности продукта, с которыми мы столкнулись.

 Почему Apache Kafka?

 Apache Kafka — это унификация. Десятки поставщиков и потребителей, миллионы сообщений в день и огромные массивы данных — для этого нужна надежная, отказоустойчивая и высокопроизводительная шина данных. Существует множество версий дистрибутивов Apache Kafka, например vanilla kafka, oбразы от confluent, bitnami, wurstmeister и т.д. Мы расскажем про решение на базе сборок от Confluent в виде Docker-образов. Оно самое надежное в плане информационной безопасности. Конфигурирование и запуск контейнеров с Kafka в данном случае происходит с помощью docker-compose.

 За время работы с Kafka мы прошли  путь от «коробочного» решения до тонкой настройки безопасности кластера, применения TLS шифрования и разворачивания по рекомендациям вендора по построению геораспределенного кластера. В конфигурации «из коробки» нет первоначальных настроек безопасности. Для контроля доступов, вносимых изменений и безопасного взаимодействия перед нами встала задача настройки на кластере Apache Kafka TLS шифрования, аутентификации и авторизации средствами встроенного ACL.

 TLS шифрование

Обеспечивает шифрование соединения между брокерами Kafka, серверами Zookeeper, клиентами и брокерами. Вся ключевая информация помещается в хранилища — keystore, которые разделяют на два вида:

keystore, где хранятся ключи и сертификаты стороны, в отношении которой пройдет процедура аутентификации и установления защищенного соединения, например, приватный ключ и ассоциированный с ним и подписанный со стороны центра сертификации (ЦC) сертификат.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

Почему я начал использовать аннотации типов в Python – и вам тоже советую

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

С появлением подсказок типов (type hints) в Python 3.5+ добавилась опциональная статическая типизация – поэтому эти подсказки так мне нравятся. Теперь я аннотирую ими все мои проекты.

Читать далее
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 25

Сетевой администратор в «не IT-компании»

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


Работа сетевого администратора связана со многими трудностями. К сожалению, описать из все в одной статье не получится — сработает принцип «невозможно объять необъятное». Поэтому мы решили приоткрыть завесу на над некоторыми аспектами работы сетевого администратора в компании, не связанной с IT. То есть это не системный интегратор, не компания-разработчик ПО с DevOps, QA и другими полезными подразделениями и не что-либо аналогичное. В данной статье ограничимся только определённым сегментом, который не зарабатывает деньги на IT.


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

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 17

Отдаю NFT за 880 миллионов долларов

Время на прочтение 12 мин
Количество просмотров 45K
«Код — это единственный закон, которому подчиняются цифры»

Если вы читаете этот текст, но ни разу не слышали про NFT, то, наверное, вы моя мама (мама, привет). Про этот феномен уже должен был кто-то написать человеческим языком без пустых восторгов и пересказывания мифов, но, похоже, эту траншею придётся копать мне. Странная штука: чем больше народу обсуждает NFT, тем ниже процент понимающих хоть что-то. Изначально этот материал задумывался как короткий обзор в духе «А король-то голый!», но по мере изучения проблемы, становилось всё яснее, почему так сложно сформировать собственное мнение относительно происходящего безумия.

Неприятность ситуации заключается в том, что широко тиражируемое объяснение смысла NFT является наглой ложью, в противовес которой пока не сформировалось имеющее вес экспертное мнение. Человек с ра́звитым критическим мышлением чувствует в происходящем нечто, мягко говоря, подозрительное, но объективное суждение требует подробного анализа устройства этой системы, который могут осуществить «немногие лишь те», кто обладает хорошими знаниями в разных областях. Так что, как говорится, давайте раскидаем всё по фактам. Информации по теме получилось много, в этот раз будут основные моменты, а в последующих статьях копнём глубже и разберём практические аспекты.
Читать дальше →
Всего голосов 107: ↑92 и ↓15 +77
Комментарии 52

Миллионы рублей за 1/100 секунды

Время на прочтение 12 мин
Количество просмотров 28K
Продолжаем цикл про современные устройства защиты у вас в электрощитке. На очереди устройства, которые окупаются за 1/100 секунды.



В посте вы узнаете — почему может сгореть нейтральный проводник, откуда берутся «скачки электроэнергии» и для чего нужны реле контроля напряжения.
Узнать подробнее про
Всего голосов 101: ↑101 и ↓0 +101
Комментарии 77

Архитектура Kubernetes – руководство для «чайников», 5 новых функций Podman, которые стоит попробовать…

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

... а также видео-тур по Ansible Automation Platform 2.0.

Новая порция инсайтов, гайдов, книжек и советов. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Архитектура Kubernetes...
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 1

Корпоративный штрейкбрехер

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

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

Сергей остановился и одарил собравшихся ничего не выражающим взглядом. Собравшиеся ответили тем же. Улыбался только стоявший в углу экрана Курчатов.

 - Блестяще, Сергей! – Евгений Викторович аплодировал, глядя на докладчика, затем повернулся к залу, призывая последовать его примеру. – Вот это изменения! С большой буквы! Блестяще!

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

 - Друзья! – манерой собственника было говорить, стоя на месте. – Не могу не отметить результат, которого добился Сергей. Это потрясающе! Это спланированные, не случайные, осознанные изменения, которые привели к качественному, измеримому результату. Разумеется, я не оставлю эту работу без внимания. Именно этого я жду от руководителя!

Зал никак не реагировал. Смотреть смотрели, глазами хлопали, бумажками не шелестели. Курчатов даже на миг растерялся, не зная, что добавить. Обвёл глазами собравшихся на стратегической сессии, вымученно улыбнулся и медленно поплёлся к углу экрана. Взял со стола план мероприятия, пробежался глазами.

Читать далее
Всего голосов 52: ↑45 и ↓7 +38
Комментарии 39

Эволюция хранилища данных в Авито

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

Сейчас Data Warehouse в Авито — это инсталляция на 32 серверах. Мы используем девятую версию Vertica и ClickHouse. В команде, которая отвечает за хранилище, работает 21 человек. Поток событий, который мы загружаем, достигает 20 миллионов событий в минуту. Я расскажу, как менялось наше хранилище аналитических данных с 2013 года.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 9

Вам кажется, что с вашей документацией что-то не так? Вам не кажется

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


Меня зовут Семён Факторович, с 2012 года я занимаюсь технической документацией. Последние три года я руковожу собственным агентством documentat.io, помогая российским IT-компаниям создавать качественную документацию.


Мы пишем документацию с нуля (руководства пользователя, справочники API, архитектурную документацию) и поддерживаем уже имеющуюся и проводим консультации по настройке документационных процессов. И почти каждый запрос от наших клиентов начинается с признания: «Кажется, с нашей документацией что-то не так».


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


1) Документация полностью отсутствует.
2) Документацию неохотно пишут.
3) Документацию неохотно читают.
4) Документация есть, ее пишут и читают, но она кажется бесполезной.


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


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


Читать дальше
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 4

Битвы на территории ZFS

Время на прочтение 6 мин
Количество просмотров 20K
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки.

Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными, напрямую пользуются аналитики компании, и эта деятельность критически важная. ZFS сжала эти базы в два раза — теперь каждая занимает на диске по 90 ТБ, железу бы вздохнуть с облегчением. А стало только хуже. Пригласили наших сотрудников из поддержи, они провели аудит. Случай нам показался интересным, и мы решили о нём рассказать. Заодно напомнив о средствах диагностики.
Читать дальше →
Всего голосов 89: ↑87 и ↓2 +85
Комментарии 103

NFT — бесполезная технология

Время на прочтение 4 мин
Количество просмотров 125K
Среднему человеку очень сложно понять, насколько бесполезны NFT. Мы верим в разумность действий. Если вокруг этой технологии поднято уже столько шума – если это вообще можно назвать технологией – наверное, что-то полезное она делает?

На самом деле нет, она не делает вообще ничего.

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

Подобные функции в NFT не зашиты. Они полагаются на внешнюю инфраструктуру, существующую независимо от NFT. Если вам интересно, какую роль при этом играет сама NFT – то никакую. Она отнимает у дурачка его деньги из «Монополии».
Читать дальше →
Всего голосов 255: ↑241 и ↓14 +227
Комментарии 1389

Почему сообщество разработчиков ядра заменяет iptables на BPF?

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

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

Читать далее
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 23

Мой опыт технического собеседования: как не превратить его в экзамен и найти профпригодного сотрудника

Время на прочтение 21 мин
Количество просмотров 27K
image

Привет, Хабр! Меня зовут Леонид Титов, я бэкенд разработчик в #CloudMTS. Так уж сложилось, что я не только пишу код, но и иногда собеседую кандидатов. Мне нравится процесс, и, думаю, у меня это получается.

Начал я этим заниматься ещё на предыдущем месте работы, где мы с тимлидом собирали новую команду. С тех пор прошло уже N лет, практика продолжилась, и после очередного собеседования я решил упорядочить свои знания. Кто-то считает, что от собеседований вообще толку нет, а кто-то наоборот (не будем показывать пальцем) проводит их в 3-5 раундов. Я уверен, что собеседования нужны, но важно четко понимать, зачем именно.

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

Еще я поделюсь неожиданными впечатлениями от ситуации, когда оказался «по ту сторону», лайфхаками, фейлами и неплохо зарекомендовавшими себя практиками. Про soft skills тут ничего не будет — это отдельная важная тема. Прежде всего мы затронем вопрос профпригодности, определения ее наличия или отсутствия. Во второй половине статьи приведу собственный список вопросов, переведенный на русский, с комментариями.
Читать дальше →
Всего голосов 60: ↑48 и ↓12 +36
Комментарии 68

Автореконнекты к RabbitMQ в Go

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

Брокер сообщений RabbitMQ уже давно активно используется в микросервисах. Он используется, когда требуется асинхронная обработка сообщений от клиентов или при аналогичном межсервисном взаимодействии.

Практически нет языка, под который не была бы сделана соответствующая клиентская библиотека. Для Go такой библиотекой является github.com/streadway/amqp (далее по тексту библиотека amqp). Она имеет широкий функционал, можно подключаться к RabbitMQ, создавать каналы, настраивать очереди и exchange. Не хватает только самой малости – реконектов. А именно автоматических реконнектов при потери связи.

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

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Комментарии 6

Основы Postman для самых маленьких

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

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

Расскажу, как с его помощью создавать простейшие автотесты и уменьшать объем рутины с помощью переменных.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 7

Как распутать уроборос роутинга в Linux

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

Описание проблемы


Ситуация: у нас имеется один интерфейс eth0, «смотрящий» в интернет, с IP-адресом 192.168.11.11/24 и шлюзом 192.168.11.1. Нам нужно организовать интерфейс vpn0, который будет через VPN соединяться с неким сервером, и весь исходящий с этой машины трафик должен идти через этот интерфейс vpn0.

Примечание: я оставляю за скобками детали работы с IPv6, поскольку там хватает своих особенностей. Рассматривается только ситуация с IPv4.

Итак, мы берём в руки программу для подключения в VPN-у — она соединяется с неким VPN-сервером по адресу 10.10.10.10 и поднимает нам интерфейс vpn0 например с таким адресом: 192.168.120.10/24, шлюз 192.168.120.1. Казалось бы, всё хорошо, пинги через vpn0 ходят, коннект есть, он стабильный, осталось только прописать нечто вроде

ip route add default dev vpn0 metric 1000

чтобы перенаправить все соединения через новый интерфейс и…

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

Что случилось?
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 15

Hazelcast + Kibana: лучшие друзья для исследования и визуализации данных

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

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

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

Читать далее
Рейтинг 0
Комментарии 1

ElasticSearch: отказоустойчивый сервер отказал

Время на прочтение 8 мин
Количество просмотров 13K
image
Всем привет, меня зовут Илья, я работаю в компании DINS на должности инженера отдела мониторинга. В этой статье расскажу о нашей боли при работе с ElasticSearch. Мне не удалось найти решение этой проблемы где-либо ещё, поэтому, думаю, этот туториал будет интересен всем, кто использует ElasticSearch.
Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 17

Расширение и перемещение ансамбля ZooKeeper

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

Всех приветствую! Недавно перед нашей командой DBA предстала задача по перемещению ансамбля ZooKeeper на другие сервера. Проблема оказалась в том, что в просторах интернета нет доступного руководства для ZooKeeper версии 3.6.2 и выше. Нашлось руководство для версии 3.4.5, но таким образом расширить и переместить наш ансамбль мы не решились.

Может появиться вопрос: Почему нельзя просто переместить файлы на другой сервер и запустить ансамбль там? Наш ансамбль хранит данные по слиянию и реплицированию данных кластера Clickhouse.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 3

Партицирование таблиц в PostgreSQL: чек-лист для старта

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

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

Представим, что у нас есть батон хлеба. Порежем его на части. Каждый отрезанный кусочек — часть целого батона, но не сам батон. То есть мы поделили целое на части — это и есть партицирование. Батон как целое соответствует таблице, а кусочки батона как части — партициям этой таблицы.

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 31

Информация

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