es
Feedback
Бодрый кодер

Бодрый кодер

Ir al canal en Telegram

Меня зовут Лев, я IT Лидер в Альфа-Банке. Это мой личный блог о DevOps, разработке, системном анализе, AI и управлении IT-командами. Делюсь своими мыслями, инсайтами, полезными инструментами и тем, что меня вдохновляет. Автор: @nemirlev

Mostrar más
570
Suscriptores
+124 horas
+467 días
+6130 días
Archivo de publicaciones
Мне все больше нравится работать с легковесной альтернативой Elastic - Vector + Loki + Grafana 📊 Легче, дешевле, и работает с PromQL, который вы уже знаете по метрикам! #мониторинг #логи #vector #loki #grafana #devops

Целых два дня без постов, поэтому захожу сразу с темы для дискуссии - метрики в разработке. Тема интересная тем, что бизнес их очень любит, а исполнители часто стараются избегать, считая бесполезной бюрократией. Выскажу свое мнение, а вы поделитесь своим. Я считаю, что метрики очень важны, но к ним нужно относиться не как к инструменту, с помощью которого можно карать и миловать, а как к индикаторам, благодаря которым можно принимать решения проактивно, а не постфактум. Я пришел к делению на два блока: Бизнес метрики - это здоровье продукта, основное. Конечно, всё зависит от специфики проекта, но за основу можно взять Retention Rate (сколько пользователей возвращаются через X дней), NPS, активных пользователей (DAU/WAU/MAU), конверсию в целевые действия, среднее время до целевого действия, количество багов на пользователя и, конечно, SLA/SLO/SLI. Метрики разработки (не конкретных разработчиков, а всех ролей, которые участвуют!) - тут важны Lead Time и Cycle Time, частота релизов, количество ошибок после релиза, частота неудачных деплоев, MTTR, время код-ревью и эффективность тестового покрытия. Можно добавить соотношение затраченного времени к планируемому, А как вы относитесь к метрикам? Какие считаете действительно полезными? #разработка #метрики #management #teamlead #продакт

#пятничныйюмор
#пятничныйюмор

В свободное время начал изучать Rust и сразу делаю параллели с Go. Простой Hello World telegram-бот на Go:

package main

import (
    "log"
    "os"
    tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

func main() {
    bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN"))
    if err != nil {
        log.Panic(err)
    }

    u := tgbotapi.NewUpdate(0)
    u.Timeout = 60

    updates := bot.GetUpdatesChan(u)

    for update := range updates {
        if update.Message == nil {
            continue
        }

        msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hello World!")
        bot.Send(msg)
    }
}
А вот на Rust:

use teloxide::{prelude::*, utils::command::BotCommands};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    pretty_env_logger::init();
    log::info!("Starting bot...");

    let bot = Bot::from_env();

    teloxide::repl(bot, |bot: Bot, msg: Message| async move {
        bot.send_message(msg.chat.id, "Hello World!").await?;
        Ok(())
    })
    .await;

    Ok(())
}
Пока не могу найти явные приемущества Rust для веб-сервисов. Может кто-то из практикующих поделится, где реально выстреливает? #Rust #Golang #разработка #изучаюязыки

Поговорим про распил монолита. На схеме представлены 4 ключевых паттерна, которые помогут упростить переход: Strangler Fig Pa
Поговорим про распил монолита. На схеме представлены 4 ключевых паттерна, которые помогут упростить переход: Strangler Fig Pattern - позволяет постепенно извлекать функционал из монолита в отдельные сервисы, не нарушая работу системы. Как лиана, новые сервисы обвивают старый монолит, постепенно забирая его функционал. Parallel Run Pattern - позволяет запускать старую и новую реализацию параллельно, сравнивая результаты. Это снижает риски при миграции, так как мы можем быстро откатиться на старую версию. Decorating Collaborator Pattern - позволяет добавлять новую функциональность через прокси-слой, не меняя существующий монолит. Change Data Capture (CDC) - позволяет отслеживать изменения в базе данных и синхронизировать данные между старой и новой системой. Кстати, даже если вы не планируете разделять монолит, очень рекомендую внедрить API Gateway. Это даст вам: * Централизованный контроль над всеми API эндпоинтами * Принудительное документирование контрактов * Простое подключение мониторинга и метрик * Полную трассировку запросов через OpenTelemetry #архитектура #микросервисы #монолит #паттерны #разработка

В начале недели прям залп новинок для тех, кто работает с информацией: OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов. Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники. Ну и OpenDeepResearcher - еще один инструмент для автоматизации исследовательской работы. Заточен под курсовые и дипломные. Собирает инфу из интернета, не останавливается пока не соберет всё необходимое, и предоставляет готовые ссылки на источники. #AI #OpenAI #DeepResearch #исследования #технологии #наука

В начале недели прям залп новинок для тех, кто работает с информацией: OpenAI представили Deep Research - агента, который сам
В начале недели прям залп новинок для тех, кто работает с информацией: OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов. Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники. Ну и OpenDeepResearcher - еще один инструмент для генерации курсовых и дипломных проектов. Собирает инфу из интернета, не останавливается пока не соберет всё необходимое, и предоставляет готовые ссылки на источники. #AI #OpenAI #DeepResearch #исследования #технологии #наука

#пятничныйюмор
#пятничныйюмор

Привет! Если вы думали над тем, чтобы заменить bash на Go для CI/CD, получить мощные инструменты тестирования, отладки и читаемый код, посмотрите на Dagger. Это инструмент, который позволяет писать CI/CD-пайплайны на Go, TypeScript или Python — как обычный код. Например сборка приложения и публикация в registry:

package main

import (
    "context"
    "dagger.io/dagger"
)

func main() {
    ctx := context.Background()
    client, err := dagger.Connect(ctx)
    if err != nil {
        panic(err)
    }
    defer client.Close()

    // Собираем Docker-образ
    image := client.Container().Build(client.Host().Directory("."))
    
    // Пушим в registry
    _, err = image.Publish(ctx, "my-registry/my-app:latest")
    if err != nil {
        panic(err)
    }
}
Из минусов, кода становится больше:

#!/bin/bash
echo "Building app..."
docker build -t my-app .
echo "Pushing to registry..."
docker tag my-app my-registry/my-app:latest
docker push my-registry/my-app:latest
Но на больших и сложных кейсах приемущество становиться очевидным. #DevOps #CI_CD #Dagger #Automation #GoLang

photo content
+1

Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX. Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn. #AI #Qwen #Alibaba #нейросети #технологии

Не зря я себе купил M4 Max с 128 ГБ оперативки — как будто чувствовал выход мощной нейросети. В теории мне должно хватить для
Не зря я себе купил M4 Max с 128 ГБ оперативки — как будто чувствовал выход мощной нейросети. В теории мне должно хватить для дообучения модели на 70B параметров. Бенчмарки впечатляют, и теперь хочу сам сравнить локальную версию. UPD: Отбой. Пробовать всё же буду, но, как выяснилось, бенчмарк выше R1 — не настоящий. Модели 70B и 7-8B — это файнтюн версии Qwen или Llama, дообученные на выходных данных оригинальной R1. #AI #DeepSeek #OpenAI #нейросети #технологии

Такого ажиотажа в AI-сфере не было со времен запуска ChatGPT 3.5! DeepSeek наделал столько шума, что после их заявления о затратах всего в 6 млн$ (при сопоставимой с o1 мощности) акции Nvidia упали почти на 20%. Досталось и другим компаниям, связанным с чипами. Конечно, я тоже не удержался от тестов. Впечатления позитивные - по качеству почти не отличается от o1, но есть два больших плюса: не нужен VPN и есть нативное приложение для телефона. А для разработчиков вообще праздник - можно развернуть локально или использовать API всего за $0.14 (против $2.50 за o1). Хотя вроде OpenAI на днях снизили цены, раньше было около $7.5 (я почему-то помню такую цену, но могу ошибится). С техническими задачами справляется на уровне конкурентов. Правда, если говорить о качестве текста - Sonnet всё ещё остается моим фаворитом 😉 #AI #DeepSeek #OpenAI #нейросети #технологии

В прошлом году писал про рейтинг на Хабре. До сих пор не могу понять эту математику – простые статьи часто получают высокие о
В прошлом году писал про рейтинг на Хабре. До сих пор не могу понять эту математику – простые статьи часто получают высокие оценки, а технически сложные материалы не особо заходят. И каждый раз волнуюсь, публикуя новый пост. Но знаете что? Самый важный индикатор – не цифры, а реальная обратная связь от читателей. Когда человек пишет, что благодаря твоему материалу узнал что-то новое и полезное – это дает невероятный заряд энергии и мотивации делать ещё. И это работает не только со статьями, а вообще со всеми проектами – главный драйвер для меня это осознание, что твоя работа кому-то помогла. Что ты постарался не зря. #мотивация #хабр #комьюнити #разработка #контент

Вчера OpenAI выпустила Operator - AI-ассистента с собственным браузером. Он умеет самостоятельно работать с веб-интерфейсами: заполнять формы, делать заказы и искать информацию. Работает на новой модели Computer-Using Agent (CUA), которая использует GPT-4 для взаимодействия с графическим интерфейсом - умеет кликать, печатать и скроллить как обычный пользователь. Пока доступен только Pro-пользователям в США. #AI #OpenAI #ChatGPT #Operator #технологии

😎 Собеседование: - Знаешь паттерны? - Да, синглтон! - А ещё? - Ну... два синглтона? #пятничныйюмор

Одного PKCE для SPA уже мало. Почему? Участились случаи token theft даже с правильно настроенным OAuth 2.0. Варианты улучшений: Browser fingerprinting (защита от token replay) Rate limiting по комбинации IP + fingerprint Anomaly detection по паттернам запросов Важно: это не серебряная пуля, а набор инструментов. Выбирайте исходя из модели угроз. Не сложно реализовать - browser fingerprinting и rate limiting по device ID, но даст достаточный уровень безопасности. #security #oauth #api"

3 проверенных стека для метрик: Классика: Prometheus + Grafana ➕ Простота, огромное комьюнити ➖ Масштабируется до средних нагрузок Идеально для начала и небольших систем Длинное хранение: VictoriaMetrics + Grafana ➕ Хранит годы данных, совместим с Prometheus ➖ Сложнее в настройке Отлично для растущих проектов Распределенный: Thanos + Prometheus + Grafana ➕ Горизонтальное масштабирование ➖ Сложная инфраструктура Для больших распределенных систем #monitoring #devops #metrics"

Устал от холиваров 'gRPC быстрее' против 'REST привычнее'? Давайте о главном - КОНТЕКСТЕ использования. Микросервисы внутри периметра? gRPC однозначно: контракты, производительность, удобство поддержки. Но стоит выйти за периметр... Делаем API для React-фронта? REST + OpenAPI. Иначе намучаетесь с grpc-web, прокси и тонной лишнего кода на клиенте. Enterprise интеграции? REST снова выигрывает: у условного банка-партнера серверы еще на SOAP могут работать, не то что gRPC. Мой опыт: используем gRPC между своими бекенд сервисами, REST для внешних API. #architecture #api #microservices"

Хочу поделиться книгой, которую наконец-то прочитал - "Микросервисы. Паттерны разработки и рефакторинга" Криса Ричардсона. Если вы давно хотели разобраться в микросервисной архитектуре - это то, что нужно! 🎯 Автор очень толково объясняет все основные концепции и приводит конкретные примеры использования. Особенно здорово то, что после прочтения можно сразу стартовать и правильно спроектировать свои микросервисы. Правда, есть пара моментов, о которых стоит знать 🤔 Во-первых, все примеры на Java (ну, это было ожидаемо). И автор, скажем так, очень любит свою библиотеку - упоминает её при каждом удобном случае 😅 А вот с русским переводом - отдельная история! Готовьтесь к веселым терминам вроде "спурта" и "GpLang". Хотя общий смысл всё равно понятен. Кстати, сможете догадаться, что это за термины? 🤓 #книги #микросервисы #разработка #java #программирование #обучение #архитектура