Pull to refresh
3
0
Холстинников Григорий @scarych

Системное проектирование

Send message

Как мы Schema Registry для Kafka настраивали, и что могло пойти не так…

Reading time11 min
Views33K

Всем привет.

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

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

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

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

Reading time21 min
Views30K

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

Как мы запустили телеграм-радио

Reading time2 min
Views5.3K

Привет, я Леша, и я подписан на 38 телеграм-каналов. В этих каналах много интересного: про технологии и стартапы, про бизнес и политику, про финансы и науку.

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

Так и родилась идея телеграм-радио. Потом были 9 месяцев сложной и неочевидной разработки, и получился Radiogram (www.radiogram.ai).

Читать далее
Total votes 19: ↑15 and ↓4+11
Comments14

Типы личности и командная работа

Reading time3 min
Views8.5K

Есть два типа личности по тому, как они отвечают сами себе на вопрос о том, почему есть разница между тем, каким должен быть мир для автора вопроса к себе и тем, каков этот мир есть. В чем корень проблемы между "хочу" и "есть"?

Одни отвечают что проблема "в мире", другие отвечают что проблема в "во мне".

Первые это психотики, вторые - невротики. Есть пограничное между ними состояние - оно так и называется "пограничное".

Читать далее
Total votes 14: ↑8 and ↓6+2
Comments10

Почему плохо быть отличником

Reading time7 min
Views131K
Я отличница. Конечно, не совсем та, которая со сложенными ручками, пятёркой по поведению и отглаженным воротничком. Но золотая медаль, олимпиады, красные дипломы в количестве трёх штук и прочая атрибутика «школьного» успеха налицо. Вот уже 11 лет я работаю в бизнесе — всё это время в ИТ: инженером по тестированию, инженером VoIP, коммерсом. Хорошо работаю, почти не придраться. Всё на «пять», часто с плюсом. И у меня, как у любой отличницы, много историй про одноклассниц, которые в 33 года и замужем, и на последних «мерсах», и со своим делом. «Харэ ныть, пора разобраться, какого, собственно, так происходит?» — в один из дней эта мысль плотно засела в голове. И вот он, разбор полётов — для нас, отличников, для будущего поколения и для родителей, которые «тянут» своих детей от пятёрки к пятёрке.


Читать дальше →
Total votes 163: ↑133 and ↓30+103
Comments468

Что конкретно входит в понятие «блокчейн»

Reading time7 min
Views27K
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».

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

Давайте разбираться.

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


Иллюстрация из книги Мелани Свон «Блокчейн. Схема новой экономики»
Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments15

Как перевести криптовалюту в другой блокчейн: немного о сайдчейнах

Reading time5 min
Views19K
Биткоин продолжает укрепляться после недавнего спада. На положительную динамику влияет развитие блокчейн-технологий и череда событий в криптовалютной экосистеме.

Приложила к этому руку и компания Bitfury Group. Например, в начале июля мы провели первую транзакцию в Lightning Network c использованием биткойн-протокола. Задача этой сети — ускорить транзакции и снизить издержки на их проведение.

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

Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments2

Тайминговая атака на Node.js — когда время работает против вас

Reading time5 min
Views9.6K
Представьте себе сервис (или веб-приложение), который выдаёт вам сообщение вида «пятый символ введённого вами пароля неверный» в ответ на вашу попытку аутентификации. Выглядит абсурдно, не так ли? Предоставляя потенциальному злоумышленнику информацию подобного рода, мы попросту даём ему шанс «сбрутить» (подобрать, методом перебора) пароль от сервиса.

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


Сама по себе «тайминговая атака» или «атака по времени» — это нападение на систему по открытому каналу доступа, когда атакующий пытается скомпрометировать систему с помощью анализа времени, затрачиваемого на исполнение алгоритмов. Каждая операция (особенно математическая, будь то сложение, вычитание, возведение в степень и т.д.) требует определённого времени на исполнение, и это время может различаться в зависимости от входных данных. Располагая точными измерениями времени, которое расходуется на эти операции, злоумышленник может восстановить данные, необходимые для входа в систему.
Читать дальше →
Total votes 32: ↑23 and ↓9+14
Comments24

Смарт контракты Ethereum: пишем простой контракт для ICO

Reading time7 min
Views29K
В последнее время ко мне поступает огромное количество запросов за помощью в разработке смартконтракта для проведения ICO, при этом у меня не хватает времени, чтобы помочь каждому. Поэтому я решил написать этот небольшой пост (ссылка на видео в конце поста), в котором описываю очень простой смартконтракт для проведения crowdsale, который вы можете использовать в своих проектах.


Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments83

Биткойн — цена революции

Reading time5 min
Views26K
Невероятных размеров волна движется на нас на всех. Такое же ощущение было, когда приходил интернет, но сейчас оно сильнее, а явление масштабнее. Человек всё время идёт путём реализации возможностей внутренней нейронной среды вовне. И вот мы подходим к этапу, который можно назвать «Ты — это Я». Прямиком из «Ты — это Мы». Много всяких инструментов было создано для выражения воли этого «Мы»: государства, организации, религии, языки. Постепенно прогресс снял самые жесткие границы и обнаружилось, что «Мы» — это одна планета, один вид, один организм. Понеслась интеграция всего во всё.


Читать дальше →
Total votes 30: ↑18 and ↓12+6
Comments245

Учим webworkers хорошим манерам

Reading time4 min
Views8.8K
Рано или поздно у каждого кто работал с webworkers возникает ситуация когда код превращается в кашу вроде этого:

main.js
const worker = new Worker('test.worker.js');
worker.onmessage = (data) => {
  if(data.eventName === 'someFuncResult')
    someFunc();
  else if(data.eventName === 'someFunc2Result')
    someFunc2();
};

worker.postMessage({eventName: 'someFunc'});

test.worker.js
self.addEventListener('message', (data) => {
  if(data.eventName === 'someFunc') {
    doSomeFunc();
    self.postMessage('someFuncResult');
  }
  
 if(data.eventName === 'someFunc2') {
    doSomeFunc();
    self.postMessage('someFunc2Result');
  }
})


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

Цели:

— Читаемость кода
— Конкурентные запросы
— Ассинхронные функции
— Прозрачная обработка ошибок
— Возможность отправки промежуточных результатов выполнения процедуры
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments1

PUSH-авторизация в сервисах с помощью мобильного приложения

Reading time4 min
Views9.9K

Мы рады представить сообществу сервис PushAuth, который позволяет Вашим клиентам авторизироваться с помощью PUSH-сообщений на мобильном устройстве!



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

Total votes 11: ↑10 and ↓1+9
Comments11

Легион одиноких мужчин

Reading time21 min
Views157K

За последние несколько десятилетий одиночество стало эпидемией, и мужчины страдают от этого больше всего. Как и почему изоляция превратилась в такую угрозу?


image

В четверг, 13 июля 1995 года высокое давление в верхних слоях атмосферы над Чикаго опустило огромное количество горячего воздуха на землю, из-за чего температура подымалась до отметки 41°C. В городе Среднего Запада, не готовом к тропической жаре, деформировались дороги, на улицах ломались машины и закрывались школы. В пятницу три трансформатора энергетической компании Consolidated Edison вышли из строя, оставив 49000 людей без электричества. В апартаментах небоскрёбов без кондиционирования воздуха температура поднималась до 49°C даже с открытыми окнами. Жара не ушла и в субботу. Тело человека способно справляться с такой жарой лишь в течении 48 часов подряд, после чего оно начинает отключать защитные механизмы. Отделения скорой помощи в больницах были так переполнены, что не принимали жертв солнечного удара. Воскресенье было не лучше, в результате чего выросло количество смертей – от обезвоживания, жары и почечной недостаточности. Морги переполнились, тела хранились в грузовиках для перевозки мяса. В целом 739 человек погибло в этот период сильной жары.
Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments527

Знайте меньше, молчите чаще: или как в России и Китае ICO запретили

Reading time5 min
Views38K


Если есть на этом свете кто-то, кто может удивлять меня каждодневно, то это — государственные органы Российской Федерации: буквально сегодня, вчера, если учитывать всё же часовой пояс собственного местонахождения, я заканчивал четвёртую часть о законах, которые изменят лицо отечественного IT. Уже изменили.

Но не суждено: сначала Китай громогласно крикнул, что ICO не только запрещено, но и универсальная аксиома «закон обратной силы не имеет» (ещё больше меня смущает подобная же оговорка Э. Сидоренко летом сего года на Криптобазаре относительно перспектив на просторах Необъятной) в этом случае не применяется, то есть все обязаны вернуть средства инвесторам. После этого мой телеграм, facebook, skype & vk сломались: более 1500 запросов за 24 часа — это перебор.
Читать дальше →
Total votes 64: ↑46 and ↓18+28
Comments501

Готовим сборку Go-приложения в продакшн

Reading time6 min
Views27K
В июне на конференции РИТ++ мы с коллегой Игорем Должиковым делились опытом автоматизации процесса разработки сервисов на Go — от первого коммита и до релиза в продакшн-окружение Kubernetes (да-да, видео начинается с 07:16, и нам тоже это не нравится). С момента публикации мастер-класса время от времени я получаю вопросы по тем или иным темам, затронутым в нем. Пожалуй, самые горячие вопросы достойны отдельного рассмотрения, и сегодня я хотела бы поговорить о процессе сборки приложения. Затрагиваемые темы актуальны не только при подготовке сервисов, но и вообще для любых приложений, написанных на Go.

Всё, что описано в этой статье, актуально для текущей версии Go — 1.9.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments24

Сударь, ваша команда — не команда

Reading time5 min
Views57K
За свои 12 лет работы в сфере разработки ПО, мне посчастливилось поработать в команде только два раза. Хотя я сменил порядка десяти мест работы. Но попробовав раз, ем и сейчас… Т.к. я не жадный, и готов своими достижениями делиться с сообществом, то решил я предпринять попытку вывести из равновесия неумных руководителей, которые до сих пор не осознали важность команды, а также тех руководителей, которые профессионально занимаются самообманом — мол, они строят команду, а на деле — тьфу, а не команда.
Читать дальше →
Total votes 110: ↑95 and ↓15+80
Comments254

Практическое применение блокчейна как распределенного хранилища данных

Reading time5 min
Views13K
Блокчейн – технология о которой сейчас говорят все вплоть до домохозяек, пишут газеты и журналы. Если забыть о хайпе и не добавлять в проект блокчейн ради блокчейна, то оправданным его применение будет далеко не всегда. Нам посчастливилось столкнуться именно с такой ситуацией. К нам обратился один из наших крупных заказчиков – компания, предоставляющая услуги площадки по электронным госзакупкам.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments47

Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go»

Reading time3 min
Views54K
Перевод отрывка из интервью с создателем Node.js Раяном Далом (Ryan Dahl) в котором обсуждается модель программирования и язык Go.

— Расскажи нам, как проходила начальная разработка Node? Это ведь уже было достаточно давно, ты создал Node в 2009.

Райан: — Я думаю для себя лично, что нет лучшего момента в жизни, когда ты, как это говорится, «в потоке» и у тебя есть идея, в которую ты сильно веришь. И при этом есть время, чтобы сесть и на самом деле работать над ней. И я думаю, Node была именно такой идеей, которая ждала, чтобы её кто-то ухватил, и если бы не я, то это бы сделал кто-то другой. Но так случалось, что я был тогда достаточно свободен от работы и имел время, и мог работать нон-стоп несколько месяцев, которых как раз были нужны, чтобы выкатить начальную версию. Так что да, это был отличный период.

— Отлично, супер. Node построена на идее «полностью асинхронной» модели программирования. Удачна ли она была для Node?
Читать дальше →
Total votes 94: ↑65 and ↓29+36
Comments618

Пошаговый план старта на Upwork

Reading time3 min
Views262K
image

Рано или поздно разработчик всерьез задумывается о фрилансе. В этот момент большинство идут на биржи. Выбор бирж огромен. В СНГ: fl.ru, weblancer и прочие. Но когда доходишь до дела начинаешь понимать в каком все упадке. Единственным местом где водятся более-менее нормальные заказы можно назвать fl.ru и еще одну-две биржы. Но на fl.ru нужен pro аккаунт, ведь оказывается чтобы взять заказ нужно заплатить бирже, и далеко не факт что тебе что-то светит. Поэтому было решено идти на Upwork.
Читать дальше →
Total votes 57: ↑51 and ↓6+45
Comments99

Быстрые релизы огромного масштаба

Reading time7 min
Views20K
Со временем в софтверной индустрии придумали несколько способов более быстрого и безопасного выпуска качественного кода. Многие основаны на идеях вроде непрерывной интеграции, непрерывной поставки ПО, гибкой методологии разработки, DevOps и разработки через тестирование. Все эти методологии объединяет одно: они позволяют разработчикам быстро выпускать код безопасными, небольшими, последовательными шагами.

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

В течение многих лет мы обновляли фронтенд Facebook трижды в день, используя простую стратегию веток master и release. Инженеры избирательно выбирали из ветви master изменения в коде, которые прошли ряд автоматизированных тестов, для включения в ветвь release, откуда происходили ежедневные обновления. В целом, таким способом выбиралось от 500 до 700 изменений в день. Раз в неделю мы отрезали новую ветвь release и собирали изменения, которые не отобрались в течение недели.


Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments7
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity