Forwarded from Грефневая Кафка (pro.kafka)
Всем привет.
Рубрика «По Вашим письмам»
Столкнулся с жутким бадхертом от подхода работы с кафкой в котором используют лишь одну очередь для хранения всех сущностей!
До этого столкновения не небольшом проекте использовалась кафка для хранения в отношении "очередь-сущность" - концептуального отличия от типичного 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 позволяет работать с разными типа сообщений более проще.
Рубрика «По Вашим письмам»
Столкнулся с жутким бадхертом от подхода работы с кафкой в котором используют лишь одну очередь для хранения всех сущностей!
До этого столкновения не небольшом проекте использовалась кафка для хранения в отношении "очередь-сущность" - концептуального отличия от типичного 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 позволяет работать с разными типа сообщений более проще.
Confluent
Should You Put Several Event Types in the Same Kafka Topic? | Confluent
Should you to use one one big Kafka topic, or several small ones? Martin Kleppmann lays out a set of guidelines for addressing this problem.
Forwarded from Igor Borodin
на самом деле, я бы посоветовал в первую очередь посмотреть это https://www.youtube.com/watch?v=-lsJyni7EQA например
YouTube
Load Testing Kubernetes: How to Optimize Your Cluster Resource Allocation in Production
Load Testing Kubernetes: How to Optimize Your Cluster Resource Allocation in Production - Harrison Harnisch, Buffer
So you've carefully crafted your first Kubernetes service, and you're ready to deploy it to production. Well, not quite: there are still some…
So you've carefully crafted your first Kubernetes service, and you're ready to deploy it to production. Well, not quite: there are still some…
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
Соонователь 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
YouTube
How a serverless platform is built on top of Containers: The Internals of Open Source Fn Project
Serverless computing is one of the hottest trends in computing right now due to its simplicity and cost efficiency. Oracle recently open sourced a new project that enables developers to run their own Serverless infrastructure anywhere. The platform is container…
Forwarded from CatOps
Думаю, почти всех хоть раз в жизни на собеседовании спрашивали, как работает HTTPS.
И вы такие: ну там TLS Handshake, туда-сюда...
Предлагаю вам статью, в которой HTTPS объясняют на примере почтовых голубей. Если вы в курсе про HTTPS, ничего нового вы там не узнаете. Просто я люблю такие статьи, где что-то объясняют максимально просто.
В догонку моя любимая аналогия load average и автомобильной дороги
#explainMeLikeImFive
И вы такие: ну там TLS Handshake, туда-сюда...
Предлагаю вам статью, в которой HTTPS объясняют на примере почтовых голубей. Если вы в курсе про HTTPS, ничего нового вы там не узнаете. Просто я люблю такие статьи, где что-то объясняют максимально просто.
В догонку моя любимая аналогия load average и автомобильной дороги
#explainMeLikeImFive
freeCodeCamp.org
HTTPS explained with carrier pigeons
By Andrea Zanin Korean translationPortuguese translationSpanish translationMongolian translationPersian translationVietnamese translation Cryptography can be a hard subject to understand. It’s full of mathematical proofs. But unless you are actually ...
Forwarded from Vlad
Кстати, у rancher есть свой удобный инсталлятор kubernetes: https://github.com/rancher/rke
GitHub
GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distribution that runs entirely…
Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distribution that runs entirely within containers. - rancher/rke
Forwarded from Mikhail [azalio] Petrov
Forwarded from Anton Alferov
https://github.com/kinvolk/kubernetes-the-hard-way-vagrant — вот тут еще можно посмотреть как на вагранте hard way (на случай, если нет возможности с gce связываться)
GitHub
GitHub - kinvolk-archives/kubernetes-the-hard-way-vagrant: A port of Kelsey Hightower's "Kubernetes the Hard Way" tutorial to Vagrant.…
A port of Kelsey Hightower's "Kubernetes the Hard Way" tutorial to Vagrant. – By the Kinvolk team. - GitHub - kinvolk-archives/kubernetes-the-hard-way-vagrant: A port of K...
Forwarded from Vadim Rutkovsky
^ this, потом через https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks в PostStart хуке запускать второй контейнер
Kubernetes
Container Lifecycle Hooks
This page describes how kubelet managed Containers can use the Container lifecycle hook framework to run code triggered by events during their management lifecycle.
Overview Analogous to many programming language frameworks that have component lifecycle hooks…
Overview Analogous to many programming language frameworks that have component lifecycle hooks…
Forwarded from запуск завтра
Наконец-то классный десктоп-клиент для баз данных. Нативный, Mac & Win, поддерживает кучу СУБД, классный редактор SQL и умная подсветка изменений.
Платная версия стоит 50$ в год, бесплатная ограничена двумя табами.
Хороший лендинг, все функции показаны https://tableplus.io
Платная версия стоит 50$ в год, бесплатная ограничена двумя табами.
Хороший лендинг, все функции показаны https://tableplus.io
Tableplus
TablePlus | Modern, Native Tool for Database Management.
Modern, native client with intuitive GUI tools to create, access, query & edit multiple relational databases: MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Amazon Redshift, MariaDB, CockroachDB, Vertica, Cassandra, and Redis.
Forwarded from Nklya
Статья Lyft
https://eng.lyft.com/application-security-in-a-devops-environment-53092f8a6048
Книга "Securing DevOps"
https://www.manning.com/books/securing-devops
OWASP Top 10
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
WAF https://en.wikipedia.org/wiki/Web_application_firewall
John Willis
https://github.com/botchagalupe/my-presentations
You Build It, You Secure It
https://www.slideshare.net/botchagalupe/you-build-it-cyber-chicago-keynote/
https://eng.lyft.com/application-security-in-a-devops-environment-53092f8a6048
Книга "Securing DevOps"
https://www.manning.com/books/securing-devops
OWASP Top 10
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
WAF https://en.wikipedia.org/wiki/Web_application_firewall
John Willis
https://github.com/botchagalupe/my-presentations
You Build It, You Secure It
https://www.slideshare.net/botchagalupe/you-build-it-cyber-chicago-keynote/
Medium
Application Security in a DevOps Environment
It seems like every AppSec vendor pitch talks about how you can shift security “to the left” and they can help you transition to…
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 или заказать на Амазоне бумажную версию.
Обе книги достойны внимания и могу дать серьёзный толчок в продвижении в теме распределённых систем.
Желаю вам приятного чтения и отличных выходных!
Сегодняшний пост посвящаю распределённым системам. Сейчас эта тема как никогда актуальна, учитывая сложность современных приложений.
Итак, на моём горизонте появились 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 или заказать на Амазоне бумажную версию.
Обе книги достойны внимания и могу дать серьёзный толчок в продвижении в теме распределённых систем.
Желаю вам приятного чтения и отличных выходных!
DISTRIBUTED-SYSTEMS.NET
- DISTRIBUTED-SYSTEMS.NET
welcome to distributed systems
Forwarded from CatOps
Запускайте браузерные тесты в AWS Lambda!
Тулза Chromeless|https://github.com/graphcool/chromeless позволяет запускать в лямбде Chrome в headless-режиме и гонять там тесты. API похоже на подобное в PhantomJS, NightmareJS и Selenium.
Кроме лямбды, можно и локально запуситить.
С виду очень интересный конкурент SaaS решениям вроде BrowserStack
#aws #qa
Тулза Chromeless|https://github.com/graphcool/chromeless позволяет запускать в лямбде Chrome в headless-режиме и гонять там тесты. API похоже на подобное в PhantomJS, NightmareJS и Selenium.
Кроме лямбды, можно и локально запуситить.
С виду очень интересный конкурент SaaS решениям вроде BrowserStack
#aws #qa
GitHub
GitHub - schickling/chromeless: 🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda.
🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda. - schickling/chromeless
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
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
Пока что 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
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
Пока что alpha).
https://goo.gl/84zhy5
GitHub https://goo.gl/HY6MJ3
Forwarded from DevOps Deflope News
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
Значительно улучшен интерфейс, разделение прав пользователей, и провижининг датасорсов и дашбордов из кода.
Список новинок https://goo.gl/W5msCP
А сегодня идет GrafanaCon EU 2018
Доступна онлайн трансляция https://youtu.be/kHx8no2q3-Y
Программа конференции https://goo.gl/VQJWbE
И заметки с докладов от Владимира Смирнова https://goo.gl/Gfy3Dz
Grafana Labs Blog
What's New in Grafana v5.0
Feature & improvement highlights for Grafana v5.0