StateOfDevOpsRussia2024.pdf
12.9 MB
Observability: инструменты и тренды
— Какие инструменты ты используешь для мониторинга системы?
— Обычно Prometheus для метрик и ELK для логов, а ты?
Prometheus — метрики, ELK — логи, Jaeger — трассировки. OpenTelemetry становится стандартом для объединения метрик, логов и трассировок. Не забываем и про Sentry — инструмент для отслеживания ошибок в приложениях.
Для понимания актуальных трендов в observability смотрите свежие обзоры, такие как «State of DevOps».
* На 29 странице отчёта State Of DevOps Russia 2024 расписаны популярные инструменты Observability в российских компаниях.
* Также стоит посмотреть на список решений, предоставленных CNCF https://landscape.cncf.io/guide#observability-and-analysis--observability.
Интересно ли узнать про практики сбора метрик и как начать реагировать на проблемы заранее, не дожидаясь, когда придут пользователи? Сталкивались ли вы с ситуациями, когда алёрты просто пропускались? Про что вам хотелось бы узнать подробнее?
ЛСА | Лайфстайл айтишника
— Какие инструменты ты используешь для мониторинга системы?
— Обычно Prometheus для метрик и ELK для логов, а ты?
Prometheus — метрики, ELK — логи, Jaeger — трассировки. OpenTelemetry становится стандартом для объединения метрик, логов и трассировок. Не забываем и про Sentry — инструмент для отслеживания ошибок в приложениях.
Для понимания актуальных трендов в observability смотрите свежие обзоры, такие как «State of DevOps».
* На 29 странице отчёта State Of DevOps Russia 2024 расписаны популярные инструменты Observability в российских компаниях.
* Также стоит посмотреть на список решений, предоставленных CNCF https://landscape.cncf.io/guide#observability-and-analysis--observability.
Интересно ли узнать про практики сбора метрик и как начать реагировать на проблемы заранее, не дожидаясь, когда придут пользователи? Сталкивались ли вы с ситуациями, когда алёрты просто пропускались? Про что вам хотелось бы узнать подробнее?
ЛСА | Лайфстайл айтишника
👍2
Кейс: двойная оплата при плохом интернете
В интернет-магазине клиенты иногда сталкивались с двойным списанием при оплате. Если после нажатия кнопки "Оплатить" связь прерывалась, пользователь не получал подтверждения и нажимал кнопку снова. Сервер обрабатывал каждый запрос отдельно, списывая деньги дважды.
После пары быстрых фриланс правок в коде появились следующие конструкции:
1. (На фронте) Блокировка кнопки после нажатия: предотвращает повторные клики, но мешает повторить попытку при сбое.
2. (На беке) Отслеживание времени: игнорирование запросов, поступающих в короткий интервал, но это ненадежно при легитимных повторных попытках.
Как думаете, как можно было бы ещё закостылить решение?
Позже в комментариях напишу, как в итоге решили проблему.
ЛСА | Лайфстайл айтишника
В интернет-магазине клиенты иногда сталкивались с двойным списанием при оплате. Если после нажатия кнопки "Оплатить" связь прерывалась, пользователь не получал подтверждения и нажимал кнопку снова. Сервер обрабатывал каждый запрос отдельно, списывая деньги дважды.
После пары быстрых фриланс правок в коде появились следующие конструкции:
1. (На фронте) Блокировка кнопки после нажатия: предотвращает повторные клики, но мешает повторить попытку при сбое.
2. (На беке) Отслеживание времени: игнорирование запросов, поступающих в короткий интервал, но это ненадежно при легитимных повторных попытках.
Как думаете, как можно было бы ещё закостылить решение?
Позже в комментариях напишу, как в итоге решили проблему.
ЛСА | Лайфстайл айтишника
🤔2
Идемпотентность — любимый вопрос на собеседованиях
В продолжение вчерашнего кейса, как в итоге решили проблему:
Когда клиент нажимает "Оплатить", он отправляет уникальный код (например,
1. Первый запрос: Сервер видит новый код
2. Повторный запрос: Сервер видит тот же код
Что получили:
- Отсутствие двойных списаний: запросы с одним кодом обрабатываются только один раз.
- Экономия ресурсов: сервер не дублирует операции и не стучится во внешние интеграции.
- Удовлетворённость клиента: защита от случайных повторных оплат.
Как часто вы или у вас спрашивают на собеседовании про идемпотентность?
ЛСА | Лайфстайл айтишника
В продолжение вчерашнего кейса, как в итоге решили проблему:
Когда клиент нажимает "Оплатить", он отправляет уникальный код (например,
ABC123
или UUID) вместе с запросом на сервер. 1. Первый запрос: Сервер видит новый код
ABC123
, выполняет оплату, сохраняет результат вместе с кодом.2. Повторный запрос: Сервер видит тот же код
ABC123
, возвращает сохраненный результат, не проводя оплату повторно.Что получили:
- Отсутствие двойных списаний: запросы с одним кодом обрабатываются только один раз.
- Экономия ресурсов: сервер не дублирует операции и не стучится во внешние интеграции.
- Удовлетворённость клиента: защита от случайных повторных оплат.
Как часто вы или у вас спрашивают на собеседовании про идемпотентность?
ЛСА | Лайфстайл айтишника
🔥1
Секция system design
Хотите прокачать свой навык прохождения system design или посмотреть, как это делают другие? Тогда читаем дальше😉
Если вы будете проходить собеседование на позицию senior dev и выше в какую-нибудь BigTech компанию, то с большой вероятностью у вас будет секция system design.
Что такое system design? Это процесс проектирования системы, который включает в себя анализ требований, определение компонентов, их взаимодействие и выбор технологий для реализации. Саму секцию можно разделить на несколько этапов: сбор и анализ требований, разработка высокоуровневой архитектуры, детализация компонентов и взаимодействий, а также оценка рисков и возможностей масштабирования.
Проходили подобные секции?
Сегодня предлагаю потренировать свой скилл или даже научиться в прохождении данного части собеседования. Но формат будет у нас нестандартный, и вот как предлагаю провести его:
1. В 15:00 я выложу задачу отдельным постом.
2. В комментариях к посту я буду модерировать процесс и выступать стейкхолдером, а также направлять и помогать двигаться в нужном направлении.
3. Чем больше разных предложений и вопросов будет, тем интереснее будет получаться :)
Поставьте реакцию, если готовы поучаствовать. От количества заинтересованных подберу более интересную или более простую задачу.
ЛСА | Лайфстайл айтишника
Хотите прокачать свой навык прохождения system design или посмотреть, как это делают другие? Тогда читаем дальше😉
Если вы будете проходить собеседование на позицию senior dev и выше в какую-нибудь BigTech компанию, то с большой вероятностью у вас будет секция system design.
Что такое system design? Это процесс проектирования системы, который включает в себя анализ требований, определение компонентов, их взаимодействие и выбор технологий для реализации. Саму секцию можно разделить на несколько этапов: сбор и анализ требований, разработка высокоуровневой архитектуры, детализация компонентов и взаимодействий, а также оценка рисков и возможностей масштабирования.
Проходили подобные секции?
Сегодня предлагаю потренировать свой скилл или даже научиться в прохождении данного части собеседования. Но формат будет у нас нестандартный, и вот как предлагаю провести его:
1. В 15:00 я выложу задачу отдельным постом.
2. В комментариях к посту я буду модерировать процесс и выступать стейкхолдером, а также направлять и помогать двигаться в нужном направлении.
3. Чем больше разных предложений и вопросов будет, тем интереснее будет получаться :)
Поставьте реакцию, если готовы поучаствовать. От количества заинтересованных подберу более интересную или более простую задачу.
ЛСА | Лайфстайл айтишника
🔥6
Все мы писали парсеры.. Приступим к system design
Нужно спроектировать систему, которая будет периодически запускать парсеры на разных языках и сохранять данные, которые в дальнейшем будет забирать ML команда для дальнейшей обработки. Управление парсерами должно быть гибким, с возможностью настройки периодичности и ручного запуска.
Обсуждаем решение в комментариях к посту, а рисовать можно в draw.io https://drive.google.com/file/d/1NXkfZltpnxNJprKgSPPhiw36lAMg5ioM/view?usp=sharing (если возникнут трудности с подключением, пишите).
Допущения:
* Используемые языки для парсеров: Python, R, JS, PHP.
* Один парсер может запускаться одновременно во множестве инстансов, чтобы обрабатывать в параллель множество страниц конкретного сайта.
* Парсеры могут работать продолжительное время, вплоть до нескольких часов.
* Общее количество парсеров не превышает 1000.
* Парсеры собирают только текстовые данные.
* Объём ежедневно собираемых данных — до 10Gb.
* Данные хранятся в течение 3 лет.
Какие технологии и подходы вы бы выбрали для реализации такой системы? Как вы организуете хранение данных, управление нагрузкой и мониторинг работы парсеров? Как обеспечить гибкость в настройке периодичности и ручного запуска?
ЛСА | Лайфстайл айтишника
Нужно спроектировать систему, которая будет периодически запускать парсеры на разных языках и сохранять данные, которые в дальнейшем будет забирать ML команда для дальнейшей обработки. Управление парсерами должно быть гибким, с возможностью настройки периодичности и ручного запуска.
Обсуждаем решение в комментариях к посту, а рисовать можно в draw.io https://drive.google.com/file/d/1NXkfZltpnxNJprKgSPPhiw36lAMg5ioM/view?usp=sharing (если возникнут трудности с подключением, пишите).
Допущения:
* Используемые языки для парсеров: Python, R, JS, PHP.
* Один парсер может запускаться одновременно во множестве инстансов, чтобы обрабатывать в параллель множество страниц конкретного сайта.
* Парсеры могут работать продолжительное время, вплоть до нескольких часов.
* Общее количество парсеров не превышает 1000.
* Парсеры собирают только текстовые данные.
* Объём ежедневно собираемых данных — до 10Gb.
* Данные хранятся в течение 3 лет.
Какие технологии и подходы вы бы выбрали для реализации такой системы? Как вы организуете хранение данных, управление нагрузкой и мониторинг работы парсеров? Как обеспечить гибкость в настройке периодичности и ручного запуска?
ЛСА | Лайфстайл айтишника
👍4
ЛСА | Лайфстайл айтишника
Все мы писали парсеры.. Приступим к system design Нужно спроектировать систему, которая будет периодически запускать парсеры на разных языках и сохранять данные, которые в дальнейшем будет забирать ML команда для дальнейшей обработки. Управление парсерами…
Парсерам быть или не быть?
Давайте сегодня вместе разберём данный кейс.
Начнём с общей HLD схемы. Основные внутренние компоненты:
— Пользовательский интерфейс (UI): Предоставляет интерфейс для настройки и управления парсерами.
— Планировщик задач (Scheduler): Отвечает за расписание и запуск парсеров.
— Система выполнения парсеров (Executor): Запускает парсеры в контейнерах.
— Хранилище данных (Data Storage): Сохраняет собранные текстовые данные.
— Мониторинг и логирование (Monitoring & Logging): Отслеживает работу системы и парсеров.
Внешние компоненты:
— ML dev: Получают доступ к данным для дальнейшего анализа.
— Администраторы: Через UI управляют работой парсеров
— Web: ресурсы для парсинга
Есть идеи, как можно улучшить схему на этом этапе?
Какой стек будем выбирать для каждого из узлов? 🤔
ЛСА | Лайфстайл айтишника
Давайте сегодня вместе разберём данный кейс.
Начнём с общей HLD схемы. Основные внутренние компоненты:
— Пользовательский интерфейс (UI): Предоставляет интерфейс для настройки и управления парсерами.
— Планировщик задач (Scheduler): Отвечает за расписание и запуск парсеров.
— Система выполнения парсеров (Executor): Запускает парсеры в контейнерах.
— Хранилище данных (Data Storage): Сохраняет собранные текстовые данные.
— Мониторинг и логирование (Monitoring & Logging): Отслеживает работу системы и парсеров.
Внешние компоненты:
— ML dev: Получают доступ к данным для дальнейшего анализа.
— Администраторы: Через UI управляют работой парсеров
— Web: ресурсы для парсинга
Есть идеи, как можно улучшить схему на этом этапе?
Какой стек будем выбирать для каждого из узлов? 🤔
ЛСА | Лайфстайл айтишника
🔥1
ЛСА | Лайфстайл айтишника
Парсерам быть или не быть? Давайте сегодня вместе разберём данный кейс. Начнём с общей HLD схемы. Основные внутренние компоненты: — Пользовательский интерфейс (UI): Предоставляет интерфейс для настройки и управления парсерами. — Планировщик задач (Scheduler):…
Как правильный вопрос может уменьшить объём работы?
Постановка задачи наталкивает нас, что должен быть некий UI для управления тасками. Мы можем пойти начать описывать свой интерфейс, свой back для него, авторизацию и множество чего ещё. При этом в задаче ничего не говорится про то, кто пользователь этого UI.
Поэтому, задав вопрос: «Кто пользователь UI, кто будет запускать парсеры?», мы получаем ответ, что это администраторы продукта.
Соответственно, им мы можем предложить какой-нибудь стандартный интерфейс, например Airflow закрывает большинство наших требований.
Таким образом, мы только что сэкономили несколько месяцев работы команды с компетенциями: front dev, back dev, test, design.
Как может выглядеть наш стек для данной задачи:
airflow-scheduler — Планировщик отслеживает все задачи и DAG, а затем запускает экземпляры задач после выполнения их зависимостей.
airflow-webserver — Веб-сервер с UI. UI ограничемся этим.
airflow-worker — Воркер выполняет задачи, заданные планировщиком. Запускает парсеры.
airflow-triggerer — Инициатор запускает цикл событий для отложенных задач.
postgres — База метаданных для работы Airflow.
redis — Выступает в качестве брокера для пересылки сообщений из планировщика в воркер.
S3/minio — Для хранения сырых данных.
docker — Каждый парсер заворачиваем в docker образ для возможности запуска из воркера airflow. В целевой картине воркеры могут через API kubernetes запускать поды с парсерами.
Prometheus, Grafana — Для работы с метриками.
OpenSearch, Fluentd и Kibana — Для работы с логами.
Будем продолжать раскапывать этот кейс?
Следующим шагом было бы разумно рассмотреть процесс поставки новых парсеров и отключение старых.
ЛСА | Лайфстайл айтишника
Постановка задачи наталкивает нас, что должен быть некий UI для управления тасками. Мы можем пойти начать описывать свой интерфейс, свой back для него, авторизацию и множество чего ещё. При этом в задаче ничего не говорится про то, кто пользователь этого UI.
Поэтому, задав вопрос: «Кто пользователь UI, кто будет запускать парсеры?», мы получаем ответ, что это администраторы продукта.
Соответственно, им мы можем предложить какой-нибудь стандартный интерфейс, например Airflow закрывает большинство наших требований.
Таким образом, мы только что сэкономили несколько месяцев работы команды с компетенциями: front dev, back dev, test, design.
Как может выглядеть наш стек для данной задачи:
airflow-scheduler — Планировщик отслеживает все задачи и DAG, а затем запускает экземпляры задач после выполнения их зависимостей.
airflow-webserver — Веб-сервер с UI. UI ограничемся этим.
airflow-worker — Воркер выполняет задачи, заданные планировщиком. Запускает парсеры.
airflow-triggerer — Инициатор запускает цикл событий для отложенных задач.
postgres — База метаданных для работы Airflow.
redis — Выступает в качестве брокера для пересылки сообщений из планировщика в воркер.
S3/minio — Для хранения сырых данных.
docker — Каждый парсер заворачиваем в docker образ для возможности запуска из воркера airflow. В целевой картине воркеры могут через API kubernetes запускать поды с парсерами.
Prometheus, Grafana — Для работы с метриками.
OpenSearch, Fluentd и Kibana — Для работы с логами.
Будем продолжать раскапывать этот кейс?
Следующим шагом было бы разумно рассмотреть процесс поставки новых парсеров и отключение старых.
ЛСА | Лайфстайл айтишника
3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как понять, когда стоит обновить версию приложения?
Нашёл интересную визуализацию версионирования по Semantic Versioning (SemVer), кратко:
* MAJOR — несовместимые изменения.
* MINOR — новые функции, совместимые с предыдущими версиями.
* PATCH — исправления багов.
ЛСА | Лайфстайл айтишника
Нашёл интересную визуализацию версионирования по Semantic Versioning (SemVer), кратко:
* MAJOR — несовместимые изменения.
* MINOR — новые функции, совместимые с предыдущими версиями.
* PATCH — исправления багов.
ЛСА | Лайфстайл айтишника
1🔥1
Мы ищем разработчика в команду Сбера (только Москва, гибрид)
https://hh.ru/vacancy/117571552
Если кому релевантно, пишите в лс @nestnestnest
https://hh.ru/vacancy/117571552
Если кому релевантно, пишите в лс @nestnestnest
2025 — год AI-агентов.
Все говорят про агентов, но внедрений пока мало. Интересна ли эта тема? Если есть что-то, что вас особенно интересует в агентах, пишите в комментариях
Уже сталкивались с терминами #AgenticRAG, #Agentspace, #AgentOps, #MCP, #A2A ?
ЛСА | Лайфстайл айтишника
Все говорят про агентов, но внедрений пока мало. Интересна ли эта тема? Если есть что-то, что вас особенно интересует в агентах, пишите в комментариях
Уже сталкивались с терминами #AgenticRAG, #Agentspace, #AgentOps, #MCP, #A2A ?
ЛСА | Лайфстайл айтишника
Так ли хорош Manus?
Недавно китайский ИИ-агент Manus стал доступен всем. Он способен самостоятельно выполнять сложные задачи — от анализа данных до генерации кода — без участия человека.
Попросил его составить презентацию для инвесторов по автоматизации разработки в ИТ, прикреплю её в комментариях, оцените результат😉
Что умеет Manus:
* Планировать поездки, бронировать жильё, составлять маршруты.
* Проводить анализ данных, строить графики, формировать отчёты.
* Писать и отлаживать код в встроенной среде разработки.
* Создавать презентации, документы, резюме.
* Автоматически выполнять задачи без участия пользователя.
Как подключиться:
* Включите VPN (например, через Казахстан).
* Перейдите на сайт manus.im.
* Зарегистрируйтесь, подтвердив номер телефона. Для подтверждение номера телефона; пользователи из России могут выбрать в списке стран Казахстан для верификации, только так приходят смс с кодом.
При регистрации начисляется 1000 кредитов, ежедневно — 300 бесплатных.
ЛСА | Лайфстайл айтишника
Недавно китайский ИИ-агент Manus стал доступен всем. Он способен самостоятельно выполнять сложные задачи — от анализа данных до генерации кода — без участия человека.
Попросил его составить презентацию для инвесторов по автоматизации разработки в ИТ, прикреплю её в комментариях, оцените результат😉
Что умеет Manus:
* Планировать поездки, бронировать жильё, составлять маршруты.
* Проводить анализ данных, строить графики, формировать отчёты.
* Писать и отлаживать код в встроенной среде разработки.
* Создавать презентации, документы, резюме.
* Автоматически выполнять задачи без участия пользователя.
Как подключиться:
* Включите VPN (например, через Казахстан).
* Перейдите на сайт manus.im.
* Зарегистрируйтесь, подтвердив номер телефона. Для подтверждение номера телефона; пользователи из России могут выбрать в списке стран Казахстан для верификации, только так приходят смс с кодом.
При регистрации начисляется 1000 кредитов, ежедневно — 300 бесплатных.
ЛСА | Лайфстайл айтишника
1
Audio
ИИ-блокнот нового поколения от Google
NotebookLM - ИИ-блокнот от Google для работы с текстами и документами.
Загрузил в него отчёт об агентах от google и попросил сделать подкаст, получилось интересно
Что ещё умеет:
* Анализирует PDF, Google Docs, сайты, видео и аудио.
* Делает саммари, отвечает на вопросы по вашим материалам.
* Помогает учиться, быстро готовит шпаргалки, тесты и чек-листы.
Как получить доступ:
* Перейти на https://notebooklm.google/ (нужен VPN).
* Войти через Google-аккаунт.
* Загружайте документы и пользуйтесь бесплатно.
ЛСА | Лайфстайл айтишника
NotebookLM - ИИ-блокнот от Google для работы с текстами и документами.
Загрузил в него отчёт об агентах от google и попросил сделать подкаст, получилось интересно
Что ещё умеет:
* Анализирует PDF, Google Docs, сайты, видео и аудио.
* Делает саммари, отвечает на вопросы по вашим материалам.
* Помогает учиться, быстро готовит шпаргалки, тесты и чек-листы.
Как получить доступ:
* Перейти на https://notebooklm.google/ (нужен VPN).
* Войти через Google-аккаунт.
* Загружайте документы и пользуйтесь бесплатно.
ЛСА | Лайфстайл айтишника
1🔥1
ИИ-поисковик
Perplexity AI — интеллектуальный поисковик, который превращает ресерч в быстрый и точный процесс.
Проверил на себе: задал запрос «Построй сравнительную таблицу по выбору open source инструментов IAM» — получил структурированный ответ с плюсами/минусами, примерами и ссылками на источники.
Как обычно мы делаем:
* Поиск в Google → десятки ссылок → ручное открытие статей, форумов, GitHub-репозиториев
* Необходимость самостоятельно фильтровать устаревшие или нерелевантные материалы
* Трата 1–2 часов только на сбор и первичный анализ информации
А тут весь ресерч занимает 5–10 минут вместо часа
Как получить доступ:
* Перейти на https://www.perplexity.ai/.
* Войти через Google-аккаунт.
* Начать использовать бесплатно или оформить подписку на Pro-версию для расширенных возможностей (для России вот тут можно купить подписку на год)
ЛСА | Лайфстайл айтишника
Perplexity AI — интеллектуальный поисковик, который превращает ресерч в быстрый и точный процесс.
Проверил на себе: задал запрос «Построй сравнительную таблицу по выбору open source инструментов IAM» — получил структурированный ответ с плюсами/минусами, примерами и ссылками на источники.
Как обычно мы делаем:
* Поиск в Google → десятки ссылок → ручное открытие статей, форумов, GitHub-репозиториев
* Необходимость самостоятельно фильтровать устаревшие или нерелевантные материалы
* Трата 1–2 часов только на сбор и первичный анализ информации
А тут весь ресерч занимает 5–10 минут вместо часа
Как получить доступ:
* Перейти на https://www.perplexity.ai/.
* Войти через Google-аккаунт.
* Начать использовать бесплатно или оформить подписку на Pro-версию для расширенных возможностей (для России вот тут можно купить подписку на год)
ЛСА | Лайфстайл айтишника
Cursor всё...
Тестировал cursor на тему подготовки проекта на fastapi для запуска через IDE и в docker.
На первый взгляд, простая задача, но... Он сдался после нескольких попыток, возможно, платная версия сработала бы лучше.
Используете ли cursor в работе?
ЛСА | Лайфстайл айтишника
Тестировал cursor на тему подготовки проекта на fastapi для запуска через IDE и в docker.
На первый взгляд, простая задача, но... Он сдался после нескольких попыток, возможно, платная версия сработала бы лучше.
Используете ли cursor в работе?
ЛСА | Лайфстайл айтишника