Опыт Airbnb по разработке омниканальной системы по управлению контентом и созданию разного промо. Тех деталей не много, но само развитие и работа такой платформы показана детально.
https://medium.com/airbnb-engineering/airbnbs-promotions-and-communications-platform-6266f1ffe2bd
https://medium.com/airbnb-engineering/airbnbs-promotions-and-communications-platform-6266f1ffe2bd
Натолкнулся на интересную технику которая используется при разработке на фронте - Debounce. Его называют Design паттерном. Он помогает повысить отзывчивость UI приложения и снизить нагрузку на бекенд сервисы.
Проблема - при работе с интерфейсом пользователь может не понимать работает ли UI или нет, и нажимать на кнопку несколько раз. Это рождает лишнюю нагрузку на сервисы, и ухудшает пользовательский опыт.
Решение - подход debounce предлагает кешировать события от пользователя, и если в течении X миллисекунд, действий не происходило. только после этого отправляет запрос на сервер. Есть еще вторая реализация, берется первый запрос (leading edge/imediate) и далее в течении X миллисекунд все события игнорируются.
Фронт реализация с примерами (можно понажимать)
https://css-tricks.com/debouncing-throttling-explained-examples/
Проблема - при работе с интерфейсом пользователь может не понимать работает ли UI или нет, и нажимать на кнопку несколько раз. Это рождает лишнюю нагрузку на сервисы, и ухудшает пользовательский опыт.
Решение - подход debounce предлагает кешировать события от пользователя, и если в течении X миллисекунд, действий не происходило. только после этого отправляет запрос на сервер. Есть еще вторая реализация, берется первый запрос (leading edge/imediate) и далее в течении X миллисекунд все события игнорируются.
Фронт реализация с примерами (можно понажимать)
https://css-tricks.com/debouncing-throttling-explained-examples/
"Secrets of Performance Tuning Java on Kubernetes by Bruno Borges"
Очень насыщенный доклад про оптимизацию Java и не только. На 2 с половиной часа с демонстрациями на примере Azure.
https://www.youtube.com/watch?v=wApqCjHWF8Q
Очень насыщенный доклад про оптимизацию Java и не только. На 2 с половиной часа с демонстрациями на примере Azure.
https://www.youtube.com/watch?v=wApqCjHWF8Q
🔥2
Курс для тимлидов.
p.s. Сам курс не проходил, но платформа очень известная свои тщательным подходом к контенту, ну и программа выглядит интересно.
https://making.hexlet.io/teamleads
p.s. Сам курс не проходил, но платформа очень известная свои тщательным подходом к контенту, ну и программа выглядит интересно.
https://making.hexlet.io/teamleads
👍1
Начал читать статью по мониторингу редиса, что за параметры рекомендуют отслеживать авторы статьи, и понял, что тот дешборд которым пользуюсь часть параметров не покрывает. Посмотрел ретроспективно, по рабочему кластеру параметры из статьи, они есть (просто не выведены в дешборд) и именно в них были какие-то изменения). Надо короче ставить новый дешборд (ссылка в конце статьи).
Какую мораль вывел для себя, кривая обучения/исследования выглядит примерно так.
Ставишь дефолтное, понимаешь что его тебе не хватает, разбираешь что есть еще, находишь новое, обновляешь. И так итеративно. Ну и главное не забыть про главную цель за всеми этими действиями.
https://sysdig.com/blog/redis-prometheus/
#observability
Какую мораль вывел для себя, кривая обучения/исследования выглядит примерно так.
Ставишь дефолтное, понимаешь что его тебе не хватает, разбираешь что есть еще, находишь новое, обновляешь. И так итеративно. Ну и главное не забыть про главную цель за всеми этими действиями.
https://sysdig.com/blog/redis-prometheus/
#observability
Sysdig
How to monitor Redis with Prometheus | Sysdig
Learn how to monitor Redis with Prometheus, and check out the most important metrics you should be looking at
👍1
В семействе инструментов для Prometheus пополнение. Promlens - helper для построения, визуализации и отладки PromQL запросов. Выглядит покруче чем то что есть в графана и стоковом браузере prometheus.
online demo
promlens.com
#observability
online demo
promlens.com
#observability
👍1
Сделал подборку с видео с PrometheusDayNA 2022 которых по моему мнению стоит взглянуть
Keynote: Reality Check: Is it Time to Raise Your Metrics Game? - Martin Mao & Yash Kumaraswamy.
Как рассчитать ROI сбора/использования метрик? Доклад пригодится для тех у кого еще нет метрик, можно понять как рассчитать ценность. Ну а тем у кого уже есть поможет обосновать ценность ваших инфраструктурных работ.
Boost Your Logs with Prometheus! From Logs to Metrics - Jaime Yera Hidalgo, Sysdig
Рассматривается подход как из логов системы сделать обычные Prom метрики. Может быть полезно если у вас есть древняя легаси система и все, что есть от нее, это логи веб сервера. Ну и плюс унификация всех метрик ваших систем в одном месте.
Building a Runbook Automation System for Prometheus and Kubernetes - Natan Yellin, Robusta.dev
Основная идея доклада, что в месте со сработавшим алертом хорошо бы передавать и контекст (в идеале максимум контекста), последние логи поды, список ивентов. CPU нагрузка и прочее. Это тема известная. Но автор проекта Robusta.dev пошел дальше и сгруппировал на базе таких контекстов готовые решения которые даже можно автоматические применять. Все это упаковано в платный продукт, но часть движка open source.
Centralized vs Decentralized Prometheus Scraping Architecture... - Rabun Kosar & Ales Koprivnikar
Doordash рассказывают про свой опыт на переход децентрализованный сбор метрик.
Film Premiere - Inside Prometheus: An Open Source System That Changed Technology
Документальный фильм о создании Prometheus, почему появился, как развивался.
Весь плейлист здесь.
#observability
Keynote: Reality Check: Is it Time to Raise Your Metrics Game? - Martin Mao & Yash Kumaraswamy.
Как рассчитать ROI сбора/использования метрик? Доклад пригодится для тех у кого еще нет метрик, можно понять как рассчитать ценность. Ну а тем у кого уже есть поможет обосновать ценность ваших инфраструктурных работ.
Boost Your Logs with Prometheus! From Logs to Metrics - Jaime Yera Hidalgo, Sysdig
Рассматривается подход как из логов системы сделать обычные Prom метрики. Может быть полезно если у вас есть древняя легаси система и все, что есть от нее, это логи веб сервера. Ну и плюс унификация всех метрик ваших систем в одном месте.
Building a Runbook Automation System for Prometheus and Kubernetes - Natan Yellin, Robusta.dev
Основная идея доклада, что в месте со сработавшим алертом хорошо бы передавать и контекст (в идеале максимум контекста), последние логи поды, список ивентов. CPU нагрузка и прочее. Это тема известная. Но автор проекта Robusta.dev пошел дальше и сгруппировал на базе таких контекстов готовые решения которые даже можно автоматические применять. Все это упаковано в платный продукт, но часть движка open source.
Centralized vs Decentralized Prometheus Scraping Architecture... - Rabun Kosar & Ales Koprivnikar
Doordash рассказывают про свой опыт на переход децентрализованный сбор метрик.
Film Premiere - Inside Prometheus: An Open Source System That Changed Technology
Документальный фильм о создании Prometheus, почему появился, как развивался.
Весь плейлист здесь.
#observability
👍1
12 Signs You’re Working in a Feature Factory
https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory
Фабрика фич - команда/компания которая просто клепает фичи одна за одной без оглядки на пользователя продукта и результат.
https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory
Фабрика фич - команда/компания которая просто клепает фичи одна за одной без оглядки на пользователя продукта и результат.
Частенько замечаю такую вещь, что когда знаешь какую-то тему чуть лучше среднего может происходить такой интересный эффект - читая любую статью или книгу как будто пропускаешь ее через свой опыт и начинаешь видеть одни и те же слова совершенно по-другому. Вот прямо чувствуешь в них новый смысл, с "высоты" своего опыта. В результате даже короткое предложение может заиграть новыми красками.
Курс которые сегодня рекомендую, для меня был именно таким, общая его длительность всего 1 час и это скорее начальный курс, для погружения в тему. Но на мой взгляд этот час собрал в себя прямо самое важное и слушая курс я прям удивлялся точности формулировок каждого предложения. Курс называется "Engineering and Product Collaboration". Его автор, James Stanier (Director of Engineering в Shopify).
Я рекомендую курс широкому кругу читателей, не только инженерам, но и продактам. Тем у кого мало опыта, посмотрят еще один источник информации, сравнят его с тем что уже читали. Тем у кого опыта побольше, структурируют свои знания и могут найти что-то новое.
Пару фраз которые запомнились из этого курса.
- Этот курс про инструменты, а не про готовые рецепты.
- Здесь нет правильного ответа (контекст - тема лекции была про инженерные практики и то, что можно использовать при доставке приложения к пользователям).
В этих фразах вся простота и сложность разработки одновременно. Есть куча информации о том какие есть инструменты, но какие и как правильно применять никто вам не скажет. Потому что "It depends".
https://www.udemy.com/course/engineering-and-product-collaboration/
Курс которые сегодня рекомендую, для меня был именно таким, общая его длительность всего 1 час и это скорее начальный курс, для погружения в тему. Но на мой взгляд этот час собрал в себя прямо самое важное и слушая курс я прям удивлялся точности формулировок каждого предложения. Курс называется "Engineering and Product Collaboration". Его автор, James Stanier (Director of Engineering в Shopify).
Я рекомендую курс широкому кругу читателей, не только инженерам, но и продактам. Тем у кого мало опыта, посмотрят еще один источник информации, сравнят его с тем что уже читали. Тем у кого опыта побольше, структурируют свои знания и могут найти что-то новое.
Пару фраз которые запомнились из этого курса.
- Этот курс про инструменты, а не про готовые рецепты.
- Здесь нет правильного ответа (контекст - тема лекции была про инженерные практики и то, что можно использовать при доставке приложения к пользователям).
В этих фразах вся простота и сложность разработки одновременно. Есть куча информации о том какие есть инструменты, но какие и как правильно применять никто вам не скажет. Потому что "It depends".
https://www.udemy.com/course/engineering-and-product-collaboration/
👍4
17 ноября 2022 г. Умер Фредерик Брукс.
Наиболее известен своими двумя культовыми произведениями.
Книгой "Мифический человек-месяц." Книга написана в 1975 году, но многие описанные ситуации можно видеть и по сей день. На 20 летнюю годовщину ее переиздали и добавили 4 новые главы.
Оттуда же родился закон Брукса. "Если проект не укладывается в сроки, то добавление рабочей силы задержит его ещё больше.". Второй раз рекомендую эту книгу, но она реально того стоит.
Второй труд - статья "Серебряной пули нет", фраза стала почти заклинанием в сфере разработке ПО. Многие принципы стали аксиомами (для тех кто их понимает и принимает). Например - использовать массовый рынок, чтобы избежать создания того, что можно купить; использовать итеративную и инкрементальную разработку, добавляя к системам все большую функциональность по мере их запуска, использования и тестирования.
Зачем стоит читать эти два произведения? Чтобы понять образ мыслей успешных менеджеров в сфере разработки ПО, понять какие процессы происходят при разработке и как их можно менять. Предупрежден значит вооружен.
Наиболее известен своими двумя культовыми произведениями.
Книгой "Мифический человек-месяц." Книга написана в 1975 году, но многие описанные ситуации можно видеть и по сей день. На 20 летнюю годовщину ее переиздали и добавили 4 новые главы.
Оттуда же родился закон Брукса. "Если проект не укладывается в сроки, то добавление рабочей силы задержит его ещё больше.". Второй раз рекомендую эту книгу, но она реально того стоит.
Второй труд - статья "Серебряной пули нет", фраза стала почти заклинанием в сфере разработке ПО. Многие принципы стали аксиомами (для тех кто их понимает и принимает). Например - использовать массовый рынок, чтобы избежать создания того, что можно купить; использовать итеративную и инкрементальную разработку, добавляя к системам все большую функциональность по мере их запуска, использования и тестирования.
Зачем стоит читать эти два произведения? Чтобы понять образ мыслей успешных менеджеров в сфере разработки ПО, понять какие процессы происходят при разработке и как их можно менять. Предупрежден значит вооружен.
👍7🔥1
Grafana анонсировала на ObservabilityCON 2022 новый продукт. Grafana Phlare - новое хранилище для данных по профайлингу
Их keynote доклад на конференции про все свои продукты.
https://vimeo.com/767154420
#observability
Их keynote доклад на конференции про все свои продукты.
https://vimeo.com/767154420
#observability
👍2
Классный пост от Mobile Developer Experience team в Slack (DevXp). В прошлый раз я уже писал как другая dev xp team внедрила удаленные окружения для команд в Slack.
За 5 лет команда поработала с многими вещами влияющими на производительность.
- Время сборки проектов на iOS/Android. iOS - Уменьшили время почти в два раза. c 9 минут до 4.5. Android - c 50 минут до 20.
- Мигающие тесты. уменьшили количество сбоев тестов с 57% до 4%
Полностью продуктовый подход - интервью пользователей, измерение проблемы, решение, причем решать можно как разработкой своего так и покупкой стороннего решения, повторить.
Картинка расчета ценности которую может принести такая работа над dev experience. Из расчета 100$/час.
Очень нравится продуктовый подход, только так и никак иначе надо делать любые внутренние улучшения для разработчиков. Продукт для разработчиков = тоже продукт.
https://slack.engineering/mobile-developer-experience-at-slack/
#developerexperience
За 5 лет команда поработала с многими вещами влияющими на производительность.
- Время сборки проектов на iOS/Android. iOS - Уменьшили время почти в два раза. c 9 минут до 4.5. Android - c 50 минут до 20.
- Мигающие тесты. уменьшили количество сбоев тестов с 57% до 4%
Полностью продуктовый подход - интервью пользователей, измерение проблемы, решение, причем решать можно как разработкой своего так и покупкой стороннего решения, повторить.
Картинка расчета ценности которую может принести такая работа над dev experience. Из расчета 100$/час.
Очень нравится продуктовый подход, только так и никак иначе надо делать любые внутренние улучшения для разработчиков. Продукт для разработчиков = тоже продукт.
https://slack.engineering/mobile-developer-experience-at-slack/
#developerexperience
👍3
Fearless Responsible Development: How to Move Quickly without Compromising on Quality (Wix engineering)
"But still, we don’t have pre-production or testing environments, we test our changes directly on the production environment, and when a developer pushes a code change, it can reach production in hours or even minutes, without a manual QA in the process.
So how can it be done while also making sure we are being very cautious and responsible? Let’s see…"
- High-coverage of tests;
- E2E production tests;
- Performance testing;
- Feature toggle;
- Gradually roll-out a change to production;
- Monitoring during roll-out;
Завидую компаниям у которых продукт не состоит из миллиона интеграций и его реально можно затестить.
https://www.wix.engineering/post/fearless-responsible-development-how-to-move-quickly-without-compromising-on-quality
"But still, we don’t have pre-production or testing environments, we test our changes directly on the production environment, and when a developer pushes a code change, it can reach production in hours or even minutes, without a manual QA in the process.
So how can it be done while also making sure we are being very cautious and responsible? Let’s see…"
- High-coverage of tests;
- E2E production tests;
- Performance testing;
- Feature toggle;
- Gradually roll-out a change to production;
- Monitoring during roll-out;
Завидую компаниям у которых продукт не состоит из миллиона интеграций и его реально можно затестить.
https://www.wix.engineering/post/fearless-responsible-development-how-to-move-quickly-without-compromising-on-quality
Wix Engineering
Fearless Responsible Development: How to Move Quickly without Compromising on Quality
This is the story of the culture, methods and tools, allowing the development of features in high-traffic super-sensitive components in a SaaS e-commerce product.Photo by Benjamin Davies on UnsplashWe all know that new features might also cause pain to our…
👍1
На мой взгляд это замечательная история о том, что если руки прямые, то решить можно любую проблему. Разработчики одного стартапа решили не вносить себе в схему новые компонент с которым у них мало опыта (позже напишу еще один пост про это). А воспользоваться понятной базой. Они протестировали решение и оно справилось с поставленной задачей!
p.s. Это не агитация так делать, это всего лишь хорошая статья про то, что надо взвешивать все решения и понимать плюсы и минусы во всех случаях.
https://dagster.io/blog/skip-kafka-use-postgres-message-queue
p.s. Это не агитация так делать, это всего лишь хорошая статья про то, что надо взвешивать все решения и понимать плюсы и минусы во всех случаях.
https://dagster.io/blog/skip-kafka-use-postgres-message-queue
👍6
Netflix умудряется автоматизировать совершенно неожиданные вещи. Сделали инструмент который помогает видеоредакторам создавать трейлеры. Он находят самые удачные кадры (одинаковое движение, яркость/фон, силуэты) и выводит их для анализы первыми.
А еще они стали делать минивидосы на свои тех статьи, этакие мини тех фильмы. Хороши конечно.
https://www.youtube.com/watch?v=7jJs5ATcH0w
https://netflixtechblog.com/match-cutting-at-netflix-finding-cuts-with-smooth-visual-transitions-31c3fc14ae59
А еще они стали делать минивидосы на свои тех статьи, этакие мини тех фильмы. Хороши конечно.
https://www.youtube.com/watch?v=7jJs5ATcH0w
https://netflixtechblog.com/match-cutting-at-netflix-finding-cuts-with-smooth-visual-transitions-31c3fc14ae59
🔥5
Мастер-класс от команды Gitlab как найти проблемы с инфраструктурным компонентом. Кстати график на скриншоте и правда характерный, тоже встречал в работе, теперь буду знать.
https://about.gitlab.com/blog/2022/11/28/how-we-diagnosed-and-resolved-redis-latency-spikes/
https://about.gitlab.com/blog/2022/11/28/how-we-diagnosed-and-resolved-redis-latency-spikes/
Подход убера по поднятию тестовых копий сред для тестирования например в случае запуска e2e тестов. Динамический роутинг для систем и клиентов. Плюс ко всему они сделали удобный интерфейс для разработчиков (привет developer experience). Например вы можете в консоли делать такую конфигурацию - подними мне копию окружение прода, этот тестируемый сервис возьми с другого бренча (он поднимется с отдельной базой ) и пропиши его для всех сервисов во вновь созданном окружении.
https://www.uber.com/en-GB/blog/simplifying-developer-testing-through-slate/
#developerexperience
https://www.uber.com/en-GB/blog/simplifying-developer-testing-through-slate/
#developerexperience
👍4
Хорошая памятка по System Design. Основные вещи про которые надо помнить проходя этот этап интервью.
#systemdesign
#systemdesign
❤3👍3