Dev0ps
40 subscribers
211 photos
3 videos
50 files
3.33K links
Download Telegram
Всем привет.
Рубрика «По Вашим письмам»

Столкнулся с жутким бадхертом от подхода работы с кафкой в котором используют лишь одну очередь для хранения всех сущностей!
До этого столкновения не небольшом проекте использовалась кафка для хранения в отношении "очередь-сущность" - концептуального отличия от типичного SQL подхода(типичного ибо Event Driven только врываеться в широкие массы насколько я могу судить по своему кругу общения) только в том что данные в памяти всегда, в виде последние версии обьектов. будто очередь это таблица.

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

или такое

«А какие есть best practices на тему хранения сообщений разного типа в одном Kafka топике?
Например, чтобы все сообщения класть в одно место, а уже Consumer сам разберется.
Или наоборот, деть fine-grained топики - под определенный тип сообщения.

И как вы понимаете, ответ на этот вопрос - it depends (duh).
Давайте подумаем, от чего это может depends:

- Если порядок сообщений важен, сообщения должный попадать в один топик.
Важно помнить - Kafka гарантирует порядок только на уровне partition.
Для этого необходимо указывать правильный ключ (например, если важен порядок банковских транзакций ID аккаунта может использоваться в качестве ключа). Или иметь топик с 1 partition.
- Сообщения разного типа, но связанные бизнес-логикой (как в предыдущем примере, сообщения могут быть разного типа - CreditEvent, DebitEvent, etc)
- Еще такой момент - не надо бояться использовать Kafka для хранения RAW сообщений - порезать, отфильтровать и разделить их можно всегда, а объединять может оказаться не всегда просто / нужно.
Вычитывание сообщений достаточно «легкая» операция, но тут надо иметь меру - не имеет смысла сидеть и слушать сообщения, 90% из которых придется выбросить.
- еще интересный момент с Kafka Streams. API заточен на семантику «один топик - один тип сообщений, что может затруднить использование этого фреймворка в ситуации, когда в топике присутствуют сообщения разного типа.

Кстати, этим вопросом так же озадачился Мартин Клеппманн и накатал добрую портянку текста.
Полную версию (eng) можно прочитать тут
https://www.confluent.io/blog/put-several-event-types-kafka-topic/

Там, кстати, так же затрагивается вопрос «A как же быть со схемами?»
Он даже запилил PR https://github.com/confluentinc/schema-registry/pull/680 для Confluent Schema Registry, который, если вы используете Avro Serializer позволяет работать с разными типа сообщений более проще.
Forwarded from Technologique
Oracle Fn

Соонователь Iron.io, ныне директор по направлению serverless в Oracle, Чед Аримура рассказал подробнее о serverless/FaaS платформе Fn, применяемой для создания инфраструктуры микро и наносервисов, на базе Docker, Kubernetes и написанных на различных языках программирования.

https://youtu.be/YgNrGT8pzYw

#serverless
#FaaS
#Go
#Golang

Ссылки по теме:
https://xn--r1a.website/technologique/1177
https://xn--r1a.website/technologique/608
Forwarded from CatOps
Думаю, почти всех хоть раз в жизни на собеседовании спрашивали, как работает HTTPS.
И вы такие: ну там TLS Handshake, туда-сюда...

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

В догонку моя любимая аналогия load average и автомобильной дороги

#explainMeLikeImFive
Наконец-то классный десктоп-клиент для баз данных. Нативный, Mac & Win, поддерживает кучу СУБД, классный редактор SQL и умная подсветка изменений.

Платная версия стоит 50$ в год, бесплатная ограничена двумя табами.

Хороший лендинг, все функции показаны https://tableplus.io
Forwarded from DevBrain
Всем доброго дня!

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

Итак, на моём горизонте появились 2 новые книги, одна из которых по праву может считаться христоматийной в своей области - Distributed Systems (уже 3-е по счёту издание) от Maarten van Steen и Andrew Tanenbaum. Для тех, кто в танке, Эндрю Таненбаум был научным руководителем у Werner Vogels, который сейчас занимает должность технического директора в Amazon и чьё детище мы знаем как Amazon Web Services. Эту книгу можно абсолютно бесплатно скачать на сайте автора, оставив заявку. Я пошел дальше и заказал бумажную копию на Amazon, обязательно после прочтения напишу рецензию. Книга объемная и легко может претендовать на справочник.

Вторая называется Designing Distributed Systems, автор один из главных архитекторов и разработчиков Microsoft Azure - Brendan Burns. Книга получилась небольшой (160+ страниц) и скорее является best practices по построению распределённых систем, описывая лучшие паттерны проектирования. Электронную версию можно скачать бесплатно на сайте Microsoft или заказать на Амазоне бумажную версию.

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

Желаю вам приятного чтения и отличных выходных!
Forwarded from CatOps
Запускайте браузерные тесты в AWS Lambda!

Тулза Chromeless|https://github.com/graphcool/chromeless позволяет запускать в лямбде Chrome в headless-режиме и гонять там тесты. API похоже на подобное в PhantomJS, NightmareJS и Selenium.

Кроме лямбды, можно и локально запуситить.

С виду очень интересный конкурент SaaS решениям вроде BrowserStack

#aws #qa
Forwarded from CatOps
​​So Cloud, much serverless. How about return to ground and talk about testing your Ansible playbooks? (Of cource, if you use Ansible :)

For example, Molecule is designed to aid in the development and testing of Ansible roles. It has an extensive set of unit and functional tests and the same time Molecule uses Ansible playbooks to exercise the role and its associated tests. So you can test Ansible using Ansible! For me, looks great.

#ansible #testing
Forwarded from DevOps Deflope News
И продолжая тему Kubernetes — METALLB, load-balancer для bare metal Kubernetes кластеров. Использует BGP для балансировки.
Пока что alpha).

https://goo.gl/84zhy5
GitHub https://goo.gl/HY6MJ3
Forwarded from Geeks (shpaker)
В Github аккаунте Кеннета Рейтcа, широко известного в Python мире благодаря его крутым проектам с открытым исходным кодом (в числе которых библиотека requests для осуществления HTTP запросов, проект httpbin для отладки HTTP запросов/ответов и многие другие) появилась новая библиотека, призванная привнести в Python-разработку очень простой и удобный парсинг HTML-страниц. В качестве особенности, отличающей её от легиона существующих библиотек схожего назначения, тут взаимодействие реализовано схоже с таковым из другой библиотеки Рейтса - requests. А из полезных редких свойств - возможность взаимодействия с запрошенной страницей после того как был выполнен JavaScript.
http://html.python-requests.org
Forwarded from DevOps Deflope News
И продолжая тему Kubernetes — METALLB, load-balancer для bare metal Kubernetes кластеров. Использует BGP для балансировки.
Пока что alpha).

https://goo.gl/84zhy5
GitHub https://goo.gl/HY6MJ3
Forwarded from DevOps Deflope News
Красивый сайт с различными паттернами использования контейнеров.

https://goo.gl/vyX41a
Forwarded from DevOps Deflope News
Вчера вышел релиз Grafana 5.0.
Значительно улучшен интерфейс, разделение прав пользователей, и провижининг датасорсов и дашбордов из кода.

Список новинок https://goo.gl/W5msCP

А сегодня идет GrafanaCon EU 2018
Доступна онлайн трансляция https://youtu.be/kHx8no2q3-Y
Программа конференции https://goo.gl/VQJWbE
И заметки с докладов от Владимира Смирнова https://goo.gl/Gfy3Dz