IT Briefs: Backend, Databases, System Design

Description
Канал с подборкой интересных статей из области IT. Ориентирован на разработчиков компании ДМ-Тех, но открыт для всех.
Advertising
We recommend to visit
Roxman
Roxman
13.308.447 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated hace 6 días, 5 horas

HAYZON
HAYZON
6.783.746 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Last updated hace 6 horas

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated hace 2 meses

12 months ago

https://pesin.space/posts/2020-09-22-latencies/
Однажды Джефф Дин из Google опубликовал список под названием
Latency numbers every engineer should know”.
Это список, обобщающий типы задержек в компьютерных системах. Он включает в себя различные временные характеристики, начиная от доступа к CPU кэшу и заканчивая сетевыми запросами.
Примеры:
? доступ к L1 кэшу: ~0.5 нс
? доступ к L2 кэшу: ~7 нс
? доступ к основной памяти (RAM): ~100 нс
? передача 1 МБ данных через сеть: ~10 мс
? поиск на HDD диске: ~2-10 мс

С тех пор значения хоть и менялись по мере развития технологий, но общий принцип понимания разницы в масштабах задержек остался актуальным. Такие данные помогают лучше понимать производительность систем, а иногда и принимать более обоснованные архитектурные решения.
В таблице по ссылке есть колонка, помогающая оценить масштаб в разнице этих задержек в привычных величинах. Например, если представить, что доступ к L1 кэшу занимает 2 секунды, то блокировка/разблокировка mutex’а в многопоточном приложении - 1 минуту, а последовательное чтение 1 Mb данных с SSD диска - 1 месяц.
Time: 3 min
Level: easy
Tags: #latencies

Ivan Pesin

Latency numbers every engineer should know

Articles, Translations, and Blog

1 year ago

https://tech.target.com/blog/target-autocomplete
Известные мировые ритейлеры часто делятся различными наработками в области IT. Поскольку нам интересен их опыт, будем иногда посматривать в их техно-блоги.
Сегодня познакомимся с компанией Target, которая является второй в этой области в Америке после Wallmart.
В данной статье они описывают свой подход к рекомендациям продуктов в корзине на основе Target AutoComplete - модели машинного обучения, ими разработанной.
Из особенностей выделяют следующее:
? рекомендации происходят в реальном времени, динамически корректируясь по мере добавления покупок.
? модель работает не на основе отдельных товаров, а на основе последовательностей, анализируя список товаров, добавленных в корзину.
Например, когда добавлено молоко и яйца, что говорит о том, что пользователь вероятно выбирает продукты для завтрака, будут рекомендованы хлопья и кофе. Но если добавлен сахар, то этот набор уже больше подходит для выпечки, и в рекомендациях окажется мука и разрыхлитель.
В процессе обработки больших объемов данных о покупках клиентов используются Apache Hive и Spark.
Также немного описан подход к построению графовых сетей и слоев внимания для обучения модели. Графовые сети помогают модели понимать сложные взаимосвязи между различными товарами, а слои внимания позволяют модели сосредоточиться на наиболее важных элементах данных при предсказании рекомендаций.
Time: 10 min
Level: easy
Tags: #ML #ecom #retail

Target AutoComplete: Real Time Item Recommendations at Target

An article by Bhavtosh Rath : A look at our Data Science team's patent-pending AI recommendation model

Известные мировые ритейлеры часто делятся различными наработками в области IT. Поскольку нам интересен их опыт, будем иногда посматривать в их …
1 year ago

https://dev.to/lovepreetsingh/microservices-vs-monolithic-architecture-a-practical-approach-4m06
Монолитную архитектуру, со всеми её недостатками, можно с уверенностью считать пережитком прошлого. Преимущества микросервисного подхода настолько перевешивают чашу весов в эту сторону, что сейчас даже при разработке самого просто приложения нет смысла отказываться от всех плюсов, которые даёт эта современная парадигма.
Допустим, нам нужно разработать Калькулятор. Стоит ли рассматривать здесь монолитную архитектуру, в то время как разделение на микросервисы способно упростить нам жизнь.
? При таком подходе мы выделим отдельные сервисы для всех операций, а начнем с простых: сложение, умножение, вычитание, деление. Очевидно, что нагрузка будет разделяться неравномерно. Скорее всего пользователи будут чаще складывать и умножать. Тут мы и масштабируем только эти два сервиса, не трогая остальные. Добавим им ресурсов, перенесём на отдельный сервер.
? Захотим расширить набор действий, добавив тригонометрические операции - нам поможет паттерн Service Discovery. Сможем расширять наше приложение, не перезапуская его.
? Конечно добавим Health Checks. Зачем нам слать запросы в сервис вычисления логарифмов, если он не работоспособен, а команда разработавших его php-программистов в отпуске?
И это далеко не все шаблоны, которыми мы можем здесь воспользоваться, упростив себе жизнь. В общем, даже на таком простом примере очевидно удобство, гибкость, надежность. А в более сложных системах всё это возрастает кратно.
Time: 5 min
Level: easy
Tags: #microservices

DEV Community

Microservices vs Monolithic Architecture: A Practical Approach

***📍*** Monolithic and Its issues ***🙂*** When we start learning backend development and...

Монолитную архитектуру, со всеми её недостатками, можно с уверенностью считать пережитком прошлого. Преимущества микросервисного подхода настолько перевешивают чашу весов в …
1 year ago

https://diff.wikimedia.org/2018/04/20/why-it-took-a-long-time-to-build-that-tiny-link-preview-on-wikipedia/
Пример того, как простая на первый взгляд функция может потребовать немало времени на разработку.
В Википедии существует предварительный просмотр ссылок - при наведении указателя мыши появляется небольшой макет страницы, на которую она ведёт. Выглядит просто и создается впечатление, что в разработке не вызвало никаких сложностей.
На самом деле, всё далеко не так и в данной статье описан долгий путь от идеи до реализации. Здесь потребовалась работа над алгоритмами выбора миниатюры, генерации краткого содержания, были проведены дизайнерские исследования и реализованы требования к масштабируемости и производительности данного API, чтобы иметь возможность обрабатывать до 0.5 млн обращений к нему в минуту.
Time: 15 min
Level: medium
Tags: #system_design

Diff

Why it took a long time to build that tiny link preview on Wikipedia

The history of page previews.

Пример того, как простая на первый взгляд функция может потребовать немало времени на разработку.
1 year ago

https://dev.to/danielhe4rt/database-101-how-social-media-likes-are-stored-in-a-database-3oii
Когда-нибудь задумывались, как платформы вроде Instagram или Facebook отслеживают количество лайков на ваших публикациях? Погрузитесь в исследование эффективного моделирования данных с использованием ScyllaDB, рассмотренного в данной статье.
При решении данной архитектурной задачи можно столкнуться с рядом сложностей:
? Масштабируемость: На популярных платформах число лайков может увеличиваться очень быстро
? Быстродействие: Пользователи ожидают мгновенного отображения их лайка после того, как они нажали кнопку
? Согласованность: Важно обеспечивать, чтобы все пользователи видели одно и то же число лайков в один и тот же момент времени
? Распределенность: Может возникнуть сложность в обеспечении согласованности данных между различными узлами
Решение части из этих проблем рассмотрено в статье. Раскрыты особенности и инструменты, которые предлагает ScyllaDB в контексте данной задачи.
Time: 15 min
Level: medium
Tags: #system_design #db #ScyllaDB

DEV Community

Database 101: How social media “likes” are stored in a database

Did you ever think about how Instagram, Twitter, Facebook or any social media platforms track who...

Когда-нибудь задумывались, как платформы вроде Instagram или Facebook отслеживают количество лайков на ваших публикациях? Погрузитесь в исследование эффективного моделирования данных …
1 year, 1 month ago

https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity
Известная консалтинговая компания Mckinsey взяла на себя смелость заявить о том, якобы они нашли способы измерения продуктивности разработчиков.
На деле, пожалуй, ничем оригинальным они не делятся. Всё те же стандартные идеи о качестве кода, скорости разработки, количестве закрытых задач в трекере и т.д.
Опытный технический специалист вряд ли что-то откроет для себя в этой статье. Но, вероятно, кому-то она может понадобиться в качестве ссылки на авторитетный источник.
Time: 15 min
Level: medium
Tags: #productivity

McKinsey & Company

Yes, you can measure software developer productivity

There is no denying that tracking, benchmarking, and measuring software developer productivity can be difficult. Here's how organizations can do it better.

Известная консалтинговая компания Mckinsey взяла на себя смелость заявить о том, якобы они нашли способы измерения продуктивности разработчиков.
1 year, 1 month ago

https://slack.engineering/real-time-messaging/
Мгновенная и надёжная доставка сообщений в реальном времени - не простая задача. В статье раскрываются подходы и решения напрямую от компании Slack, для которых данная функция их продукта является ключевой.
Компания описывает основные принципы построения архитектуры своей системы для обеспечения этих целей, раскрывая вопросы:
? распределения и масштабируемости
? территориального распределения пользователей
? согласования данных между устройствами и платформами
? обеспечение пользовательской сессии с непрерывной и синхронизированной работой
? стратегии, используемые для сохранения порядка сообщений
Time: 15 min
Level: hard
Tags: #system_design #architecture

Slack Engineering

Real-time Messaging - Slack Engineering

Did you know that ground stations transmit signals to satellites 22,236 miles above the equator in geostationary orbits, and that those signals are then beamed down to the entire North American subcontinent? Satellite radios today serve hundreds of channels…

Мгновенная и надёжная доставка сообщений в реальном времени - не простая задача. В статье раскрываются подходы и решения напрямую от …
1 year, 2 months ago

https://dzone.com/articles/api-and-database-performance-optimization-strategi
В статье рассматриваются различные подходы и методы для оптимизации производительности баз данных:
?различные типы кеширования
?методы оптимизации запросов
?использование индексов и их типы
?мониторинг индексов
?виды мониторинга для обнаружения узких мест
?стратегии шардирования
?подходы к тестированию производительности
Все эти темы раскрываются здесь не очень глубоко. Но удобство данной публикации в том, что здесь собраны все основные подходы, что позволит систематизировать знания. А также может послужить для выбора наиболее актуальной стратегии по улучшению производительности при работе с БД
Time: 15 min
Level: medium
Tags: #db #optimization

DZone

API and Database Performance Optimization Strategies

Optimize API and database performance with caching, query optimization, indexing, data sharding, and performance testing for improved user experience.

В статье рассматриваются различные подходы и методы для оптимизации производительности баз данных:
1 year, 2 months ago

https://softskills.audio/
It takes more than great code to be a great engineer - слоган аудиоподкаста, который хочется порекомендовать.
Несколько лет назад я задался целью прокачать уровень своего английского. Один из способов, которые помогают в этом - регулярное прослушивание подкастов. Я нашёл несколько неплохих, касающихся именно it-тематики. Но вот этот, на мой взгляд, очень сильно выделяется среди прочих. Здесь мало обсуждаются технические моменты. Из самого названия следует, что ориентирован он именно на soft skills. И для этих целей он подходит очень здорово. Здесь вы познакомитесь с рядом интересных ситуаций. Часть из них действительно часто встречается в работе - выгорание, увольнения, разговоры о повышении. А часть просто довольно забавна. Например, один из слушателей удаленно собеседовал кандидата в смежный отдел, а спустя несколько недель обнаружил, что собеседуемый и вышедший на работу - это разные люди.
Все эти моменты ведущие обсуждают с юмором, но в конце всегда дают серьёзный ответ.
Так что, помимо прокачивания listening skills в английском, здесь вы получите полезные советы, как действовать в определенных ситуациях на работе, немного развлечётесь, и получите примерное представление о том, чем живут и с чем сталкиваются работники it в различных, в том числе и небольших североамериканских компаниях.
Tags: #soft_skills

Soft Skills Engineering

It takes more than great code to be a great engineer. Soft Skills Engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into being a great software developer.

*It takes more than great code to be a great engineer* - слоган аудиоподкаста, который хочется порекомендовать.
We recommend to visit
Roxman
Roxman
13.308.447 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated hace 6 días, 5 horas

HAYZON
HAYZON
6.783.746 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Last updated hace 6 horas

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated hace 2 meses