Pull to refresh
6
0

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

Send message

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

Reading time21 min
Views29K

Мы расскажем, как настроить безопасность кластеров 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) сертификат.

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

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

Reading time7 min
Views18K

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

Читать далее
Total votes 34: ↑33 and ↓1+32
Comments25

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

Reading time10 min
Views29K


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


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

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

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

Reading time12 min
Views45K
«Код — это единственный закон, которому подчиняются цифры»

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

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

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

Reading time12 min
Views29K
Продолжаем цикл про современные устройства защиты у вас в электрощитке. На очереди устройства, которые окупаются за 1/100 секунды.



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

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

Reading time2 min
Views8.4K

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

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

Читать дальше: Архитектура Kubernetes...
Total votes 2: ↑2 and ↓0+2
Comments1

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

Reading time8 min
Views8.6K

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

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

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

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

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

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

Читать далее
Total votes 52: ↑45 and ↓7+38
Comments39

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

Reading time15 min
Views14K

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

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

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

Reading time14 min
Views12K


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


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


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


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


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


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


Читать дальше
Total votes 25: ↑25 and ↓0+25
Comments4

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

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

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

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

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

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

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

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

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

Reading time8 min
Views22K

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

Читать далее
Total votes 24: ↑18 and ↓6+12
Comments23

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

Reading time21 min
Views28K
image

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

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

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

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

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

Reading time9 min
Views13K

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

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

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

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments6

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

Reading time8 min
Views288K

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

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

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

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

Reading time7 min
Views13K
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-а не выключит интерфейс при потере соединения, то извне вы до этого хоста до ребута больше не подсоединитесь.

Что случилось?
Total votes 22: ↑22 and ↓0+22
Comments15

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

Reading time28 min
Views2.1K

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

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

Читать далее
Rating0
Comments1

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

Reading time8 min
Views13K
image
Всем привет, меня зовут Илья, я работаю в компании DINS на должности инженера отдела мониторинга. В этой статье расскажу о нашей боли при работе с ElasticSearch. Мне не удалось найти решение этой проблемы где-либо ещё, поэтому, думаю, этот туториал будет интересен всем, кто использует ElasticSearch.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments17

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

Reading time3 min
Views2.2K

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

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

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

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

Reading time13 min
Views42K

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

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

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity